From 25baa25ea30432ba8651b5cc9dc0c2bdfed4fc2d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 20 五月 2025 16:14:54 +0800
Subject: [PATCH] 提交一把

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java  |   25 +++-----
 server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java          |    2 
 server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java          |    4 
 server/pom.xml                                                                             |    6 +
 server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java  |    1 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java |  130 ++++++++++++++++++++++++++++++++----------
 6 files changed, 114 insertions(+), 54 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java b/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
index e9b4a52..6606a90 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
@@ -41,11 +41,11 @@
         return ApiResponse.success(settleClaimsService.create(settleClaims));
     }
     @PreventRepeat
-    @ApiOperation("骞冲彴绯荤粺妗堜欢褰曞叆")
+    @ApiOperation("骞冲彴绯荤粺妗堜欢褰曞叆(ID涓嶄负绌鸿〃绀虹紪杈戯紝ID涓虹┖琛ㄧず鏂板锛�")
     @PostMapping("/createSys")
     @RequiresPermissions("business:settleclaims:create")
     public ApiResponse createSys(@RequestBody SettleClaims settleClaims) {
-        return ApiResponse.success(settleClaimsService.createSys(settleClaims));
+        return ApiResponse.success(settleClaimsService.createOrEditSys(settleClaims));
     }
     @ApiOperation("娣诲姞鎶ユ鍙�")
     @PostMapping("/addCode")
diff --git a/server/pom.xml b/server/pom.xml
index f3caa99..fc420c6 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -32,8 +32,10 @@
     <swagger.bootstrap-ui.version>1.9.6</swagger.bootstrap-ui.version>
     <fastjson.version>1.2.70</fastjson.version>
     <druid.version>1.2.0</druid.version>
-    <!--<mybatis.plus.version>3.5.7</mybatis.plus.version>-->
+    <mybatis.plus.version>3.5.7</mybatis.plus.version>
+<!--
     <mybatis.plus.version>3.4.2</mybatis.plus.version>
+-->
     <apache.shiro.version>1.7.0</apache.shiro.version>
     <oshi.version>5.7.0</oshi.version>
     <jna.version>5.7.0</jna.version>
@@ -78,7 +80,7 @@
     <dependency>
       <groupId>com.github.pagehelper</groupId>
       <artifactId>pagehelper-spring-boot-starter</artifactId>
-      <version>1.2.13</version>
+      <version>2.1.0</version>
     </dependency>
     <!-- 杩炴帴姹� -->
     <dependency>
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 72fa39e..04ec9ff 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
@@ -133,7 +133,7 @@
 
     Integer delFile(Integer id, Integer fileId);
 
-    Integer createSys(SettleClaims settleClaims);
+    Integer createOrEditSys(SettleClaims settleClaims);
 
 
     /************************************************************************鏂颁笟鍔�******************************************************************************************/
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 185150c..91e7b7c 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -2,11 +2,12 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import com.alibaba.fastjson.JSONObject;
-
-import com.baomidou.mybatisplus.extension.api.R;
+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.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
-import com.doumee.core.annotation.excel.Reflections;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -16,25 +17,21 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
-import com.doumee.dao.business.dto.*;
+import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
+import com.doumee.dao.business.dto.ApplyChangeOptDTO;
+import com.doumee.dao.business.dto.SaveUnionChangeDTO;
+import com.doumee.dao.business.dto.SmsCheckDTO;
 import com.doumee.dao.business.join.*;
 import com.doumee.dao.business.model.*;
-import com.doumee.dao.business.vo.ChangeDealTypeVO;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.ApplyChangeService;
-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.doumee.service.business.InsuranceApplyService;
 import com.doumee.service.business.SmsEmailService;
 import com.doumee.service.business.third.SignService;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,12 +40,8 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.*;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
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 cad88af..d412f7a 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
@@ -378,9 +378,9 @@
         return  1;
     }
 
-
     @Override
-    public Integer createSys(SettleClaims settleClaims) {
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public Integer createOrEditSys(SettleClaims settleClaims) {
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         settleClaims.setOrigin(Constants.ONE);
         if(Objects.isNull(settleClaims)
@@ -402,11 +402,9 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲钩鍙扮鐞嗗憳鏃犳硶杩涜璇ユ搷浣�");
         }
         Date date =new Date();
-        settleClaims.setCreateDate(date);
         settleClaims.setEditDate(date);
-        settleClaims.setIsdeleted(Constants.ZERO);
-        settleClaims.setCreator(loginUserInfo.getId());
-        //
+        settleClaims.setEditor(loginUserInfo.getId());
+
         List<SettleClaimsMoneyVO> feeList = settleClaims.getAccountList();
         BigDecimal mainFee = new BigDecimal(0);
         BigDecimal ortherFee = new BigDecimal(0);
@@ -422,40 +420,108 @@
             settleClaims.setHpAccount(mainFee);
             settleClaims.setHpOtherAccount(ortherFee);
         }
-        settleClaimsMapper.insert(settleClaims);
+        if(settleClaims.getId() ==null){
+            //濡傛灉鏄柊澧炶褰�
+            dealCreateSysBiz(settleClaims,date,loginUserInfo);
+        }else{
+            //濡傛灉鏇存柊
+            dealUpdateSysBiz(settleClaims,date,loginUserInfo);
+        }
+        return  settleClaims.getId();
+    }
 
-
+    private void dealUpdateSysBiz(SettleClaims settleClaims, Date date, LoginUserInfo loginUserInfo) {
+        SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId());
+        if(model ==null){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        settleClaimsMapper.updateById(settleClaims);
+        //鍒犻櫎鍘熸潵鐨勬墿灞曞睘鎬т俊鎭紝淇濈暀鏈�鏂扮殑
+        settleClaimsExtMapper.delete(new UpdateWrapper<SettleClaimsExt>().lambda().eq(SettleClaimsExt::getSettileClaimsId,model.getId()));
         settleClaims.getExtData().setCreator(settleClaims.getCreator());
         settleClaims.getExtData().setCreateDate(date);
         settleClaims.getExtData().setEditor(settleClaims.getCreator());
         settleClaims.getExtData().setEditDate(date);
+        settleClaims.getExtData().setIsdeleted(Constants.ZERO);
         settleClaims.getExtData().setSettileClaimsId(settleClaims.getId());
         settleClaimsExtMapper.insert(settleClaims.getExtData());
+        //澶勭悊闄勪欢寮�濮�
+        multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+                .set(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjId,model.getId())
+                .in(Multifile::getObjType,Constants.MultiFile.LP_YGGX_FILE.getKey()
+                        ,Constants.MultiFile.LP_ZYCL_FILE.getKey()
+                        ,Constants.MultiFile.LP_MZCL_FILE.getKey()
+                        ,Constants.MultiFile.LP_OTHER_FILE.getKey()
+                        ,Constants.MultiFile.LP_SCZL_FILE.getKey()));
+        dealSysFileListBiz(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())
-                        || 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.ONE);
-                multifile.setSortnum(i+1);
-                multifileJoinMapper.insert(multifile);
-            }
+    private void dealCreateSysBiz(SettleClaims settleClaims,Date date,LoginUserInfo loginUserInfo) {
+        settleClaims.setCreateDate(date);
+        settleClaims.setIsdeleted(Constants.ZERO);
+        settleClaims.setCreator(loginUserInfo.getId());
+
+        settleClaimsMapper.insert(settleClaims);
+        settleClaims.getExtData().setCreator(settleClaims.getCreator());
+        settleClaims.getExtData().setCreateDate(date);
+        settleClaims.getExtData().setEditor(settleClaims.getCreator());
+        settleClaims.getExtData().setEditDate(date);
+        settleClaims.getExtData().setIsdeleted(Constants.ZERO);
+        settleClaims.getExtData().setSettileClaimsId(settleClaims.getId());
+        settleClaimsExtMapper.insert(settleClaims.getExtData());
+        //澶勭悊闄勪欢寮�濮�
+        dealSysFileListBiz(settleClaims);
+    }
+
+    /**
+     * 澶勭悊闄勪欢寮�濮�
+     * @param settleClaims
+     */
+
+    private void dealSysFileListBiz(SettleClaims settleClaims) {
+        List<Multifile> relationFileList = settleClaims.getRelationFileList();//鍛樺伐鍏崇郴鏉愭枡
+        List<Multifile> hospitalFileList = settleClaims.getHospitalFileList();//浣忛櫌鏉愭枡
+        List<Multifile> outpatientFileList = settleClaims.getOutpatientFileList();//闂ㄨ瘖鏉愭枡
+        List<Multifile> otherFileList = settleClaims.getOtherFileList();//鍏朵粬鏉愭枡
+        List<Multifile> disabilityFileList = settleClaims.getDisabilityFileList();//浼ゆ畫鏉愭枡
+        List<Multifile> insetList = new ArrayList<>();
+        insetList.addAll(getMultifileListByObjtype(relationFileList,Constants.MultiFile.LP_YGGX_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(hospitalFileList,Constants.MultiFile.LP_ZYCL_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(outpatientFileList,Constants.MultiFile.LP_MZCL_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(otherFileList,Constants.MultiFile.LP_OTHER_FILE.getKey(),settleClaims));
+        insetList.addAll(getMultifileListByObjtype(disabilityFileList,Constants.MultiFile.LP_SCZL_FILE.getKey(),settleClaims));
+        if(CollectionUtils.isNotEmpty(insetList)){
+                multifileJoinMapper.insert(insetList);
         }
         //--------------澶勭悊闄勪欢缁撴潫----------------
-
-        return  settleClaims.getId();
     }
+
+    private Collection<? extends Multifile> getMultifileListByObjtype(List<Multifile> list, int key,SettleClaims model) {
+        List<Multifile> insetList = new ArrayList<>();
+        if(CollectionUtils.isNotEmpty(list)){
+            int index = 0;
+            for (int i = 0; i < list.size(); i++) {
+                Multifile multifile = list.get(i);
+                if(Objects.isNull(multifile.getFileurl())
+                        || Objects.isNull(multifile.getType())
+                        || StringUtils.isBlank(multifile.getName())  ){
+                    continue;
+                }
+                multifile.setCreator(model.getEditor());
+                multifile.setCreateDate(model.getEditDate());
+                multifile.setEditor(model.getEditor());
+                multifile.setEditDate(model.getEditDate());
+                multifile.setIsdeleted(Constants.ZERO);
+                multifile.setObjId(model.getId());
+                multifile.setObjType(key);
+                multifile.setSortnum(index++);
+                insetList.add(multifile);
+            }
+        }
+        return insetList;
+    }
+
     @Override
     public Integer create(SettleClaims settleClaims) {
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -1194,7 +1260,7 @@
         //澶氭鍑洪櫓鎻愰啋
         if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"")
             && StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){
-            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+            Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
                     .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
                     .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
                     .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
@@ -1212,7 +1278,7 @@
                 && StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"")
                 && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit())
                 && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){
-            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+            Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
                     .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
                     .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
                     .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR)  ")
@@ -1232,7 +1298,7 @@
         if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen())
                 && StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"")
                 && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){
-            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+            Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
                     .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId())
                     .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
                     .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
index 9dec078..4f40b77 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -1,7 +1,6 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;

--
Gitblit v1.9.3