| | |
| | | .collect(Collectors.groupingBy( |
| | | CalculateRuleVO::getRuleName, // 按规则名称分组 |
| | | Collectors.groupingBy( |
| | | CalculateRuleVO::getContractId // 每个规则名称内部再按合同ID分组,value为规则集合 |
| | | CalculateRuleVO::getContractId // 每个规则名称内部再按合同ID分组,value为规则集合(多个合同情况) |
| | | ) |
| | | )); |
| | | //前端感知源治理工作(时钟同步规则、OSD规则、一机一档规则) 获取key为合同id,value为规则的map |
| | |
| | | LocalDateTime endTime = LocalDateTime.now(); |
| | | // 计算30天前的日期 |
| | | LocalDateTime startTime = endTime.minusDays(30); |
| | | //需要查审核通过那条记录的时间 |
| | | List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(), "审核通过"); |
| | | for (WorkOrderVO workOrder : workOrders) { |
| | | //检测是否报备过 |
| | | if (!CollectionUtils.isEmpty(reportNumbers)) { |
| | | if (reportNumbers.contains(workOrder.getSerialNumber())) continue; |
| | | } |
| | | if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue; |
| | | // if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue; |
| | | String errorType = workOrder.getErrorType(); |
| | | //存储故障 录像或图片访问异常 (改成手动打分了) |
| | | // if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) { |
| | |
| | | Date createTime = workOrder.getDistributeTime(); |
| | | Date auditTime = workOrder.getAuditTime(); |
| | | double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60); |
| | | //选择时间范围内的规则 |
| | | //找到对应规则、选择时间范围内的规则 |
| | | for (CalculateRuleVO rule : rules) { |
| | | if(ErrorType.OSD_ERROR.getValue().equals(errorType)){ |
| | | if(!rule.getRuleCondition().equals("OSD标识")) continue; |
| | | }else if(ErrorType.CLOCK_SKEW.getValue().equals(errorType)){ |
| | | if(!rule.getRuleCondition().equals("时钟同步")) continue; |
| | | }else if( ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)){ |
| | | if(!rule.getRuleCondition().equals("一机一档")) continue; |
| | | } |
| | | |
| | | if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) { |
| | | double deductScore = rule.getCalcFraction(); |
| | | ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "工单编号为:" + workOrder.getWorkOrderNo() + "处理超时,扣除" + deductScore + "分"); |
| | |
| | | List<ContractScore> contractScoreList = new ArrayList<>(); |
| | | //查询报备列表 |
| | | List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate()); |
| | | Date date = DateUtils.getDay(2024, 7, 13); |
| | | Date date = new Date(); |
| | | //查图片完整性规则 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream() |
| | | .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_PicComplete.getName().equals(calculateRuleVO.getRuleName())) |
| | |
| | | List<ContractScore> contractScoreList = new ArrayList<>(); |
| | | //查询报备列表 |
| | | List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate()); |
| | | //TODO:测试日期 |
| | | Date date = DateUtils.getDay(2024, 7, 13); |
| | | Date date = new Date(); |
| | | //查图片完整性规则 获取key为合同id,value为规则的map |
| | | Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream() |
| | | .filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_VideoRecord.getName().equals(calculateRuleVO.getRuleName())) |