From 45a8fb5db1b0aa6d5cd39198ffc30dba5ec8b2d9 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 10 四月 2024 18:24:15 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 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 e07c92f..65345a0 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
@@ -320,7 +320,7 @@
     }
 
     /**
-     * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹�
+     * 澶勭悊鎹㈠巶鏄庣粏鏁版嵁
      * @param update
      */
     private void dealDetailsDUdata(ApplyChange update,InsuranceApply insuranceApply) {
@@ -351,7 +351,6 @@
         //瀹為檯鎵瑰崟鐢熸晥鏃ユ湡
         Date applyStartTime = DateUtil.getMontageDate(update.getApplyStartTime(),1);
         for(ApplyChagneDetail detail : detailList){
-            //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
             if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                     .lambda()
                     .eq(ApplyDetail::getApplyId,update.getApplyId())
@@ -883,7 +882,9 @@
         if (Objects.isNull(insuranceApply)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+        if (!(Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+        ||Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+        )) {
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
         }
         if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
@@ -1010,7 +1011,8 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
             }
             //鍑忎繚鏄庣粏鏁版嵁 璁$畻閲戦  鏍规嵁鎵瑰崟鏃堕棿 鍓嶄竴澶� 璁$畻
-            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),2));
+            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),3));
+
             CountCyclePriceVO countCyclePriceVO =  this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
             BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
             this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo,detailFee,applyChangeCyclePriceDTO.getValidTime());
@@ -1020,6 +1022,13 @@
         //鎹㈠巶涓氬姟
         List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
         if (CollectionUtils.isNotEmpty(changeDetailList)) {
+            //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁
+            List<String> idcarNo = changeDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList());
+            Set<String> set = new HashSet<>(idcarNo);
+            if(idcarNo.size() != set.size()){
+                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝浜哄憳褰曞叆鏁版嵁瀛樺湪鐩稿悓鏁版嵁锛�");
+            }
+
             this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo);
         }
         return fee;
@@ -1096,6 +1105,9 @@
             if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) > 0) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠");
             }
+
+
+            applyChagneDetail.setPrice(applyDetail.getPrice());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
             applyChagneDetail.setIsdeleted(Constants.ZERO);
@@ -1112,7 +1124,10 @@
             member.setEndTime(applyChagneDetail.getEndTime());
             memberMapper.updateById(member);
 
-            applyChagneDetail.setFee( detailFee.multiply(new BigDecimal(-1)));
+            //鏌ヨ鍑忎繚鏃ユ湡
+            Integer delDays = DateUtil.daysBetweenDates(applyDetail.getEndTime(),endTime);
+
+            applyChagneDetail.setFee( new BigDecimal(delDays).multiply(applyDetail.getPrice()).multiply(new BigDecimal(-1)));
             applyChagneDetailJoinMapper.insert(applyChagneDetail);
         }
     }
@@ -1149,6 +1164,13 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
             }
 
+            ApplyDetail applyDetail = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>()
+                            .lambda()
+                            .eq(ApplyDetail::getApplyId,applyChange.getApplyId()).last("limit 1"));
+            if(Objects.isNull(applyDetail)){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "淇濆崟涓湭瀛樺湪鏄庣粏璁板綍");
+            }
+            applyChagneDetail.setPrice(applyDetail.getPrice());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
             applyChagneDetail.setIsdeleted(Constants.ZERO);
@@ -1318,6 +1340,7 @@
             && applyChagneDetail.getOldWorktypeId().equals(applyChagneDetail.getWorktypeId())){
                 throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞崲鍘傛暟鎹浉鍚岋紒");
             }
+            applyChagneDetail.setPrice(applyDetail.getPrice());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
             applyChagneDetail.setIsdeleted(Constants.ZERO);
@@ -1517,6 +1540,9 @@
         queryWrapper
                 .selectAll(ApplyChange.class)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
+                .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
+                .selectAs(InsuranceApply::getCode,ApplyChange::getValidCode)
+                .selectAs(InsuranceApply::getEndTime,ApplyChange::getEndTime)
                 .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .selectAs(Solutions::getType,ApplyChange::getSolutionType)
                 .selectAs(Company::getName,ApplyChange::getCompanyName)
@@ -1767,9 +1793,9 @@
 
         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()
-                        ,Constants.MultiFile.CA_PD_PDF.getKey()
-                        ,Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey()}))
+//                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey()
+//                        ,Constants.MultiFile.CA_PD_PDF.getKey()
+//                        ,Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey()}))
                 .eq(Multifile::getIsdeleted,Constants.ZERO));
         if(multifiles!=null){
             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
@@ -1992,6 +2018,10 @@
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
         }
+        ApplyDetail applyDetail = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getIsdeleted,Constants.ZERO).eq(ApplyDetail::getApplyId,insuranceApply.getId()).last("limit 1"));
+        if(Objects.isNull(applyDetail)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟鏄庣粏璁板綍");
+        }
         //鏍规嵁鎵瑰崟鏃ユ湡 鍜� 缁撴潫鏃ユ湡 璁$畻閲戦
         //楠岃瘉鎵瑰崟鏃ユ湡鏄惁鍦ㄥ綋鍓嶆棩鏈熷悗 涓� 鍦ㄤ繚鍗曠粨鏉熸棩鏈熷墠 鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
         if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChangeCyclePriceDTO.getValidTime()) >= Constants.ZERO
@@ -2008,7 +2038,8 @@
         BigDecimal sumPrice = countCyclePriceVO.getCyclePrice();
         CountCyclePriceVO returnCountCyclePriceVO = new CountCyclePriceVO();
         //鍔犲噺淇濋噾棰�
-        returnCountCyclePriceVO.setCyclePrice(sumPrice.multiply(new BigDecimal(optDays)).divide(new BigDecimal(sumDays),2, RoundingMode.HALF_UP));
+//        returnCountCyclePriceVO.setCyclePrice(sumPrice.multiply(new BigDecimal(optDays)).divide(new BigDecimal(sumDays),2, RoundingMode.HALF_UP));
+        returnCountCyclePriceVO.setCyclePrice(applyDetail.getPrice().multiply(new BigDecimal(optDays)).setScale(2, RoundingMode.HALF_UP));
         return returnCountCyclePriceVO;
     }
 
@@ -2149,6 +2180,9 @@
         }
         if(applyChange.getId() == null){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        } 
+        if(Objects.isNull(applyChange)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class,
                 new MPJLambdaWrapper<ApplyChange>()
@@ -2188,6 +2222,19 @@
             update.setStatus(Constants.ApplyChangeStatus.CHECHED_PASSED.getKey());
         }
         applyChangeJoinMapper.updateById(update);
+
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_HBD_AUDIT;
+        String info = applyChange.getCheckInfo();
+        if(StringUtils.isNotBlank(applyChange.getCheckInfo())){
+            info = info.replace("${param}", applyChange.getCheckInfo());
+        }else{
+            info = info.replace("${param}", "");
+        }
+        ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(), null, null);
+        applyLogMapper.insert(log);
+
+
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE;
         if(Constants.equalsInteger(applyChange.getType(),Constants.ONE)){
             noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;

--
Gitblit v1.9.3