xiangpei
2024-08-19 70dfa087a9f61ecc33f3b5bc618202c2023e38f3
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -80,6 +80,9 @@
        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)
@@ -90,6 +93,7 @@
        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)) {
@@ -102,11 +106,15 @@
                    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);
            }
        }
@@ -122,9 +130,14 @@
        // 查出重点点位、普通点位的处理时间
        SysConfig important = configMapper.checkConfigKeyUnique("important.wordkorder.time");
        SysConfig normal = configMapper.checkConfigKeyUnique("normal.wordkorder.alarm.time");
        // 如果即将生成工单,但是设备国标码查不到点位,则不添加?
        List<WorkOrder> notAddList = new ArrayList<>();
        for (WorkOrder workOrder : waitAddList) {
            //TODO:point为空
            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()) {
@@ -132,6 +145,10 @@
            } else {
                workOrder.setProcessingPeriod(Integer.valueOf(normal.getConfigValue()));
            }
        }
        waitAddList.removeAll(notAddList);
        if (CollectionUtils.isEmpty(waitAddList)) {
            return Boolean.TRUE;
        }
        this.saveBatch(waitAddList);
        // 如果是直接下发,添加下发记录
@@ -141,6 +158,9 @@
                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);
@@ -160,6 +180,9 @@
        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("添加成功");
        }
@@ -175,10 +198,11 @@
    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("修改成功");
        }