fuliqi
2024-08-19 9a4549c0c2dbe44c9568fe56fb4df8d6fbb44d4f
ycl-server/src/main/java/com/ycl/platform/service/impl/YwThresholdServiceImpl.java
@@ -9,6 +9,7 @@
import com.ycl.platform.mapper.YwThresholdMapper;
import com.ycl.platform.service.IYwThresholdService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.utils.ip.PingUtil;
import constant.YwThreadConstants;
import enumeration.CompareType;
import enumeration.general.BusinessTypeEnum;
@@ -16,6 +17,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import utils.DateUtils;
import java.util.*;
@@ -117,6 +119,32 @@
    }
    @Override
    public void errorTypeCheckUY(List list) {
        // 平台离线故障检测
        if (CollectionUtils.isEmpty(list)) {
            Boolean ping = PingUtil.ping("", 5);
            if (! ping) {
            }
        }
        // 设备离线故障检测
        // 信号缺失故障检测
        // 画面偏色故障检测
        // 雪花干扰故障检测
        // 条纹干扰故障检测
        // 画面遮挡故障检测
        // 清晰度异常检测
        // 亮度异常故障检测
    }
    /**
     * 判断人脸阈值是否满足下发条件
     *
@@ -155,8 +183,8 @@
            check(YwThreadConstants.Face_FailPercent, failPercent, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.LESS_THAN_EQ,"");
        }
        /** 添加工单 */
        workOrderService.innerAdd(workOrderList);
        workOrderService.innerAdd(distributeList);
        workOrderService.innerAddWorkOrder(workOrderList);
        workOrderService.innerAddWorkOrder(distributeList);
    }
    /**
@@ -197,11 +225,16 @@
            check(YwThreadConstants.Car_NoIntegrityCount, noIntegrityCountResult, result.getExternalIndexCode(), thresholdMap, distributeList, workOrderList, CompareType.MORE_THAN_EQ,"");
        }
        /** 添加工单 */
        workOrderService.innerAdd(workOrderList);
        workOrderService.innerAdd(distributeList);
        workOrderService.innerAddWorkOrder(workOrderList);
        workOrderService.innerAddWorkOrder(distributeList);
    }
    //封装阈值为map
    /**
     * 把阈值条件查出来,转成map
     *
     * @param name
     * @return
     */
    private Map<String, YwThreshold> getYwThresholdMap(String name) {
        return ywThresholdMapper.selectList(
                new QueryWrapper<YwThreshold>().eq("monitor_type", name)
@@ -211,7 +244,19 @@
        ));
    }
    //检查阈值
    /**
     * 检查阈值
     *
     * @param key 某阈值标识
     * @param value 接口获取到的值
     * @param serialNumber 国标码
     * @param thresholds 阈值条件map
     * @param distributeList 要下发的工单容器
     * @param workOrderList 待下发的工单容器
     * @param compareType 比较方式:>=    <=
     * @param errorType 故障类型
     * @param <T>
     */
    private <T extends Comparable<T>> void check(String key, T value, String serialNumber, Map<String, YwThreshold> thresholds, List distributeList, List workOrderList, CompareType compareType,String errorType) {
        Optional.ofNullable(value).ifPresentOrElse(
                v -> {