package enumeration; import lombok.Getter; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * @author gonghl * @since 2024/7/25 上午 10:50 */ @Getter public enum ContractRule { CONTRACT_RULE_1("视频平均在线率", Arrays.asList("CONTRACT_RULE_2", "CONTRACT_RULE_3", "CONTRACT_RULE_4", "CONTRACT_RULE_5")), CONTRACT_RULE_2("≥98%", Collections.EMPTY_LIST), CONTRACT_RULE_3("95%≤视频平均在线率<98%", Collections.EMPTY_LIST), CONTRACT_RULE_4("90%≤视频平均在线率<95%", Collections.EMPTY_LIST), CONTRACT_RULE_5("<90%", Collections.EMPTY_LIST), CONTRACT_RULE_6("前端感知源治理工作", Arrays.asList("CONTRACT_RULE_7", "CONTRACT_RULE_8", "CONTRACT_RULE_9")), CONTRACT_RULE_7("时钟同步(超过±3秒为不合格)", Collections.EMPTY_LIST), CONTRACT_RULE_8("OSD标识", Collections.EMPTY_LIST), CONTRACT_RULE_9("一机一档", Collections.EMPTY_LIST), CONTRACT_RULE_10("存储故障", Arrays.asList("CONTRACT_RULE_11", "CONTRACT_RULE_12")), CONTRACT_RULE_11("因存储设备、云存储软件等引起平台不能正常查看历史图像,须在24小时排除故障", Collections.EMPTY_LIST), CONTRACT_RULE_12("因视频或者图片丢失导致重要案事件不能回放或查看", Collections.EMPTY_LIST), CONTRACT_RULE_13("对于前端点位异常情况的处理", List.of("CONTRACT_RULE_14")), CONTRACT_RULE_14("镜头故障或污染或树枝遮挡或枪机视角偏移正常角度或补光灯应亮未亮", Collections.EMPTY_LIST), CONTRACT_RULE_15("建立数据监测维护机制", List.of("CONTRACT_RULE_16")), CONTRACT_RULE_16("中标人应当建立数据监测维护机制,当发生数据异常情况时,应在 24 小时内恢复。(数据异常包括实时监控或录像视频拉流失败,图片获取失败、视觉计算解析异常等)。", Collections.EMPTY_LIST), CONTRACT_RULE_17("确保录像完整不定期对所有点位录像完整性抽查", Arrays.asList("CONTRACT_RULE_18", "CONTRACT_RULE_19", "CONTRACT_RULE_20", "CONTRACT_RULE_21", "CONTRACT_RULE_22")), CONTRACT_RULE_18("每路视频累计丢失10分钟以内", Collections.EMPTY_LIST), CONTRACT_RULE_19("丢失10-60 分钟", Collections.EMPTY_LIST), CONTRACT_RULE_20("丢失1 小时-4 小时(含)", Collections.EMPTY_LIST), CONTRACT_RULE_21("丢失4 小时-12 小时(含)", Collections.EMPTY_LIST), CONTRACT_RULE_22("丢失12 小时以上", Collections.EMPTY_LIST), CONTRACT_RULE_23("确保图片完整不定期对所有人脸车辆以及智能前端抓拍的图片完整性抽查", List.of("CONTRACT_RULE_24")), CONTRACT_RULE_24("发现后台存储不能调取前端设备图片", Collections.EMPTY_LIST), ; private final String name; private final List children; ContractRule(String name, List children) { this.name = name; this.children = children; } public static List getParent() { return Arrays.stream(ContractRule.values()).filter(contractRule -> !contractRule.getChildren().isEmpty()).toList(); } public static List getChildren(ContractRule parent) { return parent.getChildren().stream().map(ContractRule::valueOf).collect(Collectors.toList()); } }