From 84cc4678e46328ebc6ec0bfdb2e2dfa954b93f66 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 19 五月 2025 18:58:39 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/dao/business/dto/RiskConfigDTO.java                |    2 
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java               |   19 
 server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java          |  101 ++++
 server/service/src/main/java/com/doumee/dao/business/dto/SaveSupplementDescribeDTO.java    |   26 +
 server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java              |   15 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  635 ++++++++++++++++++++++++++++
 server/service/src/main/java/com/doumee/dao/business/dto/AcceptanceSettleClaimsDTO.java    |   24 +
 server/service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java |    4 
 /dev/null                                                                                  |   53 --
 server/service/src/main/java/com/doumee/dao/business/vo/CompensationVO.java                |   27 +
 server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java            |  152 ++++++
 server/service/src/main/java/com/doumee/core/utils/Constants.java                          |   90 +++
 server/service/src/main/java/com/doumee/dao/business/dto/OptSettleClaimsDTO.java           |   29 +
 server/service/src/main/java/com/doumee/dao/business/dto/DiscussAuditDTO.java              |   18 
 server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java                  |    4 
 server/company/src/main/java/com/doumee/api/business/SettleRiskController.java             |   71 +++
 16 files changed, 1,193 insertions(+), 77 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/SettleRiskController.java b/server/company/src/main/java/com/doumee/api/business/SettleRiskController.java
new file mode 100644
index 0000000..29fefa0
--- /dev/null
+++ b/server/company/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -0,0 +1,71 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.dto.CompensationDTO;
+import com.doumee.dao.business.dto.OptSettleClaimsDTO;
+import com.doumee.dao.business.dto.SaveSupplementDescribeDTO;
+import com.doumee.dao.business.dto.SettleClaimsDTO;
+import com.doumee.service.business.SettleClaimsService;
+import com.doumee.service.system.impl.SystemDictDataServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Api(tags = "鎶ユ鐞嗚禂锛堟柊锛�")
+@RestController
+@RequestMapping("/business/settleRisk")
+public class SettleRiskController extends BaseController {
+
+    @Autowired
+    private SystemDictDataServiceImpl systemDictDataService;
+
+    @Autowired
+    private SettleClaimsService settleClaimsService;
+
+
+    @PreventRepeat
+    @ApiOperation("鐞嗚禂鎶ユ")
+    @PostMapping("/saveSettleClaims")
+    public ApiResponse saveSettleClaims(@RequestBody SettleClaimsDTO settleClaimsDTO) {
+        settleClaimsService.saveSettleClaims(settleClaimsDTO,systemDictDataService);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("娣诲姞鏉愭枡")
+    @PostMapping("/saveSupplementFile")
+    public ApiResponse saveSupplementFile(@RequestBody SaveSupplementDescribeDTO dto) {
+        settleClaimsService.saveSupplementFile(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @PreventRepeat
+    @ApiOperation("鎾ら攢鎶ユ")
+    @PostMapping("/returnSettle")
+    public ApiResponse returnSettle(@RequestBody OptSettleClaimsDTO dto) {
+        settleClaimsService.returnSettle(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("纭閲戦")
+    @GetMapping("/confirmFee")
+    public ApiResponse confirmFee(@RequestParam Integer id) {
+        settleClaimsService.confirmFee(id);
+        return ApiResponse.success(null);
+    }
+
+
+
+}
diff --git a/server/platform/src/main/java/com/doumee/api/business/RiskConfigController.java b/server/platform/src/main/java/com/doumee/api/business/RiskConfigController.java
deleted file mode 100644
index 7d529c6..0000000
--- a/server/platform/src/main/java/com/doumee/api/business/RiskConfigController.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.doumee.api.business;
-
-import com.doumee.api.BaseController;
-import com.doumee.core.annotation.excel.ExcelExporter;
-import com.doumee.core.annotation.pr.PreventRepeat;
-import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.dto.RiskConfigDTO;
-import com.doumee.dao.business.model.Insurance;
-import com.doumee.dao.business.vo.RiskConfigVO;
-import com.doumee.service.business.InsuranceService;
-import com.doumee.service.system.SystemDictDataService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author 姹熻箘韫�
- * @date 2024/01/16 10:03
- */
-@Api(tags = "椋庨櫓閰嶇疆")
-@RestController
-@RequestMapping("/business/riskConfig")
-public class RiskConfigController extends BaseController {
-
-    @Autowired
-    private SystemDictDataService systemDictDataService;
-
-
-    @ApiOperation("鑾峰彇椋庨櫓閰嶇疆")
-    @GetMapping("/getRiskConfig")
-    public ApiResponse<RiskConfigVO> getRiskConfig() {
-        return ApiResponse.success(systemDictDataService.getRiskConfig());
-    }
-
-
-    @ApiOperation("鏇存柊椋庨櫓閰嶇疆")
-    @PostMapping("/updRiskConfig")
-    public ApiResponse updRiskConfig(@RequestBody RiskConfigDTO riskConfigDTO) {
-        systemDictDataService.updRiskConfig(riskConfigDTO);
-        return ApiResponse.success(null);
-    }
-
-
-
-}
diff --git a/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java b/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
new file mode 100644
index 0000000..3dbbcce
--- /dev/null
+++ b/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -0,0 +1,152 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.dto.*;
+import com.doumee.dao.business.vo.CompensationVO;
+import com.doumee.dao.business.vo.RiskConfigVO;
+import com.doumee.service.business.SettleClaimsService;
+import com.doumee.service.system.SystemDictDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Api(tags = "鎶ユ鐞嗚禂锛堟柊锛�")
+@RestController
+@RequestMapping("/business/settleRisk")
+public class SettleRiskController extends BaseController {
+
+    @Autowired
+    private SystemDictDataService systemDictDataService;
+
+    @Autowired
+    private SettleClaimsService settleClaimsService;
+
+    @ApiOperation("鑾峰彇椋庨櫓閰嶇疆")
+    @GetMapping("/getRiskConfig")
+    public ApiResponse<RiskConfigVO> getRiskConfig() {
+        return ApiResponse.success(systemDictDataService.getRiskConfig());
+    }
+
+
+    @ApiOperation("鏇存柊椋庨櫓閰嶇疆")
+    @PostMapping("/updRiskConfig")
+    public ApiResponse updRiskConfig(@RequestBody RiskConfigDTO riskConfigDTO) {
+        systemDictDataService.updRiskConfig(riskConfigDTO);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("琛ュ厖璇存槑")
+    @PostMapping("/saveSupplementDescribe")
+    public ApiResponse saveSupplementDescribe(@RequestBody SaveSupplementDescribeDTO dto) {
+        settleClaimsService.saveSupplementDescribe(dto);
+        return ApiResponse.success(null);
+    }
+
+    @PreventRepeat
+    @ApiOperation("娣诲姞鏉愭枡")
+    @PostMapping("/saveSupplementFile")
+    public ApiResponse saveSupplementFile(@RequestBody SaveSupplementDescribeDTO dto) {
+        settleClaimsService.saveSupplementFile(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("骞冲彴绔嬫鎴栭��鍥�")
+    @PostMapping("/register")
+    public ApiResponse register(@RequestBody OptSettleClaimsDTO dto) {
+        settleClaimsService.register(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @PreventRepeat
+    @ApiOperation("娣诲姞鎶ユ鍙�")
+    @PostMapping("/addReportNum")
+    public ApiResponse addReportNum(@RequestBody OptSettleClaimsDTO dto) {
+        settleClaimsService.addReportNum(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @PreventRepeat
+    @ApiOperation("娣诲姞澶囨敞")
+    @PostMapping("/addRemark")
+    public ApiResponse addRemark(@RequestBody OptSettleClaimsDTO dto) {
+        settleClaimsService.addRemark(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("鍙楃悊涓氬姟")
+    @PostMapping("/acceptance")
+    public ApiResponse acceptance(@RequestBody AcceptanceSettleClaimsDTO dto) {
+        settleClaimsService.acceptance(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("鐞嗚禂璐圭敤椤逛俊鎭�")
+    @GetMapping("/getCompensation")
+    public ApiResponse<List<CompensationVO>> getCompensation(@RequestParam Integer id) {
+        return ApiResponse.success(settleClaimsService.getCompensation(id));
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("鐞嗚禂")
+    @PostMapping("/compensation")
+    public ApiResponse compensation(@RequestBody CompensationDTO dto) {
+        settleClaimsService.compensation(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @PreventRepeat
+    @ApiOperation("鍟嗚瀹℃壒")
+    @PostMapping("/discussAudit")
+    public ApiResponse discussAudit(@RequestBody DiscussAuditDTO dto) {
+        settleClaimsService.discussAudit(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @PreventRepeat
+    @ApiOperation("鏍歌禂")
+    @PostMapping("/nuclearCompensation")
+    public ApiResponse nuclearCompensation(@RequestBody CompensationDTO dto) {
+        settleClaimsService.nuclearCompensation(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @PreventRepeat
+    @ApiOperation("淇敼閲戦")
+    @PostMapping("/updFee")
+    public ApiResponse updFee(@RequestBody CompensationDTO dto) {
+        settleClaimsService.updFee(dto);
+        return ApiResponse.success(null);
+    }
+
+
+
+
+
+}
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 51c282c..6c170bd 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
@@ -1937,18 +1937,18 @@
         // 8鍟嗚瀹℃壒鎷掔粷 9宸插彈鐞� 10寰呮牳璧�  11宸叉牳璧� 12寰呯粨妗� 13宸茬粨妗� 14宸叉挙妗�
         WAIT_ACCEPTANCE(0, "鏆傚瓨涓�"),
         RETURN_ACCEPTANCE(1, "宸叉姤妗�"),
-        DEAL_ING(2, "寰呯珛妗�"),
+        DEAL_ING(2, "寰呯珛妗� 锛堝純鐢級"),
         CONFIRM_INFORMATION(3, "宸茬珛妗�"),
         FINISH_ACCEPTANCE(4, "绔嬫閫�鍥�"),
         WAIT_DEAL(5, "寰呭彈鐞�"),
         REJECT_DEAL(6, "鎷掔粷鍙楃悊"),
         WAIT_DISCUSS_AUDIT(7, "寰呭晢璁鎵�"),
         WAIT_DISCUSS_REJECT(8, "鍟嗚瀹℃壒鎷掔粷"),
-        ACCEPTANCE(9, "宸插彈鐞�"),
+        ACCEPTANCE(9, "宸插彈鐞�"),//寰呯悊绠�
         WAIT_AUDIT_COMPENSATION(10, "寰呮牳璧�"),
         COMPENSATION(11, "宸叉牳璧�"),
-        WAIT_CLOSE_CASE(12, "寰呯粨妗�"),
-        CLOSE_CASE(13, "寰呯粨妗�"),
+        WAIT_CLOSE_CASE(12, "寰呯粨妗堬紙寮冪敤锛�"),
+        CLOSE_CASE(13, "宸茬粨妗�"),
         RETURN(14, "宸叉挙妗�"),
         ;
         // 鎴愬憳鍙橀噺
@@ -1996,12 +1996,24 @@
         PLATFORM_FINISH(3, "缁撴鎻愪氦","鎻愪氦鎰忚锛�${param}"),
         UPDATE_DATA(4, "淇敼淇℃伅","鎻愪氦鎰忚锛�${param}"),
         SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"),
-        PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","鎻愪氦鎰忚锛�${param}"),
+        PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","宸插湪骞冲彴瀹屾垚鐞嗚禂"),
         PLATFORM_REMARK(7, "骞冲彴澶囨敞鏍囩","${param}"),
         PLATFORM_ADDCODE(8, "骞冲彴娣诲姞鎶ユ鍙�","澶囨鍙凤細${param}"),
         PLATFORM_UN_AGREE_BACK(9, "浼佷笟涓嬭浇璧勬枡",""),
         PLATFORM_DOWNLOAD(10, "骞冲彴涓嬭浇璧勬枡",""),
         PLATFORM_CHECK_PASS(11, "骞冲彴涓婁紶璧勬枡",""),
+        SUPPLEMENT_DESCRIBE(12, "骞冲彴濉啓闇�琛ュ厖鍐呭",""),
+        RETURN_SETTLE(13, "鎾ら攢鎶ユ",""),
+        PLATFORM_REGISTER(14, "骞冲彴绔嬫",""),
+        PLATFORM_ACCEPTANCE(15, "鍙楃悊-宸插彈鐞�",""),
+        PLATFORM_REFUSE_ACCEPTANCE(16, "鍙楃悊-鎷掔粷鍙楃悊","鎷掔粷鍘熷洜锛�${param}"),
+        PLATFORM_DISCUSS(17, "鍙楃悊-鍟嗚",""),
+        PLATFORM_DISCUSS_PASS(18, "鍙楃悊-鍟嗚閫氳繃",""),
+        PLATFORM_DISCUSS_REFUSE(19, "鍙楃悊-鍟嗚鎷掔粷","鎷掔粷鍘熷洜锛�${param}"),
+        PLATFORM_WAIT_DISCUSS(20, "鍙楃悊-鍟嗚寰呭鎵�",""),
+        PLATFORM_HP_DEAL(21, "鏍歌禂-鎻愪氦鏍歌禂閲戦","宸叉彁浜よ禂浠橀噾棰濓紝寰呯敤鎴风‘璁�"),
+        PLATFORM_UPD_FEE(22, "鏍歌禂-淇敼閲戦",""),
+        CONFIRM_FEE(22, "鏍歌禂-瀹㈡埛纭閲戦","宸茬‘璁ら噾棰�"),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
@@ -2621,5 +2633,73 @@
     }
 
 
+    /**
+     * 璧斾粯椤�
+     */
+    public  enum compensation{
+        YL_COMPENSATION(0, "鍖荤枟鐞嗚禂",1),
+        WG_COMPENSATION(1, "璇伐鐞嗚禂",1),
+        SC_COMPENSATION(2, "浼ゆ畫鐞嗚禂",1),
+        SW_COMPENSATION(3, "姝讳骸鐞嗚禂",1),
+        HSF_FEE(4, "浼欓璐�",2),
+        XY_FEE(5, "缁尰璐�",2),
+        YY_FEE(6, "钀ュ吇璐�",2),
+        HL_FEE(7, "鎶ょ悊璐�",2),
+        ZDJB_FEE(8, "閲嶅ぇ鐤剧梾璧斿伩閲�",2),
+        TB_FEE(9, "鐗瑰埆璐圭敤",2),
+        ZS_FEE(10, "浣忓璐�",2),
+        JT_FEE(11, "娲ヨ创",2),
+        CJ_FEE(12, "娈嬬柧璧斿伩閲�",2),
+        BFYR_FEE(13, "琚姎鍏讳汉鐢熸椿璐�",2),
+        SCF_FEE(14, "涓ц懍璐�",2),
+        JSFXJ_FEE(15, "绮剧鎶氭仱閲�",2),
+        JD_FEE(16, "閴村畾璐�",2),
+        SS_FEE(17, "璇夎璐�",2),
+        LS_FEE(18, "寰嬪笀璐�",2),
+        TRAFFIC_FEE(19, "浜ら�氳垂",2),
+        CJQJ_FEE(20, "娈嬬柧鍣ㄥ叿璐�",2),
+        QT_FEE(21, "鍏朵粬璐圭敤",2),
+        ;
+        // 鎴愬憳鍙橀噺
+        private String name;
+        private int key;
+        private int type;
+
+        // 鏋勯�犳柟娉�
+        compensation(int key, String name, int type) {
+            this.name = name;
+            this.key = key;
+            this.type = type;
+        }
+
+
+        // get set 鏂规硶
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+
+        public int getType() {
+            return type;
+        }
+
+        public void setType(int type) {
+            this.type = type;
+        }
+
+    }
+
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/AcceptanceSettleClaimsDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/AcceptanceSettleClaimsDTO.java
new file mode 100644
index 0000000..2aee9cc
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/AcceptanceSettleClaimsDTO.java
@@ -0,0 +1,24 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 瀛樺偍 琛ュ厖璇存槑
+ */
+@Data
+public class AcceptanceSettleClaimsDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "0=鍙楃悊锛�1=鎷掔粷鍙楃悊锛�2=鍟嗚瀹℃壒锛�3=鍟嗚涓嶅鎵�")
+    private Integer status;
+
+    @ApiModelProperty(value = "璇存槑銆佸娉�")
+    private String describe;
+
+    @ApiModelProperty(value = "闂绫诲瀷锛氬涓敤鑻辨枃閫楀彿闅斿紑")
+    private String syProblemOpts;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java
new file mode 100644
index 0000000..dd47673
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java
@@ -0,0 +1,15 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class CompensationDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+
+    @ApiModelProperty(value = "鐞嗚禂閲戦json涓�")
+    private String compensationJson;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/DiscussAuditDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/DiscussAuditDTO.java
new file mode 100644
index 0000000..b7c83bc
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/DiscussAuditDTO.java
@@ -0,0 +1,18 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DiscussAuditDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "0=瀹℃壒閫氳繃锛�1=瀹℃壒鎷掔粷")
+    private Integer status;
+
+    @ApiModelProperty(value = "璇存槑")
+    private String describe;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/OptSettleClaimsDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/OptSettleClaimsDTO.java
new file mode 100644
index 0000000..eb37531
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/OptSettleClaimsDTO.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 瀛樺偍 琛ュ厖璇存槑
+ */
+@Data
+public class OptSettleClaimsDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "绔嬫涓氬姟鐘舵�侊細3=绔嬫锛�4=绔嬫閫�鍥�")
+    private Integer registerStatus;
+
+    @ApiModelProperty(value = "璇存槑銆佸娉�")
+    private String describe;
+
+    @ApiModelProperty(value = "鎶ユ鍙�")
+    private String reportNum;
+
+    @ApiModelProperty(value = "鍙楃悊涓氬姟鐘舵�侊細9=鍙楃悊锛�6=鎷掔粷鍙楃悊锛�")
+    private Integer acceptanceStatus;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/RiskConfigDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/RiskConfigDTO.java
index cf4a1ac..42645f9 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/RiskConfigDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/RiskConfigDTO.java
@@ -26,7 +26,7 @@
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-绱㈣禂娆℃暟", example = "1")
     private String riskClaimTimes;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓槸鍚﹀紑鍚細0=鍚︼紱1=鏄�;", example = "1")
-    private String riskNewMemberOepn;
+    private String riskNewMemberOpen;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓椂闂村崟浣嶏細0鍒嗛挓 1灏忔椂 2澶�", example = "1")
     private String riskNewMemberTimeUnit;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓椂闂�", example = "1")
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SaveSupplementDescribeDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SaveSupplementDescribeDTO.java
new file mode 100644
index 0000000..bcfc870
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SaveSupplementDescribeDTO.java
@@ -0,0 +1,26 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.dao.business.model.Multifile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 瀛樺偍 琛ュ厖璇存槑
+ */
+@Data
+public class SaveSupplementDescribeDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "琛ュ厖璇存槑")
+    private String describe;
+
+    @ApiModelProperty(value = "琛ュ厖璇存槑鏂囦欢")
+    private List<Multifile> supplementFileList;
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
index d88ad9c..c82e50e 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -105,8 +105,8 @@
     @ExcelColumn(name="鍗曞彿")
     private String code;
 
-    @ApiModelProperty(value = "鐘舵�� 寮冪敤(0寰呭彈鐞嗭紙澶勭悊涓級 1閫�鍥炲彈鐞嗭紙宸叉挙妗堬級2鍙楃悊涓�  3纭璧勬枡锛堝鐞嗕腑锛� 4瀹屾垚鍙楃悊锛堝凡缁撴锛�) 5寰呭彈鐞� 6鍙楃悊閫�鍥� 7寰呭晢璁� 8鍟嗚寰呭鎵� 9鍟嗚瀹℃壒鎷掔粷 10宸插彈鐞�", example = "1")
-    @ExcelColumn(name="鐘舵�� 0寰呭彈鐞嗭紙澶勭悊涓級 1閫�鍥炲彈鐞嗭紙宸叉挙妗堬級 2纭璧勬枡锛堝鐞嗕腑锛� 3瀹屾垚鍙楃悊锛堝凡缁撴锛�")
+    @ApiModelProperty(value = "鐘舵�� 0鏆傚瓨涓� 1宸叉姤妗� 2寰呯珛妗� 3宸茬珛妗� 4绔嬫閫�鍥� 5寰呭彈鐞� 6鎷掔粷鍙楃悊 7鍟嗚寰呭鎵� 8鍟嗚瀹℃壒鎷掔粷 9宸插彈鐞� 10寰呮牳璧�  11宸叉牳璧� 12寰呯粨妗� 13宸茬粨妗� 14宸叉挙妗�", example = "1")
+    @ExcelColumn(name="鐘舵�� 0鏆傚瓨涓� 1宸叉姤妗� 2寰呯珛妗� 3宸茬珛妗� 4绔嬫閫�鍥� 5寰呭彈鐞� 6鎷掔粷鍙楃悊 7鍟嗚寰呭鎵� 8鍟嗚瀹℃壒鎷掔粷 9宸插彈鐞� 10寰呮牳璧�  11宸叉牳璧� 12寰呯粨妗� 13宸茬粨妗� 14宸叉挙妗�")
     private Integer status;
 
     @ApiModelProperty(value = "浜嬫晠绫诲瀷 0宸ヤ綔鏈熼棿鍙椾激 1涓婁笅鐝�斾腑鍙椾激 2闈炲伐浣滄椂闂村彈浼� 3鎰忓鍙椾激", example = "1")
@@ -177,7 +177,7 @@
     @ApiModelProperty(value = "鐞嗚禂鏉ユ簮 0浼佷笟 1骞冲彴褰曞叆 2鍏朵粬 ")
     @ExcelColumn(name="鐞嗚禂鏉ユ簮 0浼佷笟 1骞冲彴褰曞叆 2鍏朵粬")
     private String origin;
-    @ApiModelProperty(value = "鍙楃悊鍟嗚闂 0璧勬枡缂哄け锛�1寤惰繜鎶ユ 2瓒呰亴涓氱被鍒� 3鍏朵粬锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
+    @ApiModelProperty(value = "鍙楃悊鍟嗚闂 0璧勬枡缂哄け锛�1寤惰繜鎶ユ 2瓒呰亴涓氱被鍒� 3鍙屽厤 4鍏朵粬 锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
     @ExcelColumn(name="鍙楃悊鍟嗚闂 0璧勬枡缂哄け锛�1寤惰繜鎶ユ 2瓒呰亴涓氱被鍒� 3鍏朵粬锛堝涓敤鑻辨枃閫楀彿闅斿紑锛�")
     private String syProblemOpts;
     @ApiModelProperty(value = "鏄惁椋庨櫓妗堜欢 0鍚� 1鏄�")
@@ -206,7 +206,7 @@
     private String accountContent;
     @ApiModelProperty(value = "鍏朵粬璧斾粯椤规�婚")
     @ExcelColumn(name="鍏朵粬璧斾粯椤规�婚")
-    private String otherAccount;
+    private BigDecimal otherAccount;
     @ApiModelProperty(value = "鏄惁鍙禂浠樺尰淇濆鐢ㄨ嵂")
     @ExcelColumn(name="鏄惁鍙禂浠樺尰淇濆鐢ㄨ嵂")
     private String payForYbwyy;
@@ -226,9 +226,12 @@
     @ExcelColumn(name="鏀舵璐︽埛")
     private String receiveAccount;
 
+    @ApiModelProperty(value = "椋庨櫓淇℃伅闆嗗悎")
+    private String riskContent;
 
 
-
+    @ApiModelProperty(value = "鏄惁寰呰ˉ鍏呮潗鏂�:0=鍚︼紱1=鏄�")
+    private Integer waitSupplement;
 
 
     @ApiModelProperty(value = "淇濋櫓鍗曢檮浠�")
@@ -258,6 +261,12 @@
     @TableField(exist = false)
     private List<Multifile> compensationFileList;
 
+
+    @ApiModelProperty(value = "鍏朵粬璧勬枡")
+    @TableField(exist = false)
+    private List<Multifile> otherFileList;
+
+
     @ApiModelProperty(value = "鏃ュ織鍒楄〃")
     @TableField(exist = false)
     List<SettleClaimsLog> settleClaimsLogList;
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/CompensationVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/CompensationVO.java
new file mode 100644
index 0000000..e9f8696
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/CompensationVO.java
@@ -0,0 +1,27 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 瀛樺偍 琛ュ厖璇存槑
+ */
+@Data
+public class CompensationVO {
+
+    @ApiModelProperty(value = "璧斾粯绫诲瀷锛�1=涓昏璧斾粯椤癸紱2=鍏朵粬璧斾粯椤�")
+    private Integer type;
+
+    @ApiModelProperty(value = "璧斾粯椤�")
+    private String name;
+
+    @ApiModelProperty(value = "璐圭敤璇存槑")
+    private String describe;
+
+    @ApiModelProperty(value = "璧斾粯璐圭敤")
+    private BigDecimal fee;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
index 87aec30..bdb0b24 100644
--- a/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
@@ -28,8 +28,8 @@
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-绱㈣禂娆℃暟", example = "1")
     private String riskClaimTimes;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓槸鍚﹀紑鍚細0=鍚︼紱1=鏄�;", example = "1")
-    private String riskNewMemberOepn;
-    @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓椂闂村崟浣嶏細0鍒嗛挓 1灏忔椂 2澶�", example = "1")
+    private String riskNewMemberOpen;
+    @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓椂闂村崟浣嶏細1灏忔椂 2澶�", example = "1")
     private String riskNewMemberTimeUnit;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-鏂板憳宸ュ嚭闄╂彁閱掓椂闂�", example = "1")
     private String riskNewMemberTime;
diff --git a/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java b/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
index a6f58cb..70d69c7 100644
--- a/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java
@@ -2,8 +2,10 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.dto.SCSupplementDTO;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.model.SettleClaims;
+import com.doumee.dao.business.vo.CompensationVO;
+import com.doumee.service.system.impl.SystemDictDataServiceImpl;
 import io.swagger.models.auth.In;
 
 import javax.servlet.http.HttpServletResponse;
@@ -130,4 +132,101 @@
     Integer back(SettleClaims settleClaims);
 
     Integer delFile(Integer id, Integer fileId);
+
+
+    /************************************************************************鏂颁笟鍔�******************************************************************************************/
+
+    /**
+     * 浼佷笟鎶ユ鎻愪氦
+     * @param settleClaimsDTO
+     * @param systemDictDataService
+     */
+    void saveSettleClaims(SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService);
+
+
+    /**
+     * 琛ュ厖璇存槑
+     * 骞冲彴绔娇鐢�
+     * @param dto
+     */
+    void saveSupplementDescribe(SaveSupplementDescribeDTO dto);
+
+
+    /**
+     * 娣诲姞琛ュ厖鏉愭枡
+     * @param dto
+     */
+    void saveSupplementFile(SaveSupplementDescribeDTO dto);
+
+
+    /**
+     * 鎾ら攢鎶ユ
+     * @param dto
+     */
+    void returnSettle(OptSettleClaimsDTO dto);
+
+    /**
+     * 骞冲彴绔嬫鎴栭��鍥�
+     * @param dto
+     */
+    void register(OptSettleClaimsDTO dto);
+
+    /**
+     * 娣诲姞鎶ユ鍙�
+     * @param param
+     * @return
+     */
+    Integer addReportNum(OptSettleClaimsDTO param);
+
+    /**
+     * 娣诲姞澶囨敞
+     * @param param
+     * @return
+     */
+    Integer addRemark(OptSettleClaimsDTO param);
+
+    /**
+     * 鍙楃悊涓氬姟
+     * @param dto
+     */
+    void acceptance(AcceptanceSettleClaimsDTO dto);
+
+
+    /**
+     * 鐞嗚禂閲戦椤�
+     * @param id
+     * @return
+     */
+    List<CompensationVO> getCompensation(Integer id);
+
+    /**
+     * 鐞嗚禂涓氬姟
+     * @param dto
+     */
+    void compensation(CompensationDTO dto);
+
+    /**
+     * 鍟嗚瀹℃壒
+     * @param dto
+     */
+    void discussAudit(DiscussAuditDTO dto);
+
+
+    /**
+     * 骞冲彴鏍歌禂
+     * @param dto
+     */
+    void nuclearCompensation(CompensationDTO dto);
+
+    /**
+     * 淇敼閲戦
+     * @param dto
+     */
+    void updFee(CompensationDTO dto);
+
+    /**
+     * 瀹㈡埛纭閲戦
+     * @param id
+     */
+    void confirmFee(Integer id);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index d5c68c8..f3ea9df 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
@@ -11,12 +12,12 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
-import com.doumee.dao.business.dto.SCSupplementDTO;
-import com.doumee.dao.business.dto.SettleClaimsDTO;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.join.MultifileJoinMapper;
 import com.doumee.dao.business.join.SettleClaimsJoinMapper;
 import com.doumee.dao.business.join.SettleClaimsLogJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CompensationVO;
 import com.doumee.dao.business.vo.RiskConfigVO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SettleClaimsLogService;
@@ -37,12 +38,14 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.util.*;
@@ -370,8 +373,9 @@
         SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
         settleClaimsLogMapper.insert(log);
         return  1;
-
     }
+
+
     @Override
     public Integer create(SettleClaims settleClaims) {
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -567,6 +571,8 @@
             settleClaims.setDisabilityFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SCZL_FILE.getKey())).collect(Collectors.toList()));
 
             settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList()));
+
+            settleClaims.setOtherFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_OTHER_FILE.getKey())).collect(Collectors.toList()));
         }
 
         //鏌ヨ鎿嶄綔璁板綍
@@ -710,7 +716,6 @@
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-
         SettleClaims settleClaims  = settleClaimsMapper.selectById(scSupplementDTO.getId());
         if(!(settleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())
                 || settleClaims.getStatus().equals(Constants.SettleClaimsStatus.DEAL_ING.getKey())
@@ -960,7 +965,9 @@
     }
 
 
-    public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO){
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(!loginUserInfo.getType().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
@@ -997,6 +1004,13 @@
         if(Objects.nonNull(settleClaims.getId())){
             settleClaims.setEditDate(new Date());
             settleClaims.setEditor(loginUserInfo.getId());
+            settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)?
+                    Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
+            if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
+                //澶勭悊椋庨櫓淇℃伅
+                this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService);
+            }
+
             settleClaimsMapper.updateById(settleClaims);
         }else{
             settleClaims.setCreateDate(new Date());
@@ -1004,14 +1018,18 @@
             settleClaims.setCompanyId(loginUserInfo.getCompanyId());
             settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)?
                     Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey());
+            if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
+                //澶勭悊椋庨櫓淇℃伅
+                this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService);
+            }
             settleClaims.setCreator(loginUserInfo.getId());
             settleClaims.setCheckUserId(loginUserInfo.getId());
             settleClaimsMapper.insert(settleClaims);
         }
         this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo);
-        //澶勭悊椋庨櫓淇℃伅
 
-
+        //璁板綍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null);
     }
 
     public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){
@@ -1170,9 +1188,36 @@
                 settleClaims.setRiskSensitive(sensitiveWord);
             }
         }
-
         //鐤戜技鏂板憳宸ュ嚭闄�
+        if(StringUtils.isNotBlank(riskConfigVO.getRiskNewMemberOpen())
+                && StringUtils.equals(riskConfigVO.getRiskNewMemberOpen(),Constants.ONE+"")
+                && StringUtils.isNotBlank(riskConfigVO.getRiskNewMemberTimeUnit())
+                && StringUtils.isNotBlank(riskConfigVO.getRiskNewMemberTime())
+        ){
+            Map<String,String> map = new HashMap<>();
+            map.put("title","鐤戜技鏂板憳宸ュ嚭闄�");
+            if(riskConfigVO.getRiskNewMemberTimeUnit().equals(Constants.ONE+"")){
+                if(DateUtil.afterMinutesByDate(Integer.valueOf(riskConfigVO.getRiskNewMemberTime())*60,insuranceApply.getStartTime()).getTime() < happenTime.getTime()){
+                    map.put("info","淇濋櫓鐢熸晥鏃堕棿涓�"+DateUtil.getFomartDate(insuranceApply.getStartTime(),"yyyy-MM-dd")+"");
+                    riskList.add(map);
+                    settleClaims.setRiskNewUser(Constants.ONE);
+                };
 
+            }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){
+                if(DateUtil.afterDayByDate(Integer.valueOf(riskConfigVO.getRiskNewMemberTime()),insuranceApply.getStartTime()).getTime() < happenTime.getTime()){
+                    map.put("info","淇濋櫓鐢熸晥鏃堕棿涓�"+DateUtil.getFomartDate(insuranceApply.getStartTime(),"yyyy-MM-dd")+"");
+                    riskList.add(map);
+                    settleClaims.setRiskNewUser(Constants.ONE);
+                }
+            } 
+        }
+        settleClaims.setRiskContent(JSONObject.toJSONString(riskList));
+        if(riskList.size()>Constants.ZERO){
+            settleClaims.setIsRisk(Constants.ONE);
+        }else{
+            settleClaims.setIsRisk(Constants.ZERO);
+            settleClaims.setStatus(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey());
+        }
     }
 
     public void saveFile(SettleClaims settleClaims,SettleClaimsDTO settleClaimsDTO,LoginUserInfo loginUserInfo){
@@ -1305,14 +1350,588 @@
                 multifile.setSortnum(i+1);
                 multifileJoinMapper.insert(multifile);
             }
+        } 
+    }
+
+//    public void getRiskSettleDetail(Integer id){
+//        settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,new MPJLambdaWrapper<SettleClaims>()
+//                .selectAll(SettleClaims.class)
+//                .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
+//                .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
+//                .selectAs(Solutions::getName,SettleClaims::getSolutionName)
+//                .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
+//                .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime)
+//                .leftJoin(Solutions.class,Solutions::getId,SettleClaims::getSolutionId)
+//                .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId)
+//                .leftJoin(Worktype.class,Worktype::getId,SettleClaims::getWorktypeId)
+//                .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
+//
+//
+//                .eq(SettleClaims::getId,id)
+//                .last(" limit 1 ")
+//        );
+//    }
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void saveSupplementDescribe(SaveSupplementDescribeDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+            || Objects.isNull(dto.getDescribe())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        if(Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰呬紒涓氳ˉ鍏呮枃浠讹紝璇风瓑寰呬紒涓氳ˉ鍏呮枃浠�");
+        }
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe());
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ONE));
+    }
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void saveSupplementFile(SaveSupplementDescribeDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || CollectionUtils.isEmpty(dto.getSupplementFileList())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!(loginUserInfo.getType().equals(Constants.ZERO)||loginUserInfo.getType().equals(Constants.ONE))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙颁笌浼佷笟鍛樺伐鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(loginUserInfo.getType().equals(Constants.ZERO)){
+            if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())
+                    || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())
+            )){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+            }
+        }else{
+            //濡傛灉鏄紒涓� 鏌ヨ鏄惁鏄嚜宸变紒涓氱殑鏁版嵁
+            if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔");
+            }
+            if(!Constants.equalsInteger(settleClaims.getWaitSupplement(),Constants.ONE)) {
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠涓氬姟鏃犻渶杩涜娣诲姞鏉愭枡");
+            }
+            if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())
+                    || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())
+                    || Constants.equalsInteger(Constants.SettleClaimsStatus.REJECT_DEAL.getKey(),settleClaims.getStatus())
+                    || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey(),settleClaims.getStatus())
+            )){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+            }
+            settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ZERO));
+        }
+        multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,dto.getId()).eq(Multifile::getObjType,Constants.MultiFile.LP_OTHER_FILE.getKey()));
+        List<Multifile> fileList = dto.getSupplementFileList();
+        if(CollectionUtils.isNotEmpty(fileList)){
+            for (int i = 0; i < fileList.size(); i++) {
+                Multifile multifile = fileList.get(i);
+                if(Objects.isNull(multifile.getFileurl())
+                        || Objects.isNull(multifile.getType())
+                        || StringUtils.isBlank(multifile.getName())
+                ){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
+                }
+                multifile.setCreator(loginUserInfo.getId());
+                multifile.setCreateDate(new Date());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(settleClaims.getId());
+                //娣诲姞鏉愭枡鏀惧叆 鍏朵粬鏉愭枡涓氬姟鍐�
+                multifile.setObjType(Constants.MultiFile.LP_OTHER_FILE.getKey());
+                multifile.setSortnum(i+1);
+                multifileJoinMapper.insert(multifile);
+            }
+        }
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null);
+    }
+
+
+    /**
+     * 鎾ら攢鎶ユ
+     * @param dto
+     */
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void returnSettle(OptSettleClaimsDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())){
+            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(),"闈炰紒涓氫汉鍛樻棤娉曡繘琛岃鎿嶄綔");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //濡傛灉鏄紒涓� 鏌ヨ鏄惁鏄嚜宸变紒涓氱殑鏁版嵁
+        if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔");
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null);
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,Constants.SettleClaimsStatus.RETURN.getKey()));
+    }
 
 
 
+
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void register(OptSettleClaimsDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || Objects.isNull(dto.getRegisterStatus())
+                || !(Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())||Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey()))
+                || (Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())&&StringUtils.isBlank(dto.getDescribe()))
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        Constants.SettleClaimsStatus settleClaimsStatus =
+                Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsStatus.CONFIRM_INFORMATION:Constants.SettleClaimsStatus.FINISH_ACCEPTANCE;
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe());
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,
+                        DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public Integer addReportNum(OptSettleClaimsDTO param){
+        if(param.getId() == null
+                ||StringUtils.isBlank( param.getReportNum()) ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SettleClaims model = settleClaimsMapper.selectById(param.getId());
+        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+            || Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+            ) 
+        ){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!user.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        //鏌ヨ鏄惁鏈夋姤妗堝彿鏇存敼璁板綍
+        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+        && settleClaimsLogMapper.selectCount(new QueryWrapper<SettleClaimsLog>().lambda()
+                        .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_ADDCODE.getKey())
+                .eq(SettleClaimsLog::getSettleClainmsId,param.getId()))>=Constants.ONE){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
+        }
+        if(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())&&StringUtils.isNotBlank(model.getReportNum())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀规姤妗堝彿锛屾棤娉曞啀娆′慨鏀�");
+        }
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,param.getId()).set(SettleClaims::getEditDate,
+                        DateUtil.getCurrDateTime()).set(SettleClaims::getReportNum,param.getReportNum()));
+
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(user.getId());
+        update.setId(model.getId());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckInfo("娣诲姞澶囨鍙�");
+        update.setCheckUserId(user.getId());
+        update.setReportNum(param.getReportNum());
+        settleClaimsMapper.updateById(update);
+
+        Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_ADDCODE;
+        String info =applyLogType.getInfo();
+        info = info.replace("${param}", update.getReportNum());
+        SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        settleClaimsLogMapper.insert(log);
+
+        return  1;
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public  Integer addRemark(OptSettleClaimsDTO  param){
+        if(param.getId() == null
+                ||StringUtils.isBlank( param.getDescribe()) ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SettleClaims model = settleClaimsMapper.selectById(param.getId());
+        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_CLOSE_CASE.getKey())
+                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())
+        )){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇峰綋鍓嶄笉鏀寔璇ユ搷浣渵");
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(user.getId());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckInfo("娣诲姞澶囨敞鏍囩");
+        update.setCheckUserId(user.getId());
+        update.setId(model.getId());
+        settleClaimsMapper.updateById(update);
+
+        Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_REMARK;
+        String info =applyLogType.getInfo();
+        info = info.replace("${param}", param.getDescribe());
+        SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        settleClaimsLogMapper.insert(log);
+        return  1;
 
     }
 
 
 
 
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void acceptance(AcceptanceSettleClaimsDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || Objects.isNull(dto.getStatus())
+                || StringUtils.isBlank(dto.getDescribe())
+                || !(dto.getStatus()>=Constants.ZERO||dto.getStatus()<=Constants.THREE)
+                || ((Constants.equalsInteger(dto.getStatus(),Constants.THREE) ||Constants.equalsInteger(dto.getStatus(),Constants.TWO)) && StringUtils.isBlank(dto.getSyProblemOpts()) )
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){
+            //鍙楃悊
+            settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId())
+                    .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.ACCEPTANCE.getKey()));
+            //瀛樺偍鏃ュ織
+            this.saveSettleClaimsLog(settleClaims,
+                    Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS,
+                    dto.getDescribe());
+        }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){
+            //鎷掔粷鍙楃悊
+            settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId())
+                    .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey()));
+            //瀛樺偍鏃ュ織
+            this.saveSettleClaimsLog(settleClaims,
+                    Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE,
+                    Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe()));
+        }else if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){
+            //鍙楃悊鍟嗚瀹℃壒
+            settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getEditor,loginUserInfo.getId())
+                    .set(SettleClaims::getStatus,Constants.SettleClaimsStatus.REJECT_DEAL.getKey()));
+            //瀛樺偍鏃ュ織
+            this.saveSettleClaimsLog(settleClaims,
+                    Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS,
+                    dto.getDescribe());
+        }
+    }
+
+
+    @Override
+    public List<CompensationVO> getCompensation(Integer id){
+        SettleClaims settleClaims = settleClaimsMapper.selectById(id);
+        List<CompensationVO> modelList = new ArrayList<>();
+        if (Objects.nonNull(settleClaims)&&StringUtils.isNotBlank(settleClaims.getAccountContent())) {
+            modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+        }
+        Constants.compensation [] compensations = Constants.compensation.values();
+        List<CompensationVO> list = new ArrayList<>();
+        for (Constants.compensation c:compensations) {
+            CompensationVO compensationVO = new CompensationVO();
+            compensationVO.setType(c.getType());
+            compensationVO.setName(c.getName());
+            if(CollectionUtils.isNotEmpty(modelList)){
+                Optional<CompensationVO> optionalModel =  modelList.stream().filter(i->i.getName().equals(c.getName())).findFirst();
+                if(optionalModel.isPresent()){
+                    CompensationVO oldModel  = optionalModel.get();
+                    compensationVO.setFee(oldModel.getFee());
+                    compensationVO.setDescribe(oldModel.getDescribe());
+                }
+            }
+            list.add(compensationVO);
+        }
+        return list;
+    }
+    
+    
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void compensation(CompensationDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || StringUtils.isBlank(dto.getCompensationJson())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!(Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus()))||Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+
+        List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setAccountContent(dto.getCompensationJson());
+        update.setId(settleClaims.getId());
+        update.setStatus(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey());
+        settleClaimsMapper.updateById(update);
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.PLATFORM_LP_DEAL,
+                Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo());
+    }
+
+
+    /**
+     * 鍟嗚瀹℃壒
+     * @param dto
+     */
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void discussAudit(DiscussAuditDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || Objects.isNull(dto.getStatus())
+                || !(Constants.equalsInteger(dto.getStatus(),Constants.ZERO)||Constants.equalsInteger(dto.getStatus(),Constants.ONE))
+                || (Constants.equalsInteger(dto.getStatus(),Constants.ONE)&&StringUtils.isBlank(dto.getDescribe()))
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        Constants.SettleClaimsStatus settleClaimsStatus =
+                Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsStatus.ACCEPTANCE:Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT;
+        //瀛樺偍鏃ュ織
+        Constants.SettleClaimsLogType settleClaimsLogType = Constants.equalsInteger(dto.getStatus(),Constants.ZERO)
+                ?Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS:Constants.SettleClaimsLogType.PLATFORM_DISCUSS_REFUSE;
+        this.saveSettleClaimsLog(settleClaims, settleClaimsLogType
+                ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe()));
+        settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime())
+                        .set(SettleClaims::getEditor,loginUserInfo.getId())
+                .set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
+    }
+
+
+
+
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void nuclearCompensation(CompensationDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || StringUtils.isBlank(dto.getCompensationJson())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+
+        List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setAccountContent(dto.getCompensationJson());
+        update.setId(settleClaims.getId());
+        update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey());
+        settleClaimsMapper.updateById(update);
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.PLATFORM_HP_DEAL,
+                Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo());
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void updFee(CompensationDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || StringUtils.isBlank(dto.getCompensationJson())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+
+        List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class);
+
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+
+        //澶勭悊鍘嗗彶鏁版嵁
+        List<CompensationVO> oldList =  JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+        for (CompensationVO compensationVO:oldList) {
+            if(compensationVO.getName().equals(Constants.compensation.YL_COMPENSATION.getName())){
+                compensationVO.setFee(update.getYlClaimAccount());
+            }else if(compensationVO.getName().equals(Constants.compensation.WG_COMPENSATION.getName())){
+                compensationVO.setFee(update.getWgClaimAccount());
+            }else if(compensationVO.getName().equals(Constants.compensation.SC_COMPENSATION.getName())){
+                compensationVO.setFee(update.getScClaimAccount());
+            }else if(compensationVO.getName().equals(Constants.compensation.SW_COMPENSATION.getName())){
+                compensationVO.setFee(update.getSwClaimAccount());
+            }else{
+              continue;  
+            }
+        }
+        update.setAccountContent(dto.getCompensationJson());
+        update.setAccountContent(JSONArray.toJSONString(oldList));
+        update.setId(settleClaims.getId()); 
+        settleClaimsMapper.updateById(update);
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.PLATFORM_UPD_FEE,
+                Constants.SettleClaimsLogType.PLATFORM_UPD_FEE.getInfo());
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void confirmFee(Integer id){
+       
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(id);
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.CONFIRM_FEE,
+                Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo());
+    }
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 8c3fcb7..1a1e495 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -151,7 +151,7 @@
                 }else if(systemDictData.getLabel().equals(Constants.RISK_CLAIM_TIMES)){
                     riskConfigVO.setRiskClaimTimes(systemDictData.getCode());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_OPEN)){
-                    riskConfigVO.setRiskNewMemberOepn(systemDictData.getCode());
+                    riskConfigVO.setRiskNewMemberOpen(systemDictData.getCode());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_TIME_UNIT)){
                     riskConfigVO.setRiskNewMemberTimeUnit(systemDictData.getCode());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_TIME)){
@@ -202,7 +202,7 @@
                 }else if(systemDictData.getLabel().equals(Constants.RISK_CLAIM_TIMES)){
                     systemDictData.setCode(riskConfigDTO.getRiskClaimTimes());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_OPEN)){
-                    systemDictData.setCode(riskConfigDTO.getRiskNewMemberOepn());
+                    systemDictData.setCode(riskConfigDTO.getRiskNewMemberOpen());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_TIME_UNIT)){
                     systemDictData.setCode(riskConfigDTO.getRiskNewMemberTimeUnit());
                 }else if(systemDictData.getLabel().equals(Constants.RISK_NEW_MEMBER_TIME)){

--
Gitblit v1.9.3