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+"次");