From 553831c82c2e8f8ff7b230c4d536cf99c47ece5b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 18 一月 2024 18:33:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java               |   25 +
 server/service/src/main/java/com/doumee/service/business/impl/SolutionWorktypeServiceImpl.java |    5 
 server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java              |   32 +
 server/service/src/main/java/com/doumee/dao/business/join/InsuranceApplyJoinMapper.java        |   13 
 server/service/src/main/java/com/doumee/service/business/impl/WorktypeServiceImpl.java         |    7 
 server/service/src/main/java/com/doumee/service/business/WorktypeService.java                  |    9 
 server/company/src/main/java/com/doumee/api/business/SolutionsController.java                  |    6 
 server/service/src/main/java/com/doumee/service/business/SolutionsService.java                 |    2 
 server/service/src/main/java/com/doumee/dao/business/vo/SolutionsVO.java                       |  106 +++++
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java   |   91 +---
 server/service/src/main/java/com/doumee/dao/business/dto/DispatchUnitAuditDTO.java             |   31 +
 server/service/src/main/java/com/doumee/dao/business/model/DuSolution.java                     |   11 
 server/service/src/main/java/com/doumee/dao/business/dto/SolutionsDTO.java                     |   33 +
 server/service/src/main/java/com/doumee/dao/business/join/DuLogJoinMapper.java                 |   11 
 server/service/src/main/java/com/doumee/dao/business/model/DuLog.java                          |   10 
 server/service/src/main/java/com/doumee/dao/business/dto/SaveDispatchUnitDTO.java              |   35 +
 server/service/src/main/java/com/doumee/dao/business/model/DispatchUnit.java                   |   21 +
 server/service/src/main/java/com/doumee/dao/business/join/DuSolutionJoinMapper.java            |   12 
 server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java             |    5 
 server/service/src/main/java/com/doumee/dao/business/model/DuWorktype.java                     |    4 
 server/company/src/main/java/com/doumee/api/business/WorktypeController.java                   |   14 
 server/service/src/main/java/com/doumee/dao/business/dto/SaveDuWorkTypeDTO.java                |   33 +
 server/service/src/main/java/com/doumee/dao/business/dto/SaveDuSolutionDTO.java                |   32 +
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java     |  415 ++++++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/business/join/DuWorkTypeJoinMapper.java            |   13 
 server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java                 |   10 
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java            |    3 
 server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java           |   40 ++
 28 files changed, 962 insertions(+), 67 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
index 993c1e1..9d78f0a 100644
--- a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
+++ b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
 import com.doumee.dao.business.model.DispatchUnit;
 import com.doumee.service.business.DispatchUnitService;
 import io.swagger.annotations.Api;
@@ -34,9 +35,27 @@
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @RequiresPermissions("business:dispatchunit:create")
-    public ApiResponse create(@RequestBody DispatchUnit dispatchUnit) {
-        return ApiResponse.success(dispatchUnitService.create(dispatchUnit));
+    public ApiResponse create(@RequestBody SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        return ApiResponse.success(dispatchUnitService.create(saveDispatchUnitDTO));
     }
+
+    @PreventRepeat
+    @ApiOperation("娣诲姞宸ョ")
+    @PostMapping("/createSolution")
+    @RequiresPermissions("business:dispatchunit:create")
+    public ApiResponse createSolution(@RequestBody SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        return ApiResponse.success(dispatchUnitService.createSolution(saveDispatchUnitDTO));
+    }
+
+
+    @ApiOperation("淇敼淇℃伅")
+    @PostMapping("/editDispatchUnit")
+    @RequiresPermissions("business:dispatchunit:update")
+    public ApiResponse editDispatchUnit(@RequestBody SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        dispatchUnitService.editDispatchUnit(saveDispatchUnitDTO);
+        return ApiResponse.success(null);
+    }
+
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
@@ -85,6 +104,6 @@
     @GetMapping("/{id}")
     @RequiresPermissions("business:dispatchunit:query")
     public ApiResponse findById(@PathVariable Integer id) {
-        return ApiResponse.success(dispatchUnitService.findById(id));
+        return ApiResponse.success(dispatchUnitService.detailById(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 c496a01..804ccb8 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
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
 import com.doumee.dao.business.model.InsuranceApply;
 import com.doumee.service.business.InsuranceApplyService;
 import io.swagger.annotations.Api;
@@ -70,14 +71,14 @@
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:insuranceapply:query")
-    public ApiResponse<PageData<InsuranceApply>> findPage (@RequestBody PageWrap<InsuranceApply> pageWrap) {
+    public ApiResponse<PageData<InsuranceApply>> findPage (@RequestBody PageWrap<InsuranceApplyQueryDTO> pageWrap) {
         return ApiResponse.success(insuranceApplyService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:insuranceapply:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<InsuranceApply> pageWrap, HttpServletResponse response) {
+    public void exportExcel (@RequestBody PageWrap<InsuranceApplyQueryDTO> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(InsuranceApply.class).export(insuranceApplyService.findPage(pageWrap).getRecords(), "鎶曚繚鐢宠淇℃伅琛�", response);
     }
 
diff --git a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
index 48a4c27..492c4e0 100644
--- a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -81,6 +81,12 @@
         return ApiResponse.success(solutionsService.findList(pageWrap));
     }
 
+    @ApiOperation("鍒楄〃鏌ヨ")
+    @PostMapping("/page")
+    public ApiResponse<List<Solutions>> findPage (@RequestBody Solutions solutions) {
+        return ApiResponse.success(solutionsService.findList(solutions));
+    }
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:solutions:exportExcel")
diff --git a/server/company/src/main/java/com/doumee/api/business/WorktypeController.java b/server/company/src/main/java/com/doumee/api/business/WorktypeController.java
index 4665b32..a3d949c 100644
--- a/server/company/src/main/java/com/doumee/api/business/WorktypeController.java
+++ b/server/company/src/main/java/com/doumee/api/business/WorktypeController.java
@@ -10,6 +10,8 @@
 import com.doumee.dao.business.model.Worktype;
 import com.doumee.service.business.WorktypeService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.shiro.authz.annotation.RequiresPermissions;    
 import org.springframework.beans.factory.annotation.Autowired;
@@ -94,4 +96,16 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(worktypeService.findById(id));
     }
+
+
+    @ApiOperation("鏍规嵁淇濋櫓鏂规鏌ヨ宸ョ淇℃伅")
+    @GetMapping("/getBySolutionsId")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "solutionId", value = "鏂规涓婚敭", required = true),
+    })
+    public ApiResponse<List<Worktype>> getBySolutionsId (@RequestParam Integer solutionId) {
+        return ApiResponse.success(worktypeService.getBySolutionsId(solutionId));
+    }
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/DispatchUnitAuditDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/DispatchUnitAuditDTO.java
new file mode 100644
index 0000000..33e9f4c
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/DispatchUnitAuditDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 10:36
+ */
+@Data
+public class DispatchUnitAuditDTO {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "瀹℃壒绫诲埆锛�0=鍗曚綅瀹℃壒锛�1=宸ョ瀹℃壒")
+    private Integer auditType;
+
+    @ApiModelProperty(value = "瀹℃壒鐘舵�� 1瀹℃牳閫氳繃 2瀹℃牳涓嶉�氳繃")
+    private Integer status;
+
+    @ApiModelProperty(value = "瀹℃壒澶囨敞")
+    private String auditRemark;
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
new file mode 100644
index 0000000..828b623
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
@@ -0,0 +1,40 @@
+package com.doumee.dao.business.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author RenKang
+ */
+@Data
+public class InsuranceApplyQueryDTO {
+
+    @ApiModelProperty(value = "鏂规缂栫爜锛堝叧鑱攕olutions锛�", example = "1")
+    private Integer solutionId;
+
+    @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥姝㈡湡寮�濮�")
+    private Date endTimeS;
+
+    @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥姝㈡湡缁撴潫")
+    private Date endTimeE;
+
+    @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡寮�濮�")
+    private Date startTimeS;
+    @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡缁撴潫")
+    private Date startTimeE;
+
+    @ApiModelProperty(value = "鍗曞彿")
+    private String code;
+
+    @ApiModelProperty(value = "鐘舵�� 0寰呭鏍� 1骞冲彴閫�鍥炰繚鍗曪紙宸查��鍥烇級 2宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔狅紙寰呯缃诧級  3宸茬绔犲緟涓婁紶淇濋櫓鍗曪紙寰呭嚭鍗曪級 4淇濆崟鍑哄叿澶辫触閫�鍥烇紙宸查��鍥烇級 5宸蹭笂浼犱繚鍗曪紙淇濋殰涓級6浼佷笟鐢宠閫�鍥炰腑 7骞冲彴鍚屾剰閫�鍥烇紙宸查��鍥烇級 8浼佷笟鍏抽棴  锛堝凡鍏抽棴锛�", example = "1")
+    private Integer status;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SaveDispatchUnitDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDispatchUnitDTO.java
new file mode 100644
index 0000000..54e0203
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDispatchUnitDTO.java
@@ -0,0 +1,35 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 10:36
+ */
+@Data
+public class SaveDispatchUnitDTO {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅淇$敤浠g爜")
+    private String code;
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鎻忚堪")
+    private String content;
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鏂规鍏宠仈鏁版嵁")
+    private List<SaveDuSolutionDTO> saveDuSolutionDTOList;
+                                                            
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuSolutionDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuSolutionDTO.java
new file mode 100644
index 0000000..48cf7f9
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuSolutionDTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 10:36
+ */
+@Data
+public class SaveDuSolutionDTO {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏂规涓婚敭")
+    private Integer solutionId;
+
+    @ApiModelProperty(value = "鏂规鍚嶇О")
+    private String solutionName;
+
+    @ApiModelProperty(value = "宸ョ鍏宠仈淇℃伅")
+    List<SaveDuWorkTypeDTO> saveDuWorkTypeDTOList;
+
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuWorkTypeDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuWorkTypeDTO.java
new file mode 100644
index 0000000..79ae403
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SaveDuWorkTypeDTO.java
@@ -0,0 +1,33 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 10:36
+ */
+@Data
+public class SaveDuWorkTypeDTO {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "宸ョ涓婚敭")
+    private Integer workTypeId;
+
+    @ApiModelProperty(value = "宸ョ鍚嶇О")
+    private String workTypeName;
+
+    @ApiModelProperty(value = "瑙嗛鍦板潃")
+    private String videoUrl;
+
+
+    
+
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SolutionsDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SolutionsDTO.java
new file mode 100644
index 0000000..5e4f1db
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SolutionsDTO.java
@@ -0,0 +1,33 @@
+package com.doumee.dao.business.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 9:35
+ */
+@Data
+public class SolutionsDTO {
+
+
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鎵�灞炰繚闄╁叕鍙哥紪鐮侊紙insurance锛�", example = "1")
+    private Integer insuranceId;
+
+    @ApiModelProperty(value = "鐢熸晥鏃堕棿鏂瑰紡 0鏃ュ悗鐢熸晥 1娆℃湀鐢熸晥", example = "1")
+    private Integer validType;
+
+    @ApiModelProperty(value = "绫诲瀷 0鐩翠繚 1濮旀墭鎶曚繚", example = "1")
+    private Integer type;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/DuLogJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/DuLogJoinMapper.java
new file mode 100644
index 0000000..94d37e4
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/DuLogJoinMapper.java
@@ -0,0 +1,11 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.DuLog;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author T14
+ */
+//@Repository
+public interface DuLogJoinMapper extends MPJJoinMapper<DuLog> {
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/DuSolutionJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/DuSolutionJoinMapper.java
new file mode 100644
index 0000000..3600793
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/DuSolutionJoinMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.DuLog;
+import com.doumee.dao.business.model.DuSolution;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author T14
+ */
+//@Repository
+public interface DuSolutionJoinMapper extends MPJJoinMapper<DuSolution> {
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/DuWorkTypeJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/DuWorkTypeJoinMapper.java
new file mode 100644
index 0000000..e6ac4da
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/DuWorkTypeJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.DuWorktype;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface DuWorkTypeJoinMapper extends MPJJoinMapper<DuWorktype> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/InsuranceApplyJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/InsuranceApplyJoinMapper.java
new file mode 100644
index 0000000..9081a72
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/InsuranceApplyJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.InsuranceApply;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface InsuranceApplyJoinMapper extends MPJJoinMapper<InsuranceApply> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/DispatchUnit.java b/server/service/src/main/java/com/doumee/dao/business/model/DispatchUnit.java
index 694e3d7..1791dd4 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/DispatchUnit.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/DispatchUnit.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +10,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 娲鹃仯鍗曚綅淇℃伅琛�
@@ -50,6 +52,15 @@
     @ApiModelProperty(value = "鍚嶇О")
     @ExcelColumn(name="鍚嶇О")
     private String name;
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅淇$敤浠g爜")
+    @ExcelColumn(name="娲鹃仯鍗曚綅淇$敤浠g爜")
+    private String code;
+
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鎻忚堪")
+    @ExcelColumn(name="娲鹃仯鍗曚綅鎻忚堪")
+    private String content;
 
     @ApiModelProperty(value = "澶囨敞")
     @ExcelColumn(name="澶囨敞")
@@ -108,4 +119,14 @@
     @ExcelColumn(name="鍩鸿〃缂栫爜锛堣嚜鍏宠仈锛�")
     private Integer baseId;
 
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鏂规绠″叧鑱斾俊鎭〃", example = "1")
+    @TableField(exist = false)
+    private List<DuSolution> duSolutionList;
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鎿嶄綔鍘嗗彶璁板綍琛�", example = "1")
+    @TableField(exist = false)
+    private List<DuLog> duLogList;
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/DuLog.java b/server/service/src/main/java/com/doumee/dao/business/model/DuLog.java
index ef3e4fe..4819e7c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/DuLog.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/DuLog.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -83,4 +84,13 @@
     @ExcelColumn(name="鐘舵��0姝e父 1鍋滅敤")
     private Integer status;
 
+    @ApiModelProperty(value = "鍒涘缓浜哄悕绉�", example = "1")
+    @TableField(exist = false)
+    private String  creatorName;
+
+    @ApiModelProperty(value = "鍏徃鍚嶇О", example = "1")
+    @TableField(exist = false)
+    private String  companyName;
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/DuSolution.java b/server/service/src/main/java/com/doumee/dao/business/model/DuSolution.java
index 6fab539..cd071e2 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/DuSolution.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/DuSolution.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +10,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 娲鹃仯鍗曚綅鏂规绠″叧鑱斾俊鎭〃
@@ -80,4 +82,13 @@
     @ExcelColumn(name="瀹℃牳浜虹紪鐮侊紙鍏宠仈system_user)")
     private Integer checkUserId;
 
+    @ApiModelProperty(value = "鏂规鍚嶇О")
+    @TableField(exist = false)
+    private String solutionName;
+
+
+    @ApiModelProperty(value = "娲鹃仯鍗曚綅鏂规绠″伐绉嶅叧鑱斾俊鎭〃", example = "1")
+    @TableField(exist = false)
+    private List<DuWorktype> duWorktypeList;
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/DuWorktype.java b/server/service/src/main/java/com/doumee/dao/business/model/DuWorktype.java
index e903e18..23be9f0 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/DuWorktype.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/DuWorktype.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -88,4 +89,7 @@
     @ExcelColumn(name="鐘舵��0姝e父 1鍋滅敤")
     private Integer status2;
 
+    @ApiModelProperty(value = "宸ョ鍚嶇О")
+    @TableField(exist = false)
+    private String workTypeName;
 }
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 3e0b1bc..545d243 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
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -104,4 +105,13 @@
     @ExcelColumn(name="鐘舵�� 0寰呭鏍� 1骞冲彴閫�鍥炰繚鍗曪紙宸查��鍥烇級 2宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔狅紙寰呯缃诧級  3宸茬绔犲緟涓婁紶淇濋櫓鍗曪紙寰呭嚭鍗曪級 4淇濆崟鍑哄叿澶辫触閫�鍥烇紙宸查��鍥烇級 5宸蹭笂浼犱繚鍗曪紙淇濋殰涓級6浼佷笟鐢宠閫�鍥炰腑 7骞冲彴鍚屾剰閫�鍥烇紙宸查��鍥烇級 8浼佷笟鍏抽棴  锛堝凡鍏抽棴锛�")
     private Integer status;
 
+
+    @ApiModelProperty(value = "浼佷笟鍚嶇О")
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "鏂规鍚嶇О")
+    @TableField(exist = false)
+    private String solutionsName;
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/SolutionsVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/SolutionsVO.java
new file mode 100644
index 0000000..3cccb3f
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/SolutionsVO.java
@@ -0,0 +1,106 @@
+package com.doumee.dao.business.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/16 9:35
+ */
+@Data
+public class SolutionsVO {
+
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "鎵�灞炰繚闄╁叕鍙哥紪鐮侊紙insurance锛�", example = "1")
+    private Integer insuranceId;
+
+    @ApiModelProperty(value = "鐢熸晥鏃堕棿鏂瑰紡 0鏃ュ悗鐢熸晥 1娆℃湀鐢熸晥", example = "1")
+    private Integer validType;
+
+    @ApiModelProperty(value = "绫诲瀷 0鐩翠繚 1濮旀墭鎶曚繚", example = "1")
+    private Integer type;
+
+    @ApiModelProperty(value = "鏈�浣庡勾榫�", example = "1")
+    private Integer minAge;
+
+    @ApiModelProperty(value = "鏈�楂樺勾榫�", example = "1")
+    private Integer maxAge;
+
+    @ApiModelProperty(value = "淇濋櫓璐圭敤(浜�/澶╋級", example = "1")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
+    private Integer timeUnit;
+
+    @ApiModelProperty(value = "寮�鎴疯")
+    private String insureCycle;
+
+    @ApiModelProperty(value = "鏈�灏忔姇淇濆懆鏈熸椂闂村崟浣�0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
+    private Integer insureCycleUnit;
+
+    @ApiModelProperty(value = "鏈�灏忚璐瑰懆鏈熸椂闂村崟浣� 0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
+    private Integer priceCycleUnit;
+
+    @ApiModelProperty(value = "鏄惁鍗曠嫭鎸囨淳宸ョ 0鍚� 1鍥�", example = "1")
+    private Integer singleWorktype;
+
+    @ApiModelProperty(value = "鎺ユ敹鏂囦欢閭")
+    private String email;
+
+    @ApiModelProperty(value = "鐗瑰埆绾﹀畾")
+    private String specialAgreement;
+
+    @ApiModelProperty(value = "鐗瑰埆璇存槑")
+    private String specialInfo;
+
+    @ApiModelProperty(value = "鍏朵粬璇存槑")
+    private String ortherInfo;
+
+    @ApiModelProperty(value = "鎵�灞炴柟妗堝熀琛ㄧ紪鐮�(solution_base_id)", example = "1")
+    private Integer solutionBaseId;
+
+    @ApiModelProperty(value = "鐗堟湰鍙�")
+    private String version;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java b/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
index b82d465..769f967 100644
--- a/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
+++ b/server/service/src/main/java/com/doumee/service/business/DispatchUnitService.java
@@ -2,6 +2,8 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.DispatchUnitAuditDTO;
+import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
 import com.doumee.dao.business.model.DispatchUnit;
 import java.util.List;
 
@@ -15,11 +17,30 @@
     /**
      * 鍒涘缓
      * 
-     * @param dispatchUnit 瀹炰綋瀵硅薄
+     * @param saveDispatchUnitDTO 瀹炰綋瀵硅薄
      * @return Integer
      */
-    Integer create(DispatchUnit dispatchUnit);
+    Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO);
 
+    /**
+     * 鏇存柊
+     * @param saveDispatchUnitDTO
+     * @return
+     */
+    Integer editDispatchUnit(SaveDispatchUnitDTO saveDispatchUnitDTO);
+
+    /**
+     * 娣诲姞宸ョ
+     * @param saveDispatchUnitDTO
+     * @return
+     */
+    Integer createSolution(SaveDispatchUnitDTO saveDispatchUnitDTO);
+
+    /**
+     * 娲鹃仯鍗曚綅瀹℃壒/宸ョ瀹℃壒
+     * @param dispatchUnitAuditDTO
+     */
+    void auditData(DispatchUnitAuditDTO dispatchUnitAuditDTO);
     /**
      * 涓婚敭鍒犻櫎
      *
@@ -94,4 +115,11 @@
      * @return long
      */
     long count(DispatchUnit dispatchUnit);
+
+    /**
+     * 鏌ヨ璇︽儏淇℃伅
+     * @param id
+     * @return
+     */
+    DispatchUnit detailById(Integer id);
 }
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 208918b..70d7162 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
@@ -2,6 +2,7 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
 import com.doumee.dao.business.model.InsuranceApply;
 import java.util.List;
 
@@ -85,7 +86,7 @@
      * @param pageWrap 鍒嗛〉瀵硅薄
      * @return PageData<InsuranceApply>
      */
-    PageData<InsuranceApply> findPage(PageWrap<InsuranceApply> pageWrap);
+    PageData<InsuranceApply> findPage(PageWrap<InsuranceApplyQueryDTO> pageWrap);
 
     /**
      * 鏉′欢缁熻
diff --git a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
index fde2b3e..0b80a30 100644
--- a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
@@ -89,6 +89,8 @@
     PageData<Solutions> findPage(PageWrap<Solutions> pageWrap);
     PageData<Solutions> findPageCom(PageWrap<Solutions> pageWrap);
 
+
+
     /**
      * 鏉′欢缁熻
      *
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 679ca73..897dbe6 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
@@ -78,6 +78,15 @@
      * @return List<Worktype>
      */
     List<Worktype> findList(Worktype worktype);
+
+
+    /**
+     * 鏍规嵁淇濋櫓鏂规鏌ヨ宸ョ淇℃伅
+     * @param solutionId
+     * @return
+     */
+    List<Worktype> getBySolutionsId(Integer solutionId);
+
   
     /**
      * 鍒嗛〉鏌ヨ
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 2d26a9c..226e031 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
@@ -1,20 +1,42 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.DispatchUnitMapper;
-import com.doumee.dao.business.model.DispatchUnit;
+import com.doumee.dao.business.DuLogMapper;
+import com.doumee.dao.business.DuSolutionMapper;
+import com.doumee.dao.business.DuWorktypeMapper;
+import com.doumee.dao.business.dto.DispatchUnitAuditDTO;
+import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
+import com.doumee.dao.business.dto.SaveDuSolutionDTO;
+import com.doumee.dao.business.dto.SaveDuWorkTypeDTO;
+import com.doumee.dao.business.join.DuLogJoinMapper;
+import com.doumee.dao.business.join.DuSolutionJoinMapper;
+import com.doumee.dao.business.join.DuWorkTypeJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.DispatchUnitService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.UUID;
 
 /**
  * 娲鹃仯鍗曚綅淇℃伅琛⊿ervice瀹炵幇
@@ -27,11 +49,358 @@
     @Autowired
     private DispatchUnitMapper dispatchUnitMapper;
 
+    @Autowired
+    private DuSolutionMapper duSolutionMapper;
+
+    @Autowired
+    private DuWorktypeMapper    duWorktypeMapper;
+
+    @Autowired
+    private DuLogMapper duLogMapper;
+
+    @Autowired
+    private DuLogJoinMapper duLogJoinMapper;
+
+    @Autowired
+    private DuSolutionJoinMapper duSolutionJoinMapper;
+
+    @Autowired
+    private DuWorkTypeJoinMapper duWorkTypeJoinMapper;
+
+
     @Override
-    public Integer create(DispatchUnit dispatchUnit) {
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer create(SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        if(Objects.isNull(saveDispatchUnitDTO)
+            || StringUtils.isEmpty(saveDispatchUnitDTO.getName())
+            || StringUtils.isEmpty(saveDispatchUnitDTO.getCode())
+            || StringUtils.isEmpty(saveDispatchUnitDTO.getContent())
+            || CollectionUtils.isEmpty(saveDispatchUnitDTO.getSaveDuSolutionDTOList())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
+                .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+                .eq(DispatchUnit::getName,saveDispatchUnitDTO.getName())
+                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+        )> Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶅悕绉般�戝凡瀛樺湪");
+        };
+        if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
+                .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+                .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode())
+                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+        )> Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶄俊鐢ㄤ唬鐮併�戝凡瀛樺湪");
+        };
+        DispatchUnit dispatchUnit = new DispatchUnit();
+        dispatchUnit.setCreateDate(new Date());
+        dispatchUnit.setCreator(loginUserInfo.getId());
+        dispatchUnit.setCompanyId(loginUserInfo.getCompanyId());
+        dispatchUnit.setIsdeleted(Constants.ZERO);
+        dispatchUnit.setName(saveDispatchUnitDTO.getName());
+        dispatchUnit.setCode(saveDispatchUnitDTO.getCode());
+        dispatchUnit.setContent(saveDispatchUnitDTO.getContent());
+        dispatchUnit.setStatus(Constants.ZERO);
+        dispatchUnit.setVersion(UUID.randomUUID().toString());
+        dispatchUnit.setUnitStatus(Constants.ZERO);
+        dispatchUnit.setWorktypeStatus(Constants.ZERO);
+        dispatchUnit.setDataType(Constants.ZERO);
         dispatchUnitMapper.insert(dispatchUnit);
+
+        //瀛樺偍鎿嶄綔鍘嗗彶
+        this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.UPLOAD,null);
+
+        List<SaveDuSolutionDTO> saveDuSolutionDTOList = saveDispatchUnitDTO.getSaveDuSolutionDTOList();
+        for (int i = 0; i < saveDuSolutionDTOList.size(); i++) {
+            SaveDuSolutionDTO saveDuSolutionDTO = saveDuSolutionDTOList.get(i);
+            DuSolution duSolution = new DuSolution();
+            duSolution.setCreateDate(new Date());
+            duSolution.setCreator(loginUserInfo.getId());
+            duSolution.setIsdeleted(Constants.ZERO);
+            duSolution.setDispatchUnitId(dispatchUnit.getId());
+            duSolution.setSortnum(i);
+            duSolution.setSolutionId(saveDuSolutionDTO.getSolutionId());
+            duSolutionMapper.insert(duSolution);
+
+            List<SaveDuWorkTypeDTO> saveDuWorkTypeDTOList = saveDuSolutionDTO.getSaveDuWorkTypeDTOList();
+            if(!CollectionUtils.isNotEmpty(saveDuSolutionDTOList)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓嬫湭閫夋嫨宸ョ锛�");
+            }
+            for (int j = 0; j < saveDuWorkTypeDTOList.size(); j++) {
+                SaveDuWorkTypeDTO saveDuWorkTypeDTO = saveDuWorkTypeDTOList.get(j);
+                DuWorktype duWorktype = new DuWorktype();
+                duWorktype.setCreateDate(new Date());
+                duWorktype.setCreator(loginUserInfo.getId());
+                duWorktype.setIsdeleted(Constants.ZERO);
+                duWorktype.setDuSolutionId(duSolution.getId());
+                duWorktype.setSortnum(j);
+                duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId());
+                duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl());
+                duWorktype.setStatus2(Constants.ZERO);
+                duWorktypeMapper.insert(duWorktype);
+            }
+        }
         return dispatchUnit.getId();
     }
+
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer editDispatchUnit(SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        if(Objects.isNull(saveDispatchUnitDTO)
+                ||Objects.isNull(saveDispatchUnitDTO.getId())
+                || CollectionUtils.isEmpty(saveDispatchUnitDTO.getSaveDuSolutionDTOList())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(saveDispatchUnitDTO.getId());
+        if(Objects.isNull(dispatchUnit)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
+        }
+        if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
+                .ne(DispatchUnit::getId,saveDispatchUnitDTO.getId())
+                .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+                .eq(DispatchUnit::getName,saveDispatchUnitDTO.getName())
+                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+        )> Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶅悕绉般�戝凡瀛樺湪");
+        };
+        if(dispatchUnitMapper.selectCount(new QueryWrapper<DispatchUnit>().lambda()
+                .ne(DispatchUnit::getId,saveDispatchUnitDTO.getId())
+                .eq(DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
+                .eq(DispatchUnit::getCode,saveDispatchUnitDTO.getCode())
+                .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+        )> Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆愭淳閬e崟浣嶄俊鐢ㄤ唬鐮併�戝凡瀛樺湪");
+        }
+        dispatchUnit.setCode(saveDispatchUnitDTO.getCode());
+        dispatchUnit.setContent(saveDispatchUnitDTO.getContent());
+        dispatchUnit.setName(saveDispatchUnitDTO.getName());
+        dispatchUnit.setUnitStatus(Constants.ZERO);
+        dispatchUnit.setWorktypeStatus(Constants.ZERO);
+        dispatchUnit.setEditDate(new Date());
+        dispatchUnit.setEditor(loginUserInfo.getId());
+        dispatchUnitMapper.updateById(dispatchUnit);
+
+        //瀛樺偍鎿嶄綔璁板綍
+        this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.EDIT_UNIT,null);
+
+        this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
+
+        return dispatchUnit.getId();
+    }
+
+
+    /**
+     * 娣诲姞鏂规淇℃伅
+     * @param saveDispatchUnitDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer createSolution(SaveDispatchUnitDTO saveDispatchUnitDTO) {
+        if(Objects.isNull(saveDispatchUnitDTO)
+                ||Objects.isNull(saveDispatchUnitDTO.getId())
+                || CollectionUtils.isEmpty(saveDispatchUnitDTO.getSaveDuSolutionDTOList())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(saveDispatchUnitDTO.getId());
+        dispatchUnit.setWorktypeStatus(Constants.ZERO);
+        dispatchUnit.setEditDate(new Date());
+        dispatchUnit.setEditor(loginUserInfo.getId());
+        dispatchUnitMapper.updateById(dispatchUnit);
+
+        if(Objects.isNull(dispatchUnit)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
+        }
+        //瀛樺偍鎿嶄綔鍘嗗彶
+        this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.ADD_WORK_TYPE,null);
+        this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
+        return dispatchUnit.getId();
+    }
+
+
+    public void dealDuData(SaveDispatchUnitDTO saveDispatchUnitDTO,LoginUserInfo loginUserInfo){
+        List<SaveDuSolutionDTO> saveDuSolutionDTOList = saveDispatchUnitDTO.getSaveDuSolutionDTOList();
+        for (int i = 0; i < saveDuSolutionDTOList.size(); i++) {
+            SaveDuSolutionDTO saveDuSolutionDTO = saveDuSolutionDTOList.get(i);
+            DuSolution duSolution = duSolutionMapper.selectOne(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId())
+                    .eq(DuSolution::getIsdeleted,Constants.ZERO)
+                    .eq(DuSolution::getSolutionId,saveDuSolutionDTO.getSolutionId()).last("limit 1"));
+            Integer duSolutionNum = duSolutionMapper.selectCount(new QueryWrapper<DuSolution>().lambda().eq(DuSolution::getDispatchUnitId,saveDuSolutionDTO.getId()));
+            if(Objects.isNull(duSolution)){
+                duSolution = new DuSolution();
+                duSolution.setCreateDate(new Date());
+                duSolution.setCreator(loginUserInfo.getId());
+                duSolution.setIsdeleted(Constants.ZERO);
+                duSolution.setDispatchUnitId(saveDispatchUnitDTO.getId());
+                duSolution.setSortnum(duSolutionNum + i);
+                duSolution.setSolutionId(saveDuSolutionDTO.getSolutionId());
+                duSolutionMapper.insert(duSolution);
+            }
+            List<SaveDuWorkTypeDTO> saveDuWorkTypeDTOList = saveDuSolutionDTO.getSaveDuWorkTypeDTOList();
+            if(!CollectionUtils.isNotEmpty(saveDuSolutionDTOList)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓嬫湭閫夋嫨宸ョ锛�");
+            }
+            for (int j = 0; j < saveDuWorkTypeDTOList.size(); j++) {
+                SaveDuWorkTypeDTO saveDuWorkTypeDTO = saveDuWorkTypeDTOList.get(j);
+                if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId())
+                        .eq(DuWorktype::getIsdeleted,Constants.ZERO)
+                        .eq(DuWorktype::getWorkTypeId,saveDuWorkTypeDTO.getWorkTypeId()))>0){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+saveDuSolutionDTO.getSolutionName()+"銆戣鏂规涓�"+saveDuWorkTypeDTO.getWorkTypeName()+"璇ュ伐绉嶅凡瀛樺湪宸ョ宸插瓨鍦�");
+                }
+                Integer duWorkTypeNum = duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda().eq(DuWorktype::getDuSolutionId,duSolution.getId()));
+                DuWorktype duWorktype = new DuWorktype();
+                duWorktype.setCreateDate(new Date());
+                duWorktype.setCreator(loginUserInfo.getId());
+                duWorktype.setIsdeleted(Constants.ZERO);
+                duWorktype.setDuSolutionId(duSolution.getId());
+                duWorktype.setSortnum(duWorkTypeNum + j);
+                duWorktype.setWorkTypeId(saveDuWorkTypeDTO.getWorkTypeId());
+                duWorktype.setVideoUrl(saveDuWorkTypeDTO.getVideoUrl());
+                duWorktype.setStatus2(Constants.ZERO);
+                duWorktypeMapper.insert(duWorktype);
+            }
+        }
+    }
+
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void auditData(DispatchUnitAuditDTO dispatchUnitAuditDTO){
+        if(Objects.isNull(dispatchUnitAuditDTO)
+                || Objects.isNull(dispatchUnitAuditDTO.getId())
+                || Objects.isNull(dispatchUnitAuditDTO.getAuditType())
+                || Objects.isNull(dispatchUnitAuditDTO.getStatus())
+                || !(dispatchUnitAuditDTO.getAuditType().equals(Constants.ZERO) || dispatchUnitAuditDTO.getAuditType().equals(Constants.ONE))
+                || !(dispatchUnitAuditDTO.getStatus().equals(Constants.ONE) || dispatchUnitAuditDTO.getAuditType().equals(Constants.TWO))
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(loginUserInfo.getType().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛绫诲瀷閿欒锛氫紒涓氱敤鎴锋棤娉曡繘琛岃鎿嶄綔");
+        }
+        DispatchUnit dispatchUnit = this.dispatchUnitMapper.selectById(dispatchUnitAuditDTO.getId());
+        if(Objects.isNull(dispatchUnit)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌娲鹃仯鍗曚綅淇℃伅");
+        }
+        //娲鹃仯鍗曚綅瀹℃壒
+        if(dispatchUnitAuditDTO.getAuditType().equals(Constants.ZERO)){
+            if(dispatchUnit.getStatus().equals(Constants.ONE)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娲鹃仯鍗曚綅淇℃伅宸插鏍�");
+            }
+            dispatchUnit.setStatus(dispatchUnitAuditDTO.getStatus());
+            dispatchUnit.setCheckDate(new Date());
+            dispatchUnit.setCheckUserId(loginUserInfo.getId());
+            dispatchUnit.setCheckInfo(dispatchUnitAuditDTO.getAuditRemark());
+            dispatchUnitMapper.updateById(dispatchUnit);
+            if(dispatchUnitAuditDTO.getStatus().equals(Constants.ONE)){
+                this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_PASS,dispatchUnitAuditDTO.getAuditRemark());
+            }else{
+                this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_UN_PASS,dispatchUnitAuditDTO.getAuditRemark());
+            }
+
+        }else if(dispatchUnitAuditDTO.getAuditType().equals(Constants.ONE)){
+            if(!dispatchUnit.getStatus().equals(Constants.ONE)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"娲鹃仯鍗曚綅淇℃伅鏈鏍�,鏃犳硶杩涜璇ユ搷浣�");
+            }
+            if(dispatchUnitAuditDTO.getStatus().equals(Constants.ONE)){
+                this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,dispatchUnitAuditDTO.getAuditRemark());
+            }else{
+                this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_UN_PASS,dispatchUnitAuditDTO.getAuditRemark());
+            }
+        }else{
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //鏇存柊鏂规鏁版嵁
+        List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
+                .eq(DuSolution::getStatus,Constants.ZERO)
+                .eq(DuSolution::getIsdeleted,Constants.ZERO)
+                .eq(DuSolution::getDispatchUnitId,dispatchUnit.getId()));
+        for (DuSolution duSolution:duSolutionList) {
+            duSolution.setStatus(dispatchUnitAuditDTO.getStatus());
+            duSolution.setCheckDate(new Date());
+            duSolution.setCheckUserId(loginUserInfo.getId());
+            duSolution.setCheckInfo(dispatchUnitAuditDTO.getAuditRemark());
+            dispatchUnitMapper.updateById(dispatchUnit);
+            //鏌ヨ宸ョ鏁版嵁
+            List<DuWorktype> duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda()
+                    .eq(DuWorktype::getStatus,Constants.ZERO)
+                    .eq(DuWorktype::getIsdeleted,Constants.ZERO)
+                    .eq(DuWorktype::getDuSolutionId,duSolution.getId()));
+            for (DuWorktype duWorktype:duWorktypeList) {
+                duWorktype.setStatus(dispatchUnitAuditDTO.getStatus());
+                duWorktype.setCheckDate(new Date());
+                duWorktype.setCheckUserId(loginUserInfo.getId());
+                duWorktype.setCheckInfo(dispatchUnitAuditDTO.getAuditRemark());
+                dispatchUnitMapper.updateById(dispatchUnit);
+            }
+        }
+        this.saveHistory(dispatchUnit);
+    }
+
+
+    public void saveHistory(DispatchUnit dispatchUnit){
+        if(dispatchUnit.getStatus().equals(Constants.ONE)){
+            DispatchUnit his = new DispatchUnit();
+            BeanUtils.copyProperties(dispatchUnit,his);
+            his.setBaseId(dispatchUnit.getId());
+            his.setId(null);
+            his.setDataType(Constants.TWO);
+            dispatchUnitMapper.insert(his);
+            //淇敼鍏朵粬鍘嗗彶鐗堟湰鏁版嵁涓� 鍘嗗彶鐗堟湰
+            dispatchUnitMapper.update(null,new UpdateWrapper<DispatchUnit>().lambda().set(DispatchUnit::getDataType,Constants.ONE).eq(DispatchUnit::getBaseId,dispatchUnit.getId())
+                    .eq(DispatchUnit::getDataType,Constants.TWO).ne(DispatchUnit::getId,his.getId())
+            );
+            //瀛樺偍鏂规鏁版嵁
+            List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
+                    .eq(DuSolution::getStatus,Constants.ONE)
+                    .eq(DuSolution::getDispatchUnitId,dispatchUnit.getId()));
+            for (DuSolution duSolution:duSolutionList) {
+                DuSolution hisDuSolution = new DuSolution();
+                BeanUtils.copyProperties(duSolution,hisDuSolution);
+                hisDuSolution.setId(null);
+                hisDuSolution.setDispatchUnitId(his.getId());
+                duSolutionMapper.insert(hisDuSolution);
+                //鏌ヨ宸ョ鏁版嵁
+                List<DuWorktype> duWorktypeList = duWorktypeMapper.selectList(new QueryWrapper<DuWorktype>().lambda()
+                        .eq(DuWorktype::getStatus,Constants.ONE)
+                        .eq(DuWorktype::getDuSolutionId,duSolution.getId()));
+                for (DuWorktype duWorktype:duWorktypeList) {
+                    DuWorktype hisDuWorktype = new DuWorktype();
+                    BeanUtils.copyProperties(duWorktype,hisDuWorktype);
+                    hisDuWorktype.setId(null);
+                    hisDuWorktype.setDuSolutionId(hisDuSolution.getId());
+                    duWorktypeMapper.insert(hisDuWorktype);
+                }
+            }
+        }
+    }
+
+
+
+    public void saveDuLog(DispatchUnit dispatchUnit,Constants.DispatchUnitLogType dispatchUnitLogType,String content){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        DuLog duLog = new DuLog();
+        duLog.setCreateDate(new Date());
+        duLog.setCreator(loginUserInfo.getId());
+        duLog.setIsdeleted(Constants.ZERO);
+        duLog.setDuId(dispatchUnit.getId());
+        duLog.setTitle(dispatchUnitLogType.getName());
+        duLog.setContent(content);
+        duLog.setObjType(dispatchUnitLogType.getKey());
+        duLog.setObjId(Integer.toString(dispatchUnit.getId()));
+        duLog.setStatus(Constants.ZERO);
+        duLogMapper.insert(duLog);
+    }
+
 
     @Override
     public void deleteById(Integer id) {
@@ -170,4 +539,44 @@
         QueryWrapper<DispatchUnit> wrapper = new QueryWrapper<>(dispatchUnit);
         return dispatchUnitMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public DispatchUnit detailById(Integer id) {
+        DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(id);
+        //鏂规閰嶇疆琛�
+        List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,
+                new MPJLambdaWrapper<DuSolution>()
+                        .selectAll(DuSolution.class)
+                        .selectAs(Solutions::getName,DuSolution::getSolutionName)
+                        .leftJoin(Solutions.class,Solutions::getId,DuSolution::getSolutionId)
+                        .eq(DuSolution::getSolutionId,dispatchUnit.getId())
+                        .orderByAsc(DuSolution::getSortnum)
+        );
+        if(CollectionUtils.isNotEmpty(duSolutionList)){
+            for (DuSolution duSolution:duSolutionList) {
+                //鏌ヨ鏂规涓嬬殑宸ョ淇℃伅
+                List<DuWorktype> duWorkTypeList = duWorkTypeJoinMapper.selectJoinList(DuWorktype.class,
+                        new MPJLambdaWrapper<DuWorktype>()
+                                .selectAll(DuWorktype.class)
+                                .selectAs(Worktype::getName,DuWorktype::getWorkTypeName)
+                                .leftJoin(Worktype.class,Worktype::getId,DuWorktype::getWorkTypeId)
+                                .eq(DuWorktype::getDuSolutionId,duSolution.getId())
+                );
+                duSolution.setDuWorktypeList(duWorkTypeList);
+            }
+            dispatchUnit.setDuSolutionList(duSolutionList);
+        }
+        //鏌ヨ鎿嶄綔璁板綍
+        List<DuLog> duLogList = duLogJoinMapper.selectJoinList(DuLog.class,
+                new MPJLambdaWrapper<DuLog>()
+                        .eq(DuLog::getDuId,dispatchUnit.getId())
+                        .orderByAsc(DuLog::getCreateDate)
+        );
+        dispatchUnit.setDuLogList(duLogList);
+        return dispatchUnit;
+    }
+
+
+
 }
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 13556b0..25075c7 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
@@ -1,15 +1,24 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.InsuranceApplyMapper;
+import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
+import com.doumee.dao.business.join.InsuranceApplyJoinMapper;
+import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.InsuranceApply;
+import com.doumee.dao.business.model.Solutions;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.InsuranceApplyService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -26,6 +35,9 @@
 
     @Autowired
     private InsuranceApplyMapper insuranceApplyMapper;
+
+    @Autowired
+    private InsuranceApplyJoinMapper insuranceApplyJoinMapper;
 
     @Override
     public Integer create(InsuranceApply insuranceApply) {
@@ -85,73 +97,40 @@
     }
   
     @Override
-    public PageData<InsuranceApply> findPage(PageWrap<InsuranceApply> pageWrap) {
+    public PageData<InsuranceApply> findPage(PageWrap<InsuranceApplyQueryDTO> pageWrap) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         IPage<InsuranceApply> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<InsuranceApply> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<InsuranceApply> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(InsuranceApply::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getSortnum, pageWrap.getModel().getSortnum());
+        queryWrapper.selectAll(InsuranceApply.class);
+        queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
+        queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
+        queryWrapper.eq(InsuranceApply::getIsdeleted,Constants.ZERO);
+
+
+        if(loginUserInfo.getType().equals(Constants.ONE)){
+            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
         }
         if (pageWrap.getModel().getSolutionId() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId());
+            queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId());
         }
-        if (pageWrap.getModel().getCompanyId() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
+        if (pageWrap.getModel().getEndTimeS() != null) {
+            queryWrapper.ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTimeS()));
         }
-        if (pageWrap.getModel().getApplyEndTime() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getApplyEndTime, Utils.Date.getStart(pageWrap.getModel().getApplyEndTime()));
-            queryWrapper.lambda().le(InsuranceApply::getApplyEndTime, Utils.Date.getEnd(pageWrap.getModel().getApplyEndTime()));
+        if (pageWrap.getModel().getEndTimeE() != null) {
+            queryWrapper.le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE()));
         }
-        if (pageWrap.getModel().getApplyStartTime() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getApplyStartTime, Utils.Date.getStart(pageWrap.getModel().getApplyStartTime()));
-            queryWrapper.lambda().le(InsuranceApply::getApplyStartTime, Utils.Date.getEnd(pageWrap.getModel().getApplyStartTime()));
+        if (pageWrap.getModel().getStartTimeS() != null) {
+            queryWrapper.ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTimeS()));
         }
-        if (pageWrap.getModel().getEndTime() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTime()));
-            queryWrapper.lambda().le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTime()));
-        }
-        if (pageWrap.getModel().getStartTime() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTime()));
-            queryWrapper.lambda().le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTime()));
-        }
-        if (pageWrap.getModel().getCheckDate() != null) {
-            queryWrapper.lambda().ge(InsuranceApply::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate()));
-            queryWrapper.lambda().le(InsuranceApply::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate()));
-        }
-        if (pageWrap.getModel().getCheckInfo() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getCheckInfo, pageWrap.getModel().getCheckInfo());
-        }
-        if (pageWrap.getModel().getCheckUserId() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getCheckUserId, pageWrap.getModel().getCheckUserId());
+        if (pageWrap.getModel().getStartTimeE() != null) {
+            queryWrapper.le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE()));
         }
         if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getCode, pageWrap.getModel().getCode());
+            queryWrapper.eq(InsuranceApply::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus());
         }
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -160,7 +139,7 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(insuranceApplyMapper.selectPage(page, queryWrapper));
+        return PageData.from(insuranceApplyJoinMapper.selectJoinPage(page,InsuranceApply.class, queryWrapper));
     }
 
     @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionWorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionWorktypeServiceImpl.java
index fc9a062..8818136 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionWorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionWorktypeServiceImpl.java
@@ -1,15 +1,18 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.SolutionWorktypeMapper;
+import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
 import com.doumee.dao.business.model.SolutionWorktype;
 import com.doumee.service.business.SolutionWorktypeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -33,6 +36,8 @@
         return solutionWorktype.getId();
     }
 
+
+
     @Override
     public void deleteById(Integer id) {
         solutionWorktypeMapper.deleteById(id);
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 d330b4f..a80996b 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
@@ -85,6 +85,13 @@
         QueryWrapper<Worktype> wrapper = new QueryWrapper<>(worktype);
         return worktypeMapper.selectList(wrapper);
     }
+
+    @Override
+    public List<Worktype> getBySolutionsId(Integer solutionId){
+        QueryWrapper<Worktype> wrapper = new QueryWrapper<>();
+        wrapper.apply(" id in ( select  sw.WORKTYPE_ID from solution_worktype sw where sw.SOLUTION_ID = "+solutionId+" ) ");
+        return worktypeMapper.selectList(wrapper);
+    }
   
     @Override
     public PageData<Worktype> findPage(PageWrap<Worktype> pageWrap) {

--
Gitblit v1.9.3