From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 27 十二月 2024 14:37:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1 --- server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 395 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 272 insertions(+), 123 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java index 90c5ba5..5b4d435 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java @@ -82,6 +82,9 @@ private ApplyDetailJoinMapper applyDetailJoinMapper; @Autowired + private SettleClaimsMapper settleClaimsMapper; + + @Autowired private MemberInsuranceJoinMapper memberInsuranceJoinMapper; @Autowired @@ -90,6 +93,8 @@ @Autowired private MemberMapper memberMapper; + @Autowired + private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper; @Autowired private MultifileMapper multifileMapper; @Autowired @@ -191,9 +196,11 @@ if(param.getId() == null || param.getValidCode() == null || param.getApplyStartTime() == null - || param.getPidanFile() == null - ||StringUtils.isBlank( param.getPidanFile().getFileurl()) - ||StringUtils.isBlank( param.getPidanFile() .getName())){ + || CollectionUtils.isEmpty(param.getPidanFileList()) +// || param.getPidanFile() == null +// ||StringUtils.isBlank( param.getPidanFile().getFileurl()) +// ||StringUtils.isBlank( param.getPidanFile() .getName()) + ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -243,14 +250,20 @@ update.setApplyStartTime(param.getApplyStartTime()); update.setDelValidTime(param.getDelValidTime()); update.setCode(model.getCode()); - - param.getPidanFile().setIsdeleted(Constants.ZERO); - param.getPidanFile().setCreator(user.getId()); - param.getPidanFile().setObjId(update.getId()); - param.getPidanFile().setCreateDate(update.getEditDate()); - param.getPidanFile().setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); - param.getPidanFile().setType(Constants.TWO); - multifileMapper.insert(param.getPidanFile()); + List<Multifile> pidanFileList = param.getPidanFileList(); + for (Multifile pidanFile:pidanFileList) { + if(StringUtils.isBlank( pidanFile.getFileurl()) + ||StringUtils.isBlank( pidanFile .getName())) { + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎵瑰崟鏂囦欢鍙傛暟閿欒"); + } + pidanFile.setIsdeleted(Constants.ZERO); + pidanFile.setCreator(user.getId()); + pidanFile.setObjId(update.getId()); + pidanFile.setCreateDate(update.getEditDate()); + pidanFile.setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); + pidanFile.setType(Constants.TWO); + } + multifileMapper.insertBatchSomeColumn(pidanFileList); update.setApplyId(model.getApplyId()); @@ -293,10 +306,12 @@ public Integer editPidan(ApplyChange param) { if(param.getId() == null || param.getValidCode() == null - || param.getPidanFile() == null || param.getCheckInfo() == null - ||StringUtils.isBlank( param.getPidanFile().getFileurl()) - ||StringUtils.isBlank( param.getPidanFile() .getName())){ + || CollectionUtils.isEmpty(param.getPidanFileList()) +// || param.getPidanFile() == null +// ||StringUtils.isBlank( param.getPidanFile().getFileurl()) +// ||StringUtils.isBlank( param.getPidanFile() .getName()) + ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -334,13 +349,29 @@ .eq(Multifile::getObjId,update.getId()) .eq(Multifile::getObjType,Constants.MultiFile.CA_PD_PDF.getKey()) ); - param.getPidanFile().setIsdeleted(Constants.ZERO); - param.getPidanFile().setObjId(update.getId()); - param.getPidanFile().setCreator(user.getId()); - param.getPidanFile().setCreateDate(update.getEditDate()); - param.getPidanFile().setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); - param.getPidanFile().setType(Constants.TWO); - multifileMapper.insert(param.getPidanFile()); + + List<Multifile> pidanFileList = param.getPidanFileList(); + for (Multifile pidanFile:pidanFileList) { + if(StringUtils.isBlank( pidanFile.getFileurl()) + ||StringUtils.isBlank( pidanFile .getName())) { + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎵瑰崟鏂囦欢鍙傛暟閿欒"); + } + pidanFile.setIsdeleted(Constants.ZERO); + pidanFile.setCreator(user.getId()); + pidanFile.setObjId(update.getId()); + pidanFile.setCreateDate(update.getEditDate()); + pidanFile.setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); + pidanFile.setType(Constants.TWO); + } + multifileMapper.insertBatchSomeColumn(param.getPidanFileList()); + +// param.getPidanFile().setIsdeleted(Constants.ZERO); +// param.getPidanFile().setObjId(update.getId()); +// param.getPidanFile().setCreator(user.getId()); +// param.getPidanFile().setCreateDate(update.getEditDate()); +// param.getPidanFile().setObjType(Constants.MultiFile.CA_PD_PDF.getKey()); +// param.getPidanFile().setType(Constants.TWO); +// multifileMapper.insert(param.getPidanFile()); Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PALTFORM_EDIT_PIDAN; String info = applyLogType.getInfo(); @@ -585,11 +616,14 @@ .eq(ApplyDetail::getMemberId, detail.getMemberId()) .orderByDesc(ApplyDetail::getCreateDate) .last("limit 1")); - if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()) { +// if (oldModel == null || oldModel.getStartTime() == null || oldModel.getStartTime().getTime() > update.getApplyStartTime().getTime()) { +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�"); +// } +// if(!(oldModel.getStartTime().getTime()<=update.getDelValidTime().getTime()&& oldModel.getEndTime().getTime()>=update.getDelValidTime().getTime())){ +// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝噺淇濇棩鏈熸湭鍦ㄤ繚鍗曡褰曟棩鏈熶腑锛�"); +// } + if (oldModel == null || oldModel.getEndTime() == null || oldModel.getEndTime().getTime() < update.getDelValidTime().getTime()) { throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�"); - } - if(!(oldModel.getStartTime().getTime()<=update.getDelValidTime().getTime()&& oldModel.getEndTime().getTime()>=update.getDelValidTime().getTime())){ - throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛銆�" + detail.getMemberName() + "銆戝噺淇濇棩鏈熸湭鍦ㄤ繚鍗曡褰曟棩鏈熶腑锛�"); } BigDecimal sumFee = Objects.isNull(insuranceApply.getServerCost())? solutions.getPrice(): @@ -609,6 +643,9 @@ sumFee ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),delValidTime ) ; + }else{ + delValidTime = oldModel.getStartTime(); + updateFee = BigDecimal.ZERO; } if (oldModel.getStartTime().getTime() < System.currentTimeMillis()) { //// 2024骞�5鏈�8鏃�17:37:23 淇敼 璁$畻浜х敓璐圭敤 @@ -893,9 +930,9 @@ 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(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); - } +// if (!loginUserInfo.getType().equals(Constants.ONE)) { +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); +// } InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId()); if (Objects.isNull(insuranceApply)) { @@ -914,7 +951,7 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规"); } CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda() - .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId()) + .eq(CompanySolution::getCompanyId,insuranceApply.getCompanyId()) .eq(CompanySolution::getSolutionBaseId,solutions.getBaseId()) .eq(CompanySolution::getIsdeleted,Constants.ZERO) .last(" limit 1 ") @@ -926,7 +963,6 @@ if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda() .eq(ApplyChange::getApplyId,insuranceApply.getId()) .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey(),Constants.ApplyChangeStatus.CLOSE.getKey()) - )>Constants.ZERO){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪杩涜涓殑鍔犲噺淇�/鎹㈠巶鐢宠"); }; @@ -978,9 +1014,9 @@ 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(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); - } +// /*if (!loginUserInfo.getType().equals(Constants.ONE)) { +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); +// }*/ ApplyChange dbApplyChange = applyChangeMapper.selectById(applyChange.getId()); if(Objects.isNull(dbApplyChange)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); @@ -1012,7 +1048,8 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规"); } if(solutions.getDataType().equals(Constants.ONE)){ - solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1")); + solutions = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda() + .eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1")); if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�"); } @@ -1109,27 +1146,40 @@ } } } - //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣� - List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>() - .selectAll(DuSolution.class) - .innerJoin(DispatchUnit.class,DispatchUnit::getId,DuSolution::getDispatchUnitId) - .eq(DispatchUnit::getCompanyId,insuranceApply.getCompanyId()) - .eq(DispatchUnit::getIsdeleted,Constants.ZERO) - .eq(DispatchUnit::getUnitStatus,Constants.ONE) - .eq(DuSolution::getIsdeleted,Constants.ZERO) - .eq(DuSolution::getStatus,Constants.ONE) - .eq(DuSolution::getSolutionId,companySolution.getSolutionId())); - if(!CollectionUtils.isNotEmpty(duSolutionList)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅"); - } - //鏌ヨ鎵�鏈夋淳閬e崟浣嶄笅鐨勫伐绉� - List<Integer> duSolutionIdList = duSolutionList.stream().map(i->i.getId()).collect(Collectors.toList()); - List<DuWorktype> duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda() - .eq(DuWorktype::getIsdeleted,Constants.ZERO) - .eq(DuWorktype::getStatus,Constants.ONE) - .in(DuWorktype::getDuSolutionId,duSolutionIdList)); - if (!CollectionUtils.isNotEmpty(duWorktypeList)) { - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅"); + List<DuSolution> duSolutionList = new ArrayList<>(); + List<DuWorktype> duWorktypeList = new ArrayList<>(); + List<Integer> worktypeIdList = new ArrayList<>(); + if(Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO)){ + //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣� + duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>() + .selectAll(DuSolution.class) + .innerJoin(DispatchUnit.class,DispatchUnit::getId,DuSolution::getDispatchUnitId) + .eq(DispatchUnit::getCompanyId,insuranceApply.getCompanyId()) + .eq(DispatchUnit::getIsdeleted,Constants.ZERO) + .eq(DispatchUnit::getUnitStatus,Constants.ONE) + .eq(DuSolution::getIsdeleted,Constants.ZERO) + .eq(DuSolution::getStatus,Constants.ONE) + .eq(DuSolution::getSolutionId,companySolution.getSolutionId())); + if(!CollectionUtils.isNotEmpty(duSolutionList)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅"); + } + //鏌ヨ鎵�鏈夋淳閬e崟浣嶄笅鐨勫伐绉� + List<Integer> duSolutionIdList = duSolutionList.stream().map(i->i.getId()).collect(Collectors.toList()); + duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda() + .eq(DuWorktype::getIsdeleted,Constants.ZERO) + .eq(DuWorktype::getStatus,Constants.ONE) + .in(DuWorktype::getDuSolutionId,duSolutionIdList)); + if (!CollectionUtils.isNotEmpty(duWorktypeList)) { + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅"); + } + worktypeIdList = duWorktypeList.stream().map(i->i.getWorkTypeId()).collect(Collectors.toList()); + }else{ + //鏌ヨ鏂规涓嬫墍鏈夊伐绉嶆暟鎹� + List<SolutionWorktype> solutionWorktypeList = solutionWorktypeJoinMapper.selectList(new QueryWrapper<SolutionWorktype>().lambda().eq(SolutionWorktype::getSolutionId,solutions.getId())); + if(CollectionUtils.isEmpty(solutionWorktypeList)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝淇濋櫓鏂规涓嬫湭鏌ヨ鍒板伐绉嶄俊鎭�"); + } + worktypeIdList = solutionWorktypeList.stream().map(i->i.getWorktypeId()).collect(Collectors.toList()); } ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO = new ApplyChangeCyclePriceDTO(); @@ -1158,7 +1208,7 @@ ,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(), applyChange.getApplyStartTime(),insuranceApply.getEndTime()); - this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo,detailFee,delDetailList.size()); + this.addChangeDetail(applyChange,addDetailList,duSolutionList,insuranceApply,solutions,loginUserInfo,detailFee,delDetailList.size(),worktypeIdList); fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add); } @@ -1192,7 +1242,7 @@ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝浜哄憳褰曞叆鏁版嵁瀛樺湪鐩稿悓鏁版嵁锛�"); } - this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo); + this.changeDetail(applyChange,changeDetailList,duSolutionList,loginUserInfo,solutions,worktypeIdList); } return fee; } @@ -1224,10 +1274,36 @@ */ public void delChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> delDetailList,InsuranceApply insuranceApply,Solutions solutions, LoginUserInfo loginUserInfo,BigDecimal detailFee,Date endTime){ + if(DateUtil.getMontageDate(applyChange.getDelValidTime(),3).getTime()>insuranceApply.getEndTime().getTime()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚鐢熸晥鏈熶笉鑳芥櫄浜庝繚鍗曠粨鏉熸棩鏈�"); + } for (ApplyChagneDetail applyChagneDetail : delDetailList) { if (Objects.isNull(applyChagneDetail.getMemberId())) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け"); } + //2024-10-29 15:17:54 鏌ヨ鏄惁宸插嚭闄� 宸插嚭闄╂棤娉曡繘琛屾姇淇� + if(settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() + .eq(SettleClaims::getInsuranceApplyId,applyChange.getApplyId()) + .eq(SettleClaims::getMemberId,applyChagneDetail.getMemberId()) + .in(SettleClaims::getStatus,Constants.SettleClaimsStatus.DEAL_ING.getKey() + ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey() + ,Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey()) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑洪櫓鏃犳硶杩涜鍑忎繚"); + }; + //2024-10-29 15:17:54 鏌ヨ浜哄憳鏄惁宸插噺淇� 宸插噺淇濆悗鏃犳硶鍐嶆鍑忎繚 + if(applyChangeDetailJoinMapper.selectJoinCount(new MPJLambdaWrapper<ApplyChagneDetail>() + .leftJoin(ApplyChange.class,ApplyChange::getId,ApplyChagneDetail::getApplyChangeId) + .eq(ApplyChagneDetail::getType,Constants.ONE) + .eq(ApplyChange::getApplyId,applyChange.getApplyId()) + .eq(ApplyChagneDetail::getMemberId,applyChagneDetail.getMemberId()) + .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.CLOSE.getKey() + ,Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey() + ) + )>Constants.ZERO){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑忎繚鏃犳硶鍐嶆杩涜鍑忎繚"); + }; + //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁 if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>() .lambda() @@ -1316,18 +1392,22 @@ /** * 鍔犱繚鏁版嵁澶勭悊 - * @param applyChange - * @param addDetailList - * @param duWorktypeList - * @param duSolutionList - * @param loginUserInfo + * @param applyChange 鍔犲噺淇濅繚鍗曟暟鎹� + * @param addDetailList 鍔犱繚浜哄憳 + * @param duSolutionList 娲鹃仯鍗曚綅鏂规鏁版嵁 + * @param loginUserInfo 鎿嶄綔浜� */ public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList, - List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList, - InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee,Integer delSize){ + List<DuSolution> duSolutionList, + InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee,Integer delSize, + List<Integer> worktypeIdList){ + if(applyChange.getApplyStartTime().getTime()>insuranceApply.getEndTime().getTime()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚鐢熸晥鏈熶笉鑳藉ぇ浜庝繚鍗曠粨鏉熸棩鏈�"); + } for (int i = 0; i < addDetailList.size(); i++) { ApplyChagneDetail applyChagneDetail = addDetailList.get(i); - if ( Objects.isNull(applyChagneDetail.getDuId()) + if ( + Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO) && Objects.isNull(applyChagneDetail.getDuId()) || Objects.isNull(applyChagneDetail.getWorktypeId()) || StringUtils.isBlank(applyChagneDetail.getIdcardNo()) ) { @@ -1343,13 +1423,6 @@ .lambda() .eq(ApplyDetail::getApplyId,applyChange.getApplyId()) .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo()) -// .apply(" ( " + -// " '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))+"' <= t.start_time AND t.start_time < '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(insuranceApply.getEndTime(),2))+"' " + -// " or " + -// " ( '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))+"' < t.end_time AND t.end_time < '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(insuranceApply.getEndTime(),2))+"' ) " + -// " or " + -// " ( '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))+"' > t.start_time AND '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(insuranceApply.getEndTime(),2))+"' < t.end_time )" + -// " ) " ) .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1)) .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(insuranceApply.getEndTime(),2)) )>Constants.ZERO){ @@ -1450,10 +1523,12 @@ } } //楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪 - if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) { - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + if(Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO)){ + if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) { + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + } } - if (duWorktypeList.stream().filter(d -> d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId())) + if (worktypeIdList.stream().filter(d -> Constants.equalsInteger(d,applyChagneDetail.getWorktypeId())) .collect(Collectors.toList()).size() <= Constants.ZERO) { throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); } @@ -1473,17 +1548,17 @@ /** * 鎹㈠巶涓氬姟 * @param applyChange - * @param duWorktypeList * @param duSolutionList * @param changeDetailList * @param loginUserInfo */ - public void changeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> changeDetailList,List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,LoginUserInfo loginUserInfo){ + public void changeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> changeDetailList + ,List<DuSolution> duSolutionList,LoginUserInfo loginUserInfo,Solutions solutions ,List<Integer> worktypeIdList){ for (ApplyChagneDetail applyChagneDetail : changeDetailList) { if (Objects.isNull(applyChagneDetail.getMemberId()) - || Objects.isNull(applyChagneDetail.getOldDuId()) + || (Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO) && Objects.isNull(applyChagneDetail.getOldDuId())) || Objects.isNull(applyChagneDetail.getOldWorktypeId()) - || Objects.isNull(applyChagneDetail.getDuId()) + || (Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO) && Objects.isNull(applyChagneDetail.getDuId())) || Objects.isNull(applyChagneDetail.getWorktypeId()) ) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け"); @@ -1529,15 +1604,18 @@ if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())>0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��"+DateUtil.getDate(applyDetail.getEndTime(),"yyyy-MM-dd HH:mm:ss")+"銆戞棤娉曢�氳繃鏈鐢宠"); } - //楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪 - if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) { - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + if(Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO)){ + //楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪 + if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) { + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + } } - if (duWorktypeList.stream().filter(d -> d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId())) + if (worktypeIdList.stream().filter(d -> Constants.equalsInteger(d,applyChagneDetail.getWorktypeId())) .collect(Collectors.toList()).size() <= Constants.ZERO) { throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); } - if(applyChagneDetail.getOldDuId().equals(applyChagneDetail.getDuId()) + + if((Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO) && applyChagneDetail.getOldDuId().equals(applyChagneDetail.getDuId())) && applyChagneDetail.getOldWorktypeId().equals(applyChagneDetail.getWorktypeId())){ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞崲鍘傛暟鎹浉鍚岋紒"); } @@ -1612,7 +1690,18 @@ QueryWrapper<ApplyChange> wrapper = new QueryWrapper<>(applyChange); return applyChangeMapper.selectList(wrapper); } - + + @Override + public List<ApplyChange> findListByApplyId(Integer applyId,Integer type) { + List<ApplyChange> applyChangeList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>() + .lambda().eq(ApplyChange::getApplyId,applyId) + .eq(Objects.nonNull(type),ApplyChange::getType,type) + .in(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey()) + ); + return applyChangeList; + } + + @Override public PageData<ApplyChange> findPage(PageWrap<ApplyChange> pageWrap) { @@ -1734,6 +1823,12 @@ queryWrapper.orderByDesc(ApplyDetail::getCreateDate); PageData<ApplyChange> pageData = PageData.from(applyChangeJoinMapper.selectJoinPage(page,ApplyChange.class, queryWrapper)); + for (ApplyChange applyChange:pageData.getRecords()) { + + applyChange.setChangeMoney(Constants.getTwoPoint(applyChange.getChangeMoney())); + applyChange.setFee(Constants.getTwoPoint(applyChange.getFee())); + } + return pageData; } @@ -1787,6 +1882,9 @@ }*/ List<ApplyChange> list =applyChangeJoinMapper.selectJoinList(ApplyChange.class,queryWrapper); + for (ApplyChange applyChange:list) { + applyChange.setFee(Constants.getTwoPoint(applyChange.getFee())); + } List<ApplyChange> result = new ArrayList<>(); for (int i = 1; i <= 12; i++) { if(i<10){ @@ -1823,6 +1921,7 @@ .selectAs(InsuranceApply::getEndTime,ApplyChange::getEndTime) .selectAs(Solutions::getName,ApplyChange::getSolutionsName) .selectAs(Solutions::getType,ApplyChange::getSolutionType) + .selectAs(Solutions::getHasDispatchUnit,ApplyChange::getHasDispatchUnit) .selectAs(Company::getName,ApplyChange::getCompanyName) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0 )",ApplyChange::getAddNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1 )",ApplyChange::getDelNum) @@ -1898,17 +1997,13 @@ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); for(ApplyChange model : list){ - for(Multifile f : multifiles) { - if (StringUtils.isBlank(f.getFileurl())) { - continue; + List<Multifile> multifileList = multifiles.stream().filter(m->Constants.equalsInteger(m.getObjId(), model.getId())&& + Constants.equalsInteger(m.getObjType(), Constants.MultiFile.CA_PD_PDF.getKey())).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(multifileList)){ + for (Multifile multifile:multifileList) { + multifile.setFileurlFull(path + multifile.getFileurl()); } - f.setFileurlFull(path+f.getFileurl()); - if(Constants.equalsInteger(f.getObjId(), model.getId()) ){ - if (Constants.equalsInteger(f.getObjType(), Constants.MultiFile.CA_PD_PDF.getKey())) { - //绛剧讲鍓嶇殑鎶曚繚鍗� - model.setPidanFile(f); - } - } + model.setPidanFileList(multifileList); } } } @@ -2072,6 +2167,8 @@ ); applyChange.setApplyLogList(applyLogList); + + applyChange.setFee(Constants.getTwoPoint(applyChange.getFee())); List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() .eq(Multifile::getObjId, applyChange.getId() ) // .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey() @@ -2092,10 +2189,19 @@ }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey())){ //绛剧讲鍚庣敵璇峰崟 applyChange.setApplyUnitFile(f); - }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_PD_PDF.getKey())){ - //绛剧讲鍚庣殑鎶曚繚鍗� - applyChange.setPidanFile(f); } +// else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_PD_PDF.getKey())){ +// //绛剧讲鍚庣殑鎶曚繚鍗� +// applyChange.setPidanFile(f); +// } + } + List<Multifile> multifileList = multifiles.stream().filter(m->Constants.equalsInteger(m.getObjId(), applyChange.getId())&& + Constants.equalsInteger(m.getObjType(), Constants.MultiFile.CA_PD_PDF.getKey())).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(multifileList)){ + for (Multifile multifile:multifileList) { + multifile.setFileurlFull(path + multifile.getFileurl()); + } + applyChange.setPidanFileList(multifileList); } } @@ -2148,30 +2254,44 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔绛剧珷鎿嶄綔锛�"); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); - Company company = user.getCompany(); + + InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId()); + if(Objects.isNull(insuranceApply)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇繚鍗曚俊鎭�"); + } + Company company = companyMapper.selectById(insuranceApply.getCompanyId()); + if(Objects.isNull(company)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟淇℃伅"); + } + String companyName = company.getName(); + String creditCode = company.getCode(); + String email = company.getEmail(); + + /*if(debugModel){ company = companyMapper.selectById(model.getCompanyId()); }*/ if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁"); } - InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId()); - if(Objects.isNull(insuranceApply)){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇繚鍗曚俊鎭�"); - } + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�"); } String fileUrl = null; - if(Constants.equalsObject(model.getType(), Constants.ONE)){ - fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","鎶曚繚浼佷笟"); - }else{ - fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","鎶曚繚浼佷笟"); - } +// if(Constants.equalsObject(model.getType(), Constants.ONE)){ +// fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","鎶曚繚浼佷笟"); +// }else{ +// fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","鎶曚繚浼佷笟"); +// } String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode(); - notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString()); - String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚浼佷笟绛剧珷",company.getSignId(),notifyUrl); +// notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString()); +// String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚浼佷笟绛剧珷",company.getSignId(),notifyUrl); + //涓存椂浣跨敤 + fileUrl = + "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf"; + String applyNo = signService.applySign(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl); if(StringUtils.isBlank(applyNo) ){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�"); } @@ -2396,10 +2516,6 @@ ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - //楠岃瘉 楠岃瘉鐮� -// if(!debugModel){ -// smsEmailService.validateCode(smsCheckDTO.getCode()); -// } ApplyChange model = this.queryApplyChangeData(smsCheckDTO.getBusinessId()); if(Objects.isNull(model)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠姞鍑忎繚/鎹㈠巶淇℃伅"); @@ -2422,14 +2538,19 @@ if(!Constants.equalsInteger(Constants.ZERO,model.getStatus())){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔绛剧珷鎿嶄綔锛�"); } - if(Constants.equalsObject(model.getType(), Constants.ONE)){ - fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","琚繚闄╀汉"); - }else{ - fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","琚繚闄╀汉"); - } +// if(Constants.equalsObject(model.getType(), Constants.ONE)){ +// fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","琚繚闄╀汉"); +// }else{ +// fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","琚繚闄╀汉"); +// } String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode(); notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString()); - String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl); + + //涓存椂浣跨敤 + fileUrl = "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf"; + String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl); + +// String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl); if(StringUtils.isBlank(applyNo) ){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�"); } @@ -2460,9 +2581,9 @@ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public Integer check(ApplyChange applyChange) { + public Integer check(ApplyChange applyChange,UnionChangeServiceImpl unionChangeService) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); - if(!user.getType().equals(Constants.TWO)){ + if(!(Constants.equalsInteger(user.getType(),Constants.ZERO) || Constants.equalsInteger(user.getType(),Constants.TWO))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风鏃犳硶杩涜璇ユ搷浣�"); } if(applyChange.getId() == null){ @@ -2525,10 +2646,38 @@ if(Constants.equalsInteger(model.getType(),Constants.ONE)){ noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; } - //鍒犻櫎鍏ㄩ儴寰呭姙 + //鍒犻櫎鍏ㄩ儴寰呭姙 noticesMapper.delete(new QueryWrapper<Notices>().lambda() .eq(Notices::getObjType, noticeObjectType.getKey()) .eq(Notices::getObjId, model.getId())); + if(Constants.equalsInteger(applyChange.getDealBackApply(),Constants.ZERO)){ + InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId()); + if(Objects.isNull(insuranceApply)||Objects.isNull(insuranceApply.getUnionApplyId())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟鏁版嵁"); + } + SaveUnionChangeDTO saveUnionChangeDTO = new SaveUnionChangeDTO(); + saveUnionChangeDTO.setApplyDate(update.getApplyStartTime()); + List<Integer> applyIds = new ArrayList<>(); + applyIds.add(model.getId()); + saveUnionChangeDTO.setApplyIds(applyIds); + saveUnionChangeDTO.setApplyChange(model); + saveUnionChangeDTO.setUnionApplyId(insuranceApply.getUnionApplyId()); + saveUnionChangeDTO.setBusinessType(model.getType()); + if(Constants.equalsInteger(model.getType(),Constants.ONE)){ + saveUnionChangeDTO.setApplyDate(model.getApplyStartTime()); + } + if(Constants.equalsInteger(user.getType(),Constants.TWO)){ + saveUnionChangeDTO.setShopId(user.getCompanyId()); + }else{ + CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda().eq(CompanySolution::getSolutionId,solutions.getId()).eq(CompanySolution::getCompanyId,insuranceApply.getCompanyId()).last(" limit 1 ")); + if(Objects.isNull(companySolution)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鏂规淇℃伅"); + } + saveUnionChangeDTO.setShopId(companySolution.getShopId()); + + } + unionChangeService.merge(saveUnionChangeDTO); + } return 1; } -- Gitblit v1.9.3