From 81d7f91fa38e74cab052eb4413bd3e12686935a4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 26 五月 2025 14:07:34 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java                 |   21 +
 server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java            |   23 +
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java    |    3 
 server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java                |    4 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java   |  465 +++++++++++++++++++++++++-----
 server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java      |    4 
 server/service/src/main/java/com/doumee/dao/business/dto/UpdReceiveInfoDTO.java              |   29 +
 server/company/src/main/resources/application.yml                                            |    2 
 server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java                |   11 
 server/service/src/main/java/com/doumee/core/utils/DateUtil.java                             |   15 
 server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java            |   22 +
 server/service/src/main/java/com/doumee/dao/business/dto/UpdHurtTypeDTO.java                 |   22 +
 server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java              |   20 +
 server/service/src/main/java/com/doumee/core/utils/Constants.java                            |   31 +
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |   70 +++-
 server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java    |   43 ++
 server/company/src/main/java/com/doumee/api/business/SettleRiskController.java               |   19 
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java              |    2 
 server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/InsuranceDataVO.java       |   43 ++
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java          |    6 
 20 files changed, 726 insertions(+), 129 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
index 29fefa0..3e9ae03 100644
--- a/server/company/src/main/java/com/doumee/api/business/SettleRiskController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -3,14 +3,12 @@
 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.dao.business.dto.*;
 import com.doumee.service.business.SettleClaimsService;
 import com.doumee.service.system.impl.SystemDictDataServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -33,9 +31,8 @@
     @PreventRepeat
     @ApiOperation("鐞嗚禂鎶ユ")
     @PostMapping("/saveSettleClaims")
-    public ApiResponse saveSettleClaims(@RequestBody SettleClaimsDTO settleClaimsDTO) {
-        settleClaimsService.saveSettleClaims(settleClaimsDTO,systemDictDataService);
-        return ApiResponse.success(null);
+    public ApiResponse<Integer> saveSettleClaims(@RequestBody SettleClaimsDTO settleClaimsDTO) {
+        return ApiResponse.success(settleClaimsService.saveSettleClaims(settleClaimsDTO,systemDictDataService));
     }
 
 
@@ -66,6 +63,12 @@
         return ApiResponse.success(null);
     }
 
-
+    @PreventRepeat
+    @ApiOperation("淇敼鏀舵淇℃伅")
+    @PostMapping("/updReceiveInfo")
+    public ApiResponse updReceiveInfo(@RequestBody UpdReceiveInfoDTO dto) {
+        settleClaimsService.updReceiveInfo(dto);
+        return ApiResponse.success(null);
+    }
 
 }
diff --git a/server/company/src/main/resources/application.yml b/server/company/src/main/resources/application.yml
index 2107f6a..dba634a 100644
--- a/server/company/src/main/resources/application.yml
+++ b/server/company/src/main/resources/application.yml
@@ -12,7 +12,7 @@
 #  application:git
 #    name: doumeemes
   profiles:
-    active: pro
+    active: dev
 
   # JSON杩斿洖閰嶇疆
   jackson:
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
index 347f530..9f7e5d9 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -109,7 +109,7 @@
 
 
     @PreventRepeat
-    @ApiOperation("鐞嗚禂")
+    @ApiOperation("鐞嗙畻")
     @PostMapping("/compensation")
     public ApiResponse compensation(@RequestBody CompensationDTO dto) {
         settleClaimsService.compensation(dto);
@@ -156,7 +156,7 @@
 
 
     @PreventRepeat
-    @ApiOperation("缁撴鎻愪氦")
+    @ApiOperation("纭鎵撴")
     @PostMapping("/payCash")
     public ApiResponse payCash(@RequestBody PayCashDTO dto) {
         settleClaimsService.payCash(dto);
@@ -164,4 +164,20 @@
     }
 
 
+    @PreventRepeat
+    @ApiOperation("淇敼浼ゆ畫绫诲瀷")
+    @PostMapping("/updHurtType")
+    public ApiResponse updHurtType(@RequestBody UpdHurtTypeDTO dto) {
+        settleClaimsService.updHurtType(dto);
+        return ApiResponse.success(null);
+    }
+
+
+    @ApiOperation("鑾峰彇鍟嗚闂绫诲瀷鍐呭")
+    @GetMapping("/getDiscussProblemType")
+    public ApiResponse<List<String>> getDiscussProblemType() {
+        return ApiResponse.success(settleClaimsService.getDiscussProblemType());
+    }
+
+
 }
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 cd651c8..fbc5eea 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
@@ -99,6 +99,7 @@
     public static final String COMPANY_USER_APPLY ="COMPANY_USER_APPLY" ;
     public static final String INSURANCE ="INSURANCE" ;
     public static final String CONTRACT ="CONTRACT" ;
+    public static final String DISCUSS_PROBLEM_TYPE ="DISCUSS_PROBLEM_TYPE" ;
 
     public static final String SETTLE_FILE ="SETTLE_FILE" ;
     public static final String DU_FILE ="DU_FILE" ;
@@ -194,6 +195,13 @@
                 return  Constants.equalsInteger(model.getStatus(), UnionApplyStatus.FINISH.getKey())?"淇濋櫓鐢熸晥姝㈡湡":"棰勮鐢熸晥姝㈡湡";
         }
 
+    }
+
+    public static BigDecimal getBigDecimalNoNull(BigDecimal bigDecimal){
+        if(Objects.isNull(bigDecimal)){
+            return  BigDecimal.ZERO;
+        }
+        return bigDecimal;
     }
 
     /**
@@ -770,6 +778,7 @@
         LP_OTHER_FILE(33, "鐞嗚禂鍏朵粬鏉愭枡", "鐞嗚禂鍏朵粬鏉愭枡"),
         LP_PAY_FILE(34, "鎵撴鍑瘉", "鎵撴鍑瘉"),
         LP_DZBD_FILE(35, "鐢靛瓙淇濆崟", "鐢靛瓙淇濆崟"),
+        LP_SUPPLEMENT_FILE(36, "琛ュ厖鏉愭枡", "琛ュ厖鏉愭枡"),
 
         ;
         // 鎴愬憳鍙橀噺
@@ -1939,19 +1948,19 @@
         // 8鍟嗚瀹℃壒鎷掔粷 9宸插彈鐞� 10寰呮牳璧�  11宸叉牳璧� 12宸茬‘璁ら噾棰� 13宸茬粨妗� 14宸叉挙妗�
         WAIT_ACCEPTANCE(0, "鏆傚瓨涓�",0),
         RETURN_ACCEPTANCE(1, "宸叉姤妗�",1),
-        DEAL_ING(2, "寰呯珛妗�",0),
-        CONFIRM_INFORMATION(3, "宸茬珛妗�",1),
-        FINISH_ACCEPTANCE(4, "绔嬫閫�鍥�",1),
-        WAIT_DEAL(5, "寰呭彈鐞�",2),
-        REJECT_DEAL(6, "鎷掔粷鍙楃悊",2),
-        WAIT_DISCUSS_AUDIT(7, "寰呭晢璁鎵�",2),
+        DEAL_ING(2, "寰呯珛妗�",0),//寮冪敤
+        CONFIRM_INFORMATION(3, "宸茬珛妗�",2),
+        FINISH_ACCEPTANCE(4, "绔嬫閫�鍥�",2),
+        WAIT_DEAL(5, "寰呭彈鐞�",3),//寮冪敤
+        REJECT_DEAL(6, "鎷掔粷鍙楃悊",3),
+        WAIT_DISCUSS_AUDIT(7, "寰呭晢璁鎵�",3),
         WAIT_DISCUSS_REJECT(8, "鍟嗚瀹℃壒鎷掔粷",3),
         ACCEPTANCE(9, "宸插彈鐞�",3),//寰呯悊绠�
         WAIT_AUDIT_COMPENSATION(10, "寰呮牳璧�",4),
         COMPENSATION(11, "宸叉牳璧�",5),
         CONFIRM_FEE(12, "宸茬‘璁ら噾棰�",5),
         CLOSE_CASE(13, "宸茬粨妗�",6),
-        RETURN(14, "宸叉挙妗�",6),
+        RETURN(14, "宸叉挙妗�",7),
         ;
         // 鎴愬憳鍙橀噺
         private String name;//涓氬姟鎻忚堪
@@ -2003,7 +2012,7 @@
         UPLOAD(0, "鎻愪氦鎶ユ","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_RETURN(1, "骞冲彴閫�鍥�","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_CONFIRM_INFORMATION(2, "骞冲彴纭璧勬枡",""),
-        PLATFORM_FINISH(3, "缁撴","鎻愪氦鎰忚锛�${param}"),
+        PLATFORM_FINISH(3, "宸茬粨妗�","鎻愪氦鎰忚锛�${param}"),
         UPDATE_DATA(4, "淇敼淇℃伅","鎻愪氦鎰忚锛�${param}"),
         SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","宸插湪骞冲彴瀹屾垚鐞嗚禂"),
@@ -2025,6 +2034,8 @@
         PLATFORM_UPD_FEE(22, "鏍歌禂-淇敼閲戦",""),
         CONFIRM_FEE(22, "鏍歌禂-瀹㈡埛纭閲戦","宸茬‘璁ら噾棰�"),
         UPD_CASE_TYPE(23, "鍙楃悊-纭妗堜欢绫诲瀷","宸茬‘璁ゆ浠剁被鍨�"),
+        UPD_HURT_TYPE(24, "淇敼浼ゆ畫绫诲瀷淇℃伅","鏄惁浼ゆ畫淇敼涓衡�渰param}鈥�"),
+        UPD_RECEIVE_INFO(25, "鏀舵淇℃伅鍙樻洿","淇敼鏀舵淇℃伅"),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
@@ -2040,7 +2051,7 @@
 
         // 鏅�氭柟娉�
         public static String getName(int index) {
-            for (ApplyLogType c : ApplyLogType.values()) {
+            for (SettleClaimsLogType c : SettleClaimsLogType.values()) {
                 if (c.getKey() == index) {
                     return c.name;
                 }
@@ -2048,7 +2059,7 @@
             return null;
         }
         public static String getInfo(int index) {
-            for (ApplyLogType c : ApplyLogType.values()) {
+            for (SettleClaimsLogType c : SettleClaimsLogType.values()) {
                 if (c.getKey() == index) {
                     return c.info;
                 }
diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index 6860dfb..be3b15b 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -94,10 +94,12 @@
     /**
      * 寰楀嚭涓や釜鏃ユ湡涔嬮棿鐨勯棿闅斿皬鏃�
      *
-     * @param fromDate
+     * @param fromDate 闈犲墠鐨勬椂闂�
      *            鏍煎紡涓簓yyy-MM-dd
-     * @param toDate
+     * @param toDate  闈犲悗鐨勬椂闂�
      *            鏍煎紡涓簓yyy-MM-dd
+     *                DateUtil.getBetweenHours(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 10:46:43"),
+     *                 DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 07:41:43")) 杩斿洖 -2灏忔椂
      * @return int
      */
     public static long getBetweenHours(Date fromDate, Date toDate) {
@@ -3202,7 +3204,14 @@
 
 
     public static void main(String[] args) throws Exception{
-        System.out.println(DateUtil.StringToDate("2025-05-16 13:49:40").getTime());
+//        System.out.println(DateUtil.DateToStr(
+//                DateUtil.afterDateByType(new Date(),1,-1),"yyyy-MM")
+//        );
+
+        System.out.println(DateUtil.getBetweenHours(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 10:46:43"),
+                DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss","2025-05-26 07:41:43")));
+        ;
+
 //        System.out.println(DateUtil.getLongDateTime(new Date()));;
     }
 
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
index dd47673..bf6971f 100644
--- 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
@@ -12,4 +12,8 @@
 
     @ApiModelProperty(value = "鐞嗚禂閲戦json涓�")
     private String compensationJson;
+
+    @ApiModelProperty(value = "璇存槑")
+    private String describe;
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
index 9a61e6d..758f49d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
@@ -17,6 +17,9 @@
 @Data
 public class SettleClaimsDTO {
 
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
     @ApiModelProperty(value = "瀛樺偍绫诲瀷锛�1=淇濆瓨锛�0=鏆傚瓨锛�")
     private Integer saveType;
 
@@ -63,7 +66,7 @@
     private Integer inHospital;
 
     @ApiModelProperty(value = "鏄惁浼ゆ畫锛� 0鏄� 1鍚� 2寰呯‘瀹�")
-    private String hurtType;
+    private Integer hurtType;
 
     @ApiModelProperty(value = "鏄惁鏈夊尰鐤椾繚闄� 0鏄� 1鍚�", example = "1")
     private Integer medicalInsurance;
@@ -76,6 +79,9 @@
 
     @ApiModelProperty(value = "鎶ユ浜鸿仈绯绘柟寮�")
     private String informantPhone;
+
+    @ApiModelProperty(value = "璇︾粏鍦板潃")
+    private String address;
 
     @ApiModelProperty(value = "鍛樺伐鍏崇郴璧勬枡")
     private List<Multifile> relationFileList;
@@ -92,6 +98,9 @@
     @ApiModelProperty(value = "鍏朵粬璧勬枡")
     private List<Multifile> otherFileList;
 
+    @ApiModelProperty(value = "琛ュ厖璧勬枡")
+    private List<Multifile> supplementFileList;
+
     @ApiModelProperty(value = "鏀舵閾惰")
     private String receiveBank;
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UpdHurtTypeDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UpdHurtTypeDTO.java
new file mode 100644
index 0000000..986d181
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UpdHurtTypeDTO.java
@@ -0,0 +1,22 @@
+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 UpdHurtTypeDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏄惁浼ゆ畫锛� 0鏄� 1鍚�")
+    private Integer hurtType;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/UpdReceiveInfoDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/UpdReceiveInfoDTO.java
new file mode 100644
index 0000000..9c6b5ae
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/UpdReceiveInfoDTO.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 UpdReceiveInfoDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏀舵閾惰")
+    private String receiveBank;
+
+    @ApiModelProperty(value = "鏀舵浜�")
+    private String receiveUserName;
+
+    @ApiModelProperty(value = "鏀舵璐︽埛")
+    private String receiveAccount;
+
+
+
+}
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 ae7178e..385b94c 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
@@ -4,6 +4,7 @@
 import com.doumee.core.annotation.excel.ExcelColumn;
 import com.doumee.dao.business.vo.CompensationVO;
 import com.doumee.dao.business.vo.SettleClaimsMoneyVO;
+import com.doumee.dao.business.vo.SettleParentStatusVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -183,6 +184,9 @@
     @ApiModelProperty(value = "鏄惁寰呰ˉ鍏呮潗鏂�:0=鍚︼紱1=鏄�")
     private Integer waitSupplement;
 
+    @ApiModelProperty(value = "琛ュ厖鏉愭枡璇存槑")
+    private String waitSupplementInfo;
+
 
     @ApiModelProperty(value = "璐圭敤鏄惁鍙戠敓鍙樻洿:0=鍚︼紱1=鏄紱")
     private Integer feeUpdate;
@@ -199,6 +203,12 @@
 
     @ApiModelProperty(value = "鏍歌禂鍏朵粬閲戦")
     private BigDecimal hpOtherAccount;
+
+    @ApiModelProperty(value = "璇︾粏鍦板潃")
+    private String address;
+
+    @ApiModelProperty(value = "淇濆崟鏄庣粏琛屼富閿�")
+    private Integer applyDetailId;
 
     @ApiModelProperty(value = "璧斿伩閲戦")
     @TableField(exist = false)
@@ -244,6 +254,11 @@
     @ApiModelProperty(value = "鍏朵粬璧勬枡")
     @TableField(exist = false)
     private List<Multifile> otherFileList;
+
+    @ApiModelProperty(value = "琛ュ厖璇存槑鏂囦欢")
+    @TableField(exist = false)
+    private List<Multifile> supplementFileList;
+
 
     @ApiModelProperty(value = "鎵撴鍑瘉")
     @TableField(exist = false)
@@ -307,9 +322,15 @@
     @TableField(exist = false)
     private List<CompensationVO> accountList;
 
+    @ApiModelProperty(value = "娴佺▼璇︽儏淇℃伅", example = "1")
+    @TableField(exist = false)
+    private List<SettleParentStatusVO> parentStatusVOList;
 
     @ApiModelProperty(value = "鎶ユ鏃堕棿 鏌ヨ浣跨敤 yyyy-MM-dd")
     @TableField(exist = false)
     private String createDateStr;
 
+    @ApiModelProperty(value = "娴佺▼鑰楁椂",hidden = true)
+    @TableField(exist = false)
+    private Integer totalHours;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java
index 731352d..dbf18a2 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.utils.Constants;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -29,6 +30,7 @@
         this.createDate =apply.getEditDate();
         this.creator =apply.getEditor();
         this.objId=objId;
+        this.isdeleted = Constants.ZERO;
         this.objType = objType;
         this.beforeContent=before;
         this.settleClainmsId=apply.getId();
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java
new file mode 100644
index 0000000..99ef2ad
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java
@@ -0,0 +1,22 @@
+package com.doumee.dao.business.vo.dataBoard;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 鎶曚繚鍗� 鍙搷浣滄潈闄�
+ * @author RenKang
+ */
+@Data
+public class DataListVO {
+
+    @ApiModelProperty(value = "绗竴涓弬鏁� - 妯悜鍧愭爣", example = "1")
+    private String dataFirst;
+
+    @ApiModelProperty(value = "绗簩涓弬鏁� - 绾靛悜鍧愭爣", example = "1")
+    private String dataSecond;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/InsuranceDataVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/InsuranceDataVO.java
new file mode 100644
index 0000000..81fcdd8
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/InsuranceDataVO.java
@@ -0,0 +1,43 @@
+package com.doumee.dao.business.vo.dataBoard;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 鎶曚繚鍗� 鍙搷浣滄潈闄�
+ * @author RenKang
+ */
+@Data
+public class InsuranceDataVO {
+
+    @ApiModelProperty(value = "淇濋櫓鍏徃鎬绘暟", example = "1")
+    private Integer  insuranceTotal;
+
+    @ApiModelProperty(value = "鏈湀淇濋櫓鍏徃鏂板鏁伴噺", example = "1")
+    private Integer  insuranceAddTotal;
+
+    @ApiModelProperty(value = "淇濆崟鏁�")
+    private Integer insuranceApplyTotal;
+
+    @ApiModelProperty(value = "鏈湀鎶曚繚鏂板鏁伴噺")
+    private Integer insuranceApplyAddTotal;
+
+    @ApiModelProperty(value = "鍦ㄤ繚浜烘暟")
+    private Integer insuranceUserTotal;
+
+    @ApiModelProperty(value = "鏈湀鏂板鍦ㄤ繚浜烘暟")
+    private Integer insuranceUserAddTotal;
+
+    @ApiModelProperty(value = "宸叉敹璐瑰悎璁�")
+    private BigDecimal totalFee;
+
+    @ApiModelProperty(value = "鏈湀鏂板鏀惰垂鍚堣")
+    private BigDecimal totalAddFee;
+
+
+
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
new file mode 100644
index 0000000..fca212e
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
@@ -0,0 +1,43 @@
+package com.doumee.dao.business.vo.dataBoard;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 鎶曚繚鍗� 鍙搷浣滄潈闄�
+ * @author RenKang
+ */
+@Data
+public class SettleClaimsDataVO {
+
+    @ApiModelProperty(value = "鍙楃悊鐜� 鐧惧垎姣�(0.45) ", example = "1")
+    private BigDecimal  acceptanceRata;
+
+    @ApiModelProperty(value = "鎷掕禂鐜� 鐧惧垎姣�(0.45)", example = "1")
+    private BigDecimal  refuseRata;
+
+    @ApiModelProperty(value = "缁撴鐜�  鐧惧垎姣�(0.45)")
+    private BigDecimal closeCaseRata;
+
+    @ApiModelProperty(value = "鎬荤悊璧旈噾棰�")
+    private BigDecimal settleClaimsTotalFee;
+
+    @ApiModelProperty(value = "鎬荤悊璧旀浠舵暟")
+    private Integer settleClaimsTotal;
+
+    @ApiModelProperty(value = "骞冲潎鐞嗚禂鏃堕暱 鍗曚綅 澶�")
+    private BigDecimal averageSettleClaimsTime;
+
+    @ApiModelProperty(value = "鐞嗚禂閲戦鏇茬嚎鍥�  杩�6涓湀")
+    private List<DataListVO> settleClaimsFeeList;
+
+    @ApiModelProperty(value = "鐞嗚禂妗堜欢鎬绘暟鏇茬嚎鍥�  杩�6涓湀")
+    private List<DataListVO> settleClaimsTotalList;
+
+    @ApiModelProperty(value = "骞冲潎鐞嗚禂澶勭悊鏃堕暱  杩�6涓湀")
+    private List<DataListVO> averageSettleClaimsList;
+
+}
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 1cd2051..2c36e68 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
@@ -7,6 +7,7 @@
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.vo.ApplyPowerVO;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
+import com.doumee.dao.business.vo.dataBoard.InsuranceDataVO;
 import com.doumee.service.business.impl.UnionApplyServiceImpl;
 import com.jzq.common.bean.sign.NotifyDataReq;
 
@@ -186,5 +187,10 @@
     ApplyPowerVO getApplyPower(ApplyPowerDTO applyPowerDTO);
 
     void testSendEmail();
+
+
+//    InsuranceDataVO getInsuranceDataVO();
+
+
 }
 
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 333c190..f6db356 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
@@ -5,6 +5,7 @@
 import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.model.SettleClaims;
 import com.doumee.dao.business.vo.CompensationVO;
+import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO;
 import com.doumee.service.system.impl.SystemDictDataServiceImpl;
 import io.swagger.models.auth.In;
 
@@ -146,7 +147,7 @@
      * @param settleClaimsDTO
      * @param systemDictDataService
      */
-    void saveSettleClaims(SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService);
+    Integer saveSettleClaims(SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService);
 
 
     /**
@@ -246,4 +247,24 @@
      * @param dto
      */
     void payCash(PayCashDTO dto);
+
+    /**
+     * 淇敼浼ゆ畫绫诲瀷
+     * @param dto
+     */
+    void updHurtType(UpdHurtTypeDTO dto);
+
+    /**
+     * 鑾峰彇鍟嗚闂绫诲瀷鍐呭
+     * @return
+     */
+    List<String> getDiscussProblemType();
+
+    /**
+     * 淇敼鏀舵淇℃伅
+     * @param dto
+     */
+    void updReceiveInfo(UpdReceiveInfoDTO dto);
+
+    SettleClaimsDataVO getSettleClaimsDataVO();
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index e2b12c6..0134629 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -306,9 +306,12 @@
         queryWrapper.selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode);
         queryWrapper.selectAs(Solutions::getId,ApplyDetail::getSolutionId);
         queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
+        queryWrapper.selectAs(Solutions::getType,ApplyDetail::getSolutionType);
         queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
         queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
         queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
+        queryWrapper.selectAs(InsuranceApply::getStartTime,ApplyDetail::getParentStartTime);
+        queryWrapper.selectAs(InsuranceApply::getEndTime,ApplyDetail::getParentEndTime);
         queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
         queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
         queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
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 ac0a8a6..3e5853d 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
@@ -19,6 +19,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.ApplyPowerVO;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
+import com.doumee.dao.business.vo.dataBoard.InsuranceDataVO;
 import com.doumee.dao.system.SystemUserMapper;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.InsuranceApplyService;
@@ -64,7 +65,6 @@
     private SmsEmailService smsEmailService;
     @Autowired
     private ApplyChangeJoinMapper applyChangeMapper;
-
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
@@ -73,25 +73,20 @@
     private CompanyMapper companyMapper;
     @Autowired
     private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
-
     @Autowired
     private ApplyDetailMapper applyDetailMapper;
     @Autowired
     private ApplyDetailJoinMapper applyDetailJoinMapper;
-
     @Autowired
     private ApplyLogMapper applyLogMapper;
     @Autowired
     private SignService signService;
     @Autowired
     private MultifileMapper multifileMapper;
-
     @Autowired
     private ApplyLogJoinMapper applyLogJoinMapper;
-
     @Autowired
     private SolutionsMapper solutionsMapper;
-
     @Autowired
     private MemberMapper memberMapper;
     @Autowired
@@ -106,7 +101,6 @@
     private DuWorkTypeJoinMapper duWorkTypeJoinMapper;
     @Autowired
     private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
-
     @Autowired
     private NoticesMapper noticesMapper;
     @Autowired
@@ -121,7 +115,8 @@
     private SystemUserMapper systemUserMapper;
     @Autowired
     private CompanyDepartmentMapper companyDepartmentMapper;
-
+    @Autowired
+    private InsuranceMapper insuranceMapper;
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -152,7 +147,6 @@
             }
             update.setStatus(Constants.InsuranceApplyStatus.WTB_RETURN.getKey());
         }
-
         update.setEditDate(new Date());
         update.setEditor(user.getId());
         update.setCheckDate(update.getEditDate());
@@ -160,7 +154,6 @@
         update.setCheckUserId(user.getId());
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -170,8 +163,6 @@
         Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
                 model.getCompanyId(), Constants.NoticeType.FOUR);
         noticesMapper.insert(notices);
-
-
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.PLATFORM_RETURN;
         String info =applyLogType.getInfo();
         info = info.replace("${param}", update.getCheckInfo());
@@ -225,7 +216,6 @@
                 ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getName())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-
         InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId());
         if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);
@@ -3776,8 +3766,58 @@
         return applyPowerVO;
     }
 
-
-
+//    @Override
+//    public InsuranceDataVO getInsuranceDataVO(){
+//        InsuranceDataVO insuranceDataVO = new InsuranceDataVO();
+//        insuranceDataVO.setInsuranceTotal(Constants.ZERO);
+//        insuranceDataVO.setInsuranceAddTotal(Constants.ZERO);
+//        insuranceDataVO.setInsuranceApplyTotal(Constants.ZERO);
+//        insuranceDataVO.setInsuranceApplyAddTotal(Constants.ZERO);
+//        insuranceDataVO.setInsuranceUserTotal(Constants.ZERO);
+//        insuranceDataVO.setInsuranceUserAddTotal(Constants.ZERO);
+//        insuranceDataVO.setTotalAddFee(BigDecimal.ZERO);
+//        insuranceDataVO.setTotalFee(BigDecimal.ZERO);
+//        //鏈湀鏃ユ湡
+//        String monthData = DateUtil.DateToStr(new Date(),"yyyy-MM");
+//        //淇濋櫓鍏徃鏁伴噺
+//        List<Insurance> insuranceList = insuranceMapper.selectList(new QueryWrapper<Insurance>().lambda().eq(Insurance::getIsdeleted,Constants.ZERO).eq(Insurance::getStatus,Constants.ZERO));
+//        if(CollectionUtils.isNotEmpty(insuranceList)){
+//            insuranceDataVO.setInsuranceTotal(insuranceList.size());
+//            insuranceDataVO.setInsuranceAddTotal(insuranceList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
+//        }
+//
+//        //淇濆崟鏁伴噺
+//        List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>()
+//                .lambda().eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
+//                Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+//        );
+//        if(CollectionUtils.isNotEmpty(insuranceApplyList)){
+//            insuranceDataVO.setInsuranceApplyTotal(insuranceApplyList.size());
+//            insuranceDataVO.setInsuranceApplyAddTotal(insuranceApplyList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
+//        }
+//
+//        //鍦ㄤ繚浜烘暟
+//        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>().selectAll(ApplyDetail.class)
+//                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+//                .eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
+//                        Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+//                .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
+//                .apply(" ( t.START_TIME >= now() and t.END_TIME <= now() ) ")
+//        );
+//        if(CollectionUtils.isNotEmpty(applyDetailList)){
+//            insuranceDataVO.setInsuranceUserTotal(applyDetailList.size());
+//            insuranceDataVO.setInsuranceUserAddTotal(
+//                    applyDetailList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
+//                            .equals(monthData)).collect(Collectors.toList()).size());
+//
+//            insuranceDataVO.setTotalFee(applyDetailList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+//            insuranceDataVO.setTotalAddFee(applyDetailList.stream()
+//                    .filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
+//                    .equals(monthData)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+//        }
+//
+//        return insuranceDataVO;
+//    }
 
 
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java
index 5922a7e..8b6f279 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java
@@ -46,7 +46,7 @@
         if(Objects.isNull(knowledge)
         || StringUtils.isBlank(knowledge.getTitle())
                 || StringUtils.isBlank(knowledge.getLink())
-//                || Objects.isNull(knowledge.getCityId())
+                || Objects.isNull(knowledge.getCityId())
                 || Objects.isNull(knowledge.getProvinceId())
                 || StringUtils.isBlank(knowledge.getYearInfo())
                 || StringUtils.isBlank(knowledge.getTitle())
@@ -103,7 +103,7 @@
                 || Objects.isNull(knowledge.getId())
                 || StringUtils.isBlank(knowledge.getTitle())
                 || StringUtils.isBlank(knowledge.getLink())
-//                || Objects.isNull(knowledge.getCityId())
+                || Objects.isNull(knowledge.getCityId())
                 || Objects.isNull(knowledge.getProvinceId())
                 || StringUtils.isBlank(knowledge.getYearInfo())
                 || StringUtils.isBlank(knowledge.getTitle())
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 b143150..e752211 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
@@ -22,6 +22,8 @@
 import com.doumee.dao.business.vo.RiskConfigVO;
 import com.doumee.dao.business.vo.SettleClaimsMoneyVO;
 import com.doumee.dao.business.vo.SettleParentStatusVO;
+import com.doumee.dao.business.vo.dataBoard.DataListVO;
+import com.doumee.dao.business.vo.dataBoard.SettleClaimsDataVO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SettleClaimsLogService;
 import com.doumee.service.business.SettleClaimsService;
@@ -593,9 +595,7 @@
             }
         }
         //璁板綍鏃ュ織
-        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null);
-
-
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,null);
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -737,6 +737,7 @@
 
             settleClaims.setDzbdFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_DZBD_FILE.getKey())).collect(Collectors.toList()));
 
+            settleClaims.setSupplementFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey())).collect(Collectors.toList()));
         }
 
         //鏌ヨ鎿嶄綔璁板綍
@@ -779,6 +780,9 @@
         }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){
             settleClaims.setFinishDate(lastConfirm.getCreateDate());
         }
+        List<SettleParentStatusVO> parentStatusVOList = this.getParentStatus(settleClaims);
+        settleClaims.setParentStatusVOList(parentStatusVOList);
+        settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
         return settleClaims;
     }
 
@@ -899,6 +903,7 @@
                     .last("limit 1")));
         }
         settleClaims.setExtData(settleClaimsExtMapper.selectOne(new QueryWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,id).last("limit 1")));
+        settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
         return settleClaims;
     }
 
@@ -951,7 +956,7 @@
         settleClaimsMapper.updateById(oldSettleClaims);
         //璁板綍鏃ュ織
         Constants.SettleClaimsLogType settleClaimsLogType =  Constants.SettleClaimsLogType.UPDATE_DATA;
-        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null);
+        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null,null);
         return oldSettleClaims.getId();
     }
 
@@ -983,7 +988,7 @@
 
         Constants.SettleClaimsLogType settleClaimsLogType =  Constants.SettleClaimsLogType.SUPPLEMENT;
         String content = settleClaimsLogType.getInfo().replace("${param}", scSupplementDTO.getSupplement());
-        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content);
+        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content,null);
     }
 
 
@@ -1024,7 +1029,7 @@
 
 
 
-    public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content){
+    public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content,Constants.SettleClaimsStatus settleClaimsStatus){
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
         SettleClaimsLog settleClaimsLog = new SettleClaimsLog();
         settleClaimsLog.setCreateDate(new Date());
@@ -1035,6 +1040,10 @@
         settleClaimsLog.setContent(content);
         settleClaimsLog.setObjType(settleClaimsLogType.getKey());
         settleClaimsLog.setObjId(settleClaims.getId());
+        if(Objects.nonNull(settleClaimsStatus)){
+            settleClaimsLog.setParentStatus(settleClaimsStatus.getParentKey());
+            settleClaimsLog.setStatus(settleClaimsStatus.getKey());
+        }
         settleClaimsLogMapper.insert(settleClaimsLog);
     }
 
@@ -1156,7 +1165,8 @@
         PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper));
         for (SettleClaims settleClaims:pageData.getRecords()) {
             settleClaims.setStatusName(Constants.SettleClaimsStatus.getName(settleClaims.getStatus()));
-            settleClaims.setPcAccount(settleClaims.getHpAccount().add(settleClaims.getHpOtherAccount()));
+
+            settleClaims.setPcAccount(Constants.getBigDecimalNoNull(settleClaims.getHpAccount()).add(Constants.getBigDecimalNoNull(settleClaims.getHpOtherAccount())));
         }
         return pageData;
     }
@@ -1209,7 +1219,7 @@
 
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){
+    public Integer saveSettleClaims(SettleClaimsDTO settleClaimsDTO,SystemDictDataServiceImpl systemDictDataService){
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(!loginUserInfo.getType().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
@@ -1217,8 +1227,9 @@
         if(Objects.isNull(settleClaimsDTO)
             || Objects.isNull(settleClaimsDTO.getSaveType())
             || Objects.isNull(settleClaimsDTO.getMemberId())
-            ||StringUtils.isBlank(settleClaimsDTO.getIdcardNo())
+            || StringUtils.isBlank(settleClaimsDTO.getIdcardNo())
             || Objects.isNull(settleClaimsDTO.getInsuranceApplyId())
+            || Objects.isNull(settleClaimsDTO.getApplyDetailId())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -1270,9 +1281,13 @@
             settleClaimsMapper.insert(settleClaims);
         }
         this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo);
-
-        //璁板綍鏃ュ織
-        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null);
+        if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){
+            this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null,Constants.SettleClaimsStatus.RETURN_ACCEPTANCE);
+            if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())){
+                this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.PLATFORM_REGISTER,null,Constants.SettleClaimsStatus.CONFIRM_INFORMATION);
+            }
+        }
+        return settleClaims.getId();
     }
 
     public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){
@@ -1295,7 +1310,9 @@
         }
         List<Map<String,String>> riskList = new ArrayList<>();
         //鏌ヨ淇濆崟鏄庣粏鏁版嵁
-        ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()).eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 "));
+        ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
+                .eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId())
+                .eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 "));
         //鏄惁寮�鍚� 鏂板憳宸ユ姤妗� 0涓嶅厑璁� 1鍏佽
         if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE)
                 && Objects.nonNull(solutionsBase.getRiskNewUserUnit())
@@ -1485,6 +1502,7 @@
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1497,14 +1515,15 @@
 
         List<Multifile> relationFileList = settleClaimsDTO.getRelationFileList();
         if(CollectionUtils.isNotEmpty(relationFileList)){
-            for (int i = 0; i < reportVideo.size(); i++) {
-                Multifile multifile = reportVideo.get(i);
+            for (int i = 0; i < relationFileList.size(); i++) {
+                Multifile multifile = relationFileList.get(i);
                 if(Objects.isNull(multifile.getFileurl())
                         || Objects.isNull(multifile.getType())
                         || StringUtils.isBlank(multifile.getName())
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1517,14 +1536,15 @@
 
         List<Multifile> outpatientFileList = settleClaimsDTO.getOutpatientFileList();
         if(CollectionUtils.isNotEmpty(outpatientFileList)){
-            for (int i = 0; i < reportVideo.size(); i++) {
-                Multifile multifile = reportVideo.get(i);
+            for (int i = 0; i < outpatientFileList.size(); i++) {
+                Multifile multifile = outpatientFileList.get(i);
                 if(Objects.isNull(multifile.getFileurl())
                         || Objects.isNull(multifile.getType())
                         || StringUtils.isBlank(multifile.getName())
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1537,14 +1557,15 @@
 
         List<Multifile> hospitalFileList = settleClaimsDTO.getHospitalFileList();
         if(CollectionUtils.isNotEmpty(hospitalFileList)){
-            for (int i = 0; i < reportVideo.size(); i++) {
-                Multifile multifile = reportVideo.get(i);
+            for (int i = 0; i < hospitalFileList.size(); i++) {
+                Multifile multifile = hospitalFileList.get(i);
                 if(Objects.isNull(multifile.getFileurl())
                         || Objects.isNull(multifile.getType())
                         || StringUtils.isBlank(multifile.getName())
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1557,14 +1578,15 @@
 
         List<Multifile> disabilityFileList = settleClaimsDTO.getDisabilityFileList();
         if(CollectionUtils.isNotEmpty(disabilityFileList)){
-            for (int i = 0; i < reportVideo.size(); i++) {
-                Multifile multifile = reportVideo.get(i);
+            for (int i = 0; i < disabilityFileList.size(); i++) {
+                Multifile multifile = disabilityFileList.get(i);
                 if(Objects.isNull(multifile.getFileurl())
                         || Objects.isNull(multifile.getType())
                         || StringUtils.isBlank(multifile.getName())
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1577,14 +1599,15 @@
 
         List<Multifile> otherFileList = settleClaimsDTO.getOtherFileList();
         if(CollectionUtils.isNotEmpty(otherFileList)){
-            for (int i = 0; i < reportVideo.size(); i++) {
-                Multifile multifile = reportVideo.get(i);
+            for (int i = 0; i < otherFileList.size(); i++) {
+                Multifile multifile = otherFileList.get(i);
                 if(Objects.isNull(multifile.getFileurl())
                         || Objects.isNull(multifile.getType())
                         || StringUtils.isBlank(multifile.getName())
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
                 }
+                multifile.setId(null);
                 multifile.setCreator(loginUserInfo.getId());
                 multifile.setCreateDate(new Date());
                 multifile.setIsdeleted(Constants.ZERO);
@@ -1593,7 +1616,27 @@
                 multifile.setSortnum(i+1);
                 multifileJoinMapper.insert(multifile);
             }
-        } 
+        }
+        List<Multifile> supplementFileList = settleClaimsDTO.getSupplementFileList();
+        if(CollectionUtils.isNotEmpty(supplementFileList)){
+            for (int i = 0; i < supplementFileList.size(); i++) {
+                Multifile multifile = supplementFileList.get(i);
+                if(Objects.isNull(multifile.getFileurl())
+                        || Objects.isNull(multifile.getType())
+                        || StringUtils.isBlank(multifile.getName())
+                ){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
+                }
+                multifile.setId(null);
+                multifile.setCreator(loginUserInfo.getId());
+                multifile.setCreateDate(new Date());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(settleClaims.getId());
+                multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey());
+                multifile.setSortnum(i+1);
+                multifileJoinMapper.insert(multifile);
+            }
+        }
     }
 
 //    public void getRiskSettleDetail(Integer id){
@@ -1638,9 +1681,11 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰呬紒涓氳ˉ鍏呮枃浠讹紝璇风瓑寰呬紒涓氳ˉ鍏呮枃浠�");
         }
         //瀛樺偍鏃ュ織
-        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe());
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT_DESCRIBE,dto.getDescribe(),null);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
-                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getWaitSupplement,Constants.ONE));
+                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime())
+                        .set(SettleClaims::getWaitSupplementInfo,dto.getDescribe())
+                .set(SettleClaims::getWaitSupplement,Constants.ONE));
     }
 
     @Override
@@ -1699,13 +1744,13 @@
                 multifile.setIsdeleted(Constants.ZERO);
                 multifile.setObjId(settleClaims.getId());
                 //娣诲姞鏉愭枡鏀惧叆 鍏朵粬鏉愭枡涓氬姟鍐�
-                multifile.setObjType(Constants.MultiFile.LP_OTHER_FILE.getKey());
+                multifile.setObjType(Constants.MultiFile.LP_SUPPLEMENT_FILE.getKey());
                 multifile.setSortnum(i+1);
                 multifileJoinMapper.insert(multifile);
             }
         }
         //瀛樺偍鏃ュ織
-        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null);
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.SUPPLEMENT,null,null);
     }
 
 
@@ -1732,11 +1777,11 @@
         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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
-        }
+//        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);
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.RETURN_SETTLE,null,Constants.SettleClaimsStatus.RETURN);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
                 .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,Constants.SettleClaimsStatus.RETURN.getKey()));
     }
@@ -1760,13 +1805,16 @@
         if(Objects.isNull(settleClaims)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())){
+        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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
         //瀛樺偍鏃ュ織
-        this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo());
+        this.saveSettleClaimsLog(settleClaims, Constants.SettleClaimsLogType.UPD_CASE_TYPE,Constants.SettleClaimsLogType.UPD_CASE_TYPE.getInfo(),null);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
-                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,DateUtil.getCurrDateTime())
+                .eq(SettleClaims::getId,dto.getId())
+                .set(SettleClaims::getEditDate,DateUtil.getCurrDateTime())
                 .set(SettleClaims::getEditor,loginUserInfo.getId())
                 .set(SettleClaims::getCaseType,dto.getCaseType()));
     }
@@ -1798,10 +1846,12 @@
         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());
+        this.saveSettleClaimsLog(settleClaims, Constants.equalsInteger(dto.getRegisterStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())?Constants.SettleClaimsLogType.PLATFORM_REGISTER:Constants.SettleClaimsLogType.PLATFORM_RETURN,dto.getDescribe(),settleClaimsStatus);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
-                .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate,
-                        DateUtil.getCurrDateTime()).set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
+                .eq(SettleClaims::getId,dto.getId())
+                .set(SettleClaims::getEditDate, DateUtil.getCurrDateTime())
+                .set(SettleClaims::getEditor,loginUserInfo.getId())
+                .set(SettleClaims::getStatus,settleClaimsStatus.getKey()));
     }
 
 
@@ -1829,8 +1879,14 @@
         if(Constants.equalsInteger(model.getReportNumStatus(),Constants.TWO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
         }
-        if(!((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE))
-                ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO)))){
+        if(!(
+                (Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())&&Constants.equalsInteger(model.getReportNumStatus(),Constants.ONE))
+                ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+                        &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO))
+//                        ||(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_DEAL.getKey())
+//                        &&Constants.equalsInteger(model.getReportNumStatus(),Constants.ZERO))
+        )
+        ){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠呭彲淇敼涓�娆℃姤妗堝彿");
         }
 
@@ -1937,7 +1993,7 @@
         if(Objects.isNull(settleClaims)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus())){
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
         if(Constants.equalsInteger(dto.getStatus(),Constants.ZERO) || Constants.equalsInteger(dto.getStatus(),Constants.THREE)){
@@ -1948,7 +2004,7 @@
             //瀛樺偍鏃ュ織
             this.saveSettleClaimsLog(settleClaims,
                     Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS,
-                    dto.getDescribe());
+                    dto.getDescribe(),Constants.SettleClaimsStatus.ACCEPTANCE);
         }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){
             //鎷掔粷鍙楃悊
             settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
@@ -1957,7 +2013,7 @@
             //瀛樺偍鏃ュ織
             this.saveSettleClaimsLog(settleClaims,
                     Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE,
-                    Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe()));
+                    Constants.SettleClaimsLogType.PLATFORM_REFUSE_ACCEPTANCE.getInfo().replace("{param}",dto.getDescribe()),Constants.SettleClaimsStatus.REJECT_DEAL);
         }else if(Constants.equalsInteger(dto.getStatus(),Constants.TWO)){
             //鍙楃悊鍟嗚瀹℃壒
             settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
@@ -1966,7 +2022,7 @@
             //瀛樺偍鏃ュ織
             this.saveSettleClaimsLog(settleClaims,
                     Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS,
-                    dto.getDescribe());
+                    dto.getDescribe(),Constants.SettleClaimsStatus.REJECT_DEAL);
         }
     }
 
@@ -1984,9 +2040,9 @@
         }
         List<CompensationVO> modelList = new ArrayList<>();
         if (Objects.nonNull(settleClaims)) {
-            if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ZERO)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){
+            if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getAccountContent())){
                 modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
-            }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.ONE)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){
+            }else if(Constants.equalsInteger(compensationFeeDTO.getType(),Constants.TWO)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){
                 modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class);
             }
         }
@@ -2027,7 +2083,8 @@
         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())){
+        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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
 
@@ -2050,7 +2107,7 @@
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_LP_DEAL,
-                Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo());
+                Constants.SettleClaimsLogType.PLATFORM_LP_DEAL.getInfo(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION);
     }
 
 
@@ -2086,7 +2143,7 @@
         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()));
+                ,settleClaimsLogType.getInfo().replace("${param}",dto.getDescribe()),settleClaimsStatus);
         settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda()
                 .eq(SettleClaims::getId,dto.getId()).set(SettleClaims::getEditDate, DateUtil.getCurrDateTime())
                         .set(SettleClaims::getEditor,loginUserInfo.getId())
@@ -2128,8 +2185,6 @@
         update.setHpAccountContent(dto.getCompensationJson());
         update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-
-
         update.setId(settleClaims.getId());
         update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey());
         settleClaimsMapper.updateById(update);
@@ -2137,7 +2192,7 @@
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_HP_DEAL,
-                Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo());
+                Constants.SettleClaimsLogType.PLATFORM_HP_DEAL.getInfo(),Constants.SettleClaimsStatus.COMPENSATION);
     }
 
 
@@ -2176,30 +2231,32 @@
         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.getHpAccountContent(),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(JSONArray.toJSONString(oldList));
+//        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.getHpAccountContent(),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.setHpAccountContent(dto.getCompensationJson());
+        update.setHpAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
+        update.setHpOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setId(settleClaims.getId()); 
         settleClaimsMapper.updateById(update);
 
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_UPD_FEE,
-                Constants.SettleClaimsLogType.PLATFORM_UPD_FEE.getInfo());
+                dto.getDescribe(),null);
     }
 
 
@@ -2207,27 +2264,28 @@
     @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(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        if(!loginUserInfo.getType().equals(Constants.ONE)){
+            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(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        //濡傛灉鏄紒涓� 鏌ヨ鏄惁鏄嚜宸变紒涓氱殑鏁版嵁
+        if(!Constants.equalsInteger(settleClaims.getCompanyId(),loginUserInfo.getCompanyId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍浼佷笟鐨勬暟鎹紝鎮ㄦ棤娉曡繘琛岃鎿嶄綔");
         }
         SettleClaims update = new SettleClaims();
         update.setEditDate(new Date());
         update.setEditor(loginUserInfo.getId());
-        update.setStatus(Constants.SettleClaimsStatus.WAIT_DEAL.getKey());
+        update.setStatus(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey());
         update.setId(settleClaims.getId());
         settleClaimsMapper.updateById(update);
 
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.CONFIRM_FEE,
-                Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo());
+                Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo(),Constants.SettleClaimsStatus.CONFIRM_FEE);
     }
 
 
@@ -2255,6 +2313,9 @@
         update.setEditDate(new Date());
         update.setEditor(loginUserInfo.getId());
         update.setStatus(Constants.SettleClaimsStatus.CLOSE_CASE.getKey());
+        update.setCheckDate(new Date());
+        update.setCheckUserId(loginUserInfo.getId());
+        update.setCheckInfo(Constants.SettleClaimsStatus.CLOSE_CASE.name());
         update.setId(settleClaims.getId());
         settleClaimsMapper.updateById(update);
 
@@ -2285,7 +2346,7 @@
         //瀛樺偍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,
                 Constants.SettleClaimsLogType.PLATFORM_FINISH,
-                dto.getDescribe());
+                dto.getDescribe(),Constants.SettleClaimsStatus.CLOSE_CASE);
     }
 
 
@@ -2293,7 +2354,9 @@
     public List<SettleParentStatusVO> getParentStatus(SettleClaims settleClaims){
         List<SettleParentStatusVO> settleParentStatusVOList = new ArrayList<>();
         List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogMapper
-                .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId()).orderByDesc(SettleClaimsLog::getCreateDate));
+                .selectList(new QueryWrapper<SettleClaimsLog>().lambda().eq(SettleClaimsLog::getObjId,settleClaims.getId())
+                        .isNotNull(SettleClaimsLog::getParentStatus)
+                        .orderByDesc(SettleClaimsLog::getId));
         //绔嬫閫�鍥炵姸鎬佹暟鎹�
         if(Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())){
             SettleParentStatusVO settleParentStatusVO = new SettleParentStatusVO();
@@ -2357,21 +2420,22 @@
             //鑾峰彇褰撳墠鏃ュ織鏈�澶х殑鐖剁姸鎬�
             Optional<Integer> optionalInteger = settleClaimsLogs.stream().map(i->i.getParentStatus()).max(Comparator.comparingInt(o -> o));
             if(optionalInteger.isPresent()){
-                for (int i = 1; i <= 5; i++) {
+
+                for (int i = 1; i <= (optionalInteger.get()<5?optionalInteger.get():5); i++) {
                     SettleParentStatusVO s = new SettleParentStatusVO();
                     Constants.SettleClaimsLogParentStatus  parentStatus = Constants.SettleClaimsLogParentStatus.getAll(i);
                     s.setParentTitle(parentStatus.getName());
                     s.setChildTitle(parentStatus.getInfo());
                     s.setStatus(Constants.ZERO);
                     //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬�
-                    if(Constants.equalsInteger(i,optionalInteger.get())){
-                        Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream()
-                                .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst();
-                        if(settleClaimsLogOptional.isPresent()){
-                            s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType()));
-                        }
+                    Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream()
+                            .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst();
+                    if(settleClaimsLogOptional.isPresent()){
+                        s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType()));
+                        s.setOptDate(settleClaimsLogOptional.get().getCreateDate());
                     }
                     settleParentStatusVOList.add(s);
+
                 }
             }
             //娣诲姞鎾ゆ鏁版嵁
@@ -2380,7 +2444,7 @@
             settleParentStatusCHVO.setChildTitle("浼佷笟涓诲姩鎾ゆ");
             settleParentStatusCHVO.setStatus(Constants.THREE);
             Optional<SettleClaimsLog> optionalSettleClaimsSLLog = settleClaimsLogList.stream()
-                    .filter(i->Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst();
+                    .filter(i->Constants.equalsInteger(i.getObjType(),Constants.SettleClaimsLogType.RETURN_SETTLE.getKey())).findFirst();
             if(optionalSettleClaimsSLLog.isPresent()){
                 settleParentStatusCHVO.setOptDate(optionalSettleClaimsSLLog.get().getCreateDate());
             }
@@ -2401,9 +2465,28 @@
                     //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 澶т簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ら厤缃�
                     s.setChildTitle(parentStatus.getInfo());
                     s.setStatus(Constants.ZERO);
+                    int finalI = i;
+                    Optional<SettleClaimsLog> optionalSettleClaimsLog = settleClaimsLogList.stream()
+                            .filter(j->Constants.equalsInteger(j.getParentStatus(), finalI)).findFirst();
+                    if(optionalSettleClaimsLog.isPresent()){
+                        s.setOptDate(optionalSettleClaimsLog.get().getCreateDate());
+                    }
                 }else if(optionalInteger.get()<i){
                     //濡傛灉鏈�澶х殑鐖朵笟鍔$姸鎬� 灏忎簬 榛樿鐨�6绫绘暟鎹� 鍒欑洿鎺ユ樉绀洪粯璁ゆ湭澶勭悊閰嶇疆
                     s.setChildTitle(parentStatus.getWaitInfo());
+                    if(Constants.equalsInteger(i,Constants.SettleClaimsLogParentStatus.LS.getKey())){
+//                        //鎶ユ瀹℃壒閫氳繃鍚庤鏄剧ず
+                        Optional<SettleClaimsLog> settleClaimsLogOptional = settleClaimsLogList.stream()
+                                .filter(j->
+                                        Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE.getKey())
+                                        || Constants.equalsInteger(j.getObjType(),Constants.SettleClaimsLogType.PLATFORM_DISCUSS_PASS.getKey())
+                                ).findFirst();
+                        if(settleClaimsLogOptional.isPresent()){
+                            s.setStatus(Constants.ONE);
+                            settleParentStatusVOList.add(s);
+                            continue;
+                        }
+                    }
                     s.setStatus(Constants.TWO);
                 }else{
                     //濡傛灉鏄瓑浜庣埗鐘舵�� 鍒欏幓鏌ヨ瀹為檯鐨勪笟鍔$姸鎬�
@@ -2412,6 +2495,7 @@
                                 .filter(j->Constants.equalsInteger(j.getParentStatus(),optionalInteger.get())).findFirst();
                         if(settleClaimsLogOptional.isPresent()){
                             s.setChildTitle(Constants.SettleClaimsLogType.getName(settleClaimsLogOptional.get().getObjType()));
+                            s.setOptDate(settleClaimsLogOptional.get().getCreateDate());
                         }
                     }
                     s.setStatus(Constants.ONE);
@@ -2420,10 +2504,219 @@
             }
         }
         return settleParentStatusVOList;
+    }
 
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void updHurtType(UpdHurtTypeDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || Objects.isNull(dto.getHurtType())
+                || !(Constants.equalsInteger(dto.getHurtType(),Constants.ZERO) || Constants.equalsInteger(dto.getHurtType(),Constants.ONE))
+        ){
+            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.CONFIRM_INFORMATION.getKey(),settleClaims.getStatus())
+        || Constants.equalsInteger(Constants.SettleClaimsStatus.ACCEPTANCE.getKey(),settleClaims.getStatus())
+        //        || Constants.equalsInteger(Constants.SettleClaimsStatus.WAIT_DEAL.getKey(),settleClaims.getStatus())
+        )){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+        if(!Constants.equalsInteger(settleClaims.getHurtType(),Constants.TWO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸蹭慨鏀硅繃锛屾棤娉曞啀娆′慨鏀�");
+        }
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setHurtType(dto.getHurtType());
+        update.setId(settleClaims.getId());
+        settleClaimsMapper.updateById(update);
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.UPD_HURT_TYPE,
+                Constants.SettleClaimsLogType.UPD_HURT_TYPE.getInfo(),null);
+    }
+
+
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void updReceiveInfo(UpdReceiveInfoDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || StringUtils.isBlank(dto.getReceiveBank())
+                || StringUtils.isBlank(dto.getReceiveAccount())
+                || StringUtils.isBlank(dto.getReceiveUserName())
+        ){
+            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.COMPENSATION.getKey(),settleClaims.getStatus()) || Constants.equalsInteger(Constants.SettleClaimsStatus.CONFIRM_FEE.getKey(),settleClaims.getStatus()) )
+        ){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
+        }
+
+        SettleClaims update = new SettleClaims();
+        update.setEditDate(new Date());
+        update.setEditor(loginUserInfo.getId());
+        update.setReceiveBank(dto.getReceiveBank());
+        update.setReceiveAccount(dto.getReceiveAccount());
+        update.setReceiveUserName(dto.getReceiveUserName());
+        update.setId(settleClaims.getId());
+        settleClaimsMapper.updateById(update);
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.UPD_RECEIVE_INFO,
+                Constants.SettleClaimsLogType.UPD_RECEIVE_INFO.getInfo(),null);
+    }
+
+
+
+    @Override
+    public List<String> getDiscussProblemType(){
+       String types = systemDictDataBiz.queryByCode(Constants.PROTOCOL,Constants.DISCUSS_PROBLEM_TYPE).getCode();
+       if(StringUtils.isNotBlank(types)){
+           return Arrays.asList(types.split(","));
+       }
+       return null;
+    }
+
+
+    @Override
+    public SettleClaimsDataVO getSettleClaimsDataVO(){
+        SettleClaimsDataVO settleClaimsDataVO = new SettleClaimsDataVO();
+        settleClaimsDataVO.setSettleClaimsTotal(Constants.ZERO);
+        settleClaimsDataVO.setAverageSettleClaimsTime(BigDecimal.ZERO);
+        settleClaimsDataVO.setSettleClaimsTotalFee(BigDecimal.ZERO);
+        settleClaimsDataVO.setRefuseRata(BigDecimal.ZERO);
+        settleClaimsDataVO.setAcceptanceRata(BigDecimal.ZERO);
+        settleClaimsDataVO.setCloseCaseRata(BigDecimal.ZERO);
+
+
+        List<SettleClaims> settleClaimsList = settleClaimsMapper.selectList(new QueryWrapper<SettleClaims>().lambda().eq(SettleClaims::getIsdeleted,Constants.ZERO));
+        if(CollectionUtils.isNotEmpty(settleClaimsList)){
+            Integer totalSettleClaimsNum = settleClaimsList.size();
+            List<SettleClaims> closeCaseList = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())
+                    &&Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())).collect(Collectors.toList());
+            for (SettleClaims settleClaims:closeCaseList) {
+                if(Objects.nonNull(settleClaims.getCheckDate())&&Objects.nonNull(settleClaims.getCreateDate())){
+                    settleClaims.setTotalHours(
+                            (int)DateUtil.getBetweenHours(settleClaims.getCreateDate(),settleClaims.getCheckDate())
+                    );
+                }else{
+                    settleClaims.setTotalHours(Constants.ZERO);
+                }
+            }
+            Integer closeCaseNum = closeCaseList.size();
+            //鏈寘鍚� 绔嬫閫�鍥� 绔嬫閫�鍥炲彲浠ュ啀娆℃彁浜ょ殑
+            Integer refuseNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&&
+                    (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.REJECT_DEAL.getKey())
+                            ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_DISCUSS_REJECT.getKey()))
+                    ).collect(Collectors.toList()).size();
+            Integer acceptanceNum = settleClaimsList.stream().filter(i->Objects.nonNull(i.getStatus())&&
+                    (Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey())
+                            ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.WAIT_AUDIT_COMPENSATION.getKey())
+                            ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.COMPENSATION.getKey())
+                            ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CONFIRM_FEE.getKey())
+                            ||Constants.equalsInteger(i.getStatus(),Constants.SettleClaimsStatus.CLOSE_CASE.getKey())
+                    )
+            ).collect(Collectors.toList()).size();
+            if(Objects.nonNull(closeCaseNum)&&!Constants.equalsInteger(closeCaseNum,Constants.ZERO)){
+                settleClaimsDataVO.setCloseCaseRata(new BigDecimal(closeCaseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP));
+            }
+            if(Objects.nonNull(refuseNum)&&!Constants.equalsInteger(refuseNum,Constants.ZERO)){
+                settleClaimsDataVO.setRefuseRata(new BigDecimal(refuseNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP));
+            }
+            if(Objects.nonNull(acceptanceNum)&&!Constants.equalsInteger(acceptanceNum,Constants.ZERO)){
+                settleClaimsDataVO.setAcceptanceRata(new BigDecimal(acceptanceNum.toString()).divide(new BigDecimal(totalSettleClaimsNum.toString()),4,BigDecimal.ROUND_HALF_UP));
+            }
+
+            List<DataListVO> settleClaimsTotalList = new ArrayList<>();
+            List<DataListVO> settleClaimsFeeList = new ArrayList<>();
+            List<DataListVO> averageSettleClaimsList = new ArrayList<>();
+
+            for (int i = 5; i >=0 ; i--) {
+                //姣忎釜鏈堢殑鏁版嵁
+                String monthData = DateUtil.DateToStr(DateUtil.afterDateByType(new Date(),1,i*-1),"yyyy-MM");
+                DataListVO settleClaimsTotal = new DataListVO();
+                DataListVO settleClaimsFee = new DataListVO();
+                DataListVO averageSettleClaims = new DataListVO();
+
+                settleClaimsTotal.setDataFirst(monthData);
+                settleClaimsTotal.setDataSecond(
+                        settleClaimsList.stream().filter(j->DateUtil.DateToStr(j.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).toString()
+                );
+ 
+                settleClaimsFee.setDataFirst(monthData);
+                List<SettleClaims> closeCaseMonthList = closeCaseList.stream().filter(j->Objects.nonNull(j.getCheckDate())&&DateUtil.DateToStr(j.getCheckDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList());
+                settleClaimsFee.setDataSecond(closeCaseMonthList.stream().map(j->j.getHpAccount().add(j.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add).toString());
+
+                averageSettleClaims.setDataFirst(monthData);
+                Integer sumHours = closeCaseMonthList.stream().map(j->
+                        j.getTotalHours()).reduce(Constants.ZERO,Integer::sum);
+                averageSettleClaims.setDataSecond(
+                        new BigDecimal(sumHours.toString()).divide(new BigDecimal((closeCaseMonthList.size()*24)+"")).toString()
+                );
+ 
+                settleClaimsTotalList.add(settleClaimsTotal);
+                settleClaimsFeeList.add(settleClaimsFee);
+                averageSettleClaimsList.add(averageSettleClaims);
+
+            }
+            settleClaimsDataVO.setSettleClaimsFeeList(settleClaimsFeeList);
+            settleClaimsDataVO.setAverageSettleClaimsList(averageSettleClaimsList);
+            settleClaimsDataVO.setSettleClaimsTotalList(settleClaimsTotalList);
+
+            //鎬荤悊璧旈噾棰�
+            settleClaimsDataVO.setSettleClaimsTotalFee(closeCaseList.stream().map(i->i.getHpAccount().add(i.getHpOtherAccount())).reduce(BigDecimal.ZERO,BigDecimal::add));
+
+            //鎬荤悊璧旀浠舵暟
+            settleClaimsDataVO.setSettleClaimsTotal(settleClaimsList.size());
+            
+            //骞冲潎鐞嗚禂澶勭悊鏃堕暱澶╂暟 鎬昏澶勭悊鏃堕暱锛堝崟浣嶅皬鏃讹級闄や互 璁板綍鏁�  鎹㈢畻鍒板ぉ
+            settleClaimsDataVO.setAverageSettleClaimsTime(
+                    new BigDecimal(closeCaseList.stream().map(i->i.getTotalHours()).reduce(Constants.ZERO,Integer::sum).toString())
+                            .divide(new BigDecimal((closeCaseList.size()*24)+"") ,2,BigDecimal.ROUND_HALF_UP)
+                            
+            );
+
+        }
+
+
+        return settleClaimsDataVO;
 
     }
 
 
 
+
+
+
+
+
+
+
 }

--
Gitblit v1.9.3