From 2b0a139f88adbbb67bc6feed69dc1ee9ff158cb9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 29 五月 2025 13:34:17 +0800 Subject: [PATCH] 提交一把订单 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 1183 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 964 insertions(+), 219 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 a8a4c2b..c7a167c 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 @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -20,6 +21,9 @@ import com.doumee.dao.business.vo.CompensationVO; 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; @@ -62,6 +66,8 @@ @Autowired private SettleClaimsMapper settleClaimsMapper; + @Autowired + private MemberMapper memberMapper; @Autowired private SettleClaimsExtMapper settleClaimsExtMapper; @@ -378,9 +384,9 @@ return 1; } - @Override - public Integer createSys(SettleClaims settleClaims) { + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public Integer createOrEditSys(SettleClaims settleClaims) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); settleClaims.setOrigin(Constants.ONE); if(Objects.isNull(settleClaims) @@ -392,6 +398,7 @@ } if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO) &&( Objects.isNull(settleClaims.getExtData().getBxName()) + || Objects.isNull(settleClaims.getExtData().getReportDate()) || Objects.isNull(settleClaims.getExtData().getBxCode()) || Objects.isNull(settleClaims.getExtData().getBxEnddate()) || Objects.isNull(settleClaims.getExtData().getBxOrg()) @@ -402,46 +409,137 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙扮鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); } Date date =new Date(); - settleClaims.setCreateDate(date); settleClaims.setEditDate(date); - settleClaims.setIsdeleted(Constants.ZERO); - settleClaims.setCreator(loginUserInfo.getId()); - // - List<SettleClaimsMoneyVO> feeList = settleClaims.getAccountList(); - settleClaimsMapper.insert(settleClaims); + settleClaims.setEditor(loginUserInfo.getId()); + List<CompensationVO> feeList = settleClaims.getAccountList(); + BigDecimal mainFee = new BigDecimal(0); + BigDecimal ortherFee = new BigDecimal(0); + if(feeList!=null && feeList.size()>0){ + for(CompensationVO fee : feeList){ + if(Constants.equalsObject(fee.getType(),Constants.ZERO)){ + mainFee = mainFee.add(Constants.formatBigdecimal(fee.getFee())); + }else{ + ortherFee = ortherFee.add(Constants.formatBigdecimal(fee.getFee())); + } + } + settleClaims.setHpAccountContent(JSONObject.toJSONString(feeList)); + settleClaims.setHpAccount(mainFee); + settleClaims.setHpOtherAccount(ortherFee); + } + if(settleClaims.getId() ==null){ + //濡傛灉鏄柊澧炶褰� + dealCreateSysBiz(settleClaims,date,loginUserInfo); + }else{ + //濡傛灉鏇存柊 + dealUpdateSysBiz(settleClaims,date,loginUserInfo); + } + return settleClaims.getId(); + } + private void dealUpdateSysBiz(SettleClaims settleClaims, Date date, LoginUserInfo loginUserInfo) { + SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId()); + if(model ==null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + settleClaimsMapper.updateById(settleClaims); + //鍒犻櫎鍘熸潵鐨勬墿灞曞睘鎬т俊鎭紝淇濈暀鏈�鏂扮殑 + settleClaimsExtMapper.delete(new UpdateWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,model.getId())); settleClaims.getExtData().setCreator(settleClaims.getCreator()); settleClaims.getExtData().setCreateDate(date); settleClaims.getExtData().setEditor(settleClaims.getCreator()); settleClaims.getExtData().setEditDate(date); + settleClaims.getExtData().setIsdeleted(Constants.ZERO); settleClaims.getExtData().setSettileClaimsId(settleClaims.getId()); settleClaimsExtMapper.insert(settleClaims.getExtData()); + //澶勭悊闄勪欢寮�濮� + multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda() + .set(Multifile::getIsdeleted,Constants.ONE) + .eq(Multifile::getObjId,model.getId()) + .in(Multifile::getObjType + ,Constants.MultiFile.LP_YGGX_FILE.getKey() + ,Constants.MultiFile.LP_ZYCL_FILE.getKey() + ,Constants.MultiFile.LP_MZCL_FILE.getKey() + ,Constants.MultiFile.LP_OTHER_FILE.getKey() + ,Constants.MultiFile.LP_SCZL_FILE.getKey() + ,Constants.MultiFile.LP_SGXC_FILE.getKey() + ,Constants.MultiFile.LP_DZBD_FILE.getKey() + ) - //--------------澶勭悊闄勪欢寮�濮�---------------- - List<Multifile> reportVideo = settleClaims.getReportFileList(); - if(CollectionUtils.isNotEmpty(reportVideo)){ - for (int i = 0; i < reportVideo.size(); i++) { - Multifile multifile = reportVideo.get(i); - if(Objects.isNull(multifile.getFileurl()) - || Objects.isNull(multifile.getType()) - || StringUtils.isBlank(multifile.getName()) - ){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); - } - multifile.setCreator(loginUserInfo.getId()); - multifile.setCreateDate(new Date()); - multifile.setIsdeleted(Constants.ZERO); - multifile.setObjId(settleClaims.getId()); - multifile.setObjType(Constants.ONE); - multifile.setSortnum(i+1); - multifileJoinMapper.insert(multifile); - } + ); + dealSysFileListBiz(settleClaims); + } + + private void dealCreateSysBiz(SettleClaims settleClaims,Date date,LoginUserInfo loginUserInfo) { + settleClaims.setCreateDate(date); + settleClaims.setIsdeleted(Constants.ZERO); + settleClaims.setCreator(loginUserInfo.getId()); + + settleClaimsMapper.insert(settleClaims); + settleClaims.getExtData().setCreator(settleClaims.getCreator()); + settleClaims.getExtData().setCreateDate(date); + settleClaims.getExtData().setEditor(settleClaims.getCreator()); + settleClaims.getExtData().setEditDate(date); + settleClaims.getExtData().setIsdeleted(Constants.ZERO); + settleClaims.getExtData().setSettileClaimsId(settleClaims.getId()); + settleClaimsExtMapper.insert(settleClaims.getExtData()); + //澶勭悊闄勪欢寮�濮� + dealSysFileListBiz(settleClaims); + } + + /** + * 澶勭悊闄勪欢寮�濮� + * @param settleClaims + */ + + private void dealSysFileListBiz(SettleClaims settleClaims) { + List<Multifile> relationFileList = settleClaims.getRelationFileList();//鍛樺伐鍏崇郴鏉愭枡 + List<Multifile> hospitalFileList = settleClaims.getHospitalFileList();//浣忛櫌鏉愭枡 + List<Multifile> outpatientFileList = settleClaims.getOutpatientFileList();//闂ㄨ瘖鏉愭枡 + List<Multifile> otherFileList = settleClaims.getOtherFileList();//鍏朵粬鏉愭枡 + List<Multifile> disabilityFileList = settleClaims.getDisabilityFileList();//浼ゆ畫鏉愭枡 + List<Multifile> dzbdFileList = settleClaims.getDzbdFileList();//鐢靛瓙淇濆崟 + List<Multifile> reportFileList = settleClaims.getReportFileList();//鎶ユ瑙嗛 + List<Multifile> insetList = new ArrayList<>(); + insetList.addAll(getMultifileListByObjtype(relationFileList,Constants.MultiFile.LP_YGGX_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(hospitalFileList,Constants.MultiFile.LP_ZYCL_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(outpatientFileList,Constants.MultiFile.LP_MZCL_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(otherFileList,Constants.MultiFile.LP_OTHER_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(disabilityFileList,Constants.MultiFile.LP_SCZL_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(dzbdFileList,Constants.MultiFile.LP_DZBD_FILE.getKey(),settleClaims)); + insetList.addAll(getMultifileListByObjtype(reportFileList,Constants.MultiFile.LP_SGXC_FILE.getKey(),settleClaims)); + if(CollectionUtils.isNotEmpty(insetList)){ + multifileJoinMapper.insert(insetList); } //--------------澶勭悊闄勪欢缁撴潫---------------- - - return settleClaims.getId(); } + + private Collection<? extends Multifile> getMultifileListByObjtype(List<Multifile> list, int key,SettleClaims model) { + List<Multifile> insetList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(list)){ + int index = 0; + for (int i = 0; i < list.size(); i++) { + Multifile multifile = list.get(i); + if(Objects.isNull(multifile.getFileurl()) + || Objects.isNull(multifile.getType()) + || StringUtils.isBlank(multifile.getName()) ){ + continue; + } + multifile.setId(null); + multifile.setCreator(model.getEditor()); + multifile.setCreateDate(model.getEditDate()); + multifile.setEditor(model.getEditor()); + multifile.setEditDate(model.getEditDate()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setObjId(model.getId()); + multifile.setObjType(key); + multifile.setSortnum(index++); + insetList.add(multifile); + } + } + return insetList; + } + @Override public Integer create(SettleClaims settleClaims) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); @@ -472,6 +570,7 @@ )>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!"); } + settleClaims.setCreateDate(new Date()); settleClaims.setIsdeleted(Constants.ZERO); settleClaims.setCompanyId(loginUserInfo.getCompanyId()); @@ -500,9 +599,7 @@ } } //璁板綍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); - - + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,null); //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; //鍒犻櫎鍏朵粬寰呭姙 @@ -639,6 +736,12 @@ settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList())); settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList())); + + 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())); } //鏌ヨ鎿嶄綔璁板綍 @@ -681,6 +784,218 @@ }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); + } + + if((Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + || Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.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.setSupplementSettleClaimsLog(settleClaimsLog); + } + + + + return settleClaims; + } + + + @Override + public SettleClaims getSettleClaimsDetailForSd(Integer id){ + MPJLambdaWrapper<SettleClaims> queryWrapper = new MPJLambdaWrapper<SettleClaims>(); + queryWrapper.selectAll(SettleClaims.class) + .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName) + .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName) + .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName) + .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo) + .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime) + .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime) + .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode) + .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId) + .eq(SettleClaims::getId,id); + SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,queryWrapper); + if(settleClaims == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ + settleClaims.setAccountList(JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class )); + } + List<Multifile> multifileList = multifileJoinMapper.selectJoinList(Multifile.class, + new MPJLambdaWrapper<Multifile>() + .selectAll(Multifile.class) + .selectAs(SystemUser::getRealname,Multifile::getCreatorName) + .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) + .eq(Multifile::getObjId,id) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .orderByAsc(Multifile::getCreateDate) + ); + String rPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); + String path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.SETTLE_FILE).getCode(); + if(multifileList!=null){ + for(Multifile f : multifileList){ + if(f!=null&& StringUtils.isNotBlank(f.getFileurl())){ + f.setFileurlFull(path+f.getFileurl()); + } + } + } + Multifile baoxiandanFile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>() + .lambda().eq(Multifile::getObjId,settleClaims.getInsuranceApplyId()) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey()) + .last("limit 1")); + if(baoxiandanFile!=null&& StringUtils.isNotBlank(baoxiandanFile.getFileurl())){ + path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); + baoxiandanFile.setFileurlFull(path+baoxiandanFile.getFileurl()); + } + settleClaims.setBaoxiandanFile(baoxiandanFile);//淇濋櫓鍗� + if(CollectionUtils.isNotEmpty(multifileList)){ + settleClaims.setReportFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SGXC_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setRelationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_YGGX_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setOutpatientFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_MZCL_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setHospitalFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_ZYCL_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setDisabilityFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SCZL_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setPayFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_PAY_FILE.getKey())).collect(Collectors.toList())); + + settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList())); + + } + + //鏌ヨ鎿嶄綔璁板綍 + List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogJoinMapper.selectJoinList(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()) + .orderByAsc(SettleClaimsLog::getCreateDate) + ); + settleClaims.setSettleClaimsLogList(settleClaimsLogList); + SettleClaimsLog lastConfirm = settleClaimsLogMapper.selectOne(new QueryWrapper<SettleClaimsLog>().lambda() + .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId()) + .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION.getKey()) + .orderByDesc(SettleClaimsLog::getCreateDate) + .last(" limit 1") + ); + + Multifile multifile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>() + .lambda() + .eq(Multifile::getObjId,settleClaims.getId()) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .in(Multifile::getObjType, + Constants.MultiFile.LP_SGXC_FILE.getKey(), + Constants.MultiFile.LP_YGGX_FILE.getKey(), + Constants.MultiFile.LP_MZCL_FILE.getKey(), + Constants.MultiFile.LP_ZYCL_FILE.getKey(), + Constants.MultiFile.LP_SCZL_FILE.getKey(), + Constants.MultiFile.LP_JACL_FILE.getKey()) + .orderByDesc(Multifile::getCreateDate) + .last(" limit 1") + ); + + if(!Objects.isNull(lastConfirm)&&!Objects.isNull(multifile)){ + settleClaims.setFinishDate(lastConfirm.getCreateDate().compareTo(multifile.getCreateDate())>=0?lastConfirm.getCreateDate():multifile.getCreateDate()); + }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){ + settleClaims.setFinishDate(lastConfirm.getCreateDate()); + } + if(Constants.equalsObject(settleClaims.getOrigin(),Constants.ONE)){ + settleClaims.setExtData(settleClaimsExtMapper.selectOne(new LambdaQueryWrapper<SettleClaimsExt>() + .eq(SettleClaimsExt::getIsdeleted,Constants.ZERO) + .eq(SettleClaimsExt::getSettileClaimsId,settleClaims.getId()) + .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; } @@ -733,7 +1048,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(); } @@ -765,7 +1080,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); } @@ -806,7 +1121,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()); @@ -817,12 +1132,16 @@ 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); } @Override public void deleteById(Integer id) { - settleClaimsMapper.deleteById(id); + settleClaimsMapper.update(new UpdateWrapper<SettleClaims>().lambda().set(SettleClaims::getIsdeleted,Constants.ONE).eq(SettleClaims::getId,id)); } @Override @@ -885,7 +1204,10 @@ .selectAs(Member::getIdcardNo,SettleClaims::getMemberIdcardNo) .selectAs(Worktype::getName,SettleClaims::getWorktypeName) .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) + .selectAs(InsuranceApply::getCode,SettleClaims::getApplyCode) .selectAs(DispatchUnit::getName,SettleClaims::getDuName) + .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime) + .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime) .leftJoin(Company.class,Company::getId,SettleClaims::getCompanyId) .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId) .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId) @@ -901,117 +1223,31 @@ }else { queryWrapper. in(Company::getId, user.getCompanyIdList()); } - } else { + queryWrapper.ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); + }{ //浼佷笟鐢ㄦ埛鍙湅鑷繁鐨勬暟鎹� pageWrap.getModel().setCompanyId(user.getCompanyId()); } + queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO); + queryWrapper.eq(SettleClaims::getOrigin,Constants.ZERO); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberIdcardNo()),Member::getIdcardNo, pageWrap.getModel().getMemberIdcardNo()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName()); queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId, pageWrap.getModel().getBaseSolutionId()); queryWrapper.eq(pageWrap.getModel().getBaseDuId()!=null,DispatchUnit::getBaseId, pageWrap.getModel().getBaseDuId()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),Solutions::getName, pageWrap.getModel().getSolutionName()); + queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); + queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus()); + queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId()); + queryWrapper.eq(pageWrap.getModel().getOrigin()!=null,SettleClaims::getOrigin, pageWrap.getModel().getOrigin()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),SettleClaims::getCode, pageWrap.getModel().getCode()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),InsuranceApply::getCode, pageWrap.getModel().getApplyCode()); - if (pageWrap.getModel().getId() != null) { - queryWrapper.eq(SettleClaims::getId, pageWrap.getModel().getId()); - } - if (pageWrap.getModel().getCreator() != null) { - queryWrapper.eq(SettleClaims::getCreator, pageWrap.getModel().getCreator()); - } - if (pageWrap.getModel().getCreateDate() != null) { - queryWrapper.ge(SettleClaims::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); - queryWrapper.le(SettleClaims::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); - } - if (pageWrap.getModel().getEditor() != null) { - queryWrapper.eq(SettleClaims::getEditor, pageWrap.getModel().getEditor()); - } - if (pageWrap.getModel().getEditDate() != null) { - queryWrapper.ge(SettleClaims::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); - queryWrapper.le(SettleClaims::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); - } - if (pageWrap.getModel().getIsdeleted() != null) { - queryWrapper.eq(SettleClaims::getIsdeleted, pageWrap.getModel().getIsdeleted()); - } - if (pageWrap.getModel().getRemark() != null) { - queryWrapper.eq(SettleClaims::getRemark, pageWrap.getModel().getRemark()); - } - if (pageWrap.getModel().getSortnum() != null) { - queryWrapper.eq(SettleClaims::getSortnum, pageWrap.getModel().getSortnum()); - } - if (pageWrap.getModel().getSolutionId() != null) { - queryWrapper.eq(SettleClaims::getSolutionId, pageWrap.getModel().getSolutionId()); - } - if (pageWrap.getModel().getCompanyId() != null) { - queryWrapper.eq(SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId()); - } - if (pageWrap.getModel().getMemberId() != null) { - queryWrapper.eq(SettleClaims::getMemberId, pageWrap.getModel().getMemberId()); - } - if (pageWrap.getModel().getHappenTime() != null) { - queryWrapper.eq(SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); - } - if (pageWrap.getModel().getIdcardNo() != null) { - queryWrapper.eq(SettleClaims::getIdcardNo, pageWrap.getModel().getIdcardNo()); - - } - if (pageWrap.getModel().getDuId() != null) { - queryWrapper.eq(SettleClaims::getDuId, pageWrap.getModel().getDuId()); - } - if (pageWrap.getModel().getWorktypeId() != null) { - queryWrapper.eq(SettleClaims::getWorktypeId, pageWrap.getModel().getWorktypeId()); - } - if (pageWrap.getModel().getFee() != null) { - queryWrapper.eq(SettleClaims::getFee, pageWrap.getModel().getFee()); - } - if (pageWrap.getModel().getCheckInfo() != null) { - queryWrapper.eq(SettleClaims::getCheckInfo, pageWrap.getModel().getCheckInfo()); - } - if (pageWrap.getModel().getCheckUserId() != null) { - queryWrapper.eq(SettleClaims::getCheckUserId, pageWrap.getModel().getCheckUserId()); - } - if (pageWrap.getModel().getCode() != null) { - queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode()); - } - if (pageWrap.getModel().getStatus() != null) { - if(pageWrap.getModel().getStatus().equals(Constants.ZERO)){ - queryWrapper.in(SettleClaims::getStatus, Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey() - ,Constants.SettleClaimsStatus.DEAL_ING.getKey() - ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()); - }else{ - queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus()); - } - - - } - if (pageWrap.getModel().getType() != null) { - queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType()); - } - if (pageWrap.getModel().getInHospital() != null) { - queryWrapper.eq(SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); - } - if (pageWrap.getModel().getMedicalInsurance() != null) { - queryWrapper.eq(SettleClaims::getMedicalInsurance, pageWrap.getModel().getMedicalInsurance()); - } - if (pageWrap.getModel().getContent() != null) { - queryWrapper.eq(SettleClaims::getContent, pageWrap.getModel().getContent()); - } - if (pageWrap.getModel().getInformantName() != null) { - queryWrapper.eq(SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); - } - if (pageWrap.getModel().getInformantPhone() != null) { - queryWrapper.eq(SettleClaims::getInformantPhone, pageWrap.getModel().getInformantPhone()); - } - if (pageWrap.getModel().getAreaId() != null) { - queryWrapper.eq(SettleClaims::getAreaId, pageWrap.getModel().getAreaId()); - } - if (pageWrap.getModel().getAreaInfo() != null) { - queryWrapper.eq(SettleClaims::getAreaInfo, pageWrap.getModel().getAreaInfo()); - } - if (pageWrap.getModel().getReportNum() != null) { - queryWrapper.eq(SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); - } - if (pageWrap.getModel().getInsuranceApplyId() != null) { - queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId()); - } queryWrapper.orderByDesc(SettleClaims::getCreateDate); /*for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { @@ -1021,8 +1257,55 @@ } }*/ 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(Constants.getBigDecimalNoNull(settleClaims.getHpAccount()).add(Constants.getBigDecimalNoNull(settleClaims.getHpOtherAccount()))); + } return pageData; } + + + @Override + public PageData<SettleClaims> findPageForSd(PageWrap<SettleClaims> pageWrap) { + IPage<SettleClaims> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Utils.MP.blankToNull(pageWrap.getModel()); + MPJLambdaWrapper<SettleClaims> queryWrapper = new MPJLambdaWrapper<SettleClaims>(); + queryWrapper.selectAll(SettleClaims.class) + .selectAs(SettleClaimsExt::getBxOrg,SettleClaims::getCompanyName) + .selectAs(SettleClaimsExt::getBxName,SettleClaims::getSolutionName) + .selectAs(SettleClaimsExt::getMemberName,SettleClaims::getMemberName) + .selectAs(SettleClaimsExt::getMemberIdcard,SettleClaims::getMemberIdcardNo) + .selectAs(SettleClaimsExt::getBxStartdate,SettleClaims::getBaoxianStartTime) + .selectAs(SettleClaimsExt::getBxEnddate,SettleClaims::getBaoxianEndTime) + .selectAs(SettleClaimsExt::getBxCode,SettleClaims::getApplyCode) + .selectAs(SettleClaimsExt::getReportDate,SettleClaims::getReportDate) + .innerJoin(SettleClaimsExt.class,SettleClaimsExt::getSettileClaimsId,SettleClaims::getId); + queryWrapper.eq(SettleClaims::getIsdeleted,Constants.ZERO); + queryWrapper.eq(SettleClaims::getOrigin,Constants.ONE); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getReportNum()),SettleClaims::getReportNum, pageWrap.getModel().getReportNum()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),SettleClaimsExt::getBxOrg, pageWrap.getModel().getCompanyName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getInformantName()),SettleClaims::getInformantName, pageWrap.getModel().getInformantName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getHappenTime()),SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreateDateStr()),SettleClaims::getCreateDate, pageWrap.getModel().getCreateDateStr()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),SettleClaimsExt::getMemberName, pageWrap.getModel().getMemberName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),SettleClaimsExt::getBxName, pageWrap.getModel().getSolutionName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getApplyCode()),SettleClaimsExt::getBxCode, pageWrap.getModel().getApplyCode()); + queryWrapper.eq(pageWrap.getModel().getInHospital()!=null,SettleClaims::getInHospital, pageWrap.getModel().getInHospital()); + queryWrapper.eq(pageWrap.getModel().getStatus()!=null,SettleClaims::getStatus, pageWrap.getModel().getStatus()); + queryWrapper.orderByDesc(SettleClaims::getCreateDate); + PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper)); + for (SettleClaims settleClaims:pageData.getRecords()) { + if(Objects.nonNull(settleClaims.getStatus())){ + settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus())); + } + settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount())); + } + return pageData; + } + + @Override public long count(SettleClaims settleClaims) { @@ -1033,7 +1316,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(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔"); @@ -1041,8 +1324,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); } @@ -1065,9 +1349,25 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST); } } + Member member =memberMapper.selectById(settleClaimsDTO.getMemberId()); + if(member == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍑洪櫓浜轰俊鎭笉姝g‘锛�"); + } SettleClaims settleClaims = new SettleClaims(); BeanUtils.copyProperties(settleClaimsDTO,settleClaims); settleClaims.setReportNumStatus(Constants.ZERO); + settleClaims.setCompanyId(loginUserInfo.getCompanyId()); + settleClaims.setOrigin(Constants.ZERO); + settleClaims.setMemberName(member.getName()); + settleClaims.setCreateDate(new Date()); + if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&&StringUtils.isBlank(settleClaims.getCode())){ + Long nextCode = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda().ne(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()) + .eq(SettleClaims::getOrigin,Constants.ZERO) .like(SettleClaims::getCreateDate,DateUtil.getDate(new Date(),"yyyy-MM-dd")) + )+1; + settleClaims.setCode("YYBLP-"+DateUtil.getDate(new Date(),"yyyyMMdd")+ + (StringUtils.leftPad(nextCode.toString(),2,"0")) + ); + } if(Objects.nonNull(settleClaims.getId())){ settleClaims.setEditDate(new Date()); settleClaims.setEditor(loginUserInfo.getId()); @@ -1077,12 +1377,9 @@ //澶勭悊椋庨櫓淇℃伅 this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService); } - settleClaimsMapper.updateById(settleClaims); }else{ - settleClaims.setCreateDate(new Date()); settleClaims.setIsdeleted(Constants.ZERO); - settleClaims.setCompanyId(loginUserInfo.getCompanyId()); settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)? Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){ @@ -1094,9 +1391,27 @@ settleClaimsMapper.insert(settleClaims); } this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo); + 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); + } + } + if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()) || + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){ + //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝鍙戝緟鍔為�氱煡------------- + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,settleClaims.getId())); + Notices notices = new Notices(noticeObjectType,Constants.ZERO,settleClaims.getId(),getNoticeConttent(settleClaims), + settleClaims.getCompanyId(), + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO); + noticesMapper.insert(notices); + } + return settleClaims.getId(); + } - //璁板綍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); + private String getNoticeConttent(SettleClaims settleClaims) { + return "鎶ユ鍙凤細"+StringUtils.defaultString(settleClaims.getCode(),"")+" 鍑洪櫓浜猴細"+StringUtils.defaultString(settleClaims.getMemberName(),""); } public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){ @@ -1107,7 +1422,7 @@ } Date happenTime = DateUtil.StringToDate(settleClaims.getHappenTime()); if(happenTime.getTime() < insuranceApply.getStartTime().getTime() || happenTime.getTime() > insuranceApply.getEndTime().getTime()){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓浜嬩欢鏈湪淇濆崟鐢熸晥鑼冨洿鍐�"); + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪淇濆崟鐢熸晥鑼冨洿鍐�"); } Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); if(Objects.isNull(solutions)){ @@ -1119,7 +1434,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()) @@ -1180,7 +1497,7 @@ //澶氭鍑洪櫓鎻愰啋 if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") @@ -1198,7 +1515,7 @@ && StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit()) && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR) ") @@ -1218,7 +1535,7 @@ if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") @@ -1309,6 +1626,7 @@ ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父"); } + multifile.setId(null); multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -1321,14 +1639,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); @@ -1341,14 +1660,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); @@ -1361,14 +1681,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); @@ -1381,14 +1702,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); @@ -1401,14 +1723,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); @@ -1417,7 +1740,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){ @@ -1462,9 +1805,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 @@ -1505,6 +1850,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())); @@ -1523,13 +1869,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); } @@ -1556,11 +1902,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())); } @@ -1584,13 +1930,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())); } @@ -1622,10 +1971,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())); } @@ -1653,8 +2004,17 @@ 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.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) + || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.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(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } @@ -1761,7 +2121,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)){ @@ -1772,7 +2132,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() @@ -1781,16 +2141,27 @@ //瀛樺偍鏃ュ織 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() .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId()) - .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey())); + .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT); + } + + if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) || + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())){ + //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝鍙戝緟鍔為�氱煡------------- + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,settleClaims.getId())); + Notices notices = new Notices(noticeObjectType,Constants.ZERO,settleClaims.getId(),getNoticeConttent(settleClaims), + settleClaims.getCompanyId(), + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO); + noticesMapper.insert(notices); } } @@ -1851,7 +2222,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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } @@ -1860,12 +2232,12 @@ SettleClaims update = new SettleClaims(); update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); - update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); - 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)); - update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)&&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.ZERO)&&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.ZERO)&&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.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); update.setAccountContent(dto.getCompensationJson()); update.setId(settleClaims.getId()); update.setStatus(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey()); @@ -1874,7 +2246,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); } @@ -1910,7 +2282,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()) @@ -1950,7 +2322,8 @@ update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); update.setHpAccountContent(dto.getCompensationJson()); - update.setHpAccount(modelList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + 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); @@ -1958,7 +2331,7 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_HP_DEAL, - Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo()); + Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION); } @@ -1997,30 +2370,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); } @@ -2028,27 +2404,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); } @@ -2076,6 +2453,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); @@ -2106,11 +2486,376 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_FINISH, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE); } + 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()) + .isNotNull(SettleClaimsLog::getParentStatus) + .orderByDesc(SettleClaimsLog::getId)); + //绔嬫閫�鍥炵姸鎬佹暟鎹� + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){ + SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO(); + settleParentStatusVO.setParentTitle("鎶ユ"); + settleParentStatusVO.setStatus(Constants.ONE); + settleParentStatusVO.setChildTitle(Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getName()); + Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream() + .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.PLATFORM_RETURN.getKey())).findFirst(); + if(optionalSettleClaimsLog.isPresent()){ + settleParentStatusVO.setOptDate(optionalSettleClaimsLog.get().getCreateDate()); + } + settleParentStatusVOList.add(settleParentStatusVO); + return settleParentStatusVOList; + } + //鏆傚瓨鐘舵�� 鏃犱富娴佺▼鏁版嵁 + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){ + return settleParentStatusVOList; + } + //鍟嗚瀹℃壒涓嶉�氳繃 + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())){ + SettleParentStatusVO settleParentStatusBAVO = new SettleParentStatusVO(); + settleParentStatusBAVO.setParentTitle("鎶ユ"); + settleParentStatusBAVO.setChildTitle("宸叉姤妗�"); + settleParentStatusBAVO.setStatus(Constants.ZERO); + Optional<SettleClaimsLog> optionalSettleClaimsBALog = settleClaimsLogList.stream() + .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.ONE)).findFirst(); + if(optionalSettleClaimsBALog.isPresent()){ + settleParentStatusBAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate()); + } + settleParentStatusVOList.add(settleParentStatusBAVO); + + SettleParentStatusVO settleParentStatusLAVO = new SettleParentStatusVO(); + settleParentStatusLAVO.setParentTitle("绔嬫"); + settleParentStatusLAVO.setChildTitle("宸茬珛妗�"); + settleParentStatusLAVO.setStatus(Constants.ZERO); + Optional<SettleClaimsLog> optionalSettleClaimsLALog = settleClaimsLogList.stream() + .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.TWO)).findFirst(); + if(optionalSettleClaimsLALog.isPresent()){ + settleParentStatusLAVO.setOptDate(optionalSettleClaimsBALog.get().getCreateDate()); + } + settleParentStatusVOList.add(settleParentStatusBAVO); + + SettleParentStatusVO settleParentStatusSLVO = new SettleParentStatusVO(); + settleParentStatusSLVO.setParentTitle("鍙楃悊"); + settleParentStatusSLVO.setChildTitle("鍟嗚鎷掔粷"); + settleParentStatusSLVO.setStatus(Constants.THREE); + Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() + .filter(i->Constants.equalsInteger(i.getParentStatus(),Constants.THREE)).findFirst(); + if(optionalSettleClaimsSLLog.isPresent()){ + settleParentStatusSLVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); + } + settleParentStatusVOList.add(settleParentStatusSLVO); + + return settleParentStatusVOList; + } + + //涓诲姩鎾ら攢 + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey())){ + List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream() + .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList()); + //鑾峰彇褰撳墠鏃ュ織鏈�澶х殑鐖剁姸鎬� + Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); + if(optionalInteger.isPresent()){ + + 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); + //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬� + 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); + + } + } + //娣诲姞鎾ゆ鏁版嵁 + SettleParentStatusVO settleParentStatusCHVO = new SettleParentStatusVO(); + settleParentStatusCHVO.setParentTitle("宸叉挙妗�"); + settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ"); + settleParentStatusCHVO.setStatus(Constants.THREE); + Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() + .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); + if(optionalSettleClaimsSLLog.isPresent()){ + settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); + } + settleParentStatusVOList.add(settleParentStatusCHVO); + return settleParentStatusVOList; + } + + + List<SettleClaimsLog> settleClaimsLogs = settleClaimsLogList.stream() + .filter(i->i.getParentStatus()<Constants.SettleClaimsStatus.RETURN.getParentKey()).collect(Collectors.toList()); + Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o)); + if(optionalInteger.isPresent()){ + for (int i = 1; i <= 6; i++) { + SettleParentStatusVO s = new SettleParentStatusVO(); + Constants.SettleClaimsLogParentStatus parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i); + s.setParentTitle(parentStatus.getName()); + if(optionalInteger.get()>i){ + //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 澶т簬 榛樿鐨�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{ + //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬� + 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())); + s.setOptDate(settleClaimsLogOptional.get().getCreateDate()); + } + } + s.setStatus(Constants.ONE); + } + settleParentStatusVOList.add(s); + } + } + 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