package com.estate.expert.admin.domain.project.enums;
|
|
import com.estate.expert.admin.domain.common.option.IOptionVo;
|
import io.swagger.annotations.ApiModel;
|
import lombok.Getter;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@ApiModel("项目类型")
|
@Getter
|
public enum ProjectType implements IOptionVo {
|
|
HOUSE_CONSTRUCTION("房建工程"), // 房建工程
|
|
MUNICIPAL_ADMINISTRATION("市政工程"), // 市政工程
|
|
FIXED_ASSETS("固定资产"); // 固定资产
|
|
final String desc;
|
|
private List<ProjectUsageType> projectUsageTypes;
|
|
ProjectType(String desc) {
|
this.desc = desc;
|
this.projectUsageTypes = new ArrayList<>();
|
}
|
|
public static ProjectType getByDesc(String desc) {
|
for (ProjectType projectType : ProjectType.values()) {
|
if (projectType.getDesc().equals(desc)) {
|
return projectType;
|
}
|
}
|
return null;
|
}
|
|
|
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);
|
MUNICIPAL_ADMINISTRATION.linkPurposeType(ProjectUsageType.TUNNEL_WORKS);
|
|
// 固定资产关联用途类型
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.RETAIL);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.FOOD);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.EDUCATION);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.MEDICAL_BEAUTY);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.ENTERTAINMENT);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.HOTEL);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.REFIT);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.PUBLIC_PLACE);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.ENERGY_STATION);
|
FIXED_ASSETS.linkPurposeType(ProjectUsageType.MULTI_FUNCTION_COMPLEX);
|
}
|
|
@Override
|
public String getOptionCode() {
|
return name();
|
}
|
|
@Override
|
public String getOptionName() {
|
return desc;
|
}
|
}
|