From 142bcc9b22f48a8a2098a66b2964fe10c97c6fe8 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 20 五月 2025 11:19:49 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java               |    9 ++
 server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java          |    8 +
 server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java            |   14 ++
 server/service/src/main/java/com/doumee/core/utils/Constants.java                          |    3 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  125 +++++++++++++++++++-----------
 server/service/src/main/java/com/doumee/dao/business/dto/CompensationFeeDTO.java           |   22 +++++
 6 files changed, 129 insertions(+), 52 deletions(-)

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 8617169..347f530 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
@@ -102,9 +102,9 @@
 
     @PreventRepeat
     @ApiOperation("鐞嗚禂璐圭敤椤逛俊鎭�")
-    @GetMapping("/getCompensation")
-    public ApiResponse<List<CompensationVO>> getCompensation(@RequestParam Integer id) {
-        return ApiResponse.success(settleClaimsService.getCompensation(id));
+    @PostMapping("/getCompensation")
+    public ApiResponse<List<CompensationVO>> getCompensation(@RequestBody CompensationFeeDTO dto) {
+        return ApiResponse.success(settleClaimsService.getCompensation(dto));
     }
 
 
@@ -155,5 +155,13 @@
     }
 
 
+    @PreventRepeat
+    @ApiOperation("缁撴鎻愪氦")
+    @PostMapping("/payCash")
+    public ApiResponse payCash(@RequestBody PayCashDTO dto) {
+        settleClaimsService.payCash(dto);
+        return ApiResponse.success(null);
+    }
+
 
 }
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index cf0fd7d..0dc1009 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
@@ -768,6 +768,7 @@
         LP_STAMP_FILE(31, "淇濋櫓鍏徃鐞嗚禂鐩栫珷鏂囦欢", "淇濋櫓鍏徃鐞嗚禂鐩栫珷鏂囦欢"),
         LP_FILE(32, "淇濋櫓鍏徃涓婁紶鐞嗚禂鏉愭枡涓�瑙堣〃", "淇濋櫓鍏徃涓婁紶鐞嗚禂鏉愭枡涓�瑙堣〃"),
         LP_OTHER_FILE(33, "鐞嗚禂鍏朵粬鏉愭枡", "鐞嗚禂鍏朵粬鏉愭枡"),
+        LP_PAY_FILE(34, "鎵撴鍑瘉", "鎵撴鍑瘉"),
 
         ;
         // 鎴愬憳鍙橀噺
@@ -1995,7 +1996,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, "骞冲彴鐞嗚禂澶勭悊","宸插湪骞冲彴瀹屾垚鐞嗚禂"),
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/CompensationFeeDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/CompensationFeeDTO.java
new file mode 100644
index 0000000..e3a8e85
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/CompensationFeeDTO.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 CompensationFeeDTO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鑾峰彇绫诲瀷锛�1=鐞嗙畻锛�2=鏍歌禂")
+    private Integer type;
+
+
+}
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 403cc6d..422bce9 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
@@ -241,6 +241,15 @@
     @ApiModelProperty(value = "妗堜欢绫诲瀷锛�0=鏈缃紱1=鍖荤枟锛�2=浼ゆ畫锛�3=姝讳骸")
     private Integer caseType;
 
+
+    @ApiModelProperty(value = "鏍歌禂鎵�鏈夎禂浠橀」淇℃伅锛坖son鏁扮粍[{name:鈥滀紮椋熻垂鈥�,val:100,info:鈥滀紮椋熻垂璇存槑鈥�,type:0}]锛�,type:0涓昏璧斾粯椤� 1鍏朵粬璧斾粯椤� 2瀹氭崯鏂规璐圭敤\t")
+    @ExcelColumn(name="鏍歌禂鎵�鏈夎禂浠橀」淇℃伅")
+    private String hpAccountContent;
+
+    @ApiModelProperty(value = "鏍歌禂鎬婚噾棰�")
+    private BigDecimal hpAccount;
+
+
     @ApiModelProperty(value = "淇濋櫓鍗曢檮浠�")
     @TableField(exist = false)
     private  Multifile  baoxiandanFile;
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 ffc962f..72fa39e 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
@@ -199,7 +199,7 @@
      * @param id
      * @return
      */
-    List<CompensationVO> getCompensation(Integer id);
+    List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO);
 
     /**
      * 鐞嗚禂涓氬姟
@@ -237,4 +237,10 @@
      * @param dto
      */
     void updCaseType(CaseTypeDTO dto);
+
+    /**
+     * 缁撴鎻愪氦
+     * @param dto
+     */
+    void payCash(PayCashDTO dto);
 }
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 f55fd08..268b6b1 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
@@ -1790,11 +1790,23 @@
 
 
     @Override
-    public List<CompensationVO> getCompensation(Integer id){
-        SettleClaims settleClaims = settleClaimsMapper.selectById(id);
+    public List<CompensationVO> getCompensation(CompensationFeeDTO compensationFeeDTO){
+        if(Objects.isNull(compensationFeeDTO)
+                || Objects.isNull(compensationFeeDTO.getType())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SettleClaims settleClaims = null;
+        if(Objects.nonNull(compensationFeeDTO.getId())){
+            settleClaims = settleClaimsMapper.selectById(compensationFeeDTO.getId());
+        }
         List<CompensationVO> modelList = new ArrayList<>();
-        if (Objects.nonNull(settleClaims)&&StringUtils.isNotBlank(settleClaims.getAccountContent())) {
-            modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+        if (Objects.nonNull(settleClaims)) {
+            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.TWO)&&StringUtils.isNotBlank(settleClaims.getHpAccountContent())){
+                modelList = JSONArray.parseArray(settleClaims.getHpAccountContent(),CompensationVO.class);
+            }
         }
         Constants.compensation [] compensations = Constants.compensation.values();
         List<CompensationVO> list = new ArrayList<>();
@@ -1837,7 +1849,7 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
 
-        List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+        List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class);
 
         SettleClaims update = new SettleClaims();
         update.setEditDate(new Date());
@@ -1925,18 +1937,14 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝涓氬姟鐘舵�佸凡娴佽浆~");
         }
 
-        List<CompensationVO> modelList = JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+
+        List<CompensationVO> modelList = JSONArray.parseArray(dto.getCompensationJson(),CompensationVO.class);
 
         SettleClaims update = new SettleClaims();
         update.setEditDate(new Date());
         update.setEditor(loginUserInfo.getId());
-        update.setYlClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.YL_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setWgClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.WG_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setScClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SC_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setOtherAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-        update.setAccountContent(dto.getCompensationJson());
+        update.setHpAccountContent(dto.getCompensationJson());
+        update.setHpAccount(modelList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setId(settleClaims.getId());
         update.setStatus(Constants.SettleClaimsStatus.COMPENSATION.getKey());
         settleClaimsMapper.updateById(update);
@@ -1985,7 +1993,7 @@
         update.setSwClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&i.getName().equals(Constants.compensation.SW_COMPENSATION.getName())).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         update.setClaimAccount(modelList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
         //澶勭悊鍘嗗彶鏁版嵁
-        List<CompensationVO> oldList =  JSONArray.parseArray(settleClaims.getAccountContent(),CompensationVO.class);
+        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());
@@ -1999,7 +2007,6 @@
               continue;  
             }
         }
-        update.setAccountContent(dto.getCompensationJson());
         update.setAccountContent(JSONArray.toJSONString(oldList));
         update.setId(settleClaims.getId()); 
         settleClaimsMapper.updateById(update);
@@ -2039,38 +2046,62 @@
     }
 
 
-//    @Override
-//    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-//    public void payCash(PayCashDTO dto){
-//        if(Objects.isNull(dto)
-//                || Objects.isNull(dto.getId())
-//                || StringUtils.isBlank(dto.getDescribe())
-//        ){
-//            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-//        }
-//        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-//        if(!loginUserInfo.getType().equals(Constants.ZERO)){
-//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
-//        }
-//        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
-//        if(Objects.isNull(settleClaims)){
-//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-//        }
-//        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.COMPENSATION.getKey(),settleClaims.getStatus())){
-//            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.setId(settleClaims.getId());
-//        settleClaimsMapper.updateById(update);
-//
-//        //瀛樺偍鏃ュ織
-//        this.saveSettleClaimsLog(settleClaims,
-//                Constants.SettleClaimsLogType.CONFIRM_FEE,
-//                Constants.SettleClaimsLogType.CONFIRM_FEE.getInfo());
-//    }
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void payCash(PayCashDTO dto){
+        if(Objects.isNull(dto)
+                || Objects.isNull(dto.getId())
+                || StringUtils.isBlank(dto.getDescribe())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炵鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
+        }
+        SettleClaims settleClaims  = settleClaimsJoinMapper.selectById(dto.getId());
+        if(Objects.isNull(settleClaims)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(Constants.SettleClaimsStatus.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.setStatus(Constants.SettleClaimsStatus.CLOSE_CASE.getKey());
+        update.setId(settleClaims.getId());
+        settleClaimsMapper.updateById(update);
+
+        if(CollectionUtils.isNotEmpty(dto.getMultifileList())){
+            List<Multifile> fileList = dto.getMultifileList();
+            if(CollectionUtils.isNotEmpty(fileList)){
+                for (int i = 0; i < fileList.size(); i++) {
+                    Multifile multifile = fileList.get(i);
+                    if(Objects.isNull(multifile.getFileurl())
+                            || Objects.isNull(multifile.getType())
+                            || StringUtils.isBlank(multifile.getName())
+                    ){
+                        throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢鍐呭寮傚父");
+                    }
+                    multifile.setCreator(loginUserInfo.getId());
+                    multifile.setCreateDate(new Date());
+                    multifile.setIsdeleted(Constants.ZERO);
+                    multifile.setObjId(settleClaims.getId());
+                    //娣诲姞鏉愭枡鏀惧叆 鍏朵粬鏉愭枡涓氬姟鍐�
+                    multifile.setObjType(Constants.MultiFile.LP_PAY_FILE.getKey());
+                    multifile.setSortnum(i+1);
+                    multifileJoinMapper.insert(multifile);
+                }
+            }
+        }
+
+
+        //瀛樺偍鏃ュ織
+        this.saveSettleClaimsLog(settleClaims,
+                Constants.SettleClaimsLogType.PLATFORM_FINISH,
+                dto.getDescribe());
+    }
 
 
 

--
Gitblit v1.9.3