From e23a5de92a6a4a478aa755e45238ee009af751ec Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 21 五月 2025 10:41:52 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 400 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 342 insertions(+), 58 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 c283ea8..312901d 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; @@ -19,6 +20,8 @@ import com.doumee.dao.business.model.*; 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.system.model.SystemUser; import com.doumee.service.business.SettleClaimsLogService; import com.doumee.service.business.SettleClaimsService; @@ -61,6 +64,8 @@ @Autowired private SettleClaimsMapper settleClaimsMapper; + @Autowired + private SettleClaimsExtMapper settleClaimsExtMapper; @Autowired private SettleClaimsLogMapper settleClaimsLogMapper; @@ -375,6 +380,149 @@ return 1; } + @Override + @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().getMemberName()) + || Objects.isNull(settleClaims.getExtData().getMemberIdcardType()) + || Objects.isNull(settleClaims.getExtData().getMemberIdcard())){ + 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.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙扮鐞嗗憳鏃犳硶杩涜璇ユ搷浣�"); + } + Date date =new Date(); + settleClaims.setEditDate(date); + 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.ZERO) + .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())); + 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> 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)); + if(CollectionUtils.isNotEmpty(insetList)){ + multifileJoinMapper.insert(insetList); + } + //--------------澶勭悊闄勪欢缁撴潫---------------- + } + + 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.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) { @@ -573,6 +721,8 @@ 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())); } //鏌ヨ鎿嶄綔璁板綍 @@ -614,6 +764,12 @@ 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"))); } return settleClaims; } @@ -1002,6 +1158,7 @@ SettleClaims settleClaims = new SettleClaims(); BeanUtils.copyProperties(settleClaimsDTO,settleClaims); settleClaims.setReportNumStatus(Constants.ZERO); + settleClaims.setOrigin(Constants.ZERO); if(Objects.nonNull(settleClaims.getId())){ settleClaims.setEditDate(new Date()); settleClaims.setEditor(loginUserInfo.getId()); @@ -1011,7 +1168,6 @@ //澶勭悊椋庨櫓淇℃伅 this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService); } - settleClaimsMapper.updateById(settleClaims); }else{ settleClaims.setCreateDate(new Date()); @@ -1114,7 +1270,7 @@ //澶氭鍑洪櫓鎻愰啋 if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") @@ -1132,7 +1288,7 @@ && StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit()) && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR) ") @@ -1152,7 +1308,7 @@ if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"") && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){ - Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId()) .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") @@ -1730,11 +1886,23 @@ @Override - public List<CompensationVO> getCompensation(Integer id){ - SettleClaims settleClaims = settleClaimsMapper.selectById(id); + public List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO){ + if(Objects.isNull(compensationFeeDTO) + || Objects.isNull(compensationFeeDTO.getType()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + SettleClaims settleClaims = null; + if(Objects.nonNull(compensationFeeDTO.getId())){ + settleClaims = settleClaimsMapper.selectById(compensationFeeDTO.getId()); + } List<CompensationVO> modelList = new ArrayList<>(); - if (Objects.nonNull(settleClaims)&&StringUtils.isNotBlank(settleClaims.getAccountContent())) { - modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); + if (Objects.nonNull(settleClaims)) { + if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){ + modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); + }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){ + modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class); + } } Constants.compensation [] compensations = Constants.compensation.values(); List<CompensationVO> list = new ArrayList<>(); @@ -1777,17 +1945,17 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } - List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); + List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class); 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()); @@ -1865,18 +2033,17 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); } - List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class); + + List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class); 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.setAccountContent(dto.getCompensationJson()); + update.setHpAccountContent(dto.getCompensationJson()); + update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + + update.setId(settleClaims.getId()); update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey()); settleClaimsMapper.updateById(update); @@ -1925,7 +2092,7 @@ 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.getAccountContent(),CompensationVO.class); + 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()); @@ -1939,7 +2106,6 @@ continue; } } - update.setAccountContent(dto.getCompensationJson()); update.setAccountContent(JSONArray.toJSONString(oldList)); update.setId(settleClaims.getId()); settleClaimsMapper.updateById(update); @@ -1979,41 +2145,159 @@ } -// @Override -// @Transactional(rollbackFor = {BusinessException.class,Exception.class}) -// public void payCash(PayCashDTO dto){ -// if(Objects.isNull(dto) -// || Objects.isNull(dto.getId()) -// || StringUtils.isBlank(dto.getDescribe()) -// ){ -// 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.COMPENSATION.getKey(),settleClaims.getStatus())){ -// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); -// } -// SettleClaims update = new SettleClaims(); -// update.setEditDate(new Date()); -// update.setEditor(loginUserInfo.getId()); -// update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey()); -// update.setId(settleClaims.getId()); -// settleClaimsMapper.updateById(update); + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void payCash(PayCashDTO dto){ + if(Objects.isNull(dto) + || Objects.isNull(dto.getId()) + || StringUtils.isBlank(dto.getDescribe()) + ){ + 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_FEE.getKey(),settleClaims.getStatus())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~"); + } + SettleClaims update = new SettleClaims(); + update.setEditDate(new Date()); + update.setEditor(loginUserInfo.getId()); + update.setStatus(Constants.SettleClaimsStatus.CLOSE_CASE.getKey()); + update.setId(settleClaims.getId()); + settleClaimsMapper.updateById(update); + + if(CollectionUtils.isNotEmpty(dto.getMultifileList())){ + List<Multifile> fileList = dto.getMultifileList(); + if(CollectionUtils.isNotEmpty(fileList)){ + for (int i = 0; i < fileList.size(); i++) { + Multifile multifile = fileList.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.MultiFile.LP_PAY_FILE.getKey()); + multifile.setSortnum(i+1); + multifileJoinMapper.insert(multifile); + } + } + } + + + //瀛樺偍鏃ュ織 + this.saveSettleClaimsLog(settleClaims, + Constants.SettleClaimsLogType.PLATFORM_FINISH, + dto.getDescribe()); + } + + // -// //瀛樺偍鏃ュ織 -// this.saveSettleClaimsLog(settleClaims, -// Constants.SettleClaimsLogType.CONFIRM_FEE, -// Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo()); +// public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){ +// List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>(); +// List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper +// .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate)); +// //绔嬫閫�鍥炵姸鎬佹暟鎹� +// 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.TWO); +// 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()); +// +// for (int i = 1; i <= 5; i++) { +// SettleParentStatusVO s = new SettleParentStatusVO(); +// Constants.SettleClaimsLogParentStatus parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i); +// s.setParentTitle(parentStatus.getName()); +// s.set(parentStatus.getInfo()); +// s.setStatus(Constants.ZERO); +// +// } +// SettleParentStatusVO settleParentStatusCHVO = new SettleParentStatusVO(); +// settleParentStatusCHVO.setParentTitle("宸叉挙妗�"); +// settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ"); +// settleParentStatusCHVO.setStatus(Constants.TWO); +// Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream() +// .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst(); +// if(optionalSettleClaimsSLLog.isPresent()){ +// settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate()); +// } +// settleParentStatusVOList.add(settleParentStatusCHVO); +// +// +// return settleParentStatusVOList; +// +// } +// +// +// return settleParentStatusVOList; +// +// // } - - - -- Gitblit v1.9.3