From bb64d5e37ba396998f75793476e381782ca6cefa Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 20 六月 2024 18:46:50 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/core/utils/DateUtil.java                             |    8 ++
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java    |   40 +++++++++----
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java    |    4 +
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java                  |    3 +
 server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java                  |    4 +
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |   79 ++++++++++++++------------
 server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java    |    8 +-
 server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java                   |    4 +
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java          |    2 
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java         |   12 +++-
 server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java     |    9 ++
 11 files changed, 111 insertions(+), 62 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index 20fe9a5..fa297b0 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -354,6 +354,8 @@
         }
     }
 
+
+
     /**
      * Descrption:鍙栧緱褰撳墠鏃ユ湡,鏍煎紡涓�:yyyy-MM-dd HH:mm:ss
      *
@@ -3034,6 +3036,10 @@
         return DateToString(date, "yyyyMMddHHmmss");
     }
 
+    public static String getLongDateTime(Date date) {
+        return DateToString(date, "yyyy-MM-dd HH:mm:ss");
+    }
+
     public static String DateToString(Date date, String dateStyle) {
         String dateString = null;
         if (dateStyle != null) {
@@ -3151,7 +3157,7 @@
 
 
     public static void main(String[] args) throws Exception{
-        System.out.println(DateUtil.getPlusTime(new Date()));;
+        System.out.println(DateUtil.getLongDateTime(new Date()));;
     }
 
     /**
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index c84e8c6..c5adcb4 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -186,6 +186,9 @@
     @TableField(exist = false)
     private Multifile pidanFile;
 
+    @ApiModelProperty(value = "鎵瑰噺鏄惁浠呮敮鎸佹浛鎹� 0鍚� 1鏄�", example = "1")
+    @TableField(exist = false)
+    private Integer delOnlyReplace;
 
     @ApiModelProperty(value = "鍔犱繚鏄庣粏鏁版嵁")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java b/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
index 9905811..0b5bb97 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java
@@ -115,6 +115,10 @@
     @TableField(exist = false)
     private String solutionName;
 
+    @ApiModelProperty(value = "鎵瑰噺鏄惁浠呮敮鎸佹浛鎹� 0鍚� 1鏄�", example = "1")
+    @TableField(exist = false)
+    private Integer delOnlyReplace;
+
     @ApiModelProperty(value = "鏌ヨ寮�濮嬫棩鏈�", example = "1")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java b/server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java
index a831310..cb69e8c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java
@@ -120,6 +120,10 @@
     @TableField(exist = false)
     private Date endTime;
 
+    @ApiModelProperty(value = "鎵瑰噺鏄惁浠呮敮鎸佹浛鎹� 0鍚� 1鏄�", example = "1")
+    @TableField(exist = false)
+    private Integer delOnlyReplace;
+
     @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡")
     @TableField(exist = false)
     private Date startTime;
diff --git a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
index b76cb10..1754387 100644
--- a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -29,7 +29,7 @@
      */
     Integer create(InsuranceApply insuranceApply);
     Integer updateData(InsuranceApply insuranceApply);
-    void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime);
+    void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId);
 
     /**
      * 涓婚敭鍒犻櫎
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 3759e76..edc9ea4 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
@@ -681,7 +681,7 @@
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌鍛樺伐鏁版嵁");
             }
             //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getId(),
+            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(),
                     member.getIdcardNo(),member.getName(),detail.getStartTime(),detail.getEndTime(),
                     applyDetailJoinMapper);
 
@@ -690,6 +690,13 @@
                     .lambda()
                     .eq(ApplyDetail::getApplyId,update.getApplyId())
                     .eq(ApplyDetail::getIdcardNo,detail.getIdcardNo())
+//                    .apply(" ( " +
+//                            " '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(update.getApplyStartTime(),1))+"'  <= t.start_time AND t.start_time < '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(detail.getEndTime(),2))+"' " +
+//                            " or " +
+//                            "  ( '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(update.getApplyStartTime(),1))+"' < t.end_time AND t.end_time < '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(detail.getEndTime(),2))+"' )  " +
+//                            " or " +
+//                            " ( '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(update.getApplyStartTime(),1))+"' > t.start_time AND '"+DateUtil.getLongDateTime(DateUtil.getMontageDate(detail.getEndTime(),2))+"' < t.end_time )" +
+//                            " ) " )
                     .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(),1))
                     .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(detail.getEndTime(),2))
             )>Constants.ZERO){
@@ -717,7 +724,7 @@
             add.setFee(Constants.addFee(solutions,solutions.getPrice(),insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),update.getApplyStartTime(),insuranceApply.getEndTime()));
             add.setChangeStatus(Constants.ZERO);
             if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)
-                    && Constants.equalsInteger(solutions.getTimeUnit(),solutions.getInsureCycleUnit())){
+                    && Constants.equalsInteger(solutions.getTimeUnit(),solutions.getInsureCycleUnit()) && i < reduceList.size()){
                 add.setReduceId(reduceList.get(i).getId());
             }
             if(new Date().compareTo(DateUtil.getMontageDate(detail.getStartTime(), 2))>=0){
@@ -1044,10 +1051,10 @@
         if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO ) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
         }
-        if (DateUtil.compareDate(applyChange.getValidTime(),insuranceApply.getStartTime()) >= Constants.ZERO) {
-            //濡傛灉淇濆崟灏氭湭鐢熸晥锛岃缃湡鏈涚敓鏁堟棩鏈熶负淇濆崟鐢熸晥寮�濮嬫椂闂�
-            applyChange.setValidTime(insuranceApply.getStartTime());
-        }
+//        if (DateUtil.compareDate(applyChange.getValidTime(),insuranceApply.getStartTime()) >= Constants.ZERO) {
+//            //濡傛灉淇濆崟灏氭湭鐢熸晥锛岃缃湡鏈涚敓鏁堟棩鏈熶负淇濆崟鐢熸晥寮�濮嬫椂闂�
+//            applyChange.setValidTime(insuranceApply.getStartTime());
+//        }
         Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
@@ -1159,9 +1166,9 @@
         ) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
         }
-        if (DateUtil.compareDate(applyChange.getValidTime(),insuranceApply.getStartTime()) > Constants.ZERO) {
-            applyChange.setValidTime(insuranceApply.getStartTime());
-        }
+//        if (DateUtil.compareDate(applyChange.getValidTime(),insuranceApply.getStartTime()) > Constants.ZERO) {
+//            applyChange.setValidTime(insuranceApply.getStartTime());
+//        }
         Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
@@ -1236,7 +1243,7 @@
             );
         }else{
             //濡傛灉淇濆崟鏈敓鎴栬�呮病鏈夐厤缃敓鏁堝ぉ鏁帮紝璁剧疆鏈熸湜鐢熸晥鏃ユ湡涓轰繚鍗曠敓鏁堝紑濮嬫椂闂�
-            applyChange.setApplyStartTime(applyChange.getValidTime());
+            applyChange.setApplyStartTime(applyChange.getValidTime().getTime()>=insuranceApply.getStartTime().getTime()?applyChange.getValidTime():insuranceApply.getStartTime());
         }
         if(applyChange.getValidTime().getTime()>=insuranceApply.getStartTime().getTime()
                 &&Objects.nonNull(solutions.getDelValidDays())){
@@ -1244,7 +1251,7 @@
                     DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
             );
         }else{
-            applyChange.setDelValidTime(applyChange.getValidTime());
+            applyChange.setDelValidTime(applyChange.getValidTime().getTime()>=insuranceApply.getStartTime().getTime()?applyChange.getValidTime():insuranceApply.getStartTime());
         }
         //浠呮敮鎸佹浛鎹�  淇濊瘉鍔犲噺淇濇棩鏈熶负鍚屼竴澶�
         if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
@@ -1490,7 +1497,7 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
             }
             //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getId(),
+            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(),
                     applyChagneDetail.getMemberIdcardNo(),applyChagneDetail.getMemberName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),
                     applyDetailJoinMapper);
 
@@ -1499,9 +1506,15 @@
                     .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))
-                    //.ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
             )>Constants.ZERO){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
             }
@@ -2118,6 +2131,7 @@
                 .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .selectAs(Solutions::getType,ApplyChange::getSolutionType)
                 .selectAs(Solutions::getId,ApplyChange::getSolutionsId)
+                .selectAs(Solutions::getDelOnlyReplace,ApplyChange::getDelOnlyReplace)
                 .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)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index fca9461..15bccce 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -264,7 +264,9 @@
                 }else{
                     d.setApplyStatus(Constants.ZERO);
                 }
-
+                if(Objects.nonNull(d.getReduceMoney())){
+                    d.setFee(d.getFee().add(d.getReduceMoney()));
+                }
             }
         }
         return pageData;
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 ddcd07f..0998336 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
@@ -227,6 +227,10 @@
         if(model.getApplyEndTime()== null || model.getStartTime().getTime()>model.getApplyEndTime().getTime() ){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风敓鏁堝懆鏈熸椂闂翠笉绗﹀悎瑕佹眰锛岃纭鍚庝慨鏀归噸璇晘");
         }
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
         //璁$畻瀹為檯鎴鏃堕棿
         Date actEndTime = new Date(model.getApplyEndTime().getTime() + (insuranceApply.getStartTime().getTime() - model.getApplyStartTime().getTime()));
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -310,7 +314,8 @@
             for (ApplyDetail applyDetail:applyDetailList) {
 
                 //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                this.checkMemberSolution(applyDetail.getSolutionId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime(),update.getEndTime());
+                this.checkMemberSolution(solutions.getBaseId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime()
+                        ,update.getEndTime(),insuranceApply.getId());
 
                 MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                 memberInsurance.setRelationType(Constants.ZERO);
@@ -1753,8 +1758,6 @@
         insuranceApply.setEndTime(countCyclePriceVO.getEndDate());
         insuranceApply.setFinalEndTime(countCyclePriceVO.getEndDate());
         insuranceApplyMapper.insert(insuranceApply);
-
-
         //澶勭悊涓嬬骇鏁版嵁
         this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO,true);
         InsuranceApply updBean = new InsuranceApply();
@@ -1949,7 +1952,7 @@
                     addMemberList.add(member);
                 }
                 //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                this.checkMemberSolution(solutions.getId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime());
+                this.checkMemberSolution(solutions.getBaseId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),insuranceApply.getId());
             }
             if(CollectionUtils.isNotEmpty(addMemberList)){
                 memberJoinMapper.insertBatchSomeColumn(addMemberList);
@@ -2044,21 +2047,24 @@
      * @param endTime
      */
     @Override
-    public void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime){
+    public void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId){
+        List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>();
         try {
-            List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
+            applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                     new MPJLambdaWrapper<ApplyDetail>()
                             .selectAll(ApplyDetail.class)
                             .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
                             .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+                            .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                             .eq(ApplyDetail::getIdcardNo,idCode)
-                            .eq(InsuranceApply::getSolutionId,solutionId)
-                            .notIn(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD
-                                    ,Constants.InsuranceApplyStatus.PLATFORM_RETURN
-                                    ,Constants.InsuranceApplyStatus.FAIL_RETURN
-                                    ,Constants.InsuranceApplyStatus.CLOSE
-                                    ,Constants.InsuranceApplyStatus.WTB_RETURN
-                                    ,Constants.InsuranceApplyStatus.WTB_CLOSED )
+                            .eq(Solutions::getBaseId,solutionId)
+                            .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId)
+                            .notIn(InsuranceApply::getStatus
+                                    ,Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.FAIL_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.CLOSE.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() )
                             .apply(" ( " +
                                     " '"+DateUtil.getPlusTime(startTime)+"'  <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " +
                                     " or " +
@@ -2066,30 +2072,32 @@
                                     " or " +
                                     " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" +
                                     " ) " ));
-            if(applyDetailList.size() >Constants.ZERO){
-                ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ョ敤鎴枫��"+memberName+" "+idCode+"銆戝湪淇濆崟銆�"+applyDetail.getApplyCode()+"銆戜笅宸插瓨鍦ㄤ笌鏈鎻愭姤鍐茬獊鐨勬棩鏈�");
-            };
         }catch (Exception e){
-
         }
+        if(applyDetailList.size() >Constants.ZERO){
+            ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�");
+        };
     }
 
-    public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){
+    public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,
+                                                 Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){
+        List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>();
         try {
-            List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
+            applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                     new MPJLambdaWrapper<ApplyDetail>()
                             .selectAll(ApplyDetail.class)
                             .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
                             .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+                            .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                             .eq(ApplyDetail::getIdcardNo,idCode)
-                            .eq(InsuranceApply::getSolutionId,solutionId)
-                            .notIn(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD
-                                    ,Constants.InsuranceApplyStatus.PLATFORM_RETURN
-                                    ,Constants.InsuranceApplyStatus.FAIL_RETURN
-                                    ,Constants.InsuranceApplyStatus.CLOSE
-                                    ,Constants.InsuranceApplyStatus.WTB_RETURN
-                                    ,Constants.InsuranceApplyStatus.WTB_CLOSED )
+                            .eq(Solutions::getBaseId,solutionId)
+                            .notIn(InsuranceApply::getStatus
+                                    ,Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.FAIL_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.CLOSE.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() )
                             .apply(" ( " +
                                     " '"+DateUtil.getPlusTime(startTime)+"'  <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " +
                                     " or " +
@@ -2097,13 +2105,13 @@
                                     " or " +
                                     " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" +
                                     " ) " ));
-            if(applyDetailList.size() >Constants.ZERO){
-                ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ョ敤鎴枫��"+memberName+" "+idCode+"銆戝湪淇濆崟銆�"+applyDetail.getApplyCode()+"銆戜笅宸插瓨鍦ㄤ笌鏈鎻愭姤鍐茬獊鐨勬棩鏈�");
-            };
         }catch (Exception e){
 
         }
+        if(applyDetailList.size() >Constants.ZERO){
+            ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�");
+        };
     }
 
     @Override
@@ -2790,7 +2798,7 @@
                 BigDecimal sumAmount = BigDecimal.ZERO;
                 List<ApplyDetail> applyDetailList = applyDetailMapper
                         .selectList(new QueryWrapper<ApplyDetail>().lambda()
-                                .eq(ApplyDetail::getChangeStatus,Constants.ZERO)
+                                .ne(ApplyDetail::getChangeStatus,Constants.TWO)
                                 .eq(ApplyDetail::getApplyId,insuranceApply.getId()));
                 if(CollectionUtils.isNotEmpty(applyDetailList)){
                     for (ApplyDetail applyDetail: applyDetailList) {
@@ -2806,16 +2814,15 @@
                             applyDetail.setCurrentFee(applyDetail.getFee());
                             applyDetailMapper.updateById(applyDetail);
                         }
-                        sumAmount = sumAmount.add(applyDetail.getCurrentFee());
+                        if(Constants.equalsInteger(applyDetail.getChangeStatus(),Constants.ZERO) || applyDetail.getEndTime().getTime()>System.currentTimeMillis()){
+                            sumAmount = sumAmount.add(applyDetail.getCurrentFee());
+                        }
                     }
                 }
                 insuranceApply.setCurrentFee(sumAmount);
                 insuranceApplyMapper.updateById(insuranceApply);
             }
         }
-//        if(1==1){
-//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
-//        }
     }
 
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 4cb0d82..ad89ff4 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -312,6 +312,9 @@
                                 " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
                                 " and ad.member_id = t.id ") ;
         if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){
+            if(Objects.isNull(memberQueryDTO.getValidTime())){
+                memberQueryDTO.setValidTime(new Date());
+            }
             lambdaWrapper = new MPJLambdaWrapper<Member>()
                     .select(Member::getId,Member::getName,Member::getIdcardNo)
                     .selectAs(Worktype::getId,Member::getWorktypeId)
@@ -339,7 +342,9 @@
                     .in(CollectionUtils.isNotEmpty(memberQueryDTO.getSubtractMemberIds()),Member::getId,memberQueryDTO.getSubtractMemberIds())
                     .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()),
                             " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+"" +
-                                    " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
+                                    " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"'" +
+//                                    " and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"'" +
+                                    " and ad.isdeleted = 0 " +
                                     " and ad.member_id = t.id ");
         }
         List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper);
@@ -498,7 +503,8 @@
         List<DispatchUnit> dispatchUnitList    = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
                     new MPJLambdaWrapper<DispatchUnit>()
                             .selectAll(DispatchUnit.class)
-                            .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" limit 1) as du_solution_id" )
+//                            .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" limit 1) as du_solution_id" )
+                            .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+"  order by b.CHECK_DATE desc  limit 1) as du_solution_id" )
                             .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
                             .eq(DispatchUnit::getStatus,Constants.ZERO)
                             .eq(DispatchUnit::getDataType,Constants.TWO)
@@ -544,7 +550,7 @@
                 DispatchUnit dispatchUnit =  dispatchUnitOptional.get();
                 model.setDuId(dispatchUnit.getId());
                 if(StringUtils.isNotBlank(model.getWorkTypeName())&&CollectionUtils.isNotEmpty(dispatchUnit.getWorktypeList())){
-                    Optional<Worktype>  worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().equals(model.getWorkTypeName())).findFirst();
+                    Optional<Worktype>  worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().replaceAll(" ","").equals(model.getWorkTypeName().replaceAll(" ",""))).findFirst();
                     if(worktypeOptional.isPresent()){
                         Worktype worktype = worktypeOptional.get();
                         model.setWorktypeId(worktype.getId());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
index ce57608..0a9df2c 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -333,6 +333,7 @@
                 new MPJLambdaWrapper<UnionApply>()
                         .selectAll(UnionApply.class)
                         .selectAs(Solutions::getName,UnionApply::getSolutionName)
+                        .selectAs(Solutions::getDelOnlyReplace,UnionApply::getDelOnlyReplace)
                         .selectAs(Company::getName,UnionApply::getCompanyName)
                         .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.UNION_APPLY_ID = t.id ) as insureNum")
                 .select(" ( select count(DISTINCT(b.MEMBER_ID)) from apply_detail b inner join insurance_apply a on b.apply_id = a.id  and a.status in ( 5 , 27 )  where b.union_apply_id=t.id and b.END_TIME > now() ) as guaranteeNum")
@@ -490,7 +491,7 @@
         BigDecimal fee = BigDecimal.ZERO;
         for (ApplyDetail applyDetail:applyDetailList) {
             //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getId(),
+            InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(),
                     applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(),
                     applyDetailJoinMapper);
 
@@ -880,7 +881,7 @@
                         .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
 
                     //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                    InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getId(),
+                    InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(),
                             applyDetail.getIdcardNo(),applyDetail.getMemberName(),unionApply.getStartTime(),unionApply.getEndTime(),
                             applyDetailJoinMapper);
 
@@ -888,6 +889,10 @@
                     applyDetail.setFee(price.multiply(new BigDecimal(maxDays)).add(serverCost));
                     applyDetail.setStartTime(unionApplyBXDDTO.getStartTime());
                     applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
+
+
+
+
                     MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                     memberInsurance.setBdCode(unionApplyBXDDTO.getCode());
                     memberInsurance.setRelationType(Constants.ZERO);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
index 614bf28..8c1d325 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -156,7 +156,8 @@
                  .selectAs(UnionApply::getCode,UnionChange::getApplyCode)
                 .selectAs(Solutions::getName,UnionChange::getSolutionsName)
                 .selectAs(UnionApply::getStartTime,UnionChange::getStartTime)
-                .selectAs(UnionApply::getEndTime,UnionChange::getEndTime) 
+                .selectAs(UnionApply::getEndTime,UnionChange::getEndTime)
+                .selectAs(Solutions::getDelOnlyReplace,UnionChange::getDelOnlyReplace)
                 .selectAs(Company::getName,UnionChange::getShopName)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 0  )",UnionChange::getAddNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 1  )",UnionChange::getDelNum)
@@ -827,9 +828,6 @@
                 ,unionChange.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(unionChange));
         applyLogMapper.insert(log);
 
-        if(true){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
-        }
     }
 
 
@@ -889,7 +887,7 @@
     public void addChangeDetailData(ApplyChange applyChange, ApplyChagneDetail detail,InsuranceApply insuranceApply,Solutions solutions
             , BigDecimalVO bigDecimalVO,List<ApplyChagneDetail> reduceList,Integer i){
         //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-        InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getId(),
+        InsuranceApplyServiceImpl.checkStaticMemberSolution(solutions.getBaseId(),
                 detail.getIdcardNo(),detail.getMemberName(),DateUtil.getMontageDate(applyChange.getApplyStartTime(),1),DateUtil.getMontageDate(detail.getEndTime(),2),
                 applyDetailJoinMapper);
 

--
Gitblit v1.9.3