xiangpei
2024-09-01 7e39aba8980b95fac3b347689aac66da41079d18
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -118,11 +118,14 @@
                )).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);
@@ -137,7 +140,7 @@
        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)) {
                    // 如果,国标码、故障类型都一样,则跳过不处理
@@ -489,9 +492,6 @@
        LocalDateTime now = LocalDateTime.now(ZoneId.systemDefault());
        data.setEnd(now);
        switch (data.getFastWay()) {
            case LAST_HALF_HOUR:
                data.setStart(now.minusMinutes(30));
                break;
            case LAST_HOUR:
                data.setStart(now.minusHours(1));
                break;
@@ -501,8 +501,12 @@
            case LAST_DAY:
                data.setStart(now.minusDays(1));
                break;
            default:
                break;
           }
        if (Objects.isNull(data.getStart())) {
            throw new RuntimeException("无法生成快速下发的时间范围,请选择正确的快速下发方式");
        }
        // 查询符合条件的工单
        List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
                .select(WorkOrder::getSerialNumber, WorkOrder::getWorkOrderNo)
@@ -694,7 +698,7 @@
                        imgUrl = workOrderNo + "_" + IdUtils.fastSimpleUUID() + ".png";
                        // 生成图片路径
                        String imgPath = PlatformConfig.getUploadPath() + "/" + imgUrl;
                        String imgPath = PlatformConfig.getProfile() + "/" + imgUrl;
                        System.out.println("图片保存地址:" + imgPath);
                        imgUrl = Constants.RESOURCE_PREFIX + "/" + imgUrl;
                        // 保存图片