From a28247ecb3751689b9aa64c2e3d32c646cd88e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 22 一月 2024 18:19:34 +0800
Subject: [PATCH] 111

---
 server/service/src/main/java/com/doumee/dao/business/model/Solutions.java                     |    7 
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java                  |    7 
 server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java             |   15 +
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java    |  242 ++++++++++++++++++++++++++++--
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java       |    1 
 server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java              |   22 ++
 server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java |    2 
 server/service/src/main/java/com/doumee/dao/business/join/SettleClaimsJoinMapper.java         |   13 +
 server/company/src/main/java/com/doumee/api/business/SolutionsController.java                 |    1 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                             |  123 +++++++++++++++
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java    |    2 
 server/service/src/main/java/com/doumee/dao/business/dto/SCSupplementDTO.java                 |   31 +++
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java               |    2 
 13 files changed, 446 insertions(+), 22 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java b/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
index fb2f5fa..f3ecd19 100644
--- a/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.SCSupplementDTO;
 import com.doumee.dao.business.model.SettleClaims;
 import com.doumee.service.business.SettleClaimsService;
 import io.swagger.annotations.Api;
@@ -63,10 +64,29 @@
     @PostMapping("/updateById")
     @RequiresPermissions("business:settleclaims:update")
     public ApiResponse updateById(@RequestBody SettleClaims settleClaims) {
-        settleClaimsService.updateById(settleClaims);
+        settleClaimsService.updateForCompany(settleClaims);
         return ApiResponse.success(null);
     }
 
+    @ApiOperation("琛ュ厖璇存槑")
+    @PostMapping("/supplement")
+    @RequiresPermissions("business:settleclaims:update")
+    public ApiResponse supplement(@RequestBody SCSupplementDTO scSupplementDTO) {
+        settleClaimsService.supplement(scSupplementDTO);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("闄勪欢涓婁紶")
+    @PostMapping("/claimsUploadFile")
+    @RequiresPermissions("business:settleclaims:update")
+    public ApiResponse claimsUploadFile(@RequestBody SCSupplementDTO scSupplementDTO) {
+        settleClaimsService.claimsUploadFile(scSupplementDTO);
+        return ApiResponse.success(null);
+    }
+
+
+
+
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:settleclaims:query")
diff --git a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
index 492c4e0..26228ba 100644
--- a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -100,4 +100,5 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(solutionsService.findById(id));
     }
+
 }
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 8cf62e0..07c89d8 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
@@ -759,7 +759,7 @@
 
     public static BigDecimal countDetailFee(Solutions solutions,Date startDate, Date endDate){
         //鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
-        Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getDataType());
+        Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getTimeUnit());
         if(cycle==-1){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏃ユ湡淇℃伅閿欒!");
         }
@@ -789,7 +789,7 @@
 
         // 鏅�氭柟娉�
         public static String getName(int index) {
-            for (ApplyLogType c : ApplyLogType.values()) {
+            for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) {
                 if (c.getKey() == index) {
                     return c.name;
                 }
@@ -816,6 +816,125 @@
 
     }
 
+
+
+    public  enum SettleClaimsStatus {
+        WAIT_ACCEPTANCE(0, "寰呭彈鐞�"),
+        RETURN_ACCEPTANCE(1, "閫�鍥炲彈鐞�"),
+        CONFIRM_INFORMATION(2, "纭璧勬枡"),
+        FINISH_ACCEPTANCE(3, "瀹屾垚鍙楃悊"),
+        ;
+        // 鎴愬憳鍙橀噺
+        private String name;
+        private int key;
+
+        // 鏋勯�犳柟娉�
+        SettleClaimsStatus(int key, String name) {
+            this.name = name;
+            this.key = key;
+        }
+        // 鏅�氭柟娉�
+        public static String getName(int index) {
+            for (SettleClaimsStatus c : SettleClaimsStatus.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
+        // 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  enum SettleClaimsLogType {
+        UPLOAD(0, "鎻愪氦鎶ユ","鎻愪氦鎰忚锛�${param}"),
+        PLATFORM_RETURN(1, "骞冲彴閫�鍥�","鎻愪氦鎰忚锛�${param}"),
+        CONFIRM_INFORMATION(2, "骞冲彴纭璧勬枡","鎻愪氦鎰忚锛�${param}"),
+        PLATFORM_FINISH(3, "骞冲彴瀹屾垚鍙楃悊","鎻愪氦鎰忚锛�${param}"),
+        UPDATE_DATA(4, "淇敼淇℃伅","鎻愪氦鎰忚锛�${param}"),
+        SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"),
+        COMPANY_APPLY_RETURN(6, "骞冲彴鐞嗚禂澶勭悊","鎻愪氦鎰忚锛�${param}"),
+        COMPANY_APPLY_CLOSE(7, "骞冲彴澶囨敞鏍囩",""),
+        PLATFORM_AGREE_BACK(8, "骞冲彴娣诲姞鎶ユ鍙�",""),
+        PLATFORM_UN_AGREE_BACK(9, "浼佷笟涓嬭浇璧勬枡",""),
+        COMPANY_EDIT(10, "骞冲彴涓嬭浇璧勬枡",""),
+        PLATFORM_CHECK_PASS(11, "骞冲彴涓婁紶璧勬枡",""),
+        ;
+        // 鎴愬憳鍙橀噺
+        private String name;
+        private String info;
+        private int key;
+
+        // 鏋勯�犳柟娉�
+        SettleClaimsLogType(int key, String name,String info) {
+            this.name = name;
+            this.info = info;
+            this.key = key;
+        }
+
+        // 鏅�氭柟娉�
+        public static String getName(int index) {
+            for (ApplyLogType c : ApplyLogType.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
+        public static String getInfo(int index) {
+            for (ApplyLogType c : ApplyLogType.values()) {
+                if (c.getKey() == index) {
+                    return c.info;
+                }
+            }
+            return null;
+        }
+
+        // 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 String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+    }
+
+
+
+
 //3=閫�鍥炵敵璇凤紱4=骞冲彴瀹℃壒閫氳繃锛�0=瀹℃壒椹冲洖;5=骞冲彴瀹℃壒椹冲洖
     public  enum ApplyChangeLogStatus {
         UPLOAD(0, "鍙戣捣鐢宠"),
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SCSupplementDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SCSupplementDTO.java
new file mode 100644
index 0000000..c828716
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SCSupplementDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/1/22 16:44
+ */
+@Data
+public class SCSupplementDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "琛ュ厖璇存槑")
+    private String supplement;
+
+    @ApiModelProperty(value = "鏂囦欢璺緞")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=琛ュ厖璇存槑锛�1=鐞嗚禂鎶ユ浜嬫晠瑙嗛鎴栧浘鐗囷紱2=鐞嗚禂鍛樺伐鍏崇郴璇佹槑鏉愭枡锛�3=鐞嗚禂闂ㄨ瘖璧勬枡锛�4=鐞嗚禂浣忛櫌璧勬枡锛�5=鐞嗚禂浼ゆ畫璧勬枡锛�6=鐞嗚禂璧斾粯缁撴鏉愭枡")
+    private Integer objType;
+
+    @ApiModelProperty(value = "鏂囦欢绫诲瀷锛�0鍥剧墖 1瑙嗛 2鍏朵粬")
+    private Integer fileType;
+
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/SettleClaimsJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/SettleClaimsJoinMapper.java
new file mode 100644
index 0000000..41b02e5
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/SettleClaimsJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.SettleClaims;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface SettleClaimsJoinMapper extends MPJJoinMapper<SettleClaims> {
+
+}
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 2cdac0e..64d05c3 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
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -10,6 +11,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 鐞嗚禂鐢宠琛�
@@ -145,4 +147,9 @@
     @ExcelColumn(name="鎶曚繚鐢宠缂栫爜锛堝叧鑱攊nsurance_apply_")
     private Integer insuranceApplyId;
 
+
+    @ApiModelProperty(value = "鎶ユ瑙嗛")
+    @TableField(exist = false)
+    private List<Multifile> reportFileList;
+
 }
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 f55d8d8..4693bee 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
@@ -69,7 +69,7 @@
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
     @ExcelColumn(name="鍏宠仈瀵硅薄缂栫爜")
-    private String objId;
+    private Integer objId;
 
     @ApiModelProperty(value = "鎿嶄綔鍓嶅唴瀹�")
     @ExcelColumn(name="鎿嶄綔鍓嶅唴瀹�")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
index ab008d4..4e36fe9 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -152,6 +152,13 @@
     @TableField(exist = false)
     private Integer memberId;
 
+
+    @ApiModelProperty(value = "淇濆崟涓婚敭", example = "1")
+    @TableField(exist = false)
+    private Integer applyId;
+
+
+
     @ApiModelProperty(value = "宸ョ缂栫爜闆嗗悎", example = "1")
     @TableField(exist = false)
     private List<Integer> worktypeIdList;
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 651f9ce..0877c91 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,6 +2,7 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.dto.SCSupplementDTO;
 import com.doumee.dao.business.model.SettleClaims;
 import java.util.List;
 
@@ -20,6 +21,20 @@
      */
     Integer create(SettleClaims settleClaims);
 
+    Integer updateForCompany(SettleClaims settleClaims);
+
+    /**
+     * 琛ュ厖璇存槑
+     * @param scSupplementDTO
+     */
+    void supplement(SCSupplementDTO scSupplementDTO);
+
+    /**
+     * 闄勪欢涓婁紶
+     * @param scSupplementDTO
+     */
+    void claimsUploadFile(SCSupplementDTO scSupplementDTO);
+
     /**
      * 涓婚敭鍒犻櫎
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 77fd6a4..4f25c0a 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -603,4 +603,6 @@
     }
 
 
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
index 13e7166..5743ae7 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.MemberInsuranceMapper;
 import com.doumee.dao.business.model.MemberInsurance;
@@ -80,6 +81,7 @@
 
     @Override
     public List<MemberInsurance> findList(MemberInsurance memberInsurance) {
+        memberInsurance.setIsdeleted(Constants.ZERO);
         QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
         return memberInsuranceMapper.selectList(wrapper);
     }
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 4c1b365..4846864 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,19 +1,31 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.MultifileMapper;
+import com.doumee.dao.business.SettleClaimsLogMapper;
 import com.doumee.dao.business.SettleClaimsMapper;
-import com.doumee.dao.business.model.SettleClaims;
+import com.doumee.dao.business.dto.SCSupplementDTO;
+import com.doumee.dao.business.join.SettleClaimsJoinMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.SettleClaimsLogService;
 import com.doumee.service.business.SettleClaimsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -28,29 +40,223 @@
     @Autowired
     private SettleClaimsMapper settleClaimsMapper;
 
+    @Autowired
+    private SettleClaimsLogMapper settleClaimsLogMapper;
+
+    @Autowired
+    private MultifileMapper multifileMapper;
+
+    @Autowired
+    private SettleClaimsJoinMapper settleClaimsJoinMapper;
+
     @Override
     public Integer create(SettleClaims settleClaims) {
-//        if(Objects.isNull(settleClaims)
-//                || Objects.isNull()
-//        ){
-//
-//        }
-
-
-
-
-
-
-
-
-
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(settleClaims)
+                || Objects.isNull(settleClaims.getMemberId())
+                || Objects.isNull(settleClaims.getSolutionId())
+                || Objects.isNull(settleClaims.getDuId())
+                || Objects.isNull(settleClaims.getWorktypeId())
+                || Objects.isNull(settleClaims.getHappenTime())
+                || Objects.isNull(settleClaims.getType())
+                || Objects.isNull(settleClaims.getInHospital())
+                || Objects.isNull(settleClaims.getMedicalInsurance())
+                || Objects.isNull(settleClaims.getContent())
+                || Objects.isNull(settleClaims.getInformantName())
+                || Objects.isNull(settleClaims.getInformantPhone())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!loginUserInfo.getType().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
+        }
+        //鏌ヨ鏄惁瀛樺湪宸叉彁鎶ョ殑鏁版嵁  鏍规嵁浜哄憳鍜屼繚闄╂柟妗堣繘琛岃繃婊� 鏄惁瀛樺湪杩涜涓殑鏁版嵁
+        if(settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+                .eq(SettleClaims::getSolutionId,settleClaims.getSolutionId())
+                .eq(SettleClaims::getMemberId,loginUserInfo.getId())
+                .in(SettleClaims::getStatus,Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey(),
+                        Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鎻愭姤涓殑鎶ユ鏁版嵁!");
+        }
+        settleClaims.setCreateDate(new Date());
+        settleClaims.setIsdeleted(Constants.ZERO);
+        settleClaims.setCreator(loginUserInfo.getId());
+        settleClaims.setCheckUserId(loginUserInfo.getId());
         settleClaimsMapper.insert(settleClaims);
 
-
-
+        List<Multifile> reportVideo = settleClaims.getReportFileList();
+        if(CollectionUtils.isNotEmpty(reportVideo)){
+            for (int i = 0; i < reportVideo.size(); i++) {
+                Multifile multifile = reportVideo.get(i);
+                if(Objects.isNull(multifile.getFileurl())
+                        || Objects.isNull(multifile.getType())
+                ){
+                    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.ONE);
+                multifile.setSortnum(i+1);
+                multifileMapper.insert(multifile);
+            }
+        }
+        //璁板綍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null);
         return settleClaims.getId();
     }
 
+
+    public SettleClaims getSettleClaimsDetail(Integer id){
+        SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,new MPJLambdaWrapper<SettleClaims>()
+                .selectAll(SettleClaims.class)
+                .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId)
+                .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
+                .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId)
+
+        );
+
+
+        return settleClaims;
+    }
+
+
+
+    @Override
+    public Integer updateForCompany(SettleClaims settleClaims) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(settleClaims)
+                || Objects.isNull(settleClaims.getId())
+                || Objects.isNull(settleClaims.getMemberId())
+                || Objects.isNull(settleClaims.getSolutionId())
+                || Objects.isNull(settleClaims.getDuId())
+                || Objects.isNull(settleClaims.getWorktypeId())
+                || Objects.isNull(settleClaims.getType())
+                || Objects.isNull(settleClaims.getInHospital())
+                || Objects.isNull(settleClaims.getMedicalInsurance())
+                || Objects.isNull(settleClaims.getInformantName())
+                || Objects.isNull(settleClaims.getInformantPhone())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!loginUserInfo.getType().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
+        }
+        SettleClaims oldSettleClaims  = settleClaimsMapper.selectById(settleClaims.getId());
+        if(Objects.isNull(oldSettleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇敼鏁版嵁");
+        }
+        if(!oldSettleClaims.getSolutionId().equals(settleClaims.getSolutionId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶淇敼鏂规淇℃伅");
+        }
+        if(!(oldSettleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE)
+                || oldSettleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔");
+        }
+        oldSettleClaims.setEditor(loginUserInfo.getId());
+        oldSettleClaims.setEditDate(new Date());
+        oldSettleClaims.setDuId(settleClaims.getDuId());
+        oldSettleClaims.setWorktypeId(settleClaims.getWorktypeId());
+        oldSettleClaims.setInHospital(settleClaims.getInHospital());
+        oldSettleClaims.setMedicalInsurance(settleClaims.getMedicalInsurance());
+        oldSettleClaims.setAreaId(settleClaims.getAreaId());
+        oldSettleClaims.setAreaInfo(settleClaims.getAreaInfo());
+        oldSettleClaims.setType(settleClaims.getType());
+        oldSettleClaims.setInformantName(settleClaims.getInformantName());
+        oldSettleClaims.setInformantPhone(settleClaims.getInformantPhone());
+        oldSettleClaims.setCheckUserId(loginUserInfo.getId());
+        settleClaimsMapper.updateById(oldSettleClaims);
+        //璁板綍鏃ュ織
+        Constants.SettleClaimsLogType settleClaimsLogType =  Constants.SettleClaimsLogType.UPDATE_DATA;
+        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,null);
+        return oldSettleClaims.getId();
+    }
+
+    @Override
+    public void supplement(SCSupplementDTO scSupplementDTO){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(scSupplementDTO)
+                || Objects.isNull(scSupplementDTO.getId())
+                || Objects.isNull(scSupplementDTO.getSupplement())
+                || Objects.isNull(scSupplementDTO.getObjType())
+                || !(scSupplementDTO.getObjType().equals(Constants.ZERO))
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!loginUserInfo.getType().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氬憳宸ユ棤娉曡繘琛岃鎿嶄綔");
+        }
+        SettleClaims settleClaims  = settleClaimsMapper.selectById(scSupplementDTO.getId());
+        if(!(settleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE)
+                || settleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔");
+        }
+        settleClaims.setEditor(loginUserInfo.getId());
+        settleClaims.setEditDate(new Date());
+        settleClaims.setCheckUserId(loginUserInfo.getId());
+        settleClaims.setCheckInfo(scSupplementDTO.getSupplement());
+        settleClaimsMapper.updateById(settleClaims);
+
+        Constants.SettleClaimsLogType settleClaimsLogType =  Constants.SettleClaimsLogType.SUPPLEMENT;
+        String content = settleClaimsLogType.getInfo().replace("${param}", scSupplementDTO.getSupplement());
+        this.saveSettleClaimsLog(settleClaims,settleClaimsLogType,content);
+    }
+
+
+
+
+    @Override
+    public void claimsUploadFile(SCSupplementDTO scSupplementDTO){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(scSupplementDTO)
+                || Objects.isNull(scSupplementDTO.getId())
+                || Objects.isNull(scSupplementDTO.getSupplement())
+                || Objects.isNull(scSupplementDTO.getObjType())
+                || Objects.isNull(scSupplementDTO.getFileUrl())
+                || Objects.isNull(scSupplementDTO.getFileType())
+                || scSupplementDTO.getObjType().equals(Constants.ZERO)
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+
+        SettleClaims settleClaims  = settleClaimsMapper.selectById(scSupplementDTO.getId());
+        if(!(settleClaims.getStatus().equals(Constants.SettleClaimsStatus.WAIT_ACCEPTANCE)
+                || settleClaims.getStatus().equals(Constants.SettleClaimsStatus.CONFIRM_INFORMATION))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛岃鎿嶄綔");
+        }
+
+        Multifile multifile = new Multifile();
+        if(loginUserInfo.getType().equals(Constants.ONE)){
+            multifile.setCompanyId(loginUserInfo.getCompanyId());
+        }
+        multifile.setCreator(loginUserInfo.getId());
+        multifile.setCreateDate(new Date());
+        multifile.setIsdeleted(Constants.ZERO);
+        multifile.setObjId(scSupplementDTO.getId());
+        multifile.setName(scSupplementDTO.getFileUrl().substring(scSupplementDTO.getFileUrl().lastIndexOf("/") + 1));
+        multifile.setType(scSupplementDTO.getFileType());
+        multifileMapper.insert(multifile);
+    }
+
+
+
+
+    public void saveSettleClaimsLog(SettleClaims settleClaims, Constants.SettleClaimsLogType settleClaimsLogType, String content){
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); 
+        SettleClaimsLog settleClaimsLog = new SettleClaimsLog();
+        settleClaimsLog.setCreateDate(new Date());
+        settleClaimsLog.setCreator(loginUserInfo.getId());
+        settleClaimsLog.setIsdeleted(Constants.ZERO);
+        settleClaimsLog.setSettleClainmsId(settleClaims.getId());
+        settleClaimsLog.setTitle(settleClaimsLogType.getName());
+        settleClaimsLog.setContent(content);
+        settleClaimsLog.setObjType(settleClaimsLogType.getKey());
+        settleClaimsLog.setObjId(settleClaims.getId());
+        settleClaimsLogMapper.insert(settleClaimsLog);
+    }
+
     @Override
     public void deleteById(Integer id) {
         settleClaimsMapper.deleteById(id);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index e4a5058..688db64 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -399,4 +399,5 @@
     }
 
 
+
 }

--
Gitblit v1.9.3