From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 04 七月 2025 17:56:41 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 1775 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 1,516 insertions(+), 259 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..c6f2cf7 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; @@ -13,6 +14,7 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; import com.doumee.dao.business.dto.*; +import com.doumee.dao.business.join.ApplyDetailJoinMapper; import com.doumee.dao.business.join.MultifileJoinMapper; import com.doumee.dao.business.join.SettleClaimsJoinMapper; import com.doumee.dao.business.join.SettleClaimsLogJoinMapper; @@ -20,6 +22,10 @@ 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.InsuranceDataVO; +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; @@ -49,6 +55,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.nio.charset.Charset; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -62,6 +69,8 @@ @Autowired private SettleClaimsMapper settleClaimsMapper; + @Autowired + private MemberMapper memberMapper; @Autowired private SettleClaimsExtMapper settleClaimsExtMapper; @@ -94,6 +103,18 @@ @Autowired private ApplyDetailMapper applyDetailMapper; + @Autowired + private AreasMapper areasMapper; + + + @Autowired + private WorktypeMapper worktypeMapper; + + @Autowired + private InsuranceMapper insuranceMapper; + + @Autowired + private ApplyDetailJoinMapper applyDetailJoinMapper; /** * 鍒犻櫎闄勪欢 * @return @@ -378,70 +399,164 @@ 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) || Objects.isNull(settleClaims.getExtData()) + || Objects.isNull(settleClaims.getExtData().getBxName()) || Objects.isNull(settleClaims.getExtData().getMemberName()) || Objects.isNull(settleClaims.getExtData().getMemberIdcardType()) - || Objects.isNull(settleClaims.getExtData().getMemberIdcard())){ + || Objects.isNull(settleClaims.getExtData().getMemberIdcard()) + || Objects.isNull(settleClaims.getStatus()) + ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO) - &&( Objects.isNull(settleClaims.getExtData().getBxName()) - || Objects.isNull(settleClaims.getExtData().getBxCode()) - || Objects.isNull(settleClaims.getExtData().getBxEnddate()) - || Objects.isNull(settleClaims.getExtData().getBxOrg()) - || Objects.isNull(settleClaims.getInformantPhone()) )){ - throw new BusinessException(ResponseStatus.BAD_REQUEST); - } +// if(!Constants.equalsObject(settleClaims.getStatus(),Constants.ZERO) +// &&( Objects.isNull(settleClaims.getExtData().getReportDate()) +// || Objects.isNull(settleClaims.getExtData().getBxCode()) +// || Objects.isNull(settleClaims.getExtData().getBxEnddate()) +// || Objects.isNull(settleClaims.getExtData().getBxOrg()) +// || Objects.isNull(settleClaims.getInformantPhone()) )){ +// throw new BusinessException(ResponseStatus.BAD_REQUEST); +// } if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){ 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 +587,7 @@ )>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!"); } + settleClaims.setCreateDate(new Date()); settleClaims.setIsdeleted(Constants.ZERO); settleClaims.setCompanyId(loginUserInfo.getCompanyId()); @@ -500,9 +616,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 +753,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 +801,225 @@ }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); + } + dealNoticeOldDataBiz(settleClaims);//澶勭悊寰呭姙鑴忔暟鎹� + return settleClaims; + } + + private void dealNoticeOldDataBiz(SettleClaims settleClaims) { + if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey()) + ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN.getKey()) + ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey()) + ||Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey())){ + deletedNoticeBiz(null,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 +1072,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 +1104,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,10 +1145,10 @@ - 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()); + settleClaimsLog.setCreateDate(Objects.isNull(settleClaims.getEditDate())?new Date():settleClaims.getEditDate()); settleClaimsLog.setCreator(loginUserInfo.getId()); settleClaimsLog.setIsdeleted(Constants.ZERO); settleClaimsLog.setSettleClainmsId(settleClaims.getId()); @@ -817,12 +1156,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 +1228,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 +1247,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 +1281,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().getExtData().getMemberName()),SettleClaimsExt::getMemberName, pageWrap.getModel().getExtData().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 +1340,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 +1348,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); } @@ -1058,31 +1366,69 @@ ||Objects.isNull(settleClaimsDTO.getMedicalInsurance()) ||StringUtils.isBlank(settleClaimsDTO.getInformantName()) ||StringUtils.isBlank(settleClaimsDTO.getInformantPhone()) - ||StringUtils.isBlank(settleClaimsDTO.getReceiveUserName()) - ||StringUtils.isBlank(settleClaimsDTO.getReceiveBank()) - ||StringUtils.isBlank(settleClaimsDTO.getReceiveAccount()) +// ||StringUtils.isBlank(settleClaimsDTO.getReceiveUserName()) +// ||StringUtils.isBlank(settleClaimsDTO.getReceiveBank()) +// ||StringUtils.isBlank(settleClaimsDTO.getReceiveAccount()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } } + InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaimsDTO.getInsuranceApplyId()); + if(Objects.isNull(insuranceApply)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + ApplyDetail applyDetail = applyDetailMapper.selectById(settleClaimsDTO.getApplyDetailId()); + if(Objects.isNull(applyDetail)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + Member member =memberMapper.selectById(settleClaimsDTO.getMemberId()); + if(member == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍑洪櫓浜轰俊鎭笉姝g‘锛�"); + } + if(!(Constants.equalsInteger(insuranceApply.getId(),applyDetail.getApplyId())||Constants.equalsInteger(applyDetail.getMemberId(),member.getId()))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"淇℃伅鍖归厤閿欒"); + } SettleClaims settleClaims = new SettleClaims(); BeanUtils.copyProperties(settleClaimsDTO,settleClaims); + settleClaims.setEditDate(new Date()); settleClaims.setReportNumStatus(Constants.ZERO); + settleClaims.setCompanyId(loginUserInfo.getCompanyId()); + settleClaims.setOrigin(Constants.ZERO); + settleClaims.setMemberName(member.getName()); + settleClaims.setCreateDate(new Date()); + settleClaims.setMemberAge( + Constants.calculateAge(member.getIdcardNo(),DateUtil.StringToDate(settleClaims.getHappenTime())) + ); + 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 model = settleClaimsMapper.selectById(settleClaims.getId()); + if(Objects.isNull(model)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()) + ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()) + ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey()))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛屼慨鏀�"); + } settleClaims.setEditDate(new Date()); settleClaims.setEditor(loginUserInfo.getId()); 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)){ + if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&& + Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){ //澶勭悊椋庨櫓淇℃伅 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,12 +1440,38 @@ 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); + } + } + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()) || + Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){ + //-濡傛灉鏄緟绔嬫鎴栬�呭凡绔嬫寰呭鏍革紝缁欏钩鍙扮鍙戝緟鍔為�氱煡------------- + sendNoticeBiz(Constants.ZERO,settleClaims,Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())?Constants.NoticeType.ZERO:Constants.NoticeType.TWO); + } + return settleClaims.getId(); + } - //璁板綍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null); + private String getNoticeConttent(SettleClaims settleClaims) { + if(StringUtils.isBlank(settleClaims.getMemberName()) && settleClaims.getMemberId()!=null){ + Member member = memberMapper.selectById(settleClaims.getMemberId()); + if(member!=null){ + settleClaims.setMemberName(member.getName()); + } + } + return "鎶ユ鍙凤細"+StringUtils.defaultString(settleClaims.getCode(),"")+" 鍑洪櫓浜猴細"+StringUtils.defaultString(settleClaims.getMemberName(),""); } public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){ + settleClaims.setRiskDelayUnit(Constants.ZERO); + settleClaims.setRiskUnTakeEffect(Constants.ZERO); + settleClaims.setRiskNewUser(Constants.ZERO); + settleClaims.setRiskTimesCx(Constants.ZERO); + settleClaims.setRiskTimesSp(Constants.ZERO); + settleClaims.setRiskRepeat(Constants.ZERO); //鏍规嵁淇濆崟淇℃伅 鏌ヨ鍑轰富鏂规 InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaims.getInsuranceApplyId()); if(Objects.isNull(insuranceApply)){ @@ -1107,7 +1479,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,11 +1491,14 @@ } 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()) && Objects.nonNull(solutionsBase.getRiskNewUserTime()) + && happenTime.getTime() < applyDetail.getStartTime().getTime() ){ if(happenTime.getTime() > applyDetail.getEndTime().getTime()){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�"); @@ -1140,10 +1515,12 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�"); } } + if(happenTime.getTime() < startDate.getTime() ){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�"); }else{ map.put("info","浜嬫晠鍙戠敓鏃堕棿鏃╀簬淇濆崟鐢熸晥鏃堕棿"+solutionsBase.getRiskNewUserUnit()+(Constants.equalsInteger(solutionsBase.getRiskNewUserUnit(),Constants.ONE)?"灏忔椂鍐�":"澶╁唴")); + settleClaims.setRiskUnTakeEffect(Constants.ONE); riskList.add(map); } }else{ @@ -1159,18 +1536,21 @@ //鏍规嵁閰嶇疆 鏌ヨ 寤惰繜鎶ユ鎻愰啋鏃堕棿鍗曚綅 0鍒嗛挓 1灏忔椂 2澶� if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ZERO)){ if(DateUtil.getBetweenMin(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ - map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"鍒嗛挓"); + map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"鍒嗛挓"); + settleClaims.setRiskDelayUnit(Constants.ONE); riskList.add(map); } }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ONE)){ if(DateUtil.getBetweenHours(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ - map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"灏忔椂"); + map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"灏忔椂"); riskList.add(map); + settleClaims.setRiskDelayUnit(Constants.ONE); } }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){ if(DateUtil.getBetweenDay(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ - map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"澶�"); + map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayTime()+"澶�"); riskList.add(map); + settleClaims.setRiskDelayUnit(Constants.ONE); } } } @@ -1180,12 +1560,12 @@ //澶氭鍑洪櫓鎻愰啋 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) ") ); - if(cxcs>Integer.valueOf(riskConfigVO.getRiskTimesReportTimes())){ + if(cxcs>=Integer.valueOf(riskConfigVO.getRiskTimesReportTimes())){ Map<String,String> map = new HashMap<>(); map.put("title","鐤戜技澶氭鍑洪櫓"); map.put("info","鍑洪櫓浜轰竴骞村唴宸插嚭闄�"+cxcs+"娆�"); @@ -1198,13 +1578,13 @@ && 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) ") - .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY) ") + .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," CREATE_DATE > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR) ") + .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," CREATE_DATE > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY) ") ); - if(cxcs > Constants.TWO){ + if(cxcs >= Constants.ONE){ Map<String,String> map = new HashMap<>(); map.put("title","鐤戜技閲嶅鎶ユ"); map.put("info","璇ュ嚭闄╀汉鍦�"+riskConfigVO.getRiskRepeatReportTime()+(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")?"灏忔椂":"澶�")+"鍐呭凡鎶ユ"+cxcs+"娆�"); @@ -1218,10 +1598,11 @@ 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()) + .eq(SettleClaims::getIsdeleted,Constants.ZERO) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) - .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") + .apply(" CREATE_DATE > DATE_SUB(now(), INTERVAL 365 DAY) ") ); if(cxcs > Integer.valueOf(riskConfigVO.getRiskClaimTimes())){ Map<String,String> map = new HashMap<>(); @@ -1236,7 +1617,7 @@ if(StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWordsOpen()) && StringUtils.equals(riskConfigVO.getRiskSensitiveWordsOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWords())){ - String [] words = riskConfigVO.getRiskSensitiveWords().split(","); + String [] words = riskConfigVO.getRiskSensitiveWords().split(";"); String sensitiveWord = ""; for (String word:words) { if(settleClaims.getContent().indexOf(word)>=Constants.ZERO){ @@ -1309,6 +1690,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 +1703,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 +1724,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 +1745,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 +1766,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 +1787,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 +1804,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){ @@ -1461,10 +1868,17 @@ if(Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰呬紒涓氳ˉ鍏呮枃浠讹紝璇风瓑寰呬紒涓氳ˉ鍏呮枃浠�"); } + settleClaims.setEditDate(new Date()); //瀛樺偍鏃ュ織 - 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)); + + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //濡傛灉鍙戣捣浠e姙,閫氱煡浼佷笟 + sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.THREE); } @Override @@ -1505,6 +1919,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 +1938,18 @@ 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); } } + settleClaims.setEditDate(new Date()); //瀛樺偍鏃ュ織 - this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null); + this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null,null); + //鍒犻櫎浼佷笟鐨勪唬鍔為�氱煡------ + deletedNoticeBiz(null,settleClaims ); + sendNoticeBiz(Constants.ZERO,settleClaims,Constants.NoticeType.TWO); + } @@ -1556,13 +1976,15 @@ 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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); - } + settleClaims.setEditDate(new Date()); //瀛樺偍鏃ュ織 - 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())); + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,settleClaims.getEditDate()) + .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.RETURN.getKey())); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欎紒涓氬彂閫氱煡锛屽凡缁撴------------- + sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.FOURTEEN); } @@ -1584,13 +2006,17 @@ 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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } + settleClaims.setEditDate(new Date()); //瀛樺偍鏃ュ織 - 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,settleClaims.getEditDate()) .set(SettleClaims::getEditor,loginUserInfo.getId()) .set(SettleClaims::getCaseType,dto.getCaseType())); } @@ -1622,10 +2048,22 @@ 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()); + settleClaims.setEditDate(new Date()); + 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, settleClaims.getEditDate()) + .set(SettleClaims::getEditor,loginUserInfo.getId()) + .set(SettleClaims::getStatus,settleClaimsStatus.getKey())); + + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + if( Constants.equalsInteger(settleClaimsStatus.getKey(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey()) ){ + //濡傛灉鏄鏍搁�氳繃宸茬珛妗堝緟瀹℃牳锛岀粰骞冲彴鍙戝緟鍙楃悊寰呭姙閫氱煡------------- + sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWO); + }else{ + //濡傛灉鏄鏍镐笉閫氳繃锛岄��鍥炵珛妗� 锛岀粰浼佷笟鍙戦�氱煡------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.ONE); + } } @@ -1653,8 +2091,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(),"浠呭彲淇敼涓�娆℃姤妗堝彿"); } @@ -1669,12 +2116,14 @@ // if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){ // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀规姤妗堝彿锛屾棤娉曞啀娆′慨鏀�"); // } - settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,param.getId()).set(SettleClaims::getEditDate, - DateUtil.getCurrDateTime()).set(SettleClaims::getReportNum,param.getReportNum())); SettleClaims update = new SettleClaims(); update.setEditDate(new Date()); + + settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() + .eq(SettleClaims::getId,param.getId()).set(SettleClaims::getEditDate, + update.getEditDate()).set(SettleClaims::getReportNum,param.getReportNum())); + update.setEditor(user.getId()); update.setReportNumStatus(model.getReportNumStatus()+Constants.ONE); update.setId(model.getId()); @@ -1688,6 +2137,7 @@ String info =applyLogType.getInfo(); info = info.replace("${param}", update.getReportNum()); SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update)); + log.setCreateDate(update.getEditDate()); settleClaimsLogMapper.insert(log); return 1; @@ -1731,6 +2181,7 @@ String info =applyLogType.getInfo(); info = info.replace("${param}", param.getDescribe()); SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update)); + log.setCreateDate(update.getEditDate()); settleClaimsLogMapper.insert(log); return 1; @@ -1761,39 +2212,81 @@ 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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } + settleClaims.setEditDate(new Date()); if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){ //鍙楃悊 settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId()) + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,settleClaims.getEditDate()).set(SettleClaims::getEditor,loginUserInfo.getId()) .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.ACCEPTANCE.getKey())); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS, - dto.getDescribe()); + Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?dto.getDescribe():(dto.getDescribe() + " 闂绫诲瀷锛�"+dto.getSyProblemOpts()) + ,Constants.SettleClaimsStatus.ACCEPTANCE); }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){ //鎷掔粷鍙楃悊 settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() - .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId()) + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,settleClaims.getEditDate()).set(SettleClaims::getEditor,loginUserInfo.getId()) .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey())); //瀛樺偍鏃ュ織 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())); + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,settleClaims.getEditDate()).set(SettleClaims::getEditor,loginUserInfo.getId()) + .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())); //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, - dto.getDescribe()); + dto.getDescribe() + " 闂绫诲瀷锛�"+dto.getSyProblemOpts(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT); + } + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){ + //-濡傛灉鏄鎵归�氳繃锛屾垚涓哄凡鍙楃悊锛岀粰骞冲彴绔彂浠g悊绠楀緟鍔為�氱煡------------- + sendNoticeBiz(Constants.ZERO,settleClaims , Constants.NoticeType.EIGHT ); + sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.FIFTEEN); + }else if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){ + //濡傛灉鍙戣捣鍟嗚瀹℃壒锛岄�氱煡骞冲彴 + sendNoticeBiz(Constants.ZERO, settleClaims , Constants.NoticeType.FIVE ); + sendNoticeBiz(Constants.ONE,settleClaims,Constants.NoticeType.SIXTEEN); + }else{ + //濡傛灉鏄彈鐞嗘嫆缁�,閫氱煡浼佷笟 + sendNoticeBiz(Constants.ONE, settleClaims,Constants.NoticeType.SEVEN); } } + private void sendNoticeBiz(int plat, SettleClaims settleClaims, Constants.NoticeType noticeType) { + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + Notices notices = new Notices(noticeObjectType + ,plat + ,settleClaims.getId() + ,getNoticeConttent(settleClaims) + ,settleClaims.getCompanyId() + ,noticeType); + noticesMapper.insert(notices); + } + private void deletedNoticeBiz(Integer plat, SettleClaims settleClaim ) { + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS; + noticesMapper.delete(new QueryWrapper<Notices>().lambda() + .eq(plat!=null,Notices::getPalt,plat) + .eq(Notices::getObjType,noticeObjectType.getKey()) + .eq(Notices::getObjId,settleClaim.getId()) + .notIn(Notices::getType,Constants.NoticeType.ONE.getStatus(), + Constants.NoticeType.FOUR.getStatus(), + Constants.NoticeType.SEVEN.getStatus(), + Constants.NoticeType.FOURTEEN.getStatus(), + Constants.NoticeType.FIFTEEN.getStatus(), + Constants.NoticeType.SIXTEEN.getStatus(), + Constants.NoticeType.SEVENTEEN.getStatus(), + Constants.NoticeType.THIRTEEN.getStatus(), + Constants.NoticeType.EIGHTEEN.getStatus()))//1, 3, 4, 7,13, 14, 15, 16, 17, 18 + ; + } @Override public List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO){ @@ -1851,31 +2344,36 @@ 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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class); - + settleClaims.setEditDate(new Date()); 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()); settleClaimsMapper.updateById(update); - //瀛樺偍鏃ュ織 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); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欏钩鍙板彂寰呮牳璧斿緟鍔為�氱煡------------- + sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.NINE); + //缁欎紒涓氬彂閫氬凡鐞嗙畻------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.SEVENTEEN); +} /** @@ -1909,12 +2407,21 @@ //瀛樺偍鏃ュ織 Constants.SettleClaimsLogType settleClaimsLogType = Constants.equalsInteger(dto.getStatus(),Constants.ZERO) ?Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS:Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE; + settleClaims.setEditDate(new Date()); 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()) + .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, settleClaims.getEditDate()) .set(SettleClaims::getEditor,loginUserInfo.getId()) .set(SettleClaims::getStatus,settleClaimsStatus.getKey())); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + if( Constants.equalsInteger(settleClaimsStatus.getKey(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) ){ + //濡傛灉鏄鏍搁�氳繃宸茬珛妗堝緟瀹℃牳锛岀粰骞冲彴鍙戝緟鍙楃悊寰呭姙閫氱煡------------- + sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWO); + }else{ + //濡傛灉鏄鏍镐笉閫氳繃锛岄��鍥炵珛妗� 锛岀粰浼佷笟鍙戦�氱煡------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.ONE); + } } @@ -1945,12 +2452,13 @@ List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class); - + settleClaims.setEditDate(new Date()); SettleClaims update = new SettleClaims(); - update.setEditDate(new Date()); + update.setEditDate(settleClaims.getEditDate()); 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 +2466,10 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_HP_DEAL, - Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo()); + Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欎紒涓氬彂閫氬凡鏍歌禂寰呯‘璁ら噾棰濓紝鍙戜唬鍔�------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.TEN); } @@ -1986,9 +2497,9 @@ } List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class); - + settleClaims.setEditDate(new Date()); SettleClaims update = new SettleClaims(); - update.setEditDate(new Date()); + update.setEditDate(settleClaims.getEditDate()); update.setEditor(loginUserInfo.getId()); if(Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus())){ update.setFeeUpdate(Constants.ONE); @@ -1997,30 +2508,36 @@ 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); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欎紒涓氬彂閫氶噾棰濆彉鏇撮�氱煡------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.EIGHTEEN); } @@ -2028,27 +2545,32 @@ @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.setEditDate(new Date()); SettleClaims update = new SettleClaims(); - update.setEditDate(new Date()); + update.setEditDate(settleClaims.getEditDate()); 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); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欏钩鍙板彂寰呭姙锛屽凡纭閲戦锛屽彂寰呯粨妗堜唬鍔�------------- + sendNoticeBiz(Constants.ZERO,settleClaims ,Constants.NoticeType.TWELVE); } @@ -2072,10 +2594,14 @@ if(!Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } + settleClaims.setEditDate(new Date()); SettleClaims update = new SettleClaims(); - update.setEditDate(new Date()); + update.setEditDate(settleClaims.getEditDate()); 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 +2632,742 @@ //瀛樺偍鏃ュ織 this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.PLATFORM_FINISH, - dto.getDescribe()); + dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE); + deletedNoticeBiz(null,settleClaims);//鍒犻櫎閫氱煡 + //缁欎紒涓氬彂閫氱煡锛屽凡缁撴------------- + sendNoticeBiz(Constants.ONE,settleClaims ,Constants.NoticeType.THIRTEEN); } + 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.CONFIRM_FEE.getKey(),settleClaims.getStatus()) + || Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus()) + || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.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.setEditDate(new Date()); + SettleClaims update = new SettleClaims(); + update.setEditDate(settleClaims.getEditDate()); + 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.setEditDate(new Date()); + SettleClaims update = new SettleClaims(); + update.setEditDate(settleClaims.getEditDate()); + 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()).size()+"" + ); + + 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); + if(Objects.isNull(sumHours)||CollectionUtils.isEmpty(closeCaseMonthList) + || Constants.equalsInteger(sumHours,Constants.ZERO)){ + averageSettleClaims.setDataSecond("0"); + }else{ + averageSettleClaims.setDataSecond( + new BigDecimal(sumHours.toString()).divide(new BigDecimal((closeCaseMonthList.size()*24)+""),2,BigDecimal.ROUND_HALF_UP).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()); + + //骞冲潎鐞嗚禂澶勭悊鏃堕暱澶╂暟 鎬昏澶勭悊鏃堕暱锛堝崟浣嶅皬鏃讹級闄や互 璁板綍鏁� 鎹㈢畻鍒板ぉ + if(CollectionUtils.isNotEmpty(closeCaseList)){ + 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) + ); + } + + + String monthDate = DateUtil.getFomartDate(new Date(),"yyyy-MM"); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + String lastMonth = sdf.format(calendar.getTime()); + + //椋庨櫓妗堜欢鍗犳瘮鏁版嵁 + settleClaimsDataVO.setRiskTimesCxTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskTimesCx(),Constants.ONE)) + .collect(Collectors.toList()).size()); + Integer lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskTimesCx(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskTimesCxRata(this.jsRata(settleClaimsDataVO.getRiskTimesCxTotal(),lastMonthTotal)); + + settleClaimsDataVO.setRiskRepeatTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskRepeat(),Constants.ONE)) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskRepeat(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskRepeatRata(this.jsRata(settleClaimsDataVO.getRiskRepeatTotal(),lastMonthTotal)); + + settleClaimsDataVO.setRiskTimesSpTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskTimesSp(),Constants.ONE)) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskTimesSp(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskTimesSpRata(this.jsRata(settleClaimsDataVO.getRiskTimesSpTotal(),lastMonthTotal)); + + settleClaimsDataVO.setRiskNewUserTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskNewUser(),Constants.ONE)) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskNewUser(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskNewUserRata(this.jsRata(settleClaimsDataVO.getRiskNewUserTotal(),lastMonthTotal)); + + settleClaimsDataVO.setRiskSensitiveTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&StringUtils.isNotBlank(i.getRiskSensitive())) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&StringUtils.isNotBlank(i.getRiskSensitive())) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskSensitiveRata(this.jsRata(settleClaimsDataVO.getRiskSensitiveTotal(),lastMonthTotal)); + + settleClaimsDataVO.setRiskDelayUnitTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskDelayUnit(),Constants.ONE)) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskDelayUnit(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskDelayUnitRata(this.jsRata(settleClaimsDataVO.getRiskDelayUnitTotal(),lastMonthTotal)); + + + settleClaimsDataVO.setRiskUnTakeEffectTotal(settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(monthDate) + &&Constants.equalsInteger(i.getRiskUnTakeEffect(),Constants.ONE)) + .collect(Collectors.toList()).size()); + lastMonthTotal = settleClaimsList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM").equals(lastMonth) + &&Constants.equalsInteger(i.getRiskUnTakeEffect(),Constants.ONE)) + .collect(Collectors.toList()).size(); + settleClaimsDataVO.setRiskUnTakeEffectRata(this.jsRata(settleClaimsDataVO.getRiskUnTakeEffectTotal(),lastMonthTotal)); + + //椋庨櫓鏁忔劅璇嶆姤琛� + List<String> sensitiveList = settleClaimsList.stream().filter(i->StringUtils.isNotBlank(i.getRiskSensitive())).map(i->i.getRiskSensitive()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(sensitiveList)){ + List<String> allSensitiveStrList = new ArrayList<>(); + for (String string:sensitiveList) { + allSensitiveStrList.addAll(Arrays.asList(string.split(","))); + } + Set<String> sensitiveSetList = new HashSet<>(allSensitiveStrList); + List<DataListVO> sensitiveDataList = new ArrayList<>(); + for (String string:sensitiveSetList) { + DataListVO dataListVO = new DataListVO(); + dataListVO.setDataFirst(string); + dataListVO.setDataSecond(allSensitiveStrList.stream().filter(i->i.equals(string)).collect(Collectors.toList()).size()+""); + sensitiveDataList.add(dataListVO); + } + settleClaimsDataVO.setSensitiveDataList(sensitiveDataList); + } + + //鍖哄煙妗堜欢绫诲瀷鍒嗗竷 + this.getAreaDistribution(settleClaimsDataVO, + settleClaimsList.stream().filter(i->StringUtils.isNotBlank(i.getAreaId())).collect(Collectors.toList())); + + //鍚勭被鍨嬫浠跺垎甯� + this.getCaseType(settleClaimsDataVO, + settleClaimsList.stream().filter(i->Objects.nonNull(i.getCaseType())).collect(Collectors.toList())); + + //鎸夋湀缁熻妗堜欢閲戦 + this.getSettleTotalMoneyData(settleClaimsDataVO, + settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList())); + + //缁撴鐜� + this.getCloseRata(settleClaimsDataVO, + settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList())); + + //骞撮緞鍒嗗竷 + this.getMemberAgeDataList(settleClaimsDataVO, + settleClaimsList.stream().filter(i->Objects.nonNull(i.getMemberAge())).collect(Collectors.toList())); + + //宸ョ鏁版嵁鍒嗗竷 + this.getWorkTypeDate(settleClaimsDataVO, + settleClaimsList.stream().filter(i->Objects.nonNull(i.getWorktypeId())).collect(Collectors.toList())); + } + return settleClaimsDataVO; + } + + public BigDecimal jsRata(Integer a,Integer b){ + if(Objects.isNull(a)||Objects.isNull(b)||Constants.equalsInteger(a,Constants.ZERO)||Constants.equalsInteger(b,Constants.ZERO)){ + return BigDecimal.ZERO; + } + return new BigDecimal(a.toString()).divide(new BigDecimal(b.toString()),2,BigDecimal.ROUND_HALF_UP).subtract(BigDecimal.ONE); + } + + + + public void getAreaDistribution(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<Areas> areasList = areasMapper.selectList(new QueryWrapper<Areas>().lambda().isNull(Areas::getParentId).orderByAsc(Areas::getId)); + List<DataListVO> areaDataList = new ArrayList<>(); + for (Areas areas:areasList) { + DataListVO dataListVO = new DataListVO(); + dataListVO.setDataFirst(areas.getName()); + dataListVO.setDataSecond( + settleClaimsList.stream().filter(i->i.getAreaId().indexOf(areas.getCode())>=Constants.ZERO).collect(Collectors.toList()).size()+"" + ); + dataListVO.setDataThird(areas.getCode()); + areaDataList.add(dataListVO); + } + settleClaimsDataVO.setAreaDataList(areaDataList); + } + + + public void getCaseType(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> caseTypeDataList = new ArrayList<>(); + //1=鍖荤枟锛�2=浼ゆ畫锛�3=姝讳骸 + for (int i = 1; i <= 3; i++) { + int finalI = i; + DataListVO dataListVO = new DataListVO(); + if(finalI==1){ + dataListVO.setDataFirst("鍖荤枟"); + }else{ + dataListVO.setDataFirst(Constants.equalsInteger(finalI,Constants.TWO)?"浼ゆ畫":"姝讳骸"); + } + dataListVO.setDataSecond(settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getCaseType())&&Constants.equalsInteger(j.getCaseType(), finalI)).collect(Collectors.toList()).size()+""); + caseTypeDataList.add(dataListVO); + } + settleClaimsDataVO.setCaseTypeDataList(caseTypeDataList); + } + + + public void getSettleTotalMoneyData(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> monthTotalMoneyDataList = new ArrayList<>(); + for (int i = -11; i <= 0 ; i++) { + String month = DateUtil.DateToStr( + DateUtil.afterDateByType(new Date(),1,i),"yyyy-MM"); + DataListVO dataListVO = new DataListVO(); + dataListVO.setDataFirst(month); + BigDecimal hpAccount = settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(month)) + .map(j->j.getHpAccount().add(j.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add); + dataListVO.setDataSecond(hpAccount.compareTo(BigDecimal.ZERO)>Constants.ZERO? + hpAccount.divide(new BigDecimal("10000"),2,BigDecimal.ROUND_HALF_UP).toString():"0" + ); + monthTotalMoneyDataList.add(dataListVO); + } + settleClaimsDataVO.setMonthTotalMoneyDataList(monthTotalMoneyDataList); + } + + + + public void getCloseRata(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> closeRataDataList = new ArrayList<>(); + for (int i = -5; i <= 0 ; i++) { + String month = DateUtil.DateToStr( + DateUtil.afterDateByType(new Date(),1,i),"yyyy-MM"); + DataListVO dataListVO = new DataListVO(); + dataListVO.setDataFirst(month); + List<SettleClaims> monthList = settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(month)).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(monthList)){ + List<SettleClaims> closeCaseList = monthList.stream().filter(j->Constants.equalsInteger(j.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(closeCaseList)){ + dataListVO.setDataSecond("0"); + }else{ + dataListVO.setDataSecond(new BigDecimal(closeCaseList.size()+"").divide(new BigDecimal(monthList.size()+""),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); + } + }else{ + dataListVO.setDataSecond("0"); + } + closeRataDataList.add(dataListVO); + } + settleClaimsDataVO.setCloseRataDataList(closeRataDataList); + } + + + public void getType(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> typeDataList = new ArrayList<>(); + //0宸ヤ綔鏈熼棿鍙椾激 1涓婁笅鐝�斾腑鍙椾激 2闈炲伐浣滄椂闂村彈浼� 3鎰忓鍙椾激 + for (int i = 0; i <= 3; i++) { + int finalI = i; + DataListVO dataListVO = new DataListVO(); + if(finalI==0){ + dataListVO.setDataFirst("宸ヤ綔鏈熼棿鍙椾激"); + }else if(finalI==1){ + dataListVO.setDataFirst("涓婁笅鐝�斾腑鍙椾激"); + }else{ + dataListVO.setDataFirst(Constants.equalsInteger(finalI,Constants.TWO)?"闈炲伐浣滄椂闂村彈浼�":"鎰忓鍙椾激"); + } + dataListVO.setDataSecond(settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getType())&&Constants.equalsInteger(j.getCaseType(), finalI)).collect(Collectors.toList()).size()+""); + typeDataList.add(dataListVO); + } + settleClaimsDataVO.setTypeDataList(typeDataList); + } + + + public void getMemberAgeDataList(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> memberAgeDataList = new ArrayList<>(); + + DataListVO dataListVOa = new DataListVO(); + dataListVOa.setDataFirst("18-25"); + dataListVOa.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + (j.getMemberAge() >= 18 || j.getMemberAge() <= 25)) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOa); + + + DataListVO dataListVOb = new DataListVO(); + dataListVOb.setDataFirst("26-35"); + dataListVOb.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + (j.getMemberAge() >= 26 || j.getMemberAge() <= 35)) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOb); + + DataListVO dataListVOc = new DataListVO(); + dataListVOc.setDataFirst("36-45"); + dataListVOc.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + (j.getMemberAge() >= 36 || j.getMemberAge() <= 45)) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOc); + + DataListVO dataListVOd = new DataListVO(); + dataListVOd.setDataFirst("46-55"); + dataListVOd.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + (j.getMemberAge() >= 46 || j.getMemberAge() <= 55)) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOd); + + DataListVO dataListVOe = new DataListVO(); + dataListVOe.setDataFirst("56-65"); + dataListVOe.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + (j.getMemberAge() >= 56 || j.getMemberAge() <= 65)) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOe); + + + DataListVO dataListVOf = new DataListVO(); + dataListVOf.setDataFirst("65+"); + dataListVOf.setDataSecond( + settleClaimsList.stream() + .filter(j->Objects.nonNull(j.getMemberAge())&& + j.getMemberAge() >= 66 ) + .collect(Collectors.toList()).size()+"" + ); + memberAgeDataList.add(dataListVOf); + settleClaimsDataVO.setMemberAgeDataList(memberAgeDataList); + } + + + + public void getWorkTypeDate(SettleClaimsDataVO settleClaimsDataVO, List<SettleClaims> settleClaimsList){ + List<DataListVO> workTypeDataList = new ArrayList<>(); + if(CollectionUtils.isEmpty(settleClaimsList)){ + return ; + } + List<Integer> workTypeIdList = settleClaimsList.stream().map(i->i.getWorktypeId()).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(workTypeIdList)){ + return ; + } + Set<Integer> setWorkType = new HashSet<>(workTypeIdList); + List<Worktype> workTypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda().eq(Worktype::getIsdeleted,Constants.ZERO).in(Worktype::getId,setWorkType)); + if(CollectionUtils.isEmpty(workTypeList)){ + return ; + } + for (Worktype worktype:workTypeList) { + DataListVO dataListVO = new DataListVO(); + dataListVO.setDataFirst(worktype.getName()); + dataListVO.setDataSecond( + settleClaimsList.stream().filter(i->Constants.equalsInteger(i.getWorktypeId(),worktype.getId())).collect(Collectors.toList()).size()+""); + workTypeDataList.add(dataListVO); + } + workTypeDataList = workTypeDataList.stream().sorted(Comparator.comparing(DataListVO::getDataSecond).reversed()).collect(Collectors.toList()); + settleClaimsDataVO.setWorkTypeDataList(workTypeDataList); + } + + + + @Override + public InsuranceDataVO getInsuranceDataVO(){ + InsuranceDataVO insuranceDataVO = new InsuranceDataVO(); + insuranceDataVO.setInsuranceTotal(Constants.ZERO); + insuranceDataVO.setInsuranceAddTotal(Constants.ZERO); + insuranceDataVO.setInsuranceApplyTotal(Constants.ZERO); + insuranceDataVO.setInsuranceApplyAddTotal(Constants.ZERO); + insuranceDataVO.setInsuranceUserTotal(Constants.ZERO); + insuranceDataVO.setInsuranceUserAddTotal(Constants.ZERO); + insuranceDataVO.setTotalAddFee(BigDecimal.ZERO); + insuranceDataVO.setTotalFee(BigDecimal.ZERO); + //鏈湀鏃ユ湡 + String monthData = DateUtil.DateToStr(new Date(),"yyyy-MM"); + //淇濋櫓鍏徃鏁伴噺 + List<Insurance> insuranceList = insuranceMapper.selectList(new QueryWrapper<Insurance>().lambda().eq(Insurance::getIsdeleted,Constants.ZERO).eq(Insurance::getStatus,Constants.ZERO)); + if(CollectionUtils.isNotEmpty(insuranceList)){ + insuranceDataVO.setInsuranceTotal(insuranceList.size()); + insuranceDataVO.setInsuranceAddTotal(insuranceList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size()); + } + + //淇濆崟鏁伴噺 + List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>() + .lambda().eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus, + Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) + ); + if(CollectionUtils.isNotEmpty(insuranceApplyList)){ + insuranceDataVO.setInsuranceApplyTotal(insuranceApplyList.size()); + insuranceDataVO.setInsuranceApplyAddTotal(insuranceApplyList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size()); + } + + //鍦ㄤ繚浜烘暟 + List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>().selectAll(ApplyDetail.class) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) + .eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus, + Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) + .eq(ApplyDetail::getIsdeleted,Constants.ZERO) + .apply(" ( t.START_TIME >= now() and t.END_TIME <= now() ) ") + ); + if(CollectionUtils.isNotEmpty(applyDetailList)){ + insuranceDataVO.setInsuranceUserTotal(applyDetailList.size()); + insuranceDataVO.setInsuranceUserAddTotal( + applyDetailList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM") + .equals(monthData)).collect(Collectors.toList()).size()); + + insuranceDataVO.setTotalFee(applyDetailList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + insuranceDataVO.setTotalAddFee(applyDetailList.stream() + .filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM") + .equals(monthData)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + } + + return insuranceDataVO; + } + -- Gitblit v1.9.3