fuliqi
2025-01-08 491d524a992817e164ecc6f24a771ab9ce0f0379
工单:故障类型图像质量合并
8个文件已修改
117 ■■■■ 已修改文件
ycl-common/src/main/java/enumeration/ErrorType.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/enumeration/ErrorType.java
@@ -17,20 +17,20 @@
    //通用
//    PLATFORM_OFFLINE("PLATFORMOFFLINE", "平台离线","COMMON"),
//    SEVER_INTERRUPT("SEVERINTERRUPT", "服务中断","COMMON"),
    DEVICE_OFFLINE("DEVICEOFFLINE", "设备离线","COMMON"),
    POINT_INFO_ERROR("POINTINFOERRO", "点位信息错误","COMMON"),
    DEVICE_OFFLINE("DEVICEOFFLINE", "设备离线","COMMON",false),
    POINT_INFO_ERROR("POINTINFOERRO", "点位信息错误","COMMON",false),
    //视频
    CLOCK_SKEW("CLOCKSKEW", "时钟偏差","VIDEO"),
    SIGNAL_LOSS("SIGNALMISS", "信号缺失","VIDEO"),
    SCREEN_COLOR_DEVIATION("SCREENCOLOR", "画面偏色","VIDEO"),
    SNOW_STORM("SCREENSNOW", "雪花干扰","VIDEO"),
    STRIPE_INTERFERENCE("SCREENSTRIP", "条纹干扰","VIDEO"),
    SCREEN_OCCLUSION("SCREENSHADE", "画面遮挡","VIDEO"),
    ABNORMAL_CLARITY("SCREENBLUR", "清晰度异常","VIDEO"),
    CLOCK_SKEW("CLOCKSKEW", "时钟偏差","VIDEO",true),
    SIGNAL_LOSS("SIGNALMISS", "信号缺失","VIDEO",true),
    SCREEN_COLOR_DEVIATION("SCREENCOLOR", "画面偏色","VIDEO",true),
    SNOW_STORM("SCREENSNOW", "雪花干扰","VIDEO",true),
    STRIPE_INTERFERENCE("SCREENSTRIP", "条纹干扰","VIDEO",true),
    SCREEN_OCCLUSION("SCREENSHADE", "画面遮挡","VIDEO",true),
    ABNORMAL_CLARITY("SCREENBLUR", "清晰度异常","VIDEO",true),
    //新增的图像异常,合并前面所有异常类型
    ABNORMAL_PIC("ABNORMALPIC", "图像异常","VIDEO"),
    ABNORMAL_PIC("ABNORMALPIC", "图像异常","VIDEO",false),
//    ABNORMAL_BRIGHTNESS("SCREENLIGHT", "亮度异常","VIDEO"),
    OSD_ERROR("OSD", "osd异常","VIDEO"),
    OSD_ERROR("OSD", "osd异常","VIDEO",false),
//    VIDEO_LOSS("VIDEOMISS", "录像缺失","VIDEO"),
//    VIDEO_NONE("NOVIDEO", "无录像","VIDEO"),
//    POINT_INFO_MISS("POINTINFOMISS", "点位信息不全","COMMON"),
@@ -42,16 +42,16 @@
    // 阈值
    //车辆人脸通用
    CLOCK_RIGHT("CLOCK_RIGHT", "时钟准确率异常","CARORFACE"),
    LONG_DAY_NO_DATA("LONG_DAY_NO_DATA", "长时间无数据","CARORFACE"),
    DATA_TIMELY_ERROR("DATA_TIMELY_ERROR", "数据及时性异常","CARORFACE"),
    NOT_UNIQUE_DATA_VOLUME("NOT_UNIQUE_DATA_VOLUME", "不唯一数据量异常","CARORFACE"),
    UNRECOGNIZED_DAY_VOLUME("UNRECOGNIZED_DAY_VOLUME", "白天未识别数据量异常","CARORFACE"),
    CLOCK_RIGHT("CLOCK_RIGHT", "时钟准确率异常","CARORFACE",false),
    LONG_DAY_NO_DATA("LONG_DAY_NO_DATA", "长时间无数据","CARORFACE",false),
    DATA_TIMELY_ERROR("DATA_TIMELY_ERROR", "数据及时性异常","CARORFACE",false),
    NOT_UNIQUE_DATA_VOLUME("NOT_UNIQUE_DATA_VOLUME", "不唯一数据量异常","CARORFACE",false),
    UNRECOGNIZED_DAY_VOLUME("UNRECOGNIZED_DAY_VOLUME", "白天未识别数据量异常","CARORFACE",false),
    //车辆
    CAR_SIX("CAR_SIX", "车辆六项属性不完整","CAR"),
    CAR_SIX("CAR_SIX", "车辆六项属性不完整","CAR",false),
    //人脸
    MODELING_FAIL("MODELING_FAIL", "建模失败率异常","FACE"),
    FACE_LOW("FACE_LOW", "人脸低分率异常","FACE"),
    MODELING_FAIL("MODELING_FAIL", "建模失败率异常","FACE",false),
    FACE_LOW("FACE_LOW", "人脸低分率异常","FACE",false),
    ;
    private String value;
@@ -59,17 +59,21 @@
    private String desc;
    private String category;
    //false表示在使用,true表示只做翻译不做返回字典
    private Boolean deleted;
    ErrorType(String value, String desc,String category) {
    ErrorType(String value, String desc,String category,Boolean deleted) {
        this.value = value;
        this.desc = desc;
        this.category = category;
        this.deleted = deleted;
    }
    // 根据分类获取错误类型列表
    public static List<ErrorType> getErrorTypesByCategory(String category) {
        return Arrays.stream(values())
                .filter(errorType -> errorType.getCategory() == category)
                .filter(errorType -> errorType.getCategory() == category && !errorType.getDeleted())
                .collect(Collectors.toList());
    }
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java
@@ -31,6 +31,7 @@
     * 故障类型
     */
    private String errorType;
    private List<String> errorTypeList;
    /**
     * 工单id
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderExportQuery.java
@@ -39,6 +39,7 @@
     * 故障类型
     */
    private String errorType;
    private List<String> errorTypeList;
    /**
     * 状态
ycl-pojo/src/main/java/com/ycl/platform/domain/query/WorkOrderQuery.java
@@ -43,6 +43,7 @@
     * 故障类型
     */
    private String errorType;
    private List<String> errorTypeList;
    /**
     * 故障类型
     */
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -660,6 +660,20 @@
        }
        if (query.getStart() != null) query.setStart(DateUtils.getDayStart(query.getStart()));
        if (query.getEnd() != null) query.setEnd(DateUtils.getDayEnd(query.getEnd()));
        if (query.getErrorType() != null) {
            List<String> errorTypeList = new ArrayList<>();
            errorTypeList.add(query.getErrorType());
            if (ErrorType.ABNORMAL_PIC.getValue().equals(query.getErrorType())) {
                //List添加之前几种工单类型
                errorTypeList.add(ErrorType.SIGNAL_LOSS.getValue());
                errorTypeList.add(ErrorType.SCREEN_COLOR_DEVIATION.getValue());
                errorTypeList.add(ErrorType.SNOW_STORM.getValue());
                errorTypeList.add(ErrorType.STRIPE_INTERFERENCE.getValue());
                errorTypeList.add(ErrorType.SCREEN_OCCLUSION.getValue());
                errorTypeList.add(ErrorType.ABNORMAL_CLARITY.getValue());
            }
            query.setErrorTypeList(errorTypeList);
        }
        baseMapper.page(page, query);
        if (!CollectionUtils.isEmpty(page.getRecords())) {
            page.getRecords().stream().forEach(item -> {
@@ -1119,6 +1133,7 @@
    /**
     * 工单导出的逻辑
     * 标签:同一个ip标签合在一起,针对离线工单(ip相同就不会生成工单),方便运维处理
     *
     * @param query
     * @return
     */
@@ -1129,6 +1144,20 @@
        }
        if (query.getStart() != null) query.setStart(query.getStart() + " 00:00:00");
        if (query.getEnd() != null) query.setEnd(query.getEnd() + " 23:59:59");
        if (query.getErrorType() != null) {
            List<String> errorTypeList = new ArrayList<>();
            errorTypeList.add(query.getErrorType());
            if (ErrorType.ABNORMAL_PIC.getValue().equals(query.getErrorType())) {
                //List添加之前几种工单类型
                errorTypeList.add(ErrorType.SIGNAL_LOSS.getValue());
                errorTypeList.add(ErrorType.SCREEN_COLOR_DEVIATION.getValue());
                errorTypeList.add(ErrorType.SNOW_STORM.getValue());
                errorTypeList.add(ErrorType.STRIPE_INTERFERENCE.getValue());
                errorTypeList.add(ErrorType.SCREEN_OCCLUSION.getValue());
                errorTypeList.add(ErrorType.ABNORMAL_CLARITY.getValue());
            }
            query.setErrorTypeList(errorTypeList);
        }
        List<WorkOrderVO> export = baseMapper.export(query);
        if(CollectionUtils.isEmpty(export)) return new ArrayList<WorkOrderVO>();
        List<String> ips = export.stream().map(WorkOrderVO::getIp).collect(Collectors.toList());
@@ -1170,7 +1199,8 @@
                    if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
                        List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
                        for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
                            if(!dynamicTags.contains(dynamicColumnVO.getColumnValue())) dynamicTags.add(dynamicColumnVO.getColumnValue());
                            if (!dynamicTags.contains(dynamicColumnVO.getColumnValue()))
                                dynamicTags.add(dynamicColumnVO.getColumnValue());
                        }
                    }
                }
ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java
@@ -23,6 +23,7 @@
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
import enumeration.ErrorType;
import lombok.RequiredArgsConstructor;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.BeanUtils;
@@ -222,6 +223,20 @@
        if(query.getEnd()!=null) {
            query.setEnd(DateUtils.getDayEnd(query.getEnd()));
        }
        if (query.getErrorType() != null) {
            List<String> errorTypeList = new ArrayList<>();
            errorTypeList.add(query.getErrorType());
            if (ErrorType.ABNORMAL_PIC.getValue().equals(query.getErrorType())) {
                //List添加之前几种工单类型
                errorTypeList.add(ErrorType.SIGNAL_LOSS.getValue());
                errorTypeList.add(ErrorType.SCREEN_COLOR_DEVIATION.getValue());
                errorTypeList.add(ErrorType.SNOW_STORM.getValue());
                errorTypeList.add(ErrorType.STRIPE_INTERFERENCE.getValue());
                errorTypeList.add(ErrorType.SCREEN_OCCLUSION.getValue());
                errorTypeList.add(ErrorType.ABNORMAL_CLARITY.getValue());
            }
            query.setErrorTypeList(errorTypeList);
        }
        List<YwUnit> ywUnits = baseMapper.selectList(null);
        List<YwUnitVO> lists = ywUnits.stream().map(item -> {
            YwUnitVO vo = new YwUnitVO();
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -68,12 +68,15 @@
        <if test="query.unitId != null">
            AND wo.unit_id = #{query.unitId}
        </if>
        <if test="query.errorType != null and query.errorType != ''">
        <if test="query.errorTypeList != null and query.errorTypeList.size>0">
            AND (EXISTS (
            SELECT 1
            FROM t_work_order_error_type twoet
            WHERE twoet.work_order_no = wo.work_order_no
            AND twoet.error_name = #{query.errorType}
            AND twoet.error_name in
            <foreach collection="query.errorTypeList" open="(" close=")" separator="," item="errorType">
                        #{errorType}
            </foreach>
            ))
        </if>
        <if test="query.keyword != null and query.keyword != ''">
@@ -142,12 +145,15 @@
        <if test="query.start != null and query.end != null">
            AND wo.create_time BETWEEN #{query.start} AND #{query.end}
        </if>
        <if test="query.errorType != null and query.errorType !='' ">
        <if test="query.errorTypeList != null and query.errorTypeList.size>0">
            AND (EXISTS (
            SELECT 1
            FROM t_work_order_error_type twoet
            WHERE twoet.work_order_no = wo.work_order_no
            AND twoet.error_name = #{query.errorType}
            AND twoet.error_name in
            <foreach collection="query.errorTypeList" open="(" close=")" separator="," item="errorType">
                #{errorType}
            </foreach>
            ))
        </if>
        GROUP BY
ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml
@@ -57,12 +57,15 @@
        <if test="query.start != null and query.end != null">
            AND wo.create_time BETWEEN #{query.start} AND #{query.end}
        </if>
        <if test="query.errorType != null and query.errorType !='' ">
        <if test="query.errorTypeList != null and query.errorTypeList.size>0">
            AND (EXISTS (
            SELECT 1
            FROM t_work_order_error_type twoet
            WHERE twoet.work_order_no = wo.work_order_no
            AND twoet.error_name = #{query.errorType}
            AND twoet.error_name in
            <foreach collection="query.errorTypeList" open="(" close=")" separator="," item="errorType">
                #{errorType}
            </foreach>
            ))
        </if>
    </select>