| | |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | } |
| | | InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaimsDTO.getInsuranceApplyId()); |
| | | if(Objects.isNull(insuranceApply)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | ApplyDetail applyDetail = applyDetailMapper.selectById(settleClaimsDTO.getApplyDetailId()); |
| | | if(Objects.isNull(applyDetail)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | Member member =memberMapper.selectById(settleClaimsDTO.getMemberId()); |
| | | if(member == null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,出险人信息不正确!"); |
| | | } |
| | | if(!(Constants.equalsInteger(insuranceApply.getId(),applyDetail.getApplyId())||Constants.equalsInteger(applyDetail.getMemberId(),member.getId()))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"信息匹配错误"); |
| | | } |
| | | SettleClaims settleClaims = new SettleClaims(); |
| | | BeanUtils.copyProperties(settleClaimsDTO,settleClaims); |
| | |
| | | ); |
| | | } |
| | | if(Objects.nonNull(settleClaims.getId())){ |
| | | SettleClaims model = settleClaimsMapper.selectById(settleClaims.getId()); |
| | | 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()))){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转,无法进行修改"); |
| | | } |
| | | settleClaims.setEditDate(new Date()); |
| | | settleClaims.setEditor(loginUserInfo.getId()); |
| | | settleClaims.setStatus(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)? |
| | | Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey():Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()); |
| | | if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)){ |
| | | if(Constants.equalsInteger(settleClaimsDTO.getSaveType(),Constants.ONE)&& |
| | | Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){ |
| | | //处理风险信息 |
| | | this.saveRisk(settleClaims,settleClaimsDTO,systemDictDataService); |
| | | } |
| | |
| | | if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE) |
| | | && Objects.nonNull(solutionsBase.getRiskNewUserUnit()) |
| | | && Objects.nonNull(solutionsBase.getRiskNewUserTime()) |
| | | && happenTime.getTime() < applyDetail.getStartTime().getTime() |
| | | ){ |
| | | if(happenTime.getTime() > applyDetail.getEndTime().getTime()){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"事故发生时间未在人员保障日期范围内"); |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"事故发生时间未在人员保障日期范围内"); |
| | | } |
| | | } |
| | | |
| | | if(happenTime.getTime() < startDate.getTime() ){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"事故发生时间未在人员保障日期范围内"); |
| | | }else{ |
| | |
| | | //根据配置 查询 延迟报案提醒时间单位 0分钟 1小时 2天 |
| | | if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ZERO)){ |
| | | if(DateUtil.getBetweenMin(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayUnit()+"分钟"); |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayTime()+"分钟"); |
| | | riskList.add(map); |
| | | } |
| | | }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ONE)){ |
| | | if(DateUtil.getBetweenHours(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayUnit()+"小时"); |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayTime()+"小时"); |
| | | riskList.add(map); |
| | | } |
| | | }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){ |
| | | if(DateUtil.getBetweenDay(happenTime,new Date())>solutionsBase.getRiskDelayTime()){ |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayUnit()+"天"); |
| | | map.put("info","报案时间超过案发时间"+solutionsBase.getRiskDelayTime()+"天"); |
| | | riskList.add(map); |
| | | } |
| | | } |
| | |
| | | .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) ") |
| | | ); |
| | | if(cxcs > Constants.TWO){ |
| | | if(cxcs >= Constants.TWO){ |
| | | Map<String,String> map = new HashMap<>(); |
| | | map.put("title","疑似重复报案"); |
| | | map.put("info","该出险人在"+riskConfigVO.getRiskRepeatReportTime()+(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")?"小时":"天")+"内已报案"+cxcs+"次"); |
| | |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){ |
| | | Long cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda() |
| | | .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId()) |
| | | .eq(SettleClaims::getIsdeleted,Constants.ZERO) |
| | | .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId()) |
| | | .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY) ") |
| | | .apply(" CREATE_DATE > DATE_SUB(now(), INTERVAL 365 DAY) ") |
| | | ); |
| | | if(cxcs > Integer.valueOf(riskConfigVO.getRiskClaimTimes())){ |
| | | Map<String,String> map = new HashMap<>(); |
| | |
| | | if(StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWordsOpen()) |
| | | && StringUtils.equals(riskConfigVO.getRiskSensitiveWordsOpen(),Constants.ONE+"") |
| | | && StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWords())){ |
| | | String [] words = riskConfigVO.getRiskSensitiveWords().split(","); |
| | | String [] words = riskConfigVO.getRiskSensitiveWords().split(";"); |
| | | String sensitiveWord = ""; |
| | | for (String word:words) { |
| | | if(settleClaims.getContent().indexOf(word)>=Constants.ZERO){ |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?Constants.SettleClaimsLogType.PLATFORM_ACCEPTANCE:Constants.SettleClaimsLogType.PLATFORM_DISCUSS, |
| | | dto.getDescribe(),Constants.SettleClaimsStatus.ACCEPTANCE); |
| | | Constants.equalsInteger(dto.getStatus(),Constants.ZERO)?dto.getDescribe():(dto.getDescribe() + " 问题类型:"+dto.getSyProblemOpts()) |
| | | ,Constants.SettleClaimsStatus.ACCEPTANCE); |
| | | }else if(Constants.equalsInteger(dto.getStatus(),Constants.ONE)){ |
| | | //拒绝受理 |
| | | settleClaimsMapper.update(null,new UpdateWrapper<SettleClaims>().lambda() |
| | |
| | | //存储日志 |
| | | this.saveSettleClaimsLog(settleClaims, |
| | | Constants.SettleClaimsLogType.PLATFORM_WAIT_DISCUSS, |
| | | dto.getDescribe(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT); |
| | | dto.getDescribe() + " 问题类型:"+dto.getSyProblemOpts(),Constants.SettleClaimsStatus.WAIT_DISCUSS_AUDIT); |
| | | } |
| | | |
| | | if( Constants.equalsInteger(settleClaims.getStatus(),Constants.SettleClaimsStatus.ACCEPTANCE.getKey()) || |