| | |
| | | } |
| | | }); |
| | | } |
| | | //加上报备信息 |
| | | if (!CollectionUtils.isEmpty(page.getRecords())) { |
| | | List<String> serialNumberList = page.getRecords().stream() |
| | | .map(WorkOrderVO::getSerialNumber).collect(Collectors.toList()); |
| | | List<Report> reports = new LambdaQueryChainWrapper<>(reportMapper) |
| | | .in(Report::getSerialNumber, serialNumberList) |
| | | .eq(Report::getStatus,1) |
| | | .eq(Report::getDeleted,Boolean.FALSE).list(); |
| | | Map<String, List<Report>> reportMap = reports.stream() |
| | | .collect(Collectors.groupingBy(Report::getSerialNumber)); |
| | | |
| | | for (WorkOrderVO workOrder : page.getRecords()) { |
| | | workOrder.setHasReport(false); |
| | | List<Report> reportsByWorkOrder = reportMap.get(workOrder.getSerialNumber()); |
| | | if (CollectionUtils.isEmpty(reportsByWorkOrder)) { |
| | | continue; // 无报告,直接跳过 |
| | | } |
| | | Date distributeTime = workOrder.getDistributeTime(); |
| | | for (Report report : reportsByWorkOrder) { |
| | | Date beginTime = report.getBeginCreateTime(); |
| | | Date endTime = report.getEndCreateTime(); |
| | | // 空指针防护 |
| | | if (distributeTime == null || beginTime == null || endTime == null) { |
| | | continue; |
| | | } |
| | | // 时间区间判断:distributeTime 在 [beginTime, endTime] 内 |
| | | boolean isInRange = distributeTime.compareTo(beginTime) >= 0 |
| | | && distributeTime.compareTo(endTime) <= 0; |
| | | if (isInRange) { |
| | | workOrder.setHasReport(true); |
| | | break; // 找到一个即退出循环 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return Result.ok().data(page.getRecords()).total(page.getTotal()); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public WorkOrderTotalVO workOrderTotal(DashboardQuery dashboardQuery) { |
| | | //todo大屏工单未处理工单数量有点问题 |
| | | return baseMapper.workOrderTotal(dashboardQuery); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<WorkOrderRegionVO> workOrderRegion(DashboardQuery dashboardQuery) { |
| | |
| | | } |
| | | |
| | | // 是否报备 |
| | | Date target = workOrder.getCreateTime(); |
| | | |
| | | Report reports = new LambdaQueryChainWrapper<>(reportMapper) |
| | | .eq(Report::getSerialNumber,workOrder.getWorkOrderNo()) |
| | | List<Report> reports = new LambdaQueryChainWrapper<>(reportMapper) |
| | | .eq(Report::getSerialNumber,workOrder.getSerialNumber()) |
| | | .eq(Report::getStatus,1) |
| | | .orderByDesc(Report::getCreateTime) |
| | | .last("LIMIT 1") |
| | | .one(); |
| | | boolean isInRange = false; |
| | | if (reports != null){ |
| | | Date start = reports.getBeginCreateTime(); |
| | | Date end = reports.getEndCreateTime(); |
| | | isInRange = target.after(start) || target.equals(start) // target >= start |
| | | && target.before(end) || target.equals(end); |
| | | .list(); |
| | | log.info("报备记录:{}",reports); |
| | | Date distributeTime = workOrder.getDistributeTime(); |
| | | workOrder.setHasReport(false); |
| | | for (Report report : reports) { |
| | | Date beginTime = report.getBeginCreateTime(); |
| | | Date endTime = report.getEndCreateTime(); |
| | | // 空指针防护 |
| | | if (distributeTime == null || beginTime == null || endTime == null) { |
| | | continue; |
| | | } |
| | | // 时间区间判断:distributeTime 在 [beginTime, endTime] 内 |
| | | boolean isInRange = distributeTime.compareTo(beginTime) >= 0 |
| | | && distributeTime.compareTo(endTime) <= 0; |
| | | if (isInRange) { |
| | | workOrder.setHasReport(true); |
| | | break; // 找到一个即退出循环 |
| | | } |
| | | } |
| | | |
| | | workOrder.setHasReport(isInRange); |
| | | // 故障类型 |
| | | List<SysDictData> errorList = workOrderErrorTypeService.getBaseMapper().getErrorList(workOrder.getWorkOrderNo()); |
| | | List<String> errList = errorList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList()); |