| | |
| | | public Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) { |
| | | int total = workOrderList.size(); |
| | | workOrderList.stream().filter(item -> { |
| | | return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && StringUtils.hasText(item.getErrorType()); |
| | | return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && !CollectionUtils.isEmpty(item.getErrorTypeList()); |
| | | }); |
| | | if (CollectionUtils.isEmpty(workOrderList)) { |
| | | return Boolean.TRUE; |
| | |
| | | )).values().stream().collect(Collectors.toList()); |
| | | List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList()); |
| | | // 查出数据库中国标码对应的未完成的工单 |
| | | List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getWorkOrderNo) |
| | | .in(WorkOrder::getSerialNumber, serialNumberList) |
| | | .ne(WorkOrder::getStatus, WorkOrderStatusEnum.AUDITING_SUCCESS) |
| | | .list(); |
| | | List<WorkOrder> inDatabaseWorkOrderList = baseMapper.getNotFinishedWorkOrders(serialNumberList); |
| | | inDatabaseWorkOrderList.stream().forEach(item -> { |
| | | if (StringUtils.hasText(item.getErrorType())) { |
| | | item.setErrorTypeList(List.of(item.getErrorType().split(","))); |
| | | } else { |
| | | item.setErrorTypeList(new ArrayList<>(1)); |
| | | } |
| | | }); |
| | | Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); |
| | | List<WorkOrder> waitAddList = new ArrayList<>(48); |
| | | List<WorkOrderErrorType> waitAddErrorTypeList = new ArrayList<>(48); |
| | |
| | | for (WorkOrder workOrder : workOrderList) { |
| | | WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); |
| | | if (Objects.nonNull(databaseWorkOrder)) { |
| | | List<String> errorNameList = workOrderErrorTypeService.getBaseMapper().getNotFinishWorkOrderErrors(databaseWorkOrder.getWorkOrderNo()); |
| | | List<String> errorNameList = databaseWorkOrder.getErrorTypeList(); |
| | | List<String> errorTypes = workOrder.getErrorTypeList(); |
| | | if (errorNameList.containsAll(errorTypes)) { |
| | | // 如果,国标码、故障类型都一样,则跳过不处理 |
| | |
| | | notAddList.add(workOrder); |
| | | continue; |
| | | } |
| | | workOrder.setWorkOrderNo(IdUtils.randomNO()); |
| | | workOrder.setWorkOrderNo(IdUtils.randomNO(now)); |
| | | if (Objects.nonNull(point.getUnitId())) { |
| | | workOrder.setUnitId(Math.toIntExact(point.getUnitId())); |
| | | } |
| | |
| | | @Override |
| | | public Result add(WorkOrderForm form) { |
| | | WorkOrder entity = WorkOrderForm.getEntityByForm(form, null); |
| | | entity.setWorkOrderNo(IdUtils.randomNO()); |
| | | entity.setCreateTime(DateUtils.getNowDate()); |
| | | entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE); |
| | | Date now = new Date(); |
| | | entity.setCreateTime(now); |
| | | entity.setUpdateTime(now); |
| | | entity.setWorkOrderNo(IdUtils.randomNO(now)); |
| | | entity.setErrorType(String.join(",", form.getErrorType())); |
| | | List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList(); |
| | | workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes); |
| | |
| | | @Override |
| | | public Result page(WorkOrderQuery query) { |
| | | IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); |
| | | query.setUnitId(SecurityUtils.getUnitId()); |
| | | baseMapper.page(page, query); |
| | | if (! CollectionUtils.isEmpty(page.getRecords())) { |
| | | page.getRecords().stream().forEach(item -> { |
| | |
| | | |
| | | @Override |
| | | public Result processImg(String workOrderNo) { |
| | | WorkOrder workOrder = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .eq(WorkOrder::getWorkOrderNo, workOrderNo) |
| | | .one(); |
| | | if (Objects.isNull(workOrder)) { |
| | | throw new RuntimeException("此工单不存在"); |
| | | } |
| | | // 运维记录 |
| | | List<WorkOrderYwConditionRecordVO> workOrderYwConditionRecordVOS = this.selectYwConditionByYwId(workOrderNo); |
| | | // 审核记录 |
| | |
| | | WorkOrderProcessVO process = new WorkOrderProcessVO(); |
| | | process.setYwList(workOrderYwConditionRecordVOS); |
| | | process.setAuditingList(workOrderAuditingRecords); |
| | | // 查询点位事前事后最新的一条数据是否审核通过 |
| | | ReportAuditingRecordVO beforeRecord = ywPointService.getReportResult(workOrder.getSerialNumber(), "事前报备"); |
| | | ReportAuditingRecordVO afterRecord = ywPointService.getReportResult(workOrder.getSerialNumber(), "事后报备"); |
| | | |
| | | Date now = new Date(); |
| | | if (Objects.nonNull(beforeRecord)) { |
| | | if (now.before(beforeRecord.getBeginCreateTime())) { |
| | | process.setBeforeReportMsg("事前报备已失效"); |
| | | } else if (now.after(beforeRecord.getEndCreateTime())){ |
| | | process.setBeforeReportMsg("事前报备未生效"); |
| | | } else { |
| | | process.setBeforeReportMsg("已事前报备"); |
| | | } |
| | | } |
| | | if (Objects.nonNull(afterRecord)) { |
| | | if (now.before(afterRecord.getBeginCreateTime())) { |
| | | process.setAfterReportMsg("事后报备已失效"); |
| | | } else if (now.after(afterRecord.getEndCreateTime())){ |
| | | process.setAfterReportMsg("事后报备未生效"); |
| | | } else { |
| | | process.setAfterReportMsg("已事后报备"); |
| | | } |
| | | } |
| | | return Result.ok().data(process); |
| | | } |
| | | } |