package com.example.smart.enumlist; import java.util.ArrayList; import java.util.List; public enum ProjectType { HOUSE_CONSTRUCTION("房建"), // 房建 MUNICIPAL_ADMINISTRATION("市政"), // 市政 CONSTRUCTION_WORK("建筑工程"), // 建筑工程 CIVIL_WORKS("土木工程"), // 土木工程 ELECTRICAL_ENGINEERING("机电工程"),// 机电工程 SUBSIDIARY("子公司");// 子公司 public final String desc; public String getDesc() { return desc; } private List projectUsageTypes; ProjectType(String desc) { this.desc = desc; this.projectUsageTypes = new ArrayList<>(); } public static ProjectType findUsageTypeByCode(String id) { ProjectType[] values = ProjectType.values(); for (ProjectType type : values) { if (type.name().equals(id)) { return type; } } return null; } public List projectUsageType() { return projectUsageTypes; } public void linkPurposeType(ProjectUsageType projectUsageType) { this.projectUsageTypes.add(projectUsageType); } static { HOUSE_CONSTRUCTION.linkPurposeType(ProjectUsageType.RESIDENTIAL); HOUSE_CONSTRUCTION.linkPurposeType(ProjectUsageType.COMMERCIAL); MUNICIPAL_ADMINISTRATION.linkPurposeType(ProjectUsageType.ROAD); MUNICIPAL_ADMINISTRATION.linkPurposeType(ProjectUsageType.BRIDGE); CONSTRUCTION_WORK.linkPurposeType(ProjectUsageType.CIVIL_WORKS); CONSTRUCTION_WORK.linkPurposeType(ProjectUsageType.INDUSTRIAL_WORKS); CONSTRUCTION_WORK.linkPurposeType(ProjectUsageType.STRUCTURE_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.ROAD_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.RAIL_TRANSPORTATION); CIVIL_WORKS.linkPurposeType(ProjectUsageType.BRIDGE_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.TUNNEL_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.HYDRAULIC_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.MINING_WORKS); CIVIL_WORKS.linkPurposeType(ProjectUsageType.CABLE_PIPE_WORKS); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.MECHANICAL_EQUIPMENT); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.STATIC_EQUIPMENT); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.ELECTRICAL); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.BUILDING_AUTOMATION); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.PIPELINE); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.FIRE_PROTECTION); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.PURIFICATION); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.VENTILATION_AIR_CONDITIONING); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.EQUIPMENT_PIPE_ANTICORROSION_INSULATION); ELECTRICAL_ENGINEERING.linkPurposeType(ProjectUsageType.INDUSTRIAL_FURNACE); } }