From 32929606943fedfca286b052bcb280193a3e0222 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 18 一月 2025 10:23:58 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java    |   88 ++++++++----
 server/company/src/main/java/com/doumee/api/business/CompanySolutionController.java          |    2 
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java      |   17 ++
 server/service/src/main/java/com/doumee/service/business/SolutionsBaseService.java           |    3 
 server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java     |    3 
 server/platform/src/main/java/com/doumee/api/business/SolutionsBaseController.java           |   10 +
 server/pom.xml                                                                               |    6 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |   39 ++++-
 server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java    |   51 ++++---
 server/service/src/main/java/com/doumee/service/business/third/SignService.java              |   51 +++++++
 server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java               |    7 
 server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java          |    6 
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java          |    2 
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java  |   79 +++++++++++
 14 files changed, 295 insertions(+), 69 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/CompanySolutionController.java b/server/company/src/main/java/com/doumee/api/business/CompanySolutionController.java
index 5a57c22..2ce584e 100644
--- a/server/company/src/main/java/com/doumee/api/business/CompanySolutionController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CompanySolutionController.java
@@ -92,7 +92,7 @@
 
     @ApiOperation("鍙戣捣绛剧讲")
     @GetMapping("/getSignLink")
-    @RequiresPermissions("business:contract:query")
+    @RequiresPermissions("business:companysolution:query")
     public ApiResponse<String> getSignLink (@RequestParam Integer id) {
         return ApiResponse.success(companySolutionService.getCompanySolutionSignLink(id));
     }
diff --git a/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index d8fe710..666e71b 100644
--- a/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -178,4 +178,10 @@
         return ApiResponse.success(insuranceApplyService.getApplyPower(applyPowerDTO));
     }
 
+    @ApiOperation("娴嬭瘯鍙戦�侀偖浠�")
+    @PostMapping("/testSendEmail")
+    public ApiResponse testSendEmail() {
+        insuranceApplyService.testSendEmail();
+        return ApiResponse.success(null);
+    }
 }
diff --git a/server/platform/src/main/java/com/doumee/api/business/SolutionsBaseController.java b/server/platform/src/main/java/com/doumee/api/business/SolutionsBaseController.java
index 03151e4..d25ad93 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SolutionsBaseController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SolutionsBaseController.java
@@ -106,4 +106,14 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(solutionsBaseService.findById(id));
     }
+
+
+
+    @ApiOperation("娴嬭瘯鐢熸垚涓绘柟妗�")
+    @GetMapping("/createSolutionBase")
+    public ApiResponse createSolutionBase(Integer solutionId) {
+        solutionsBaseService.createSolutionBase(solutionId);
+        return ApiResponse.success(null);
+    }
+
 }
diff --git a/server/pom.xml b/server/pom.xml
index 6f18e06..f3caa99 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -141,6 +141,12 @@
       <artifactId>alibaba-dingtalk-service-sdk</artifactId>
       <version>2.0.0</version>
     </dependency>
+    <!-- 鍦╬om.xml涓坊鍔犱緷璧� -->
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>javax.mail-api</artifactId>
+      <version>1.6.2</version>
+    </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
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 b31921d..0555a2a 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
@@ -173,6 +173,10 @@
     @TableField(exist = false)
     private Integer signType;
 
+    @ApiModelProperty(value = "鎵规敼鎻愰啋鏃堕棿 HH:mm")
+    @TableField(exist = false)
+    private String correctWarnTime;
+
     @ApiModelProperty(value = "鏂规绫诲瀷 0鐩翠繚 1濮旀墭鎶曚繚")
     @TableField(exist = false)
     private Integer solutionType;
@@ -295,7 +299,4 @@
         return taxesInvoicingVO;
     }
 
-    @ApiModelProperty(value = "鍦ㄧ嚎绛剧珷鍦板潃")
-    @TableField(exist = false)
-    private String signLink;
 }
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 9740820..1cd2051 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
@@ -184,5 +184,7 @@
      * @return
      */
     ApplyPowerVO getApplyPower(ApplyPowerDTO applyPowerDTO);
+
+    void testSendEmail();
 }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/SolutionsBaseService.java b/server/service/src/main/java/com/doumee/service/business/SolutionsBaseService.java
index d4587df..8d5c90a 100644
--- a/server/service/src/main/java/com/doumee/service/business/SolutionsBaseService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SolutionsBaseService.java
@@ -98,4 +98,7 @@
      * @return long
      */
     long count(SolutionsBase solutionsBase);
+
+
+    void createSolutionBase(Integer solutionId);
 }
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 0d224e2..a7ca3b0 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
@@ -3,6 +3,7 @@
 import cn.hutool.core.util.IdcardUtil;
 import com.alibaba.fastjson.JSONObject;
 
+import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;
@@ -991,6 +992,9 @@
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_COMPANY_COMMIT;
         ApplyLog log = new ApplyLog(applyChange,applyLogType.getName(),"",applyChange.getId(),applyLogType.getKey(), null, null);
         applyLogMapper.insert(log);
+//        if(1==1){
+//            throw new BusinessException(ResponseStatus.DATA_EMPTY );
+//        }
         return applyChange.getId();
     }
 
@@ -1292,18 +1296,35 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑洪櫓鏃犳硶杩涜鍑忎繚");
             };
             //2024-10-29 15:17:54 鏌ヨ浜哄憳鏄惁宸插噺淇� 宸插噺淇濆悗鏃犳硶鍐嶆鍑忎繚
-            if(applyChangeDetailJoinMapper.selectJoinCount(new MPJLambdaWrapper<ApplyChagneDetail>()
+//            if(applyChangeDetailJoinMapper.selectJoinCount(new MPJLambdaWrapper<ApplyChagneDetail>()
+//                    .leftJoin(ApplyChange.class,ApplyChange::getId,ApplyChagneDetail::getApplyChangeId)
+//                    .eq(ApplyChagneDetail::getType,Constants.ONE)
+//                    .eq(ApplyChange::getApplyId,applyChange.getApplyId())
+//                            .eq(ApplyChagneDetail::getMemberId,applyChagneDetail.getMemberId())
+//                    .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.CLOSE.getKey()
+//                            ,Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey()
+//                    )
+//            )>Constants.ZERO){
+//                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑忎繚鏃犳硶鍐嶆杩涜鍑忎繚");
+//            };
+            //2025-1-16 09:11:14 鏍规嵁鏌ヨ褰撳墠浜哄憳鏈�鍚庝竴娆$殑鍔犲噺淇濊褰� 濡傛灉鏈�鍚庝竴鏉¤褰曟槸鍔犱繚杩涘叆 鍒欏彲浠ュ噺淇� 濡傛灉鏈�鍚庝竴鏉¤褰曟槸鍑忎繚璁板綍 鍒欎笉鍙互鍑忎繚 濡傛灉涓虹┖ 杩欏彲浠ヨ繘琛屾搷浣�
+            ApplyChagneDetail lastApplyChagneDetail = applyChangeDetailJoinMapper.selectJoinOne(ApplyChagneDetail.class,
+                    new MPJLambdaWrapper<ApplyChagneDetail>()
                     .leftJoin(ApplyChange.class,ApplyChange::getId,ApplyChagneDetail::getApplyChangeId)
-                    .eq(ApplyChagneDetail::getType,Constants.ONE)
+                    .ne(ApplyChagneDetail::getType,Constants.TWO)
                     .eq(ApplyChange::getApplyId,applyChange.getApplyId())
-                            .eq(ApplyChagneDetail::getMemberId,applyChagneDetail.getMemberId())
+                    .eq(ApplyChagneDetail::getMemberId,applyChagneDetail.getMemberId())
                     .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.CLOSE.getKey()
-                            ,Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey() 
+                            ,Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey()
                     )
-            )>Constants.ZERO){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑忎繚鏃犳硶鍐嶆杩涜鍑忎繚");
-            };
-
+                    .orderByDesc(ApplyChagneDetail::getId)
+                    .last(" limit 1 ")
+            );
+            if(Objects.nonNull(lastApplyChagneDetail)){
+                if(Constants.equalsInteger(lastApplyChagneDetail.getType(),Constants.ONE)){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝凡鍑忎繚鏃犳硶鍐嶆杩涜鍑忎繚");
+                }
+            }
             //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
             if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
                     .lambda()
@@ -2280,18 +2301,18 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
         }
         String fileUrl = null;
-//        if(Constants.equalsObject(model.getType(), Constants.ONE)){
-//              fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","鎶曚繚浼佷笟");
-//        }else{
-//            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","鎶曚繚浼佷笟");
-//        }
+        if(Constants.equalsObject(model.getType(), Constants.ONE)){
+              fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","鎶曚繚浼佷笟");
+        }else{
+            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","鎶曚繚浼佷笟");
+        }
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
-//        notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
-//        String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚浼佷笟绛剧珷",company.getSignId(),notifyUrl);
+        notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
+        String applyNo = signService.applySignLocalFileByParam(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚浼佷笟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
         //涓存椂浣跨敤
-        fileUrl =  
-                "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf";
-        String applyNo = signService.applySign(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl);
+//        fileUrl =
+//                "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241120/1c80f0d7-ab35-4355-b9fe-944464643115.pdf";
+//        String applyNo = signService.applySign(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl);
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
         }
@@ -2538,19 +2559,19 @@
             if(!Constants.equalsInteger(Constants.ZERO,model.getStatus())){
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔绛剧珷鎿嶄綔锛�");
             }
-//            if(Constants.equalsObject(model.getType(), Constants.ONE)){
-//                fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","琚繚闄╀汉");
-//            }else{
-//                fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","琚繚闄╀汉");
-//            }
+            if(Constants.equalsObject(model.getType(), Constants.ONE)){
+                fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�","琚繚闄╀汉");
+            }else{
+                fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃","琚繚闄╀汉");
+            }
             String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
             notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
 
             //涓存椂浣跨敤
-            fileUrl =  "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
-            String applyNo = signService.applySignDoByParam(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
+//            fileUrl =  "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
+//            String applyNo = signService.applySignDoByParam(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
 
-//            String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
+            String applyNo = signService.applySignLocalFileByParam(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"浜哄憳鍚嶅崟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
             if(StringUtils.isBlank(applyNo) ){
                 throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
             }
@@ -2656,16 +2677,16 @@
                 throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟鏁版嵁");
             }
             SaveUnionChangeDTO saveUnionChangeDTO = new SaveUnionChangeDTO();
-            saveUnionChangeDTO.setApplyDate(update.getApplyStartTime());
+//            saveUnionChangeDTO.setApplyDate(update.getApplyStartTime());
+            saveUnionChangeDTO.setApplyDate(model.getValidTime());
             List<Integer> applyIds = new ArrayList<>();
             applyIds.add(model.getId());
             saveUnionChangeDTO.setApplyIds(applyIds);
             saveUnionChangeDTO.setApplyChange(model);
             saveUnionChangeDTO.setUnionApplyId(insuranceApply.getUnionApplyId());
             saveUnionChangeDTO.setBusinessType(model.getType());
-            if(Constants.equalsInteger(model.getType(),Constants.ONE)){
-                saveUnionChangeDTO.setApplyDate(model.getApplyStartTime());
-            }
+//            if(Constants.equalsInteger(model.getType(),Constants.ONE)){
+//            }
             if(Constants.equalsInteger(user.getType(),Constants.TWO)){
                 saveUnionChangeDTO.setShopId(user.getCompanyId());
             }else{
@@ -2676,8 +2697,15 @@
                 saveUnionChangeDTO.setShopId(companySolution.getShopId());
 
             }
+//            if(1==1){
+//                throw new BusinessException(ResponseStatus.DATA_EMPTY);
+//            }
+
             unionChangeService.merge(saveUnionChangeDTO);
         }
+//        if(1==1){
+//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+//        }
         return  1;
 
     }
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 01050aa..e136e8b 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
@@ -1104,6 +1104,7 @@
 
 
 
+
     private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) {
         if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){
             return;
@@ -1116,6 +1117,25 @@
         if(file!=null && file.isFile()){
             Map<String,Object> files = new HashMap<>();
             files.put("name",f.getName());
+            files.put("file",file);
+            email.setFileList(new ArrayList<>());
+            email.getFileList().add(files);
+            smsEmailService.sendEmail(email);
+            file.delete();//鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢
+        }
+    }
+
+
+    @Override
+    public void testSendEmail(){
+        SmsEmail email = new SmsEmail();
+        email.setTitle("娴嬭瘯閭欢");
+        email.setEmail("94314517@qq.com");
+        email.setContent("鏉ヨ嚜浼佷笟銆愭祴璇曚紒涓氥�戝叧浜庝繚闄╂柟妗堛�愭祴璇曟柟妗堛�戠殑娴嬭瘯閭欢");
+        File file = Constants.getFileByNetFile("https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20250116/600faf2f-5ba2-44e2-9a96-c99052dc013d.pdf","1111.pdf");
+        if(file!=null && file.isFile()){
+            Map<String,Object> files = new HashMap<>();
+            files.put("name","娴嬭瘯鏂囦欢");
             files.put("file",file);
             email.setFileList(new ArrayList<>());
             email.getFileList().add(files);
@@ -2270,8 +2290,6 @@
     }
 
 
-
-
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer updateData(InsuranceApply insuranceApply) {
@@ -3024,8 +3042,8 @@
                 .selectAs(Solutions::getType,InsuranceApply::getSolutionType)
                 .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                 .selectAs(Solutions::getHasDispatchUnit,InsuranceApply::getHasDispatchUnit)
-                .selectAs(Solutions::getSignType,InsuranceApply::getSignType)
                 .selectAs(Company::getName,InsuranceApply::getCompanyName)
+                .selectAs(Solutions::getCorrectWarnTime,InsuranceApply::getCorrectWarnTime)
                 .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad left join  apply_change a on a.id = ad.APPLY_CHANGE_ID  where t.id = a.APPLY_ID  and a.status = 2  )",InsuranceApply::getChangeMoney)
                 .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")
@@ -3036,16 +3054,20 @@
                 .leftJoin(Company.class,Company::getId,Solutions::getShopId)
                 .eq(InsuranceApply::getId,id)
                 .last("limit 1");
-
         InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper);
         if(Objects.isNull(insuranceApply)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
+        this.dealDataDetail(insuranceApply);
+        return insuranceApply;
+    }
 
+    public void dealDataDetail(InsuranceApply insuranceApply){
         Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
         }
+        insuranceApply.setCorrectWarnTime(solutions.getCorrectWarnTime());
         if(solutions.getDataType().equals(Constants.ONE)){
             Solutions newVersionSolution = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
             if(Objects.isNull(newVersionSolution)){
@@ -3061,10 +3083,8 @@
         initApplyStatus(insuranceApply);
         //鏌ヨ闄勪欢鏁版嵁
         initImgData(insuranceApply);
-
         insuranceApply.setChangeMoney(Constants.getTwoPoint(insuranceApply.getChangeMoney()));
         insuranceApply.setFee(Constants.getTwoPoint(insuranceApply.getFee()));
-
         //鏌ヨ鎿嶄綔璁板綍
         List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
                 new MPJLambdaWrapper<ApplyLog>()
@@ -3079,7 +3099,6 @@
                         .orderByAsc(ApplyLog::getCreateDate)
         );
         insuranceApply.setApplyLogList(applyLogList);
-        return insuranceApply;
     }
 
     private void setServiceDays(InsuranceApply insuranceApply) {
@@ -3573,11 +3592,11 @@
         if(solutions.getType().equals(Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝闈炲鎵樹繚鏂规淇濆崟锛屾棤娉曡繘琛岃鎿嶄綔!");
         }
-        String fileUrl = "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";//ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"浜哄憳鍚嶅崟");
+        String fileUrl = ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"浜哄憳鍚嶅崟");
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
-        //String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚鍚嶅崟绛剧珷",company.getSignId(),notifyUrl);
-        String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),model.getSignKeyword(),company.getSignId(),notifyUrl);
+        String applyNo = signService.applySignLocalFileByParam(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚鍚嶅崟绛剧珷",company.getSignId(),notifyUrl,new Float(0.7));
+//        String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),model.getSignKeyword(),company.getSignId(),notifyUrl);
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
         }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
index 93f38be..791341b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
@@ -22,6 +22,7 @@
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -442,4 +443,82 @@
         QueryWrapper<SolutionsBase> wrapper = new QueryWrapper<>(solutionsBase);
         return solutionsBaseMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void createSolutionBase(Integer solutionId){
+        List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda()
+                    .eq(Objects.nonNull(solutionId),Solutions::getId,solutionId)
+                .isNull(Solutions::getParentId).eq(Solutions::getDataType,Constants.ZERO).eq(Solutions::getIsdeleted,Constants.ZERO));
+        for (Solutions solutions: solutionsList) {
+            SolutionsBase solutionsBase = new SolutionsBase();
+            solutionsBase.setCreator(solutions.getCreator());
+            solutionsBase.setCreateDate(new Date());
+            solutionsBase.setIsdeleted(Constants.ZERO);
+            solutionsBase.setName(solutions.getName());
+            solutionsBase.setStatus(solutions.getStatus());
+            solutionsBase.setSortnum(Constants.ZERO);
+            solutionsBase.setInsuranceId(solutions.getInsuranceId());
+            solutionsBase.setValidType(solutions.getValidType());
+            solutionsBase.setMinAge(solutions.getMinAge());
+            solutionsBase.setMaxAge(solutions.getMaxAge());
+            solutionsBase.setSingleWorktype(solutions.getSingleWorktype());
+            solutionsBase.setSpecialInfo(solutions.getSpecialInfo());
+            solutionsBase.setSpecialAgreement(solutions.getSpecialAgreement());
+            solutionsBase.setOrtherInfo(solutions.getOrtherInfo());
+            solutionsBase.setDataType(Constants.ZERO);
+            solutionsBase.setValidTypeNum(solutions.getValidTypeNum());
+            solutionsBase.setShopId(solutions.getShopId());
+            solutionsBase.setAddValidDays(solutions.getAddValidDays());
+            solutionsBase.setDelValidDays(solutions.getDelValidDays());
+            solutionsBase.setCanAdd(solutions.getCanAdd());
+            solutionsBase.setCanReduce(solutions.getCanReduce());
+            solutionsBase.setCanChangeUnit(solutions.getCanChangeUnit());
+            solutionsBase.setDelOnlyReplace(solutions.getDelOnlyReplace());
+            solutionsBase.setCompanyName(solutions.getCompanyName());
+            solutionsBase.setCompanyName(solutions.getCompanyName());
+            solutionsBase.setCorrectWarnTime("18:30");
+            solutionsBaseMapper.insert(solutionsBase);
+
+
+            //濡傛灉鏈夊伐绉嶏紝鍒欎骇鐢熶竴涓柊鐨勬湁鏁堝巻鍙茬増鏈� ~
+            SolutionsBase newModel = new SolutionsBase();
+            BeanUtils.copyProperties(solutionsBase,newModel);
+            newModel.setId(null);
+            newModel.setBaseId(solutionsBase.getId());
+            newModel.setDataType(Constants.TWO);
+            solutionsBaseMapper.insert(newModel);
+
+            List<SolutionWorktype> solutionWorktypeList = solutionWorktypeJoinMapper.selectList(new QueryWrapper<SolutionWorktype>().lambda().eq(SolutionWorktype::getType,Constants.ZERO).eq(SolutionWorktype::getSolutionId,solutions.getId()));
+
+            Integer num = 1;
+            for(SolutionWorktype solutionWorktype : solutionWorktypeList) {
+                //鍩虹鐗堟湰
+                SolutionWorktype w = new SolutionWorktype();
+                w.setSolutionId(solutionsBase.getId());
+                w.setIsdeleted(Constants.ZERO);
+                w.setCreator(newModel.getCreator());
+                w.setCreateDate(solutionsBase.getCreateDate());
+                w.setStatus(Constants.ZERO);
+                w.setSortnum(num++);
+                w.setWorktypeId(solutionWorktype.getWorktypeId());
+                w.setType(Constants.ONE);
+                solutionWorktypeJoinMapper.insert(w);
+
+                //鍘嗗彶鐗堟湰鐨勫伐绉嶄俊鎭�
+                SolutionWorktype newType = new SolutionWorktype();
+                BeanUtils.copyProperties(w, newType);
+                newType.setSolutionId(newModel.getId());
+                solutionWorktypeJoinMapper.insert(newType);
+            }
+
+            solutionsMapper.update(null,new UpdateWrapper<Solutions>().lambda().set(Solutions::getParentId,solutionsBase.getId())
+                    .and(i->i.eq(Solutions::getId,solutions.getId()).or().eq(Solutions::getBaseId,solutions.getId()))
+            );
+        }
+    }
+
+
+
 }
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 3ecda64..2acfe51 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
@@ -221,7 +221,22 @@
 
     @Override
     public void deleteById(Integer id) {
-        solutionsMapper.deleteById(id);
+        //鏌ヨ鏄惁宸插瓨鍦ㄤ娇鐢ㄤ腑鐨勪繚鍗�
+        if(insuranceApplyMapper.selectCount(new QueryWrapper<InsuranceApply>().lambda()
+                .apply(" solution_id in (  select id from solutions where BASE_ID = "+id+" or id = "+id+"  )" )
+                .notIn(InsuranceApply::getStatus
+                        ,Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()
+                        ,Constants.InsuranceApplyStatus.CLOSE.getKey()
+                        ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey()
+                )
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪宸叉姇淇濈殑淇濆崟鏁版嵁,鏃犳硶杩涜鍒犻櫎");
+        };
+        solutionsMapper.update(null,new UpdateWrapper<Solutions>()
+                .lambda()
+                .set(Solutions::getIsdeleted,Constants.ONE)
+                .and(i->i.eq(Solutions::getId,id).or().eq(Solutions::getBaseId,id))
+        );
     }
 
     @Override
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 161d508..154dd04 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
@@ -976,8 +976,6 @@
                     applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
 
 
-
-
                     MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                     memberInsurance.setBdCode(unionApplyBXDDTO.getCode());
                     memberInsurance.setRelationType(Constants.ZERO);
@@ -1068,6 +1066,7 @@
                 ,unionApply.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(unionApply));
         applyLogMapper.insert(log);
 
+
     }
 
 
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 9c2b9a9..deac02d 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
@@ -263,6 +263,9 @@
         if (pageWrap.getModel().getCreator() != null) {
             queryWrapper.eq(UnionChange::getCreator, pageWrap.getModel().getCreator());
         }
+        if (pageWrap.getModel().getSolutionsName() != null) {
+            queryWrapper.eq(Solutions::getName, pageWrap.getModel().getSolutionsName());
+        }
 
         if (pageWrap.getModel().getQueryStartTime() != null) {
             queryWrapper.ge(UnionChange::getCreateDate, pageWrap.getModel().getQueryStartTime() +" 00:00:00" );
@@ -351,10 +354,10 @@
         if(!(Constants.equalsInteger(user.getType(),Constants.ZERO) || Constants.equalsInteger(user.getType(),Constants.TWO))){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴峰钩鍙扮敤鎴凤紝鏃犳硶杩涜璇ユ搷浣�");
         }
-        if(saveUnionChangeDTO.getBusinessType().equals(Constants.ZERO)||Objects.isNull(saveUnionChangeDTO.getApplyDate())){
-            //2024骞�5鏈�9鏃�14:59:24  淇敼 榛樿鍏ュ綋鍓嶅ぉ
-            saveUnionChangeDTO.setApplyDate(DateUtil.getMontageDate(new Date(),1));
-        }
+//        if(saveUnionChangeDTO.getBusinessType().equals(Constants.ZERO)||Objects.isNull(saveUnionChangeDTO.getApplyDate())){
+//            //2024骞�5鏈�9鏃�14:59:24  淇敼 榛樿鍏ュ綋鍓嶅ぉ
+//            saveUnionChangeDTO.setApplyDate(DateUtil.getMontageDate(new Date(),1));
+//        }
         if(Objects.isNull(saveUnionChangeDTO)
                 || Objects.isNull(saveUnionChangeDTO.getApplyIds())
                 || Objects.isNull(saveUnionChangeDTO.getApplyDate())
@@ -626,6 +629,7 @@
         String companyName = "";
         String creditCode = "";
         String email = "";
+        String signId = "";
         if(Constants.equalsInteger(user.getType(),Constants.TWO)){
             if(!unionChange.getShopId().equals(user.getCompanyId())){
                 throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧烽潪鎮ㄧ殑鍚堝苟鍗曪紝鎮ㄦ棤娉曡繘琛屾搷浣滐紒");
@@ -637,6 +641,7 @@
             companyName = company.getName();
             creditCode = company.getCode();
             email = company.getEmail();
+            signId = company.getSignId();
         }else{
                 companyName = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PLAT_COMPANY_NAME).getCode();
                 creditCode = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PLAT_CREDIT_CODE).getCode();
@@ -655,17 +660,17 @@
 
 
         String fileUrl = null;
-//        if(Constants.equalsObject(unionChange.getType(), Constants.ONE)){
-//            fileUrl = ExcelExporter.build(UnionChange.class).exportUnionChangeOtherUnitExcelToPdf(unionChange,"鎹㈠巶鐢宠琛�");
-//        }else{
-//            fileUrl = ExcelExporter.build(UnionChange.class).exportUnionChangeExcelToPdf(unionChange,"鍔犲噺淇濈敵璇疯〃");
-//        }
+        if(Constants.equalsObject(unionChange.getType(), Constants.ONE)){
+            fileUrl = ExcelExporter.build(UnionChange.class).exportUnionChangeOtherUnitExcelToPdf(unionChange,"鎹㈠巶鐢宠琛�");
+        }else{
+            fileUrl = ExcelExporter.build(UnionChange.class).exportUnionChangeExcelToPdf(unionChange,"鍔犲噺淇濈敵璇疯〃");
+        }
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",unionChange.getId().toString());
-//        String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鍚堝苟鍗曪紙鍔犲噺淇�/鎹㈠巶锛夌敵璇风缃�",company.getSignId(),notifyUrl);
+        String applyNo = signService.applySignLocalFileByParam(companyName,companyName,fileUrl,creditCode,email,"鍚堝苟鍗曪紙鍔犲噺淇�/鎹㈠巶锛夌敵璇风缃�",null,notifyUrl,new Float(0.7));
         //涓存椂浣跨敤
-        fileUrl =    "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
-        String applyNo = signService.applySignWidthQifengSet(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl,new Float(0.7));
+//        fileUrl =    "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";
+//        String applyNo = signService.applySignWidthQifengSet(companyName,fileUrl,companyName,creditCode,email,"浜哄憳鍚嶅崟绛剧珷",null,notifyUrl,new Float(0.7));
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
         }
@@ -1064,17 +1069,19 @@
         BigDecimal reduceFee = BigDecimal.ZERO;
 
         //濡傛灉鎵瑰崟鏃ユ湡 澶т簬 鍛樺伐淇濆崟鐨勫紑濮嬫棩鏈�
-        if(applyChange.getDelValidTime().getTime() > oldModel.getStartTime().getTime()){
-            if(reduceDate.getTime()>oldModel.getStartTime().getTime()){
-                reduceDate = DateUtil.getMontageDate(oldModel.getStartTime(), 3);
-            }else{
-                reduceDate = DateUtil.getMontageDate(applyChange.getDelValidTime(), 3);
-            }
-            //鍑忎繚璁板綍鎿嶄綔鍚庣殑鎬昏垂鐢�
-            reduceFee = Constants.reduceFee(
-                    solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),reduceDate) ;
+        if(reduceDate.getTime() > oldModel.getStartTime().getTime()){
+            reduceDate = DateUtil.getMontageDate(applyChange.getDelValidTime(), 3);
+//            if(reduceDate.getTime()<oldModel.getStartTime().getTime()){
+//                reduceDate = DateUtil.getMontageDate(oldModel.getStartTime(), 3);
+//            }else{
+//                reduceDate = DateUtil.getMontageDate(applyChange.getDelValidTime(), 3);
+//            }
+        }else{
+            reduceDate = DateUtil.getMontageDate(oldModel.getStartTime(), 3);
         }
-
+        //鍑忎繚璁板綍鎿嶄綔鍚庣殑鎬昏垂鐢�
+        reduceFee = Constants.reduceFee(
+                solutions,fee,insuranceApply.getStartTime(),insuranceApply.getFinalEndTime(),oldModel.getStartTime(),reduceDate) ;
 
         BigDecimal pullFee = BigDecimal.ZERO;
         if (oldModel.getStartTime().getTime() < System.currentTimeMillis()) {
diff --git a/server/service/src/main/java/com/doumee/service/business/third/SignService.java b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
index 16b5bcb..81e40c6 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/SignService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
@@ -379,6 +379,57 @@
 
     }
 
+    /**
+     * 鍙戣捣绛剧害
+     * @param name
+     * @param file
+     * @param creditCoe
+     * @param email
+     * @param postionJson
+     */
+    public String applySignLocalFileByParam(String name,String fullname,String file,String creditCoe,String email,String postionJson,String singId,String notifyUrl,Float qifengSet){
+        try {    initParams();
+            String url=SERVICE_URL+"/v2/sign/applySign";
+            Map<String, Object>  params=bodyParams;
+            params.put("contractName",name); //鍚堝悓鍚嶇О
+            params.put("serverCa",1); //浣跨敤浜戣瘉涔�
+            params.put("file",new File(file));
+            params.put("dealType",5); //鎸囧畾鍚堝悓鏂囦欢绛剧讲鏂瑰紡 5 涓洪儴鍒嗚嚜鍔ㄧ
+            params.put("positionType",0); //鎸囧畾閫氳繃琛ㄥ崟鍩熸柟寮忚缃瀛椾綅缃�
+            params.put("fileType",0);
+            params.put("needQifengSign",1);
+            params.put("notifyUrl",notifyUrl);
+            JSONArray signatories=new JSONArray();
+            SignatoryReq sReq=new SignatoryReq();
+            sReq.setFullName(fullname); //浼佷笟濮撳悕
+            sReq.setIdentityType(11); //璇佷欢绫诲瀷
+            sReq.setIdentityCard(creditCoe);//钀ヤ笟鎵х収鍙�
+            sReq.setEmail(email); //鍦ㄥ悰瀛愮娉ㄥ唽璁よ瘉鐨勯偖绠�
+//        sReq.setChapteJson("[{\"page\":0,\"chaptes\":[{\"offsetX\":0.12,\"offsetY\":0.23}]},{\"page\":1,\"chaptes\":[{\"offsetX\":0.45,\"offsetY\":0.67}]}]");
+//          sReq.setChapteJson(postionJson);
+//          sReq.setSearchKey(postionJson);
+            sReq.setSignId(singId);
+            sReq.setQiFengOffset(qifengSet);
+            sReq.setSearchConvertExtend("{\"fixX\":-80,\"fixY\":-80}");
+            sReq.setNoNeedVerify(1);
+            signatories.add(sReq);
+            params.put("signatories",signatories.toJSONString());
+            System.out.println(signatories.toJSONString());
+            String str= HttpClientUtils.init().getPost(url,null,params,true);
+            System.out.println(str);
+            saveInterfaceLog(url,"銆愮數瀛愮銆戝彂璧风绾�",JSONObject.toJSONString(params),str);
+            JSONObject json = JSONObject.parseObject(str);
+            if(json!=null && json.getBoolean("success")){
+                return  json.getString("data");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+
+        }
+        return null;
+
+    }
+
 
     /**
      * 鑾峰彇绛剧讲閾炬帴鍦板潃锛堢缃查〉闈㈠湴鍧�锛�

--
Gitblit v1.9.3