fuliqi
2025-02-21 64efb660b2c119c00432434c0f651f8996483f18
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -228,16 +228,16 @@
                check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.MODELING_FAIL.getValue());
            }
            // 点位在线率
            if (2 == result.getSnapResult()) {
                workOrder.setSerialNumber(result.getExternalIndexCode());
                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
                    workOrder.setErrorTypeList(new ArrayList<>());
                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
                } else {
                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
                }
            }
//            if (2 == result.getSnapResult()) {
//                workOrder.setSerialNumber(result.getExternalIndexCode());
//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
//                    workOrder.setErrorTypeList(new ArrayList<>());
//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
//                } else {
//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
//                }
//            }
            if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                workOrderList.add(workOrder);
            } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
@@ -299,16 +299,16 @@
                check(YwThreadConstants.Car_NoIntegrityCount, integrityRate, result.getExternalIndexCode(), thresholdMap, workOrder, CompareType.LESS_THAN_EQ, ErrorType.CAR_SIX.getValue());
            }
            // 点位在线率
            if (2 == result.getSnapResult()) {
                workOrder.setSerialNumber(result.getExternalIndexCode());
                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
                    workOrder.setErrorTypeList(new ArrayList<>());
                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
                } else {
                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
                }
            }
//            if (2 == result.getSnapResult()) {
//                workOrder.setSerialNumber(result.getExternalIndexCode());
//                workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
//                if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
//                    workOrder.setErrorTypeList(new ArrayList<>());
//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
//                } else {
//                    workOrder.getErrorTypeList().add(ErrorType.DEVICE_OFFLINE.getValue());
//                }
//            }
            if (WorkOrderStatusEnum.WAIT_DISTRIBUTE.equals(workOrder.getStatus())) {
                workOrderList.add(workOrder);
            } else if (WorkOrderStatusEnum.DISTRIBUTED.equals(workOrder.getStatus())) {
@@ -517,8 +517,6 @@
        }
        boolean duplic = checkDuplic(dataList);
        if (duplic) throw new RuntimeException("存在重复国标设备");
        //已存在的白名单
        Map<String, WorkOrderWhite> whiteMap = workOrderWhiteMapper.selectList().stream().collect(Collectors.toMap(WorkOrderWhite::getSerialNumber, Function.identity()));
        List<WorkOrderWhite> addList = new ArrayList<>();
        dataList.stream().forEach(item -> {
            WorkOrderWhite white = new WorkOrderWhite();
@@ -542,9 +540,6 @@
                    errorDataList.add(errorText);
                });
                white.setErrorType(String.join(",", errorDataList));
                //如果已存在补充id
                WorkOrderWhite whiteExsit = whiteMap.get(white.getSerialNumber());
                if (whiteExsit != null) white.setId(whiteExsit.getId());
                addList.add(white);
            } catch (Exception e) {
                throw new RuntimeException("国标码为" + item.getSerialNumber() + "的设备故障类型有误");
@@ -664,6 +659,34 @@
        );
    }
    /**
     * 所有白名单添加故障类型
     *
     * @param workOrderWhite
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result addBatch(WorkOrderWhite workOrderWhite) {
        List<String> errorTypeListAdd = workOrderWhite.getErrorTypeList();
        List<WorkOrderWhite> whites = workOrderWhiteMapper.selectList();
        for (WorkOrderWhite white : whites) {
            List<String> errorTypeList = new ArrayList<>(Arrays.asList(white.getErrorType().split(",")));
            for (String newError : errorTypeListAdd) {
                if (errorTypeList.contains(newError)) {
                    continue;
                } else {
                    errorTypeList.add(newError);
                }
            }
            white.setErrorType(String.join(",", errorTypeList));
        }
        if (!CollectionUtils.isEmpty(whites)) {
            workOrderWhiteMapper.deleteAll();
            workOrderWhiteMapper.insertBatch(whites);
        }
        return Result.ok();
    }
    private <T extends Comparable<T>> T parseThreshold(String thresholdStr, Class<?> type) {
        if (Integer.class.equals(type)) {
            return (T) Integer.valueOf(thresholdStr);