From 0c009141867c996897928c4f12490f21b78222f2 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 24 一月 2024 18:12:37 +0800 Subject: [PATCH] 111 --- server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 80 insertions(+), 32 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java index e195f16..4be1bc8 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java @@ -488,40 +488,43 @@ if(!CollectionUtils.isNotEmpty(duWorktypeList)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅"); } - for (int i = 0; i < applyDetailList.size(); i++) { - ApplyDetail applyDetail = applyDetailList.get(i); - if(Objects.isNull(applyDetail) - ||Objects.isNull(applyDetail.getMemberId()) - ||Objects.isNull(applyDetail.getDuId()) - ||Objects.isNull(applyDetail.getWorktypeId()) - ){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け"); + if(CollectionUtils.isNotEmpty(applyDetailList)){ + for (int i = 0; i < applyDetailList.size(); i++) { + ApplyDetail applyDetail = applyDetailList.get(i); + if(Objects.isNull(applyDetail) + ||Objects.isNull(applyDetail.getMemberId()) + ||Objects.isNull(applyDetail.getDuId()) + ||Objects.isNull(applyDetail.getWorktypeId()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け"); + } + applyDetail.setCreateDate(new Date()); + applyDetail.setCreator(loginUserInfo.getId()); + applyDetail.setIsdeleted(Constants.ZERO); + applyDetail.setSortnum(i); + applyDetail.setApplyId(insuranceApply.getId()); + if(Objects.isNull(applyDetail.getMemberId())){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒"); + } + Member member = memberMapper.selectById(applyDetail.getMemberId()); + if(Objects.isNull(member)){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒"); + } + applyDetail.setIdcardNo(member.getIdcardNo()); + applyDetail.setSex(member.getSex()); + applyDetail.setFee(Constants.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime())); + //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 + if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); + } + if(duWorktypeList.stream().filter(d->d.getDuSolutionId().equals(applyDetail.getDuId())&&d.getWorkTypeId().equals(applyDetail.getWorktypeId())) + .collect(Collectors.toList()).size()<=Constants.ZERO){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); + } } - applyDetail.setCreateDate(new Date()); - applyDetail.setCreator(loginUserInfo.getId()); - applyDetail.setIsdeleted(Constants.ZERO); - applyDetail.setSortnum(i); - applyDetail.setApplyId(insuranceApply.getId()); - if(Objects.isNull(applyDetail.getMemberId())){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒"); - } - Member member = memberMapper.selectById(applyDetail.getMemberId()); - if(Objects.isNull(member)){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ヤ俊鎭瓨鍦ㄥ紓甯告暟鎹紒"); - } - applyDetail.setIdcardNo(member.getIdcardNo()); - applyDetail.setSex(member.getSex()); - applyDetail.setFee(Constants.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime())); - //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 - if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒"); - } - if(duWorktypeList.stream().filter(d->d.getDuSolutionId().equals(applyDetail.getDuId())&&d.getWorkTypeId().equals(applyDetail.getWorktypeId())) - .collect(Collectors.toList()).size()<=Constants.ZERO){ - throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒"); - } - applyDetailMapper.insert(applyDetail); + applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList); } + //瀛樺偍鏃ュ織鏁版嵁 this.saveApplyLog(insuranceApply,insuranceApplyStatus,null); return insuranceApply.getId(); @@ -624,6 +627,8 @@ queryWrapper.selectAll(InsuranceApply.class); queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName); queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); + queryWrapper.select(" DATEDIFF( t.END_TIME ,now() ) AS loseEfficacyDays "); + queryWrapper.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney"); queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); @@ -908,5 +913,48 @@ } + /** + * 鏇存柊淇濆崟瀹為檯閲戦 + */ + @Override + @Transactional(rollbackFor = {Exception.class}) + public void updateApplyCurrentFee(){ + List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda() + .eq(InsuranceApply::getIsdeleted,Constants.ZERO) + .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + .ge(InsuranceApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00") + .le(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59") + ); + + if(CollectionUtils.isNotEmpty(insuranceApplyList)){ + for (InsuranceApply insuranceApply:insuranceApplyList) { + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); + if(Objects.isNull(solutions)){ + continue; + } + BigDecimal sumAmount = BigDecimal.ZERO; + List<ApplyDetail> applyDetailList = applyDetailMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId())); + if(CollectionUtils.isNotEmpty(applyDetailList)){ + for (ApplyDetail applyDetail: applyDetailList) { + applyDetail.setCurrentFee(Constants.countDetailFee(solutions,new Date(),applyDetail.getStartTime())); + applyDetailMapper.updateById(applyDetail); + sumAmount = sumAmount.add(applyDetail.getCurrentFee()); + } + } + insuranceApply.setCurrentFee(sumAmount); + insuranceApplyMapper.updateById(insuranceApply); + } + } + + + + + + + } + + + + } -- Gitblit v1.9.3