jiangping
2025-05-20 25baa25ea30432ba8651b5cc9dc0c2bdfed4fc2d
提交一把
已修改6个文件
168 ■■■■■ 文件已修改
server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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")
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>
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);
    /************************************************************************新业务******************************************************************************************/
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;
/**
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)  ")
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;