From 3d6a8e384d31432a23f5a8c1a3135a58cbe617b5 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 27 五月 2025 17:25:38 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 540 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 453 insertions(+), 87 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java index b143150..58914ca 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java @@ -22,6 +22,8 @@ import com.doumee.dao.business.vo.RiskConfigVO; import com.doumee.dao.business.vo.SettleClaimsMoneyVO; import com.doumee.dao.business.vo.SettleParentStatusVO; +import com.doumee.dao.business.vo.dataBoard.DataListVO; +import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.SettleClaimsLogService; import com.doumee.service.business.SettleClaimsService; @@ -593,9 +595,7 @@ } } //璁板綍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); - - + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,null); //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; //鍒犻櫎鍏朵粬寰呭姙 @@ -737,6 +737,7 @@ settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList())); + settleClaims.setSupplementFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey())).collect(Collectors.toList())); } //鏌ヨ鎿嶄綔璁板綍 @@ -779,6 +780,80 @@ }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){ settleClaims.setFinishDate(lastConfirm.getCreateDate()); } + List<SettleParentStatusVO> parentStatusVOList = this.getParentStatus(settleClaims); + settleClaims.setParentStatusVOList(parentStatusVOList); + settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); + + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey()) + || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class, + new MPJLambdaWrapper<SettleClaimsLog>() + .selectAll(SettleClaimsLog.class) + .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName) + .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType) + .selectAs(Company::getName,SettleClaimsLog::getCompanyName) + .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE.getKey(), + Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class, + new MPJLambdaWrapper<SettleClaimsLog>() + .selectAll(SettleClaimsLog.class) + .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName) + .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType) + .selectAs(Company::getName,SettleClaimsLog::getCompanyName) + .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + &&Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE) + ){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class, + new MPJLambdaWrapper<SettleClaimsLog>() + .selectAll(SettleClaimsLog.class) + .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName) + .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType) + .selectAs(Company::getName,SettleClaimsLog::getCompanyName) + .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + }else if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())){ + SettleClaimsLog settleClaimsLog = settleClaimsLogJoinMapper.selectJoinOne(SettleClaimsLog.class, + new MPJLambdaWrapper<SettleClaimsLog>() + .selectAll(SettleClaimsLog.class) + .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName) + .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType) + .selectAs(Company::getName,SettleClaimsLog::getCompanyName) + .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) + .in(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_FINISH.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + settleClaims.setRefuseSettleClaimsLog(settleClaimsLog); + } + + + + + return settleClaims; } @@ -899,6 +974,7 @@ .last("limit 1"))); } settleClaims.setExtData(settleClaimsExtMapper.selectOne(new QueryWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,id).last("limit 1"))); + settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); return settleClaims; } @@ -951,7 +1027,7 @@ settleClaimsMapper.updateById(oldSettleClaims); //璁板綍鏃ュ織 Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.UPDATE_DATA; - this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null); + this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null,null); return oldSettleClaims.getId(); } @@ -983,7 +1059,7 @@ Constants.SettleClaimsLogType settleClaimsLogType = Constants.SettleClaimsLogType.SUPPLEMENT; String content = settleClaimsLogType.getInfo().replace("${param}", scSupplementDTO.getSupplement()); - this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content); + this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content,null); } @@ -1024,7 +1100,7 @@ - public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content){ + public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content,Constants.SettleClaimsStatus settleClaimsStatus){ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); SettleClaimsLog settleClaimsLog = new SettleClaimsLog(); settleClaimsLog.setCreateDate(new Date()); @@ -1035,6 +1111,10 @@ settleClaimsLog.setContent(content); settleClaimsLog.setObjType(settleClaimsLogType.getKey()); settleClaimsLog.setObjId(settleClaims.getId()); + if(Objects.nonNull(settleClaimsStatus)){ + settleClaimsLog.setParentStatus(settleClaimsStatus.getParentKey()); + settleClaimsLog.setStatus(settleClaimsStatus.getKey()); + } settleClaimsLogMapper.insert(settleClaimsLog); } @@ -1156,7 +1236,8 @@ PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper)); for (SettleClaims settleClaims:pageData.getRecords()) { settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); - settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount())); + + settleClaims.setPcAccount(Constants.getBigDecimalNoNull(settleClaims.getHpAccount()).add(Constants.getBigDecimalNoNull(settleClaims.getHpOtherAccount()))); } return pageData; } @@ -1209,7 +1290,7 @@ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) - public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){ + public Integer saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!loginUserInfo.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔"); @@ -1217,8 +1298,9 @@ if(Objects.isNull(settleClaimsDTO) || Objects.isNull(settleClaimsDTO.getSaveType()) || Objects.isNull(settleClaimsDTO.getMemberId()) - ||StringUtils.isBlank(settleClaimsDTO.getIdcardNo()) + || StringUtils.isBlank(settleClaimsDTO.getIdcardNo()) || Objects.isNull(settleClaimsDTO.getInsuranceApplyId()) + || Objects.isNull(settleClaimsDTO.getApplyDetailId()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -1270,9 +1352,13 @@ settleClaimsMapper.insert(settleClaims); } this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo); - - //璁板綍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); + if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){ + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,Constants.SettleClaimsStatus.RETURN_ACCEPTANCE); + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){ + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.PLATFORM_REGISTER,null,Constants.SettleClaimsStatus.CONFIRM_INFORMATION); + } + } + return settleClaims.getId(); } public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){ @@ -1295,7 +1381,9 @@ } List<Map<String,String>> riskList = new ArrayList<>(); //鏌ヨ淇濆崟鏄庣粏鏁版嵁 - ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()).eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 ")); + ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda() + .eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()) + .eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 ")); //鏄惁寮�鍚� 鏂板憳宸ユ姤妗� 0涓嶅厑璁� 1鍏佽 if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE) && Objects.nonNull(solutionsBase.getRiskNewUserUnit()) @@ -1485,6 +1573,7 @@ ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1497,14 +1586,15 @@ List<Multifile> relationFileList = settleClaimsDTO.getRelationFileList(); if(CollectionUtils.isNotEmpty(relationFileList)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); + for (int i = 0; i < relationFileList.size(); i++) { + Multifile multifile = relationFileList.get(i); if(Objects.isNull(multifile.getFileurl()) || Objects.isNull(multifile.getType()) || StringUtils.isBlank(multifile.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1517,14 +1607,15 @@ List<Multifile> outpatientFileList = settleClaimsDTO.getOutpatientFileList(); if(CollectionUtils.isNotEmpty(outpatientFileList)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); + for (int i = 0; i < outpatientFileList.size(); i++) { + Multifile multifile = outpatientFileList.get(i); if(Objects.isNull(multifile.getFileurl()) || Objects.isNull(multifile.getType()) || StringUtils.isBlank(multifile.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1537,14 +1628,15 @@ List<Multifile> hospitalFileList = settleClaimsDTO.getHospitalFileList(); if(CollectionUtils.isNotEmpty(hospitalFileList)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); + for (int i = 0; i < hospitalFileList.size(); i++) { + Multifile multifile = hospitalFileList.get(i); if(Objects.isNull(multifile.getFileurl()) || Objects.isNull(multifile.getType()) || StringUtils.isBlank(multifile.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1557,14 +1649,15 @@ List<Multifile> disabilityFileList = settleClaimsDTO.getDisabilityFileList(); if(CollectionUtils.isNotEmpty(disabilityFileList)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); + for (int i = 0; i < disabilityFileList.size(); i++) { + Multifile multifile = disabilityFileList.get(i); if(Objects.isNull(multifile.getFileurl()) || Objects.isNull(multifile.getType()) || StringUtils.isBlank(multifile.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1577,14 +1670,15 @@ List<Multifile> otherFileList = settleClaimsDTO.getOtherFileList(); if(CollectionUtils.isNotEmpty(otherFileList)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); + for (int i = 0; i < otherFileList.size(); i++) { + Multifile multifile = otherFileList.get(i); if(Objects.isNull(multifile.getFileurl()) || Objects.isNull(multifile.getType()) || StringUtils.isBlank(multifile.getName()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1593,7 +1687,27 @@ multifile.setSortnum(i+1); multifileJoinMapper.insert(multifile); } - } + } + List<Multifile> supplementFileList = settleClaimsDTO.getSupplementFileList(); + if(CollectionUtils.isNotEmpty(supplementFileList)){ + for (int i = 0; i < supplementFileList.size(); i++) { + Multifile multifile = supplementFileList.get(i); + if(Objects.isNull(multifile.getFileurl()) + || Objects.isNull(multifile.getType()) + || StringUtils.isBlank(multifile.getName()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); + } + multifile.setId(null); + multifile.setCreator(loginUserInfo.getId()); + multifile.setCreateDate(new Date()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setObjId(settleClaims.getId()); + multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey()); + multifile.setSortnum(i+1); + multifileJoinMapper.insert(multifile); + } + } } // public void getRiskSettleDetail(Integer id){ @@ -1638,9 +1752,11 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰呬紒涓氳ˉ鍏呮枃浠讹紝璇风瓑寰呬紒涓氳ˉ鍏呮枃浠�"); } //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe()); + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe(),null); settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ONE)); + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) + .set(SettleClaims::getWaitSupplementInfo,dto.getDescribe()) + .set(SettleClaims::getWaitSupplement,Constants.ONE)); } @Override @@ -1681,6 +1797,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() + .set(SettleClaims::getWaitSupplement,Constants.ZERO) .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ZERO)); } multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,dto.getId()).eq(Multifile::getObjType,Constants.MultiFile.LP_OTHER_FILE.getKey())); @@ -1699,13 +1816,13 @@ multifile.setIsdeleted(Constants.ZERO); multifile.setObjId(settleClaims.getId()); //娣诲姞鏉愭枡鏀惧叆 鍏朵粬鏉愭枡涓氬姟鍐� - multifile.setObjType(Constants.MultiFile.LP_OTHER_FILE.getKey()); + multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey()); multifile.setSortnum(i+1); multifileJoinMapper.insert(multifile); } } //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null); + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null,null); } @@ -1732,11 +1849,11 @@ if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔"); } - if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); - } +// if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); +// } //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null); + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null,Constants.SettleClaimsStatus.RETURN); settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,Constants.SettleClaimsStatus.RETURN.getKey())); } @@ -1760,13 +1877,16 @@ if(Objects.isNull(settleClaims)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())){ + if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) + || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())) + ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo()); + this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo(),null); settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) + .eq(SettleClaims::getId,dto.getId()) + .set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()) .set(SettleClaims::getEditor,loginUserInfo.getId()) .set(SettleClaims::getCaseType,dto.getCaseType())); } @@ -1798,10 +1918,12 @@ Constants.SettleClaimsStatus settleClaimsStatus = Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsStatus.CONFIRM_INFORMATION:Constants.SettleClaimsStatus.FINISH_ACCEPTANCE; //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe()); + this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe(),settleClaimsStatus); settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, - DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,settleClaimsStatus.getKey())); + .eq(SettleClaims::getId,dto.getId()) + .set(SettleClaims::getEditDate, DateUtil.getCurrDateTime()) + .set(SettleClaims::getEditor,loginUserInfo.getId()) + .set(SettleClaims::getStatus,settleClaimsStatus.getKey())); } @@ -1829,8 +1951,14 @@ if(Constants.equalsInteger(model.getReportNumStatus(),Constants.TWO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } - if(!((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE)) - ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)))){ + if(!( + (Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE)) + ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()) + &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)) +// ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey()) +// &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)) + ) + ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } @@ -1937,7 +2065,7 @@ if(Objects.isNull(settleClaims)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus())){ + if(!Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){ @@ -1948,7 +2076,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.ACCEPTANCE); }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){ //鎷掔粷鍙楃悊 settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() @@ -1957,7 +2085,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE, - Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe())); + Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe()),Constants.SettleClaimsStatus.REJECT_DEAL); }else if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){ //鍙楃悊鍟嗚瀹℃壒 settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() @@ -1966,7 +2094,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.REJECT_DEAL); } } @@ -1984,9 +2112,9 @@ } List<CompensationVO> modelList = new ArrayList<>(); if (Objects.nonNull(settleClaims)) { - if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ + if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); - }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ + }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.TWO)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); } } @@ -2027,7 +2155,8 @@ if(Objects.isNull(settleClaims)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()))||Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())){ + if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) + ||Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus()))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } @@ -2050,7 +2179,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_LP_DEAL, - Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo()); + Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION); } @@ -2086,7 +2215,7 @@ Constants.SettleClaimsLogType settleClaimsLogType = Constants.equalsInteger(dto.getStatus(),Constants.ZERO) ?Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS:Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE; this.saveSettleClaimsLog(settleClaims, settleClaimsLogType - ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe())); + ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe()),settleClaimsStatus); settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime()) .set(SettleClaims::getEditor,loginUserInfo.getId()) @@ -2128,8 +2257,6 @@ update.setHpAccountContent(dto.getCompensationJson()); update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); - - update.setId(settleClaims.getId()); update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey()); settleClaimsMapper.updateById(update); @@ -2137,7 +2264,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_HP_DEAL, - Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo()); + Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION); } @@ -2176,30 +2303,33 @@ update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); - update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); - //澶勭悊鍘嗗彶鏁版嵁 - List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); - for (CompensationVO compensationVO:oldList) { - if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){ - compensationVO.setFee(update.getYlClaimAccount()); - }else if(compensationVO.getName().equals(Constants.compensation.WG_COMPENSATION.getName())){ - compensationVO.setFee(update.getWgClaimAccount()); - }else if(compensationVO.getName().equals(Constants.compensation.SC_COMPENSATION.getName())){ - compensationVO.setFee(update.getScClaimAccount()); - }else if(compensationVO.getName().equals(Constants.compensation.SW_COMPENSATION.getName())){ - compensationVO.setFee(update.getSwClaimAccount()); - }else{ - continue; - } - } - update.setAccountContent(JSONArray.toJSONString(oldList)); - update.setId(settleClaims.getId()); +// update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); +// //澶勭悊鍘嗗彶鏁版嵁 +// List<CompensationVO> oldList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); +// for (CompensationVO compensationVO:oldList) { +// if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){ +// compensationVO.setFee(update.getYlClaimAccount()); +// }else if(compensationVO.getName().equals(Constants.compensation.WG_COMPENSATION.getName())){ +// compensationVO.setFee(update.getWgClaimAccount()); +// }else if(compensationVO.getName().equals(Constants.compensation.SC_COMPENSATION.getName())){ +// compensationVO.setFee(update.getScClaimAccount()); +// }else if(compensationVO.getName().equals(Constants.compensation.SW_COMPENSATION.getName())){ +// compensationVO.setFee(update.getSwClaimAccount()); +// }else{ +// continue; +// } +// } + update.setHpAccountContent(dto.getCompensationJson()); + update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setId(settleClaims.getId()); + update.setFeeUpdate(Constants.ONE); settleClaimsMapper.updateById(update); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_UPD_FEE, - Constants.SettleClaimsLogType.PLATFORM_UPD_FEE.getInfo()); + dto.getDescribe(),null); } @@ -2207,27 +2337,28 @@ @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void confirmFee(Integer id){ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); - if(!loginUserInfo.getType().equals(Constants.ZERO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); + if(!loginUserInfo.getType().equals(Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氫汉鍛樻棤娉曡繘琛岃鎿嶄綔"); } SettleClaims settleClaims = settleClaimsJoinMapper.selectById(id); if(Objects.isNull(settleClaims)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); + //濡傛灉鏄紒涓� 鏌ヨ鏄惁鏄嚜宸变紒涓氱殑鏁版嵁 + if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔"); } SettleClaims update = new SettleClaims(); update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); - update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey()); + update.setStatus(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey()); update.setId(settleClaims.getId()); settleClaimsMapper.updateById(update); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.CONFIRM_FEE, - Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo()); + Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo(),Constants.SettleClaimsStatus.CONFIRM_FEE); } @@ -2255,6 +2386,9 @@ update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); update.setStatus(Constants.SettleClaimsStatus.CLOSE_CASE.getKey()); + update.setCheckDate(new Date()); + update.setCheckUserId(loginUserInfo.getId()); + update.setCheckInfo(Constants.SettleClaimsStatus.CLOSE_CASE.name()); update.setId(settleClaims.getId()); settleClaimsMapper.updateById(update); @@ -2285,7 +2419,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_FINISH, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE); } @@ -2293,7 +2427,9 @@ public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){ List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>(); List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper - .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate)); + .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()) + .isNotNull(SettleClaimsLog::getParentStatus) + .orderByDesc(SettleClaimsLog::getId)); //绔嬫閫�鍥炵姸鎬佹暟鎹� if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO(); @@ -2357,21 +2493,22 @@ //鑾峰彇褰撳墠鏃ュ織鏈�澶х殑鐖剁姸鎬� Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); if(optionalInteger.isPresent()){ - for (int i = 1; i <= 5; i++) { + + for (int i = 1; i <= (optionalInteger.get()<5?optionalInteger.get():5); i++) { SettleParentStatusVO s = new SettleParentStatusVO(); Constants.SettleClaimsLogParentStatus parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i); s.setParentTitle(parentStatus.getName()); s.setChildTitle(parentStatus.getInfo()); s.setStatus(Constants.ZERO); //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬� - if(Constants.equalsInteger(i,optionalInteger.get())){ - Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() - .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); - if(settleClaimsLogOptional.isPresent()){ - s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); - } + Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() + .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); + if(settleClaimsLogOptional.isPresent()){ + s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); + s.setOptDate(settleClaimsLogOptional.get().getCreateDate()); } settleParentStatusVOList.add(s); + } } //娣诲姞鎾ゆ鏁版嵁 @@ -2380,7 +2517,7 @@ settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ"); settleParentStatusCHVO.setStatus(Constants.THREE); Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() - .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); + .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); if(optionalSettleClaimsSLLog.isPresent()){ settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); } @@ -2401,9 +2538,28 @@ //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 澶т簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ら厤缃� s.setChildTitle(parentStatus.getInfo()); s.setStatus(Constants.ZERO); + int finalI = i; + Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream() + .filter(j->Constants.equalsInteger(j.getParentStatus(), finalI)).findFirst(); + if(optionalSettleClaimsLog.isPresent()){ + s.setOptDate(optionalSettleClaimsLog.get().getCreateDate()); + } }else if(optionalInteger.get()<i){ //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 灏忎簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ゆ湭澶勭悊閰嶇疆 s.setChildTitle(parentStatus.getWaitInfo()); + if(Constants.equalsInteger(i,Constants.SettleClaimsLogParentStatus.LS.getKey())){ +// //鎶ユ瀹℃壒閫氳繃鍚庤鏄剧ず + Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream() + .filter(j-> + Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE.getKey()) + || Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS.getKey()) + ).findFirst(); + if(settleClaimsLogOptional.isPresent()){ + s.setStatus(Constants.ONE); + settleParentStatusVOList.add(s); + continue; + } + } s.setStatus(Constants.TWO); }else{ //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬� @@ -2412,6 +2568,7 @@ .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst(); if(settleClaimsLogOptional.isPresent()){ s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType())); + s.setOptDate(settleClaimsLogOptional.get().getCreateDate()); } } s.setStatus(Constants.ONE); @@ -2420,10 +2577,219 @@ } } return settleParentStatusVOList; + } + + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void updHurtType(UpdHurtTypeDTO dto){ + if(Objects.isNull(dto) + || Objects.isNull(dto.getId()) + || Objects.isNull(dto.getHurtType()) + || !(Constants.equalsInteger(dto.getHurtType(),Constants.ZERO) || Constants.equalsInteger(dto.getHurtType(),Constants.ONE)) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(!loginUserInfo.getType().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); + } + SettleClaims settleClaims = settleClaimsJoinMapper.selectById(dto.getId()); + if(Objects.isNull(settleClaims)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus()) + || Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()) + // || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus()) + )){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); + } + if(!Constants.equalsInteger(settleClaims.getHurtType(),Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀硅繃锛屾棤娉曞啀娆′慨鏀�"); + } + SettleClaims update = new SettleClaims(); + update.setEditDate(new Date()); + update.setEditor(loginUserInfo.getId()); + update.setHurtType(dto.getHurtType()); + update.setId(settleClaims.getId()); + settleClaimsMapper.updateById(update); + + //瀛樺偍鏃ュ織 + this.saveSettleClaimsLog(settleClaims, + Constants.SettleClaimsLogType.UPD_HURT_TYPE, + Constants.SettleClaimsLogType.UPD_HURT_TYPE.getInfo(),null); + } + + + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void updReceiveInfo(UpdReceiveInfoDTO dto){ + if(Objects.isNull(dto) + || Objects.isNull(dto.getId()) + || StringUtils.isBlank(dto.getReceiveBank()) + || StringUtils.isBlank(dto.getReceiveAccount()) + || StringUtils.isBlank(dto.getReceiveUserName()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(!loginUserInfo.getType().equals(Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氫汉鍛樻棤娉曡繘琛岃鎿嶄綔"); + } + SettleClaims settleClaims = settleClaimsJoinMapper.selectById(dto.getId()); + if(Objects.isNull(settleClaims)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + //濡傛灉鏄紒涓� 鏌ヨ鏄惁鏄嚜宸变紒涓氱殑鏁版嵁 + if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔"); + } + if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus()) || Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus()) ) + ){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); + } + + SettleClaims update = new SettleClaims(); + update.setEditDate(new Date()); + update.setEditor(loginUserInfo.getId()); + update.setReceiveBank(dto.getReceiveBank()); + update.setReceiveAccount(dto.getReceiveAccount()); + update.setReceiveUserName(dto.getReceiveUserName()); + update.setId(settleClaims.getId()); + settleClaimsMapper.updateById(update); + + //瀛樺偍鏃ュ織 + this.saveSettleClaimsLog(settleClaims, + Constants.SettleClaimsLogType.UPD_RECEIVE_INFO, + Constants.SettleClaimsLogType.UPD_RECEIVE_INFO.getInfo(),null); + } + + + + @Override + public List<String> getDiscussProblemType(){ + String types = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.DISCUSS_PROBLEM_TYPE).getCode(); + if(StringUtils.isNotBlank(types)){ + return Arrays.asList(types.split(",")); + } + return null; + } + + + @Override + public SettleClaimsDataVO getSettleClaimsDataVO(){ + SettleClaimsDataVO settleClaimsDataVO = new SettleClaimsDataVO(); + settleClaimsDataVO.setSettleClaimsTotal(Constants.ZERO); + settleClaimsDataVO.setAverageSettleClaimsTime(BigDecimal.ZERO); + settleClaimsDataVO.setSettleClaimsTotalFee(BigDecimal.ZERO); + settleClaimsDataVO.setRefuseRata(BigDecimal.ZERO); + settleClaimsDataVO.setAcceptanceRata(BigDecimal.ZERO); + settleClaimsDataVO.setCloseCaseRata(BigDecimal.ZERO); + + + List<SettleClaims> settleClaimsList = settleClaimsMapper.selectList(new QueryWrapper<SettleClaims>().lambda().eq(SettleClaims::getIsdeleted,Constants.ZERO)); + if(CollectionUtils.isNotEmpty(settleClaimsList)){ + Integer totalSettleClaimsNum = settleClaimsList.size(); + List<SettleClaims> closeCaseList = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus()) + &&Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList()); + for (SettleClaims settleClaims:closeCaseList) { + if(Objects.nonNull(settleClaims.getCheckDate())&&Objects.nonNull(settleClaims.getCreateDate())){ + settleClaims.setTotalHours( + (int)DateUtil.getBetweenHours(settleClaims.getCreateDate(),settleClaims.getCheckDate()) + ); + }else{ + settleClaims.setTotalHours(Constants.ZERO); + } + } + Integer closeCaseNum = closeCaseList.size(); + //鏈寘鍚� 绔嬫閫�鍥� 绔嬫閫�鍥炲彲浠ュ啀娆℃彁浜ょ殑 + Integer refuseNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&& + (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey()) + ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())) + ).collect(Collectors.toList()).size(); + Integer acceptanceNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&& + (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()) + ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey()) + ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CONFIRM_FEE.getKey()) + ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey()) + ) + ).collect(Collectors.toList()).size(); + if(Objects.nonNull(closeCaseNum)&&!Constants.equalsInteger(closeCaseNum,Constants.ZERO)){ + settleClaimsDataVO.setCloseCaseRata(new BigDecimal(closeCaseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); + } + if(Objects.nonNull(refuseNum)&&!Constants.equalsInteger(refuseNum,Constants.ZERO)){ + settleClaimsDataVO.setRefuseRata(new BigDecimal(refuseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); + } + if(Objects.nonNull(acceptanceNum)&&!Constants.equalsInteger(acceptanceNum,Constants.ZERO)){ + settleClaimsDataVO.setAcceptanceRata(new BigDecimal(acceptanceNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP)); + } + + List<DataListVO> settleClaimsTotalList = new ArrayList<>(); + List<DataListVO> settleClaimsFeeList = new ArrayList<>(); + List<DataListVO> averageSettleClaimsList = new ArrayList<>(); + + for (int i = 5; i >=0 ; i--) { + //姣忎釜鏈堢殑鏁版嵁 + String monthData = DateUtil.DateToStr(DateUtil.afterDateByType(new Date(),1,i*-1),"yyyy-MM"); + DataListVO settleClaimsTotal = new DataListVO(); + DataListVO settleClaimsFee = new DataListVO(); + DataListVO averageSettleClaims = new DataListVO(); + + settleClaimsTotal.setDataFirst(monthData); + settleClaimsTotal.setDataSecond( + settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).toString() + ); + + settleClaimsFee.setDataFirst(monthData); + List<SettleClaims> closeCaseMonthList = closeCaseList.stream().filter(j->Objects.nonNull(j.getCheckDate())&&DateUtil.DateToStr(j.getCheckDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()); + settleClaimsFee.setDataSecond(closeCaseMonthList.stream().map(j->j.getHpAccount().add(j.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add).toString()); + + averageSettleClaims.setDataFirst(monthData); + Integer sumHours = closeCaseMonthList.stream().map(j-> + j.getTotalHours()).reduce(Constants.ZERO,Integer::sum); + averageSettleClaims.setDataSecond( + new BigDecimal(sumHours.toString()).divide(new BigDecimal((closeCaseMonthList.size()*24)+"")).toString() + ); + + settleClaimsTotalList.add(settleClaimsTotal); + settleClaimsFeeList.add(settleClaimsFee); + averageSettleClaimsList.add(averageSettleClaims); + + } + settleClaimsDataVO.setSettleClaimsFeeList(settleClaimsFeeList); + settleClaimsDataVO.setAverageSettleClaimsList(averageSettleClaimsList); + settleClaimsDataVO.setSettleClaimsTotalList(settleClaimsTotalList); + + //鎬荤悊璧旈噾棰� + settleClaimsDataVO.setSettleClaimsTotalFee(closeCaseList.stream().map(i->i.getHpAccount().add(i.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add)); + + //鎬荤悊璧旀浠舵暟 + settleClaimsDataVO.setSettleClaimsTotal(settleClaimsList.size()); + + //骞冲潎鐞嗚禂澶勭悊鏃堕暱澶╂暟 鎬昏澶勭悊鏃堕暱锛堝崟浣嶅皬鏃讹級闄や互 璁板綍鏁� 鎹㈢畻鍒板ぉ + settleClaimsDataVO.setAverageSettleClaimsTime( + new BigDecimal(closeCaseList.stream().map(i->i.getTotalHours()).reduce(Constants.ZERO,Integer::sum).toString()) + .divide(new BigDecimal((closeCaseList.size()*24)+"") ,2,BigDecimal.ROUND_HALF_UP) + + ); + + } + + + return settleClaimsDataVO; } + + + + + + + } -- Gitblit v1.9.3