| | |
| | | workOrderList.stream().filter(item -> { |
| | | return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && StringUtils.hasText(item.getErrorType()); |
| | | }); |
| | | if (CollectionUtils.isEmpty(workOrderList)) { |
| | | return Boolean.TRUE; |
| | | } |
| | | List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList()); |
| | | // 查出数据库中国标码对应的未完成的工单 |
| | | List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper) |
| | |
| | | Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); |
| | | List<WorkOrder> waitAddList = new ArrayList<>(48); |
| | | Integer updateNum = 0; |
| | | // TODO 查询是否报备过,更新故障类型 |
| | | for (WorkOrder workOrder : workOrderList) { |
| | | WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); |
| | | if (Objects.nonNull(databaseWorkOrder)) { |
| | |
| | | errorType = errorType + "," + workOrder.getErrorType(); |
| | | databaseWorkOrder.setErrorType(errorType); |
| | | databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); |
| | | Date now = new Date(); |
| | | databaseWorkOrder.setUpdateTime(now); |
| | | baseMapper.updateById(databaseWorkOrder); |
| | | updateNum++; |
| | | // 同时新增一个运维处理信息,表明此工单被调整 TODO |
| | | } |
| | | } else { |
| | | workOrder.setCreateTime(new Date()); |
| | | workOrder.setUpdateTime(new Date()); |
| | | waitAddList.add(workOrder); |
| | | } |
| | | } |
| | |
| | | // 查出重点点位、普通点位的处理时间 |
| | | SysConfig important = configMapper.checkConfigKeyUnique("important.wordkorder.time"); |
| | | SysConfig normal = configMapper.checkConfigKeyUnique("normal.wordkorder.alarm.time"); |
| | | // 如果即将生成工单,但是设备国标码查不到点位,则不添加? |
| | | List<WorkOrder> notAddList = new ArrayList<>(); |
| | | for (WorkOrder workOrder : waitAddList) { |
| | | YwPoint point = pointMapping.get(workOrder.getSerialNumber()); |
| | | if (Objects.isNull(point)) { |
| | | notAddList.add(workOrder); |
| | | continue; |
| | | } |
| | | workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); |
| | | workOrder.setUnitId(Math.toIntExact(point.getUnitId())); |
| | | if (point.getImportantTag() || point.getImportantCommandImageTag()) { |
| | |
| | | } else { |
| | | workOrder.setProcessingPeriod(Integer.valueOf(normal.getConfigValue())); |
| | | } |
| | | } |
| | | waitAddList.removeAll(notAddList); |
| | | if (CollectionUtils.isEmpty(waitAddList)) { |
| | | return Boolean.TRUE; |
| | | } |
| | | this.saveBatch(waitAddList); |
| | | // 如果是直接下发,添加下发记录 |
| | |
| | | workOrderDistributeRecord.setWorkOrderId(item.getId()); |
| | | workOrderDistributeRecord.setDistributeWay(WorkOrderDistributeWayEnum.DIRECT_DISTRIBUTE); |
| | | workOrderDistributeRecord.setUserId(1L); |
| | | Date now = new Date(); |
| | | workOrderDistributeRecord.setCreateTime(now); |
| | | workOrderDistributeRecord.setUpdateTime(now); |
| | | return workOrderDistributeRecord; |
| | | }).collect(Collectors.toList()); |
| | | workOrderDistributeRecordMapper.insertBatch(distributedRecordList); |
| | |
| | | entity.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); |
| | | entity.setCreateTime(DateUtils.getNowDate()); |
| | | entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE); |
| | | Date now = new Date(); |
| | | entity.setCreateTime(now); |
| | | entity.setUpdateTime(now); |
| | | if(baseMapper.insert(entity) > 0) { |
| | | return Result.ok("添加成功"); |
| | | } |
| | |
| | | public Result update(WorkOrderForm form) { |
| | | |
| | | WorkOrder entity = baseMapper.selectById(form.getId()); |
| | | |
| | | // 为空抛IllegalArgumentException,做全局异常处理 |
| | | Assert.notNull(entity, "记录不存在"); |
| | | BeanUtils.copyProperties(form, entity); |
| | | Date now = new Date(); |
| | | entity.setUpdateTime(now); |
| | | if (baseMapper.updateById(entity) > 0) { |
| | | return Result.ok("修改成功"); |
| | | } |
| | |
| | | public Result distributePage(DistributeWorkOrderQuery query) { |
| | | IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); |
| | | baseMapper.distributePage(page, query); |
| | | page.getRecords().stream().forEach(workOrder -> { |
| | | if (StringUtils.hasText(workOrder.getPointTag()) && workOrder.getPointTag().contains(IMPORTANT)) { |
| | | workOrder.setImportant(Boolean.TRUE); |
| | | } |
| | | }); |
| | | return Result.ok().data(page).total(page.getTotal()); |
| | | } |
| | | |