package enumeration; import com.baomidou.mybatisplus.annotation.EnumValue; import lombok.Getter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * @author:xp * @date:2024/8/19 11:39 */ @Getter public enum ErrorType { //通用 // PLATFORM_OFFLINE("PLATFORMOFFLINE", "平台离线","COMMON"), // SEVER_INTERRUPT("SEVERINTERRUPT", "服务中断","COMMON"), DEVICE_OFFLINE("DEVICEOFFLINE", "设备离线","COMMON",false), POINT_INFO_ERROR("POINTINFOERRO", "点位信息错误","COMMON",false), //视频 CLOCK_SKEW("CLOCKSKEW", "时钟偏差","VIDEO",false), 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",false), // ABNORMAL_BRIGHTNESS("SCREENLIGHT", "亮度异常","VIDEO"), OSD_ERROR("OSD", "osd异常","VIDEO",false), // VIDEO_LOSS("VIDEOMISS", "录像缺失","VIDEO"), // VIDEO_NONE("NOVIDEO", "无录像","VIDEO"), // POINT_INFO_MISS("POINTINFOMISS", "点位信息不全","COMMON"), // UNKNOWN("UNKNOWN", "未知"), // PIC_URLABNORMAL("PICURLABNORMAL","图片访问异常",""), // MONITOR_UNQUALIFY("MONITORUNQUALIFY", "一机一档不合格"), // PIC_UNUSEFUL("PICUNUSEFUL", "大图不可用"), // VIDEO_ORPIC_UNNORMAL("VIDEOORPICUNNORMAL", "视频拉流、图片获取异常"), // 阈值 //车辆人脸通用 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",false), //人脸 MODELING_FAIL("MODELING_FAIL", "建模失败率异常","FACE",false), FACE_LOW("FACE_LOW", "人脸低分率异常","FACE",false), ; private String value; private String desc; private String category; //false表示在使用,true表示只做翻译不做返回字典 private Boolean deleted; ErrorType(String value, String desc,String category,Boolean deleted) { this.value = value; this.desc = desc; this.category = category; this.deleted = deleted; } // 根据分类获取错误类型列表 public static List getErrorTypesByCategory(String category) { return Arrays.stream(values()) .filter(errorType -> errorType.getCategory() == category && !errorType.getDeleted()) .collect(Collectors.toList()); } // 根据value获取desc public static List getDescriptionList() { List list = new ArrayList<>(); for (ErrorType errorType : ErrorType.values()) { list.add(errorType.getDesc()); } return list; } // 根据value获取desc public static String getDescriptionByValue(String value) { for (ErrorType errorType : ErrorType.values()) { if (errorType.getValue().equals(value)) { return errorType.getDesc(); } } return null; } // 根据desc获取value public static String getValueByDescription(String desc) { for (ErrorType errorType : ErrorType.values()) { if (errorType.getDesc().equals(desc)) { return errorType.getValue(); } } return null; } }