From f84dcb86fc4c833202d9495a259d07082b7b72ae Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 24 一月 2024 18:04:08 +0800
Subject: [PATCH] 开发业务接口

---
 server/service/src/main/java/com/doumee/dao/business/model/Solutions.java                    |    3 
 server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyReq.java                      |   19 ++
 server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java           |   15 +
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java      |   76 +++++-----
 server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java        |    4 
 server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java              |   12 +
 server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java       |   12 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java      |   11 +
 server/dianziqian/src/main/java/com/jzq/JzqHttpApiTest.java                                  |    6 
 server/service/src/main/java/com/doumee/service/business/WorktypeService.java                |    2 
 server/platform/src/main/java/com/doumee/api/common/PublicController.java                    |   58 +++++++
 server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyDataReq.java                  |   17 ++
 server/pom.xml                                                                               |   17 ++
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java                  |    3 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                            |    1 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |   73 ++++++++++
 server/service/src/main/java/com/doumee/service/business/third/SignService.java              |    3 
 server/platform/src/main/java/com/doumee/api/business/WorktypeController.java                |    6 
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java   |    4 
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java            |   45 ++++++
 server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java               |    7 +
 server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java             |    2 
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java          |    6 
 23 files changed, 340 insertions(+), 62 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
index 015e23f..38b254b 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -71,14 +71,14 @@
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:applychagnedetail:query")
-    public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
+    public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyChagneDetail> pageWrap) {
         return ApiResponse.success(applyChagneDetailService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applychagnedetail:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
+    public void exportExcel (@RequestBody PageWrap<ApplyChagneDetail> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(ApplyChagneDetail.class).export(applyChagneDetailService.findPage(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇锋槑缁嗕俊鎭〃", response);
     }
 
diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
index a44a11f..699d0de 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -82,6 +82,18 @@
     public void exportExcel (@RequestBody PageWrap<ApplyChange> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPage(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃", response);
     }
+    @ApiOperation("瀵煎嚭鍔犲噺淇濊鎯呭崟")
+    @PostMapping("/exportJiajianBaoExcel")
+    @RequiresPermissions("business:insuranceapply:exportExcel")
+    public void exportJiajianBaoExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
+        ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcel(applyChangeService.exportJiajianBaoExcel(model),   response);
+    }
+    @ApiOperation("瀵煎嚭鎹㈠巶鐢宠璇︽儏鍗�")
+    @PostMapping("/exportChangeUnitExcel")
+    @RequiresPermissions("business:insuranceapply:exportExcel")
+    public void exportChangeUnitExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
+        ExcelExporter.build(ApplyChange.class).exportChangeUnitExcel(applyChangeService.exportChangeUnitExcel(model),   response);
+    }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
diff --git a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index ce47e32..7e3a413 100644
--- a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -89,13 +89,24 @@
     public void exportExcel (@RequestBody PageWrap<InsuranceApplyQueryDTO> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(InsuranceApply.class).export(insuranceApplyService.findPage(pageWrap).getRecords(), "鎶曚繚鐢宠淇℃伅琛�", response);
     }
-
+    @ApiOperation("瀵煎嚭鎶曚繚璇︽儏鍗�")
+    @PostMapping("/exportDetailExcel")
+    @RequiresPermissions("business:insuranceapply:exportExcel")
+    public void exportDetailExcel (@RequestBody  InsuranceApply model, HttpServletResponse response) {
+        ExcelExporter.build(InsuranceApply.class).exportApplyDetail(insuranceApplyService.findDetailForExport(model),  response);
+    }
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @RequiresPermissions("business:insuranceapply:query")
-    public ApiResponse findById(@PathVariable Integer id) {
+    public ApiResponse<InsuranceApply> findById(@PathVariable Integer id) {
         return ApiResponse.success(insuranceApplyService.findDetail(id));
     }
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/getSignLink/{id}")
+    @RequiresPermissions("business:insuranceapply:query")
+    public ApiResponse<String> getSignLink(@PathVariable Integer id) {
+        return ApiResponse.success(insuranceApplyService.getSignLink(id));
+    }
 
 
     @ApiOperation("鐢宠璁板綍鐘舵�佸鐞�")
diff --git a/server/dianziqian/src/test/java/com/jzq/common/test/JzqHttpApiTest.java b/server/dianziqian/src/main/java/com/jzq/JzqHttpApiTest.java
similarity index 97%
rename from server/dianziqian/src/test/java/com/jzq/common/test/JzqHttpApiTest.java
rename to server/dianziqian/src/main/java/com/jzq/JzqHttpApiTest.java
index 8f997e2..a0bd2bb 100644
--- a/server/dianziqian/src/test/java/com/jzq/common/test/JzqHttpApiTest.java
+++ b/server/dianziqian/src/main/java/com/jzq/JzqHttpApiTest.java
@@ -1,4 +1,4 @@
-package com.jzq.common.test;
+package com.jzq;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -219,9 +219,9 @@
     public static void main(String[] args) {
 //        new JzqHttpApiTest().testOrganizationCreate();
 //        new JzqHttpApiTest().testOrganizationAuditStatus();
-        new JzqHttpApiTest().uploadEntSign("璞嗙背绉戞妧鍏珷鏂�",new File("D://sing.png"),"jp@doumee.com");
+//        new JzqHttpApiTest().uploadEntSign("璞嗙背绉戞妧鍏珷鏂�",new File("D://sing.png"),"jp@doumee.com");
 
-        new JzqHttpApiTest().testlink( new JzqHttpApiTest().testApplySign());
+//        new JzqHttpApiTest().testlink( new JzqHttpApiTest().testApplySign());
 //        new JzqHttpApiTest().testlinkFile();
     }
 
diff --git a/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyDataReq.java b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyDataReq.java
new file mode 100644
index 0000000..59ca4ce
--- /dev/null
+++ b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyDataReq.java
@@ -0,0 +1,17 @@
+package com.jzq.common.bean.sign;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("绛剧害鏂逛俊鎭�")
+public class NotifyDataReq {
+
+    private String applyNo;//绛剧害缂栧彿	*	post	string
+    private String identityType;//	璇佷欢绫诲瀷 1韬唤璇�, 2鎶ょ収, 3鍙拌優璇�, 4娓境灞呮皯鏉ュ線鍐呭湴閫氳璇�, 11钀ヤ笟鎵х収, 12缁熶竴绀句細淇$敤浠g爜, 99鍏朵粬	*	post	int
+    private String fullName;//	鍚嶇О	*	post	string
+    private String identityCard	;//璇佷欢鍙�	*	post	string
+    private Long  optTime;//鎿嶄綔鏃堕棿(姣)	*	post	long
+    private Integer  signStatus;//	1绛剧害瀹屾垚2鎷掔3宸蹭繚鍏紙1銆佺绾﹀畬鎴愭槸鎸囩敤鎴风缃叉枃浠舵垚鍔燂紱2銆佹嫆绛炬槸鎸囩敤鎴峰湪绛剧害椤甸潰鐐逛簡鎷掔鎸夐挳锛岄渶瑕佽繘鍏ュ埌绛剧讲椤甸潰鐢ㄦ埛鎵嬪姩绛剧讲鎵嶄細鍑虹幇鎷掔鎸夐挳锛�3銆佸凡淇濆叏鏄寚鐢ㄦ埛瀹屾垚绛剧讲鍚庯紝鍚涘瓙绛句細绔嬪嵆鑷姩瀵圭敤鎴风缃茶繃绋嬬殑鎿嶄綔浠ュ強鍚堝悓鏂囦欢淇℃伅杩涜涓婇摼瀛樿瘉鍥哄寲锛屽凡淇濆叏鏄悎鍚岀殑鏈�缁堢姸鎬侊紝濡傛灉闇�瑕佷笅杞藉悎鍚岃浠ュ凡淇濆叏鐘舵�佷负鍑嗐�傦級	*	post	int
+
+}
diff --git a/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyReq.java b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyReq.java
new file mode 100644
index 0000000..7f979b3
--- /dev/null
+++ b/server/dianziqian/src/main/java/com/jzq/common/bean/sign/NotifyReq.java
@@ -0,0 +1,19 @@
+package com.jzq.common.bean.sign;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+@Data
+@ApiModel("绛剧害鏂逛俊鎭�")
+public class NotifyReq {
+
+    private String method	;//涓氬姟绫诲瀷	*	post
+    private String  version	;//鐗堟湰	*	post
+    private Long   timestamp	;//鏃堕棿鎴筹紙绮剧‘鍒版绉掞級	*	post
+    private NotifyDataReq   data	;//JSONObject缁撴灉	*	post
+    private String   sign;//	绛惧悕sign(sha1瀵瑰墠闈㈢殑鍙傛暟绛惧悕)	*	post
+    private String appkey;//	appkey	*	post
+
+
+
+}
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
index 5e820ff..0ef9bc1 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -116,7 +116,7 @@
     public void exportJiajianBaoExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
         ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcel(applyChangeService.exportJiajianBaoExcel(model),   response);
     }
-    @ApiOperation("瀵煎嚭鍔犲噺淇濊鎯呭崟")
+    @ApiOperation("瀵煎嚭鎹㈠巶鐢宠璇︽儏鍗�")
     @PostMapping("/exportChangeUnitExcel")
     @RequiresPermissions("business:insuranceapply:exportExcel")
     public void exportChangeUnitExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
diff --git a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
index b4dc7aa..269ce50 100644
--- a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
@@ -90,13 +90,13 @@
     }
 
     @ApiOperation("瀵煎叆妯℃澘")
-    @PostMapping("/importExcel/{id}")
+    @PostMapping("/importExcel")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
     })
     @RequiresPermissions("business:worktype:create")
-    public ApiResponse<List<String>> importExcel (@ApiParam(value = "file") MultipartFile file,@PathVariable Integer id) {
-        return ApiResponse.success(worktypeService .importBatch(file,id));
+    public ApiResponse<List<String>> importExcel (@ApiParam(value = "file") MultipartFile file ) {
+        return ApiResponse.success(worktypeService .importBatch(file));
     }
 
 
diff --git a/server/platform/src/main/java/com/doumee/api/common/PublicController.java b/server/platform/src/main/java/com/doumee/api/common/PublicController.java
index aabb39a..b397b98 100644
--- a/server/platform/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/platform/src/main/java/com/doumee/api/common/PublicController.java
@@ -4,17 +4,30 @@
 import com.doumee.api.BaseController;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.aliyun.ALiYunUtil;
+import com.doumee.dao.business.model.InsuranceApply;
+import com.doumee.dao.business.model.InterfaceLog;
+import com.doumee.dao.business.model.Solutions;
+import com.doumee.service.business.InsuranceApplyService;
+import com.doumee.service.business.InterfaceLogService;
+import com.doumee.service.business.third.SignService;
+import com.jzq.common.bean.sign.NotifyReq;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
@@ -26,10 +39,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * @author Eva.Caesar Liu
@@ -43,6 +53,46 @@
 public class PublicController extends BaseController {
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private InsuranceApplyService insuranceApplyService;
+    @Autowired
+    public InterfaceLogService interfaceLogService = null;
+
+    @ApiOperation("鍚涘瓙绛剧绾﹀洖璋冮�氱煡")
+    @PostMapping("/signNotify")
+    public ApiResponse updateStatus(@RequestBody NotifyReq request) {
+
+        InterfaceLog log=new InterfaceLog();
+        log.setType(1);
+        log.setCreateDate(new Date());
+        log.setIsdeleted(0);
+        log.setRequest(JSONObject.toJSONString(request));
+
+        log.setName("鍚涘瓙绛剧绾﹀洖璋冮�氱煡");
+        log.setUrl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode());
+
+        try {
+            String appKey = systemDictDataBiz.queryByCode(Constants.SIGN,Constants.SIGN_APPKEY).getCode();
+            String appSecret  = systemDictDataBiz.queryByCode(Constants.SIGN,Constants.SIGN_APPSECRET).getCode();
+            if(!StringUtils.equals(appKey,request.getAppkey())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"appkey涓嶅尮閰�");
+            }
+            String sign = DigestUtils.sha1Hex("data"+JSONObject.toJSONString(request.getData())+"method"+request.getMethod()+"version"+request.getVersion()+"timestamp"+request.getTimestamp()
+                    +"appKey"+appKey+"appSecret"+appSecret);
+            if(!StringUtils.equals(sign,request.getSign())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"楠岀涓嶉�氳繃");
+            }
+            insuranceApplyService.dealSignResult(request.getData());
+        }catch (Exception e){
+            log.setRepose("澶勭悊寮傚父锛�"+e.getMessage());
+            throw  e;
+        }finally {
+            interfaceLogService.create(log);
+        }
+
+        return ApiResponse.success(null);
+    }
+
     @ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
     @ApiImplicitParams({
         @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
diff --git a/server/pom.xml b/server/pom.xml
index 32cda2b..108a258 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -155,6 +155,16 @@
     </dependency>
     <!-- 鑾峰彇绯荤粺淇℃伅渚濊禆鍖� -->
     <dependency>
+      <groupId>com.itextpdf</groupId>
+      <artifactId>itextpdf</artifactId>
+      <version>5.5.13.3</version>
+    </dependency>
+    <dependency>
+      <groupId>e-iceblue</groupId>
+      <artifactId>spire.xls.free</artifactId>
+      <version>3.9.1</version>
+    </dependency>
+    <dependency>
       <groupId>com.github.oshi</groupId>
       <artifactId>oshi-core</artifactId>
       <version>${oshi.version}</version>
@@ -204,6 +214,13 @@
       <version>2.6.12</version>
     </dependency>
   </dependencies>
+  <repositories>
+    <repository>
+      <id>com.e-iceblue</id>
+      <name>e-iceblue</name>
+      <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
+    </repository>
+  </repositories>
   <build>
     <plugins>
       <plugin>
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
new file mode 100644
index 0000000..1e6d4e3
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java
@@ -0,0 +1,45 @@
+package com.doumee.core.annotation.excel;
+import com.spire.xls.Workbook;
+import com.spire.xls.Worksheet;
+
+/**
+ * Excel瀵煎嚭瀹炵幇
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
+ */
+public class ExcelToPdfTool  {
+
+        public static void main(String[] args)  {
+            String inputExcelPath = "D:\\1.xlsx";
+            String outputPdfPath = "D:\\555.pdf";
+/*            Workbook workbook = new Workbook();
+            workbook.loadFromFile(inputExcelPath);
+
+            //杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害
+            workbook.getConverterSetting().setSheetFitToWidth(true);
+
+            //鑾峰彇绗竴涓伐浣滆〃
+            Worksheet worksheet = workbook.getWorksheets().get(0);
+//            File f = new File(outputPdfPath);
+//            if(!f.exists()){
+//                f.createNewFile();
+//            }
+            //淇濆瓨涓篜DF鏂囨。鏍煎紡
+            worksheet.saveToPdf(outputPdfPath);*/
+
+            //鍒涘缓Workbook 瀹炰緥骞跺姞杞界ず渚嬫枃妗�
+            Workbook workbook = new Workbook();
+            workbook.loadFromFile(inputExcelPath);
+
+            //杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害
+            workbook.getConverterSetting().setSheetFitToWidth(true);
+
+            //鑾峰彇绗竴涓伐浣滆〃
+            Worksheet worksheet = workbook.getWorksheets().get(0);
+
+            //淇濆瓨涓篜DF鏂囨。鏍煎紡
+            worksheet.saveToPdf(outputPdfPath);
+
+        }
+
+}
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 4fdef25..2c7f422 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
@@ -76,6 +76,7 @@
     public static final String TAXES_FILE = "TAXES_FILE";
     public static final String APPLY_FILE ="APPLY_FILE" ;
     public static final String SETTLE_FILE ="SETTLE_FILE" ;
+    public static final String SIGN_DONE_NOTIFY_URL = "SIGN_DONE_NOTIFY_URL";
 
     /**
      * 浼佷笟鏁版嵁鏉ユ簮 0骞冲彴娉ㄥ唽 1鍚庡彴瀵煎叆
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 366c2c1..192128f 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
@@ -86,7 +86,8 @@
     @ApiModelProperty(value = "鐘舵�� 0寰呯缃� 1宸茬绔� 2宸蹭笂浼犳壒鍗� 3閫�鍥炵敵璇� 4骞冲彴鍚屾剰 5骞冲彴椹冲洖")
     @ExcelColumn(name="鐘舵�� 0寰呯缃� 1宸茬绔� 2宸蹭笂浼犳壒鍗� 3閫�鍥炵敵璇� 4骞冲彴鍚屾剰 5骞冲彴椹冲洖")
     private Integer status;
-
+    @ApiModelProperty(value = "鍦ㄧ嚎绛剧珷鍚堝悓鍙�")
+    private String signApplyNo;
     @ApiModelProperty(value = "鏈熸湜淇濋櫓鐢熸晥璧锋湡")
     @ExcelColumn(name="鏈熸湜淇濋櫓鐢熸晥璧锋湡")
     private Date validTime;
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 8dc48f3..465ae37 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
@@ -105,6 +105,9 @@
     @ApiModelProperty(value = "鍗曞彿")
     @ExcelColumn(name="鍗曞彿")
     private String code;
+    @ApiModelProperty(value = "鍦ㄧ嚎绛剧珷鍚堝悓鍙�")
+    @ExcelColumn(name="鍦ㄧ嚎绛剧珷鍚堝悓鍙�")
+    private String signApplyNo;
 
     @ApiModelProperty(value = "鐘舵�� 0寰呭鏍� 1骞冲彴閫�鍥炰繚鍗曪紙宸查��鍥烇級 2宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔狅紙寰呯缃诧級  3宸茬绔犲緟涓婁紶淇濋櫓鍗曪紙寰呭嚭鍗曪級 4淇濆崟鍑哄叿澶辫触閫�鍥烇紙宸查��鍥烇級 5宸蹭笂浼犱繚鍗曪紙淇濋殰涓級6浼佷笟鐢宠閫�鍥炰腑 7骞冲彴鍚屾剰閫�鍥烇紙宸查��鍥烇級 8浼佷笟鍏抽棴  锛堝凡鍏抽棴锛�", example = "1")
     @ExcelColumn(name="鐘舵�� 0寰呭鏍� 1骞冲彴閫�鍥炰繚鍗曪紙宸查��鍥烇級 2宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔狅紙寰呯缃诧級  3宸茬绔犲緟涓婁紶淇濋櫓鍗曪紙寰呭嚭鍗曪級 4淇濆崟鍑哄叿澶辫触閫�鍥烇紙宸查��鍥烇級 5宸蹭笂浼犱繚鍗曪紙淇濋殰涓級6浼佷笟鐢宠閫�鍥炰腑 7骞冲彴鍚屾剰閫�鍥烇紙宸查��鍥烇級 8浼佷笟鍏抽棴  锛堝凡鍏抽棴锛�")
@@ -164,4 +167,8 @@
     @ApiModelProperty(value = "澶勭悊浼佷笟鐢宠鐘舵��  0鍚屾剰 1椹冲洖")
     @TableField(exist = false)
     private int dealBackApply;
+
+    @ApiModelProperty(value = "鍦ㄧ嚎绛剧珷鍦板潃")
+    @TableField(exist = false)
+    private String signLink;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
index 9408a79..4deeefd 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -151,6 +151,9 @@
     @ApiModelProperty(value = "鍛樺伐", example = "1")
     @TableField(exist = false)
     private Integer memberId;
+    @ApiModelProperty(value = "淇濋櫓鍏徃鍚嶇О", example = "1")
+    @TableField(exist = false)
+    private String insuranceName;
 
 
     @ApiModelProperty(value = "淇濆崟涓婚敭", example = "1")
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 244bb25..dbe3a72 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
@@ -5,6 +5,8 @@
 import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
 import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
 import com.doumee.dao.business.model.InsuranceApply;
+import com.jzq.common.bean.sign.NotifyDataReq;
+
 import java.util.List;
 
 /**
@@ -116,4 +118,8 @@
     List<InsuranceApply> findListByDTO(InsuranceApplyQueryDTO model);
 
     Integer editBaoxiandan(InsuranceApply param);
+
+    String getSignLink(Integer id);
+
+    void dealSignResult(NotifyDataReq data);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/WorktypeService.java b/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
index a4dc3c4..dbfc2a6 100644
--- a/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
+++ b/server/service/src/main/java/com/doumee/service/business/WorktypeService.java
@@ -107,5 +107,5 @@
      */
     long count(Worktype worktype);
 
-    List<String> importBatch(MultipartFile file,Integer id);
+    List<String> importBatch(MultipartFile file);
 }
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 a53a69d..8483330 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
@@ -92,7 +92,7 @@
         dispatchUnitMapper.updateById(update);
         if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
             //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
-            newVersionData(model,update);
+            newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
         }else{
             //鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
             duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -190,7 +190,7 @@
         dispatchUnitMapper.updateById(update);
         if(Constants.equalsInteger(model.getStatus(),Constants.ONE)){
             //瀹℃牳閫氳繃锛屼慨鏀圭姸鎬侊紝浜х敓鍘嗗彶鐗堟湰
-            newVersionData(model,update);
+            newVersionData(dispatchUnitMapper.selectById(param.getId()),update);
         }else{
             //鏇存柊鏄庣粏鏁版嵁涓哄鏍稿け璐�
             duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
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 0c18a3c..e195f16 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
@@ -23,8 +23,10 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.SignService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.jzq.common.bean.sign.NotifyDataReq;
 import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -46,6 +48,8 @@
 
     @Autowired
     private InsuranceApplyMapper insuranceApplyMapper;
+    @Autowired
+    private ApplyChangeMapper applyChangeMapper;
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -59,6 +63,8 @@
 
     @Autowired
     private ApplyLogMapper applyLogMapper;
+    @Autowired
+    private SignService signService;
     @Autowired
     private MultifileMapper multifileMapper;
 
@@ -278,6 +284,73 @@
 
     }
     @Override
+    public  String getSignLink(Integer id) {
+        if(id == null ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        InsuranceApply model = insuranceApplyMapper.selectById(id);
+        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Constants.ApplyLogType applyLogType = null;
+        String info = "";
+            //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炲凡绛剧珷鐘舵�佷笅鐨勯��鍥炵敵璇风姸鎬佽繘琛屾搷浣�
+        if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+        }
+        Company company = user.getCompany();
+        if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.ONE)){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
+        }
+
+        Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId,model.getId())
+                .eq(Multifile::getObjType,Constants.MultiFile.BD_APPLY_PDF.getKey())
+                .eq(Multifile::getIsdeleted,Constants.ZERO).last("limit 1"));
+        if(f == null || StringUtils.isBlank(f.getFileurl())){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇寰呯绔犳枃浠跺け璐ワ紝璇疯仈绯诲钩鍙扮鐞嗗憳纭鎶曚繚鍗曟槸鍚︽纭紒");
+        }
+        String url = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode()+f.getFileurl();
+        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.applySign(company.getName(),url,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+        if(StringUtils.isBlank(applyNo) ){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        String link = signService.signLink(applyNo,company.getEmail(),company.getCode());
+        if(StringUtils.isBlank(link) ){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        InsuranceApply update= new InsuranceApply();
+        update.setId(model.getId());
+        update.setEditor(user.getId());
+        update.setEditDate(new Date());
+        update.setSignApplyNo(applyNo);
+        insuranceApplyMapper.updateById(update);
+        return  link;
+    }
+    @Override
+    public   void dealSignResult(NotifyDataReq data){
+        if(data.getApplyNo() == null ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        InsuranceApply model = insuranceApplyMapper.selectOne(new QueryWrapper<InsuranceApply>().lambda().eq(InsuranceApply::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+        if(model != null ){
+            //-----------------TUDO--------瀹屽杽绛剧害瀹屾垚涓氬姟------
+
+        }else{
+            ApplyChange applyChange = applyChangeMapper.selectOne(new QueryWrapper<ApplyChange>().lambda().eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+            if(applyChange == null){
+                throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"绯荤粺鏈壘鍒板尮閰嶅悎鍚屽彿!");
+            }
+            //-----------------TUDO-------瀹屽杽绛剧害瀹屾垚-------
+        }
+
+
+    }
+    @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer uploadToubaodan(InsuranceApply insuranceApply) {
         if(insuranceApply.getId() == null
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
index 2bc2611..591c11e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
@@ -89,7 +89,7 @@
             BeanUtils.copyProperties(w, newType);
             newType.setInsuranceId(newModel.getId());
             newType.setBaseId(w.getId());
-            newType.setDataType(Constants.ONE);
+            newType.setDataType(Constants.TWO);
             newType.setVersion(newModel.getVersion());
             w.setSortnum(num++);
             worktypeMapper.insert(newType);
@@ -186,6 +186,7 @@
         newModel.setId(null);
         newModel.setVersion(updateModel.getVersion());
         newModel.setCreateDate(new Date());
+        newModel.setName(updateModel.getName());
         newModel.setBaseId(insurance.getId());
         newModel.setDataType(Constants.TWO);
         insuranceMapper.insert(newModel);
@@ -199,8 +200,16 @@
                 .lambda()
                 .eq(Insurance::getBaseId,insurance.getId())
                 .eq(Insurance::getDataType,Constants.TWO)
+                .ne(Insurance::getId,newModel.getId())
                 .set(Insurance::getDataType,Constants.ONE)
         );
+        worktypeMapper.update(null,new UpdateWrapper<Worktype>()
+                .lambda()
+                .eq(Worktype::getBaseId,insurance.getId())
+                .eq(Worktype::getDataType,Constants.TWO)
+                .set(Worktype::getDataType,Constants.ONE)
+        );
+
         //澶勭悊宸ヤ綔淇℃伅锛屾柊澧炴渶鏂扮殑锛屽悓鏃朵骇鐢熷巻鍙茬増鏈�
         dealWorkTypeData(updateModel,newModel,insurance.getWorktypeList(),false);
     }
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 432e677..d87ceeb 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
@@ -122,7 +122,7 @@
                 ||solutions.getWorktypeIdList().size()==0
                 ||Constants.formatIntegerNum(solutions.getMaxAge()) < 0
                 ||Constants.formatIntegerNum(solutions.getMinAge()) < 0
-                ||Constants.formatIntegerNum(solutions.getPriceCycleUnit()) < 0
+//                ||Constants.formatIntegerNum(solutions.getPriceCycleUnit()) < 0
                 ||Constants.formatIntegerNum(solutions.getInsureCycle()) < 0
                 ||Constants.formatIntegerNum(solutions.getInsureCycleUnit()) < 0
                 || solutions.getMinAge() >solutions.getMaxAge()
@@ -170,7 +170,7 @@
 
         //濡傛灉淇敼锛屽垯浜х敓涓�涓柊鐨勫巻鍙茬増鏈� ~
         Solutions newModel = new Solutions();
-        BeanUtils.copyProperties(model,newModel);
+        BeanUtils.copyProperties( findById(solutions.getId()),newModel);
         newModel.setId(null);
         newModel.setVersion(solutions.getVersion());
         newModel.setCreateDate(new Date());
@@ -262,98 +262,103 @@
     @Override
     public PageData<Solutions> findPage(PageWrap<Solutions> pageWrap) {
         IPage<Solutions> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<Solutions> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         pageWrap.getModel().setDataType(Constants.ZERO);//鍙�夋嫨鍩鸿〃鏁版嵁
         pageWrap.getModel().setIsdeleted(Constants.ZERO);
+        MPJLambdaWrapper<Solutions> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.selectAll(Solutions.class);
+        queryWrapper.selectAs(Insurance::getName,Solutions::getInsuranceName);
+        queryWrapper.leftJoin(Insurance.class,Insurance::getId,Solutions::getInsuranceId);
+
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(Solutions::getId, pageWrap.getModel().getId());
+            queryWrapper.eq(Solutions::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(Solutions::getCreator, pageWrap.getModel().getCreator());
+            queryWrapper.eq(Solutions::getCreator, pageWrap.getModel().getCreator());
         }
         if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(Solutions::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(Solutions::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+            queryWrapper.ge(Solutions::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(Solutions::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
         }
         if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(Solutions::getEditor, pageWrap.getModel().getEditor());
+            queryWrapper.eq(Solutions::getEditor, pageWrap.getModel().getEditor());
         }
         if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(Solutions::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(Solutions::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+            queryWrapper.ge(Solutions::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(Solutions::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
         }
         if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(Solutions::getIsdeleted, pageWrap.getModel().getIsdeleted());
+            queryWrapper.eq(Solutions::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().like(Solutions::getName, pageWrap.getModel().getName());
+            queryWrapper.like(Solutions::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(Solutions::getRemark, pageWrap.getModel().getRemark());
+            queryWrapper.eq(Solutions::getRemark, pageWrap.getModel().getRemark());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(Solutions::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(Solutions::getStatus, pageWrap.getModel().getStatus());
         }
         if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(Solutions::getSortnum, pageWrap.getModel().getSortnum());
+            queryWrapper.eq(Solutions::getSortnum, pageWrap.getModel().getSortnum());
         }
         if (pageWrap.getModel().getInsuranceId() != null) {
-            queryWrapper.lambda().eq(Solutions::getInsuranceId, pageWrap.getModel().getInsuranceId());
+            queryWrapper.eq(Solutions::getInsuranceId, pageWrap.getModel().getInsuranceId());
         }
         if (pageWrap.getModel().getValidType() != null) {
-            queryWrapper.lambda().eq(Solutions::getValidType, pageWrap.getModel().getValidType());
+            queryWrapper.eq(Solutions::getValidType, pageWrap.getModel().getValidType());
         }
         if (pageWrap.getModel().getType() != null) {
-            queryWrapper.lambda().eq(Solutions::getType, pageWrap.getModel().getType());
+            queryWrapper.eq(Solutions::getType, pageWrap.getModel().getType());
         }
         if (pageWrap.getModel().getMinAge() != null) {
-            queryWrapper.lambda().eq(Solutions::getMinAge, pageWrap.getModel().getMinAge());
+            queryWrapper.eq(Solutions::getMinAge, pageWrap.getModel().getMinAge());
         }
         if (pageWrap.getModel().getMaxAge() != null) {
-            queryWrapper.lambda().eq(Solutions::getMaxAge, pageWrap.getModel().getMaxAge());
+            queryWrapper.eq(Solutions::getMaxAge, pageWrap.getModel().getMaxAge());
         }
         if (pageWrap.getModel().getPrice() != null) {
-            queryWrapper.lambda().eq(Solutions::getPrice, pageWrap.getModel().getPrice());
+            queryWrapper.eq(Solutions::getPrice, pageWrap.getModel().getPrice());
         }
         if (pageWrap.getModel().getTimeUnit() != null) {
-            queryWrapper.lambda().eq(Solutions::getTimeUnit, pageWrap.getModel().getTimeUnit());
+            queryWrapper.eq(Solutions::getTimeUnit, pageWrap.getModel().getTimeUnit());
         }
         if (pageWrap.getModel().getInsureCycle() != null) {
-            queryWrapper.lambda().eq(Solutions::getInsureCycle, pageWrap.getModel().getInsureCycle());
+            queryWrapper.eq(Solutions::getInsureCycle, pageWrap.getModel().getInsureCycle());
         }
         if (pageWrap.getModel().getInsureCycleUnit() != null) {
-            queryWrapper.lambda().eq(Solutions::getInsureCycleUnit, pageWrap.getModel().getInsureCycleUnit());
+            queryWrapper.eq(Solutions::getInsureCycleUnit, pageWrap.getModel().getInsureCycleUnit());
         }
         if (pageWrap.getModel().getPriceCycleUnit() != null) {
-            queryWrapper.lambda().eq(Solutions::getPriceCycleUnit, pageWrap.getModel().getPriceCycleUnit());
+            queryWrapper.eq(Solutions::getPriceCycleUnit, pageWrap.getModel().getPriceCycleUnit());
         }
         if (pageWrap.getModel().getSingleWorktype() != null) {
-            queryWrapper.lambda().eq(Solutions::getSingleWorktype, pageWrap.getModel().getSingleWorktype());
+            queryWrapper.eq(Solutions::getSingleWorktype, pageWrap.getModel().getSingleWorktype());
         }
         if (pageWrap.getModel().getEmail() != null) {
-            queryWrapper.lambda().eq(Solutions::getEmail, pageWrap.getModel().getEmail());
+            queryWrapper.eq(Solutions::getEmail, pageWrap.getModel().getEmail());
         }
         if (pageWrap.getModel().getSpecialAgreement() != null) {
-            queryWrapper.lambda().eq(Solutions::getSpecialAgreement, pageWrap.getModel().getSpecialAgreement());
+            queryWrapper.eq(Solutions::getSpecialAgreement, pageWrap.getModel().getSpecialAgreement());
         }
         if (pageWrap.getModel().getSpecialInfo() != null) {
-            queryWrapper.lambda().eq(Solutions::getSpecialInfo, pageWrap.getModel().getSpecialInfo());
+            queryWrapper.eq(Solutions::getSpecialInfo, pageWrap.getModel().getSpecialInfo());
         }
         if (pageWrap.getModel().getOrtherInfo() != null) {
-            queryWrapper.lambda().eq(Solutions::getOrtherInfo, pageWrap.getModel().getOrtherInfo());
+            queryWrapper.eq(Solutions::getOrtherInfo, pageWrap.getModel().getOrtherInfo());
         }
         if (pageWrap.getModel().getSolutionBaseId() != null) {
-            queryWrapper.lambda().eq(Solutions::getSolutionBaseId, pageWrap.getModel().getSolutionBaseId());
+            queryWrapper.eq(Solutions::getSolutionBaseId, pageWrap.getModel().getSolutionBaseId());
         }
         if (pageWrap.getModel().getVersion() != null) {
-            queryWrapper.lambda().eq(Solutions::getVersion, pageWrap.getModel().getVersion());
+            queryWrapper.eq(Solutions::getVersion, pageWrap.getModel().getVersion());
         }
         if (pageWrap.getModel().getDataType() != null) {
-            queryWrapper.lambda().eq(Solutions::getDataType, pageWrap.getModel().getDataType());
+            queryWrapper.eq(Solutions::getDataType, pageWrap.getModel().getDataType());
         }
         if (pageWrap.getModel().getBaseId() != null) {
-            queryWrapper.lambda().eq(Solutions::getBaseId, pageWrap.getModel().getBaseId());
+            queryWrapper.eq(Solutions::getBaseId, pageWrap.getModel().getBaseId());
         }
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -362,7 +367,8 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(solutionsMapper.selectPage(page, queryWrapper));
+        PageData<Solutions> pageData = PageData.from(solutionsJoinMapper.selectJoinPage(page,Solutions.class, queryWrapper));
+        return pageData;
     }
     @Override
     public PageData<Solutions> findPageCom(PageWrap<Solutions> pageWrap) {
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
index 4b99d6e..1865c45 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java
@@ -175,15 +175,15 @@
         return worktypeMapper.selectCount(wrapper);
     }
     @Override
-    public List<String> importBatch(MultipartFile file,Integer id){
-        List<Worktype> list = new ArrayList<>();
-        if(id!=null){
+    public List<String> importBatch(MultipartFile file ){
+        /*  List<Worktype> list = new ArrayList<>();
+      if(id!=null){
             Worktype param = new Worktype();
             param.setIsdeleted(Constants.ZERO);
             param.setDataType(Constants.ZERO);
             param.setInsuranceId(id);
             list = findList(param);
-        }
+        }*/
         ExcelImporter ie = null;
         List<WorktypeImport> dataList =null;
         try {
@@ -197,9 +197,9 @@
         }
          List<String> result = new ArrayList<>();
         for(WorktypeImport model : dataList){
-            if(StringUtils.isNotBlank(model.getName()) && !isNewWorkTypeByName(model.getName(),list)){
+//            if(StringUtils.isNotBlank(model.getName()) && !isNewWorkTypeByName(model.getName(),list)){
                 result.add(model.getName());
-            }
+//            }
         }
         return result;
     }
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 e89cce8..bf22a3c 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
@@ -255,7 +255,7 @@
      * @param email
      * @param postionJson
      */
-    public String applySign(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId){
+    public String applySign(String name,String fileUrl,String fullname,String creditCoe,String email,String postionJson,String singId,String notifyUrl){
       try {
           String url=SERVICE_URL+"/v2/sign/applySign";
           Map<String, Object>  params=bodyParams;
@@ -267,6 +267,7 @@
           params.put("positionType",1); //鎸囧畾閫氳繃琛ㄥ崟鍩熸柟寮忚缃瀛椾綅缃�
           params.put("fileType",1);
           params.put("needQifengSign",1);
+          params.put("notifyUrl",notifyUrl);
           JSONArray signatories=new JSONArray();
           SignatoryReq sReq=new SignatoryReq();
           sReq.setFullName(fullname); //浼佷笟濮撳悕

--
Gitblit v1.9.3