k94314517
2025-06-03 1b560792dcfcaacfbaab84871fa3ad6771336faf
git ch
已修改4个文件
52 ■■■■■ 文件已修改
server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/SettleRiskController.java
@@ -190,7 +190,7 @@
        return ApiResponse.success(settleClaimsService.getSettleClaimsDataVO());
    }
    @ApiOperation("理赔报案数据报表")
    @ApiOperation("保单数据报表")
    @GetMapping("/getInsuranceDataVO")
    public ApiResponse<InsuranceDataVO> getInsuranceDataVO() {
        return ApiResponse.success(settleClaimsService.getInsuranceDataVO());
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -321,22 +321,34 @@
    }
    public static int calculateAge(String idCard,Date dateDate) {
        if (idCard == null || idCard.length() != 18) {
            throw new IllegalArgumentException("身份证号码必须是18位");
        try{
            Integer happenYear = Integer.valueOf(DateUtil.dateToString(dateDate,"yyyy"));
            Integer birthYear = Integer.valueOf(idCard.substring(6,10));
            return happenYear - birthYear;
        }catch (Exception e){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"年龄信息错误");
        }
        // 提取出生日期
        String birthDateStr = idCard.substring(6, 14); // 例如:19900101
        LocalDate birthDate = LocalDate.parse(birthDateStr);
        Instant instant = dateDate.toInstant();
        // 获取当前日期
        LocalDate currentDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); // 转换为 LocalDate
        // 计算年龄
        Period period = Period.between(birthDate, currentDate);
        int age = period.getYears(); // 直接获取年份差即为年龄
        return age;
//        if (idCard == null || idCard.length() != 18) {
//            throw new IllegalArgumentException("身份证号码必须是18位");
//        }
//
//        // 提取出生日期
//        String birthDateStr = idCard.substring(6, 14); // 例如:19900101
//        LocalDate birthDate = LocalDate.parse(birthDateStr);
//        Instant instant = dateDate.toInstant();
//        // 获取当前日期
//        LocalDate currentDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); // 转换为 LocalDate
//
//        // 计算年龄
//        Period period = Period.between(birthDate, currentDate);
//        int age = period.getYears(); // 直接获取年份差即为年龄
//        return age;
    }
server/service/src/main/java/com/doumee/dao/business/vo/dataBoard/SettleClaimsDataVO.java
@@ -51,7 +51,7 @@
    private BigDecimal riskRepeatRata;
    @ApiModelProperty(value = "索赔次数过多次数")
    private Integer riskTimesSpTotal;
    @ApiModelProperty(value = "疑似重复报案风险次数环比")
    @ApiModelProperty(value = "索赔次数过多次数环比")
    private BigDecimal riskTimesSpRata;
    @ApiModelProperty(value = "新员工出险风险次数")
    private Integer riskNewUserTotal;
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -1409,7 +1409,9 @@
            if(Objects.isNull(model)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY);
            }
            if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()))){
            if(!(Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())
                    ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey())
                    ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey()))){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转,无法进行修改");
            }
            settleClaims.setEditDate(new Date());
@@ -1560,7 +1562,7 @@
                    .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
                    .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
            );
            if(cxcs>Integer.valueOf(riskConfigVO.getRiskTimesReportTimes())){
            if(cxcs>=Integer.valueOf(riskConfigVO.getRiskTimesReportTimes())){
                Map<String,String> map = new HashMap<>();
                map.put("title","疑似多次出险");
                map.put("info","出险人一年内已出险"+cxcs+"次");
@@ -1576,10 +1578,10 @@
            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)  ")
                    .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY)  ")
                    .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," CREATE_DATE > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR)  ")
                    .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," CREATE_DATE > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY)  ")
            );
            if(cxcs >= Constants.TWO){
            if(cxcs >= Constants.ONE){
                Map<String,String> map = new HashMap<>();
                map.put("title","疑似重复报案");
                map.put("info","该出险人在"+riskConfigVO.getRiskRepeatReportTime()+(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")?"小时":"天")+"内已报案"+cxcs+"次");