From 25baa25ea30432ba8651b5cc9dc0c2bdfed4fc2d Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 20 五月 2025 16:14:54 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 130 ++++++++++++++++++++++++++++++++---------- 1 files changed, 98 insertions(+), 32 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 cad88af..d412f7a 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 @@ -378,9 +378,9 @@ return 1; } - @Override - public Integer createSys(SettleClaims settleClaims) { + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public Integer createOrEditSys(SettleClaims settleClaims) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); settleClaims.setOrigin(Constants.ONE); if(Objects.isNull(settleClaims) @@ -402,11 +402,9 @@ 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()); - // + settleClaims.setEditor(loginUserInfo.getId()); + List<SettleClaimsMoneyVO> feeList = settleClaims.getAccountList(); BigDecimal mainFee = new BigDecimal(0); BigDecimal ortherFee = new BigDecimal(0); @@ -422,40 +420,108 @@ settleClaims.setHpAccount(mainFee); settleClaims.setHpOtherAccount(ortherFee); } - settleClaimsMapper.insert(settleClaims); + 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); + } - //--------------澶勭悊闄勪欢寮�濮�---------------- - 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); - } + 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); } //--------------澶勭悊闄勪欢缁撴潫---------------- - - 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.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(); @@ -1194,7 +1260,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) ") @@ -1212,7 +1278,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) ") @@ -1232,7 +1298,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) ") -- Gitblit v1.9.3