From 3970ecc4f079b2acd840d876044eb6facc25ba6a Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 30 一月 2024 20:07:44 +0800
Subject: [PATCH] 111

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java |  179 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 138 insertions(+), 41 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 d74064d..3370231 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
@@ -12,12 +12,16 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
+import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
 import com.doumee.dao.business.dto.ApplyChangeOptDTO;
+import com.doumee.dao.business.dto.CountCyclePriceDTO;
 import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
 import com.doumee.dao.business.join.ApplyChagneDetailJoinMapper;
 import com.doumee.dao.business.join.ApplyChangeJoinMapper;
 import com.doumee.dao.business.join.ApplyDetailJoinMapper;
+import com.doumee.dao.business.join.DuSolutionJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CountCyclePriceVO;
 import com.doumee.service.business.ApplyChangeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -50,6 +54,8 @@
     @Autowired
     private ApplyChangeMapper applyChangeMapper;
 
+    @Autowired
+    private DuSolutionJoinMapper duSolutionJoinMapper;
     @Autowired
     private InsuranceApplyMapper insuranceApplyMapper;
 
@@ -440,7 +446,7 @@
                 || Objects.isNull(applyChange.getApplyId())
                 || Objects.isNull(applyChange.getValidTime())
                 || Objects.isNull(applyChange.getType())
-                || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.TWO))
+                || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.ONE))
         ) {
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -452,10 +458,11 @@
         if (Objects.isNull(insuranceApply)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if (insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+        System.out.println(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
+        if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
         }
-        if (DateUtil.compareDate(new Date(), insuranceApply.getEndTime()) >= Constants.ZERO
+        if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
         ) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
         }
@@ -473,34 +480,41 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
         }
         //鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
-        if (!(DateUtil.compareDate(applyChange.getValidTime(), insuranceApply.getStartTime()) >= Constants.ZERO
-                && DateUtil.compareDate(insuranceApply.getEndTime(), applyChange.getValidTime()) >= Constants.ZERO)) {
+        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
+                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
         }
         applyChange.setCreateDate(new Date());
         applyChange.setCreator(loginUserInfo.getId());
         applyChange.setIsdeleted(Constants.ZERO);
+        applyChange.setApplyStartTime(applyChange.getValidTime());
         applyChange.setStatus(Constants.ZERO);
         applyChangeMapper.insert(applyChange);
 
-
-        List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
-                .eq(DuSolution::getIsdeleted, Constants.ZERO)
-                .eq(DuSolution::getStatus, Constants.ONE)
-                .eq(DuSolution::getSolutionId, insuranceApply.getSolutionId()));
-        if (!CollectionUtils.isNotEmpty(duSolutionList)) {
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅");
+        //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬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,insuranceApply.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<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));
+                .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(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
         }
+        BigDecimal fee = BigDecimal.ZERO;
         //鍔犱繚鏁版嵁
         List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
         if (CollectionUtils.isNotEmpty(addDetailList)) {
@@ -508,16 +522,25 @@
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
            }
             this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo);
+
+            fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add);
+
         }
 
         //鍑忎繚鏁版嵁
         List<ApplyChagneDetail> delDetailList = applyChange.getDelDetailList();
         if (CollectionUtils.isNotEmpty(delDetailList)) {
             if(companySolution.getCanReduce().equals(Constants.ZERO)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
             }
-            this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
+             this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
+            fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
         }
+        ApplyChange applyChangeFee = new ApplyChange();
+        applyChangeFee.setId(applyChange.getId());
+        applyChangeFee.setFee(fee);
+        applyChangeMapper.updateById(applyChangeFee);
+
         //鎹㈠巶涓氬姟
         List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
         if (CollectionUtils.isNotEmpty(changeDetailList)) {
@@ -537,7 +560,11 @@
         applyLog.setIsdeleted(Constants.ZERO);
         applyLog.setApplyId(applyChange.getApplyId());
         applyLog.setTitle(applyChangeLogStatus.getName());
-        applyLog.setContent(applyChangeLogStatus.getInfo().replace("${param}",content));
+        if(StringUtils.isNotBlank(content)){
+            applyLog.setContent(applyChangeLogStatus.getInfo().replace("${param}",content));
+        }else{
+            applyLog.setContent(applyChangeLogStatus.getInfo());
+        }
         applyLog.setObjType(applyChangeLogStatus.getKey());
         applyLog.setObjId( applyChange.getId());
         applyLog.setStatus(applyChange.getStatus());
@@ -578,7 +605,7 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
             }
             ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
-            if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) <= 0) {
+            if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) > 0) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠");
             }
             applyChagneDetail.setCreateDate(new Date());
@@ -586,9 +613,17 @@
             applyChagneDetail.setIsdeleted(Constants.ZERO);
             applyChagneDetail.setApplyChangeId(applyChange.getId());
             applyChagneDetail.setType(Constants.ONE);
+
+            System.out.println(DateUtil.dateToString(applyDetail.getEndTime(),"yyyy-MM-dd"));
+            System.out.println(DateUtil.dateToString(applyDetail.getStartTime(),"yyyy-MM-dd"));
+            System.out.println(DateUtil.dateToString(applyChange.getValidTime(),"yyyy-MM-dd"));
+
+            BigDecimal sumFee = Constants.countDetailFee(solutions, applyDetail.getEndTime(),applyDetail.getStartTime());
+            BigDecimal useFee = Constants.countDetailFee(solutions, applyChange.getValidTime(),applyDetail.getStartTime());
+
             applyChagneDetail.setFee(
                     Constants.countDetailFee(solutions, applyDetail.getEndTime(),applyDetail.getStartTime())
-                            .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(), applyDetail.getStartTime()))
+                            .subtract(Constants.countDetailFee(solutions,applyChange.getValidTime(), applyDetail.getStartTime())).multiply(new BigDecimal(-1))
             );
             applyChagneDetailJoinMapper.insert(applyChagneDetail);
         }
@@ -606,15 +641,51 @@
      */
     public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo){
         for (ApplyChagneDetail applyChagneDetail : addDetailList) {
-            if (Objects.isNull(applyChagneDetail.getMemberId())
-                    || Objects.isNull(applyChagneDetail.getDuId())
+            if (    Objects.isNull(applyChagneDetail.getDuId())
                     || Objects.isNull(applyChagneDetail.getWorktypeId())
+                    || StringUtils.isBlank(applyChagneDetail.getIdcardNo())
             ) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
             }
-            Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
-            if (Objects.isNull(member)) {
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
+
+
+            Member member = new Member();
+            if(Objects.isNull(applyChagneDetail.getMemberId())){
+                //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴�
+                member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+                        .eq(Member::getCompanyId,insuranceApply.getCompanyId())
+                        .eq(Member::getIsdeleted,Constants.ZERO)
+                        .eq(Member::getIdcardNo,applyChagneDetail.getIdcardNo())
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(member)){
+                    member = new Member();
+                    member.setCreateDate(new Date());
+                    member.setCreator(loginUserInfo.getId());
+                    member.setIsdeleted(Constants.ZERO);
+                    member.setName(applyChagneDetail.getMemberName());
+                    member.setCompanyId(insuranceApply.getCompanyId());
+                    member.setSex(Constants.getSexByIdCard(applyChagneDetail.getIdcardNo()));
+                    member.setIdcardNo(applyChagneDetail.getIdcardNo());
+                    member.setApplyId(insuranceApply.getId());
+                    member.setDuId(applyChagneDetail.getDuId());
+                    member.setWorktypeId(applyChagneDetail.getWorktypeId());
+                    memberMapper.insert(member);
+                }else{
+                    member.setApplyId(insuranceApply.getId());
+                    member.setDuId(applyChagneDetail.getDuId());
+                    member.setWorktypeId(applyChagneDetail.getWorktypeId());
+                    memberMapper.updateById(member);
+                }
+            }else{
+                member = memberMapper.selectById(applyChagneDetail.getMemberId());
+                if(Objects.isNull(member)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
+                }
+                member.setApplyId(insuranceApply.getId());
+                member.setDuId(applyChagneDetail.getDuId());
+                member.setWorktypeId(applyChagneDetail.getWorktypeId());
+                memberMapper.updateById(member);
             }
             //鏌ヨ鍛樺伐鏄惁瀛樺湪  0寰呯缃� 1宸茬绔� 鐨勬绫讳笟鍔′繚鏁版嵁 鍚屼竴涓诲崟涓�
             if (applyChagneDetailJoinMapper.selectJoinCount(
@@ -626,30 +697,31 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄧ敵璇蜂腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁");
             }
             //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
-            if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda()
-                    .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
-                    .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
-                    .le(ApplyDetail::getStartTime, "now()")
-                    .ge(ApplyDetail::getEndTime, "now()")
-            ) > Constants.ZERO) {
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
+            if(!Objects.isNull(applyChagneDetail.getMemberId())){
+                if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda()
+                        .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
+                        .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
+                        .le(ApplyDetail::getStartTime, "now()")
+                        .ge(ApplyDetail::getEndTime, "now()")
+                ) > Constants.ZERO) {
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
+                }
             }
-
             //楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪
             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.getDuSolutionId().equals(applyChagneDetail.getDuId()) && d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
+            if (duWorktypeList.stream().filter(d ->  d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
                     .collect(Collectors.toList()).size() <= Constants.ZERO) {
                 throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
             }
+            applyChagneDetail.setMemberId(member.getId());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
             applyChagneDetail.setIsdeleted(Constants.ZERO);
             applyChagneDetail.setApplyChangeId(applyChange.getId());
             applyChagneDetail.setType(Constants.ZERO);
             applyChagneDetail.setFee(
-
                     Constants.countDetailFee(solutions,insuranceApply.getEndTime(),applyChange.getValidTime())
             );
             applyChagneDetailJoinMapper.insert(applyChagneDetail);
@@ -692,20 +764,20 @@
             List<ApplyDetail>  applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                     .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                     .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
-                    .le(ApplyDetail::getStartTime, "now()")
-                    .ge(ApplyDetail::getEndTime, "now()"));
+                    .le(ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss"))
+                    .ge(ApplyDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
             if(applyDetailList.size()>Constants.ONE){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
             }
             ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
-            if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())<=0){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��"+applyDetail.getEndTime()+"銆戞棤娉曢�氳繃鏈鐢宠");
+            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 (duWorktypeList.stream().filter(d -> d.getDuSolutionId().equals(applyChagneDetail.getDuId()) && d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
+            if (duWorktypeList.stream().filter(d ->  d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
                     .collect(Collectors.toList()).size() <= Constants.ZERO) {
                 throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
             }
@@ -1116,4 +1188,29 @@
     }
 
 
+    @Override
+    public CountCyclePriceVO getChangeCountCyclePriceVO(ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO){
+        if(Objects.isNull(applyChangeCyclePriceDTO)
+            || Objects.isNull(applyChangeCyclePriceDTO.getApplyId())
+            || Objects.isNull(applyChangeCyclePriceDTO.getValidTime())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChangeCyclePriceDTO.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(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+        CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
+        countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,insuranceApply.getEndTime(),applyChangeCyclePriceDTO.getValidTime()));
+        return countCyclePriceVO;
+
+    }
+
+
+
+
 }

--
Gitblit v1.9.3