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

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java    |   51 +++++-------
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java    |    4 +
 server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java              |    1 
 server/service/src/main/java/com/doumee/dao/business/model/UnionApply.java                   |    5 +
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java      |    9 ++
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java            |    5 +
 server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java     |    2 
 server/service/src/main/java/com/doumee/core/utils/DateUtil.java                             |   74 ------------------
 server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java             |    4 +
 server/service/src/main/java/com/doumee/core/utils/Constants.java                            |   13 +++
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |    6 +
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java   |   14 +++
 server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java               |    5 +
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java             |    8 +-
 server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java                  |   16 ++++
 15 files changed, 109 insertions(+), 108 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
index d64e557..48b50ec 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -101,6 +101,7 @@
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applydetail:exportExcel")
     public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
+        pageWrap.getModel().setIsExcel(Constants.ONE);
         PageData<ApplyDetail> pageData = applyDetailService.findPageForCompany(pageWrap);
         pageData.getRecords().forEach(i->{
             if(i.getSolutionType().equals(Constants.ONE)&&!i.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 6707ec4..6401da6 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -519,7 +519,7 @@
             header1.createCell(1).setCellValue("淇濋櫓鏂规");
             header1.createCell(2).setCellValue("淇濋櫓鐢熸晥璧锋湡");
             header1.createCell(3).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
-            header1.createCell(4).setCellValue("鎶曚繚浜烘暟");
+            header1.createCell(4).setCellValue("鍦ㄤ繚/鎶曚繚浜烘暟");
             header1.createCell(5).setCellValue("鎬昏垂鐢紙鍏冿級");
             for (int i = 0; i < 6; i++) {
                 configFirstCell(sxssfWorkbook,header1.getCell(i));
@@ -529,7 +529,7 @@
             header2.createCell(1).setCellValue(data.getSolutionsName());
             header2.createCell(2).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
             header2.createCell(3).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
-            header2.createCell(4).setCellValue(data.getInsureNum());
+            header2.createCell(4).setCellValue(data.getGuaranteeNum()+" / "+data.getInsureNum());
             header2.createCell(5).setCellValue(Constants.formatBigdecimal2Float(data.getFee()).toString());
             for (int i = 0; i < 6; i++) {
                 configDataCell(sxssfWorkbook,   header2.getCell(i));
@@ -1343,7 +1343,7 @@
             header1.createCell(2).setCellValue("淇濋櫓鏂规");
             header1.createCell(3).setCellValue("淇濋櫓鐢熸晥璧锋湡");
             header1.createCell(4).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
-            header1.createCell(5).setCellValue("鎶曚繚浜烘暟");
+            header1.createCell(5).setCellValue("鍦ㄤ繚/鎶曚繚浜烘暟");
             header1.createCell(6).setCellValue("鎬昏垂鐢紙鍏冿級");
             for (int i = 0; i < 7; i++) {
                 configFirstCell(sxssfWorkbook,header1.getCell(i));
@@ -1354,7 +1354,7 @@
             header2.createCell(2).setCellValue(data.getSolutionName());
             header2.createCell(3).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
             header2.createCell(4).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
-            header2.createCell(5).setCellValue(data.getInsureNum());
+            header2.createCell(5).setCellValue(data.getGuaranteeNum()+" / "+data.getInsureNum());
             header2.createCell(6).setCellValue(Constants.formatBigdecimal2Float(data.getFee()).toString());
             for (int i = 0; i < 7; i++) {
                 configDataCell(sxssfWorkbook,   header2.getCell(i));
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index a418f86..a254342 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -230,6 +230,19 @@
     }
 
 
+    /**
+     * 鍔犲噺淇濅笟鍔′娇鐢�
+     * 鏍规嵁鏂规銆佸紑濮�/缁撴潫鏃ユ湡
+     */
+    public void calculateRetreatCost(){
+
+    }
+
+
+
+
+
+
 //    public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){
 //        CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
 //        if(solutions.getInsureCycleUnit().equals(Constants.ZERO)){
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 0c8a385..7262f22 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
@@ -3151,80 +3151,6 @@
 
 
     public static void main(String[] args) {
-//       System.out.println(DateUtil.DateToStr(DateUtil.afterDateByType(
-//               DateUtil.stringToDate("2024-02-01","yyyy-MM-dd")
-//               ,1,1),"yyyy-MM-dd HH:mm:ss"));
-
-//        System.out.println( DateUtil.daysBetweenDates(DateUtil.stringToDate("2024-02-29","yyyy-MM-dd"),
-//                DateUtil.stringToDate("2024-02-01","yyyy-MM-dd"))
-//        );
-//
-//        System.out.println(DateUtil.calculateBetween(DateUtil.StringToDate("2024-02-29 23:59:59"),DateUtil.StringToDate("2024-02-01 00:00:00"),0));
-
-
-//        System.out.println(
-//                DateUtil.DateToStr(
-//
-//                DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),1) ,"yyyy-MM-dd HH:mm:ss"
-//                )
-//        );
-//
-//
-//
-//        System.out.println(
-//
-//                DateUtil.DateToStr(
-//
-//                        DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),2) ,"yyyy-MM-dd HH:mm:ss"
-//                )
-//
-//        );
-//
-//        System.out.println(
-//
-//                DateUtil.DateToStr(
-//
-//                        DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),3) ,"yyyy-MM-dd HH:mm:ss"
-//                )
-
-//        );
-
-//        System.out.println(
-//                new BigDecimal(16).divide(new BigDecimal(15.5),0, RoundingMode.CEILING)
-//        );
-        LocalDate startDate = DateUtil.StringToDate("2021-02-28 23:59:59").toInstant()
-                .atZone(ZoneId.systemDefault())
-                .toLocalDate();
-        LocalDate endDate = DateUtil.StringToDate("2022-04-05 23:59:59").toInstant()
-                .atZone(ZoneId.systemDefault())
-                .toLocalDate();
-//        LocalDate startDate= LocalDate.of(2021,2,28);
-//        LocalDate endDate =LocalDate.of(2022,4,5);
-        Period period = Period.between(startDate,endDate);
-        int months = period.getYears()* 12 + period.getMonths();
-        System.out.println("Months between the two dates: " + months);
-
-
-/*        Calendar calo = Calendar.getInstance();
-        Calendar caln = Calendar.getInstance(); // ,"yyyy-MM-dd HH:mm:ss"
-        caln.setTime(DateUtil.StringToDate("2024-03-06 23:59:59"));
-        calo.setTime(DateUtil.StringToDate("2024-02-05 00:00:00"));
-        System.out.println( DateUtil.calculateMonthsBetweenDates(calo,caln));*/
-
-//        System.out.println(
-//                DateUtil.DateToStr(
-//                        DateUtil.getNextMonthFirst(new Date())
-//                        ,"yyyy-MM-dd HH:mm:ss")
-//
-//        );
-//        System.out.println(
-//                DateUtil.DateToStr(
-//                        DateUtil.getNextMonthFirst(
-//                                DateUtil.StringToDate("2024-12-29 21:59:59")
-//                        )
-//                        ,"yyyy-MM-dd HH:mm:ss")
-//
-//        );
 
     }
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
index c7f8008..73638f3 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
@@ -46,6 +46,10 @@
     @ApiModelProperty(value = "鐢熸晥姝㈡湡 yyyy-MM-dd 缁撴潫")
     private String endTimeE;
 
+
+    @ApiModelProperty(value = "鏄惁鏄鍑猴紱0=鍚︼紱1=鏄�",hidden = true)
+    private Integer isExcel;
+
     @ApiModelProperty(value = "淇濆崟涓婚敭")
     private Integer applyId;
     @ApiModelProperty(value = "鍔犲噺淇濅富閿�")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
index fcb027b..6bf85d6 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -118,6 +118,11 @@
     @TableField(exist = false)
     private String duName;
 
+
+    @ApiModelProperty(value = "鎶曚繚鏄庣粏涓婚敭",hidden = true,notes = "鍑忎繚涓氬姟瀛樺偍锛屾彁渚涘鐞嗗埌鍔犱繚鍚庣殑淇濆崟鏄庣粏琛屼笟鍔℃暟鎹笂")
+    @TableField(exist = false)
+    private Integer applyDetailId;
+
     @ApiModelProperty(value = "宸ョ鍚嶇О")
     @TableField(exist = false)
     private String workTypeName;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
index bd88afc..7c7f991 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
@@ -108,6 +108,19 @@
 //    @ExcelColumn(name="鏉ユ簮涓婚敭锛坅pply_chagne_detail锛夊姞鍑忎繚鐢熸垚瀛樺湪")
     private Integer fromId;
 
+    @ApiModelProperty(value = "鍑忓皯璐圭敤")
+//    @ExcelColumn(name="褰撳墠璐圭敤")
+    private BigDecimal reduceMoney;
+
+    @ApiModelProperty(value = "鍔犱繚涓氬姟缁戝畾鐨勫噺淇濇暟鎹富閿�")
+//    @ExcelColumn(name="褰撳墠璐圭敤")
+    private Integer reduceId;
+
+    @ApiModelProperty(value = "鍔犲噺淇濇暟鎹姸鎬侊細0=姝e父锛�1=涓嶅彲鍑忎繚")
+//    @ExcelColumn(name="褰撳墠璐圭敤")
+    private Integer changeStatus;
+
+
     @ApiModelProperty(value = "淇濆崟鍙�")
     @TableField(exist = false)
     private String applyCode;
@@ -133,6 +146,9 @@
     @TableField(exist = false)
     private Integer applyStatus;
 
+    @ApiModelProperty(value = "鏄惁鏄鍑猴紱0=鍚︼紱1=鏄�",hidden = true)
+    @TableField(exist = false)
+    private Integer isExcel;
 
 
     @ApiModelProperty(value = "淇濆崟鐘舵��")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
index 4bce582..a823406 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -180,6 +180,11 @@
     @TableField(exist = false)
     private Integer insureNum;
 
+    @ApiModelProperty(value = "鍦ㄤ繚浜烘暟")
+    @TableField(exist = false)
+    private Integer guaranteeNum;
+
+
     @ApiModelProperty(value = "寮�绁ㄩ噾棰�")
     @TableField(exist = false)
     private BigDecimal taxesMoney;
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 0cc063a..80ad3ac 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
@@ -135,6 +135,11 @@
     @ApiModelProperty(value = "鎶曚繚浜烘暟")
     @TableField(exist = false)
     private Integer insureNum;
+
+    @ApiModelProperty(value = "鍦ㄤ繚浜烘暟")
+    @TableField(exist = false)
+    private Integer guaranteeNum;
+
     @ApiModelProperty(value = "鐘舵�佸悕绉�")
     @TableField(exist = false)
     private String statusInfo;
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 d581e01..4a5ac91 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
@@ -881,10 +881,10 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
         }
         //鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
-        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
-                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
+//        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
+//                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
+//        }
         //鏌ヨ淇濆崟涓嬫槸鍚﹀瓨鍦ㄨ繘琛屼腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁
         if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
                 .eq(ApplyChange::getApplyId,insuranceApply.getId())
@@ -1002,10 +1002,10 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
         }
         //鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
-        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
-                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
+//        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
+//                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
+//        }
         //鏌ヨ淇濆崟涓嬫槸鍚﹀瓨鍦ㄨ繘琛屼腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁
         if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
                 .eq(ApplyChange::getApplyId,insuranceApply.getId())
@@ -1042,8 +1042,11 @@
 
 
     public BigDecimal dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
-
-
+        if(Objects.nonNull(solutions.getDelOnlyReplace())&& solutions.getDelOnlyReplace().equals(Constants.ONE)){
+            if(applyChange.getDelDetailList().size() > applyChange.getAddDetailList().size()){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堜粎鏀寔鏇挎崲锛堝噺淇濅汉鏁颁笉寰楀ぇ浜庡姞淇濅汉鏁帮級");
+            }
+        }
         //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
         List<DuSolution>  duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
                 .selectAll(DuSolution.class)
@@ -1057,7 +1060,6 @@
         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()
@@ -1070,17 +1072,15 @@
 
         ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO = new ApplyChangeCyclePriceDTO();
         applyChangeCyclePriceDTO.setApplyId(insuranceApply.getId());
+
+        
         //鍔犱繚鏁版嵁
         List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
-        Integer addDetailSize  = 0 ;
+
         if (CollectionUtils.isNotEmpty(addDetailList)) {
-            addDetailSize = addDetailList.size();
             if(Objects.isNull(solutions.getCanAdd()) || solutions.getCanAdd().equals(Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
             }
-//            if(companySolution.getCanAdd().equals(Constants.ZERO)){
-//                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
-//            }
             //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁
             List<String> idcarNo = addDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList());
             Set<String> set = new HashSet<>(idcarNo);
@@ -1104,9 +1104,7 @@
 
         //鍑忎繚鏁版嵁
         List<ApplyChagneDetail> delDetailList = applyChange.getDelDetailList();
-        Integer delDetailSize  = 0 ;
         if (CollectionUtils.isNotEmpty(delDetailList)) {
-            delDetailSize  = delDetailList.size() ;
             //楠岃瘉鏄惁瀛樺湪閲嶅鏁版嵁
             List<String> idcarNo = delDetailList.stream().map(m->m.getIdcardNo()).collect(Collectors.toList());
             Set<String> set = new HashSet<>(idcarNo);
@@ -1121,11 +1119,7 @@
             fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
         }
 
-        if(Objects.nonNull(solutions.getDelOnlyReplace())&& solutions.getDelOnlyReplace().equals(Constants.ONE)){
-            if(delDetailSize > addDetailSize){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ繚闄╂柟妗堜粎鏀寔鏇挎崲锛堝噺淇濅汉鏁颁笉寰楀ぇ浜庡姞淇濅汉鏁帮級");
-            }
-        }
+       
 
         //鎹㈠巶涓氬姟
         List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
@@ -1222,7 +1216,7 @@
             applyChagneDetail.setIsdeleted(Constants.ZERO);
             applyChagneDetail.setApplyChangeId(applyChange.getId());
             applyChagneDetail.setType(Constants.ONE);
-
+            applyChagneDetail.setApplyDetailId(applyDetail.getId());
             applyChagneDetail.setStartTime(applyDetail.getStartTime());
             applyChagneDetail.setEndTime(endTime);
 
@@ -1235,6 +1229,7 @@
             //鏌ヨ鍑忎繚鏃ユ湡
 //            Integer delDays = DateUtil.daysBetweenDates(applyDetail.getEndTime(),endTime);
 //            ;
+            //鏌ヨ鍛ㄦ湡鏁伴噺
             applyChagneDetail.setFee(
                     Constants.reduceFee(solutions,
                                     Objects.isNull(insuranceApply.getServerCost())?
@@ -2144,10 +2139,10 @@
         }
         //鏍规嵁鎵瑰崟鏃ユ湡 鍜� 缁撴潫鏃ユ湡 璁$畻閲戦
         //楠岃瘉鎵瑰崟鏃ユ湡鏄惁鍦ㄥ綋鍓嶆棩鏈熷悗 涓� 鍦ㄤ繚鍗曠粨鏉熸棩鏈熷墠 鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
-        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChangeCyclePriceDTO.getValidTime()) >= Constants.ZERO
-                && DateUtil.compareDate( applyChangeCyclePriceDTO.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
+//        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChangeCyclePriceDTO.getValidTime()) >= Constants.ZERO
+//                && DateUtil.compareDate( applyChangeCyclePriceDTO.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
+//        }
         BigDecimal sumPrice = Objects.isNull(insuranceApply.getServerCost())?solutions.getPrice():solutions.getPrice().add(insuranceApply.getServerCost());
         CountCyclePriceVO returnCountCyclePriceVO = new CountCyclePriceVO();
         returnCountCyclePriceVO.setCyclePrice(Constants.addFee(solutions,
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 5cb67ec..fca9461 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
@@ -111,6 +111,8 @@
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.eq( applyDetailPageDTO.getApplyId()!=null,ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
         queryWrapper.eq( applyDetailPageDTO.getUnionApplyId()!=null,ApplyDetail::getUnionApplyId,applyDetailPageDTO.getUnionApplyId());
+        queryWrapper.ge(Objects.nonNull(applyDetailPageDTO.getIsExcel())&&Constants.equalsInteger(applyDetailPageDTO.getIsExcel(),Constants.ONE),
+                ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date()));
         List<ApplyDetail> pageData=  applyDetailJoinMapper.selectJoinList( ApplyDetail.class, queryWrapper);
         if(pageData!=null){
             int num = 1;
@@ -238,6 +240,8 @@
         queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59.0");
         queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00.0");
         queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeE()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeE()+" 23:59:59.0");
+        queryWrapper.ge(Objects.nonNull(applyDetailPageDTO.getIsExcel())&&Constants.equalsInteger(applyDetailPageDTO.getIsExcel(),Constants.ONE),
+                ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date()));
 
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(pageWrap.getSorts())){
             for(PageWrap.SortData sortData: pageWrap.getSorts()) {
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 357be91..ca61d42 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -147,6 +147,7 @@
             newVersion.setCheckDate(update.getEditDate());
             newVersion.setCheckUserId(update.getCheckUserId());
             newVersion.setCheckInfo(update.getCheckInfo());
+            newVersion.setStatus(Constants.ZERO);
             newVersion.setCreateDate(update.getCreateDate());
             newVersion.setCreator(update.getEditor());
             newVersion.setBaseId(model.getId());
@@ -209,8 +210,12 @@
 
 
             for (DuWorktype w : worktypes) {
+                if(Constants.equalsInteger(w.getStatus(),Constants.TWO)){
+                    continue;
+                }
                 DuWorktype nw = new DuWorktype();
                 BeanUtils.copyProperties(w, nw);
+                nw.setCreateDate(new Date());
                 nw.setCheckDate(update.getEditDate());
                 nw.setStatus(Constants.ONE);
                 nw.setDuSolutionId(ns.getId());
@@ -283,7 +288,6 @@
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
         //鍒犻櫎鍏朵粬寰呭姙
         noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
-
 
         return  1;
     }
@@ -709,6 +713,14 @@
     @Override
     public void updateById(DispatchUnit dispatchUnit) {
         dispatchUnitMapper.updateById(dispatchUnit);
+        //鏇存柊鍘嗗彶琛ㄧ姸鎬�
+        if(Objects.nonNull(dispatchUnit.getId())&& Objects.nonNull(dispatchUnit.getStatus())){
+            dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda()
+                    .set(DispatchUnit::getStatus,dispatchUnit.getStatus())
+                    .eq(DispatchUnit::getDataType,Constants.TWO)
+                    .eq(DispatchUnit::getBaseId,dispatchUnit.getId())
+            );
+        }
     }
 
     @Override
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 d650b07..58c7774 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
@@ -2123,7 +2123,8 @@
         queryWrapper.selectAs(Solutions::getPrice,InsuranceApply::getPrice);
         queryWrapper.selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit);
         queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays  ");
-        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
+        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id   ) as insureNum");
+        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum");
         if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
             queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney");
             queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status = 1 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
@@ -2395,6 +2396,7 @@
                 .selectAs(Company::getName,InsuranceApply::getCompanyName)
                 .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac  where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate")
                 .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
+                .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum")
                 .select(" t3.name as shopName")
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
@@ -2518,6 +2520,7 @@
                 .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                 .selectAs(Solutions::getType,InsuranceApply::getSolutionType)
                 .selectAs(Company::getName,InsuranceApply::getCompanyName)
+                .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id and ad.END_TIME > now() ) as guaranteeNum")
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                 .eq(InsuranceApply::getId,model.getId())
@@ -2534,6 +2537,7 @@
                 .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
                 .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
                 .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
+                .ge(ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date()))
                 .eq(ApplyDetail::getApplyId,model.getId());
         //鏌ヨ鏄庣粏
         List<ApplyDetail> detailList =applyDetailJoinMapper.selectJoinList(ApplyDetail.class,wrapper1);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index 0fb0948..352fecd 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -82,6 +82,10 @@
         solutions.setVersion(UUID.randomUUID().toString());//鐗堟湰鍙�
         solutions.setDataType(Constants.ZERO);
         solutions.setStatus(Constants.ZERO);
+        //2024骞�6鏈�17鏃�15:56:18 浠呮敮鎸佹浛鎹㈡ā寮忎笅锛屾壒澧炴棩鏈� 绛変簬 鎵瑰噺鏃ユ湡
+        if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
+            solutions.setAddValidDays(solutions.getDelValidDays());
+        }
         solutionsMapper.insert(solutions);//鍩虹鐗堟湰
 
         //濡傛灉鏈夊伐绉嶏紝鍒欎骇鐢熶竴涓柊鐨勬湁鏁堝巻鍙茬増鏈� ~
@@ -210,6 +214,11 @@
         solutions.setEditor(user.getId());
         solutions.setVersion(UUID.randomUUID().toString());
         solutions.setEditDate(new Date());
+
+        //2024骞�6鏈�17鏃�15:56:18 浠呮敮鎸佹浛鎹㈡ā寮忎笅锛屾壒澧炴棩鏈� 绛変簬 鎵瑰噺鏃ユ湡
+        if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
+            solutions.setAddValidDays(solutions.getDelValidDays());
+        }
         solutionsMapper.updateById(solutions);
 
         Solutions oldVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>()
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 041d2e8..d702a41 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
@@ -157,6 +157,7 @@
                 .selectAs(Solutions::getSpecialAgreement,UnionApply::getSpecialAgreement)
                 .selectAs(Solutions::getSpecialInfo,UnionApply::getSpecialInfo);
         queryWrapper.select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
+        queryWrapper.select("(select count(distinct(b.MEMBER_ID)) from apply_detail b where b.isdeleted=0   and b.END_TIME > now() and b.union_apply_id=t.id) as guaranteeNum ");
 
         if(pageWrap.getModel().getQueryFlag() == 1){
             queryWrapper.select("(select count(1) from apply_change a inner join insurance_apply b on a.apply_id = b.id  where b.union_apply_id=t.id " +
@@ -317,6 +318,7 @@
                         .selectAs(Solutions::getName,UnionApply::getSolutionName)
                         .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 where b.isdeleted=0   and b.END_TIME > now() and b.union_apply_id=t.id) as guaranteeNum ")
                         .select(" ( select group_concat(DISTINCT(cd.name)) from insurance_apply ad left join company cd on ad.company_id = cd.id where ad.UNION_APPLY_ID = t.id ) as companyNames")
                         .leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId)
                         .leftJoin(Company.class,Company::getId,UnionApply::getCompanyId)

--
Gitblit v1.9.3