k94314517
2025-05-26 81d7f91fa38e74cab052eb4413bd3e12686935a4
git ch
已添加5个文件
已修改15个文件
855 ■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/SettleRiskController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/DateUtil.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/CompensationDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/UpdHurtTypeDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/UpdReceiveInfoDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/DataListVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/InsuranceDataVO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/SettleClaimsService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java 465 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
server/company/src/main/resources/application.yml
@@ -12,7 +12,7 @@
#  application:git
#    name: doumeemes
  profiles:
    active: pro
    active: dev
  # JSON返回配置
  jackson:
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());
    }
}
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;
                }
server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -94,10 +94,12 @@
    /**
     * å¾—出两个日期之间的间隔小时
     *
     * @param fromDate
     * @param fromDate é å‰çš„æ—¶é—´
     *            æ ¼å¼ä¸ºyyyy-MM-dd
     * @param toDate
     * @param toDate  é åŽçš„æ—¶é—´
     *            æ ¼å¼ä¸ºyyyy-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()));;
    }
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;
}
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;
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;
}
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;
}
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;
}
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();
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;
}
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;
}
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;
}
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();
}
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();
}
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);
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;
//    }
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())
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;
    }
}