package com.shkpr.service.alambizplugin.dto; import com.shkpr.service.alambizplugin.apiparam.GisSurveyCheckParams; import com.shkpr.service.alambizplugin.constants.GisSurveyCheckTypeEnum; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.ToString; import java.util.Arrays; import java.util.Objects; /** * 系统检查id * * @author 欧阳劲驰 * @since 1.0.0 */ @Getter @AllArgsConstructor @ToString public class GisSurveySystemCheckId { /** * 检查类型:0:项目,1:任务 */ private final GisSurveyCheckTypeEnum checkType; /** * 标识(项目code/任务code) */ private final String code; /** * 生成任务id * * @param params 系统检查参数 * @return 系统检查id */ public static GisSurveySystemCheckId generateId(GisSurveyCheckParams params) { //获取枚举 GisSurveyCheckTypeEnum checkTypeEnum = Arrays.stream(GisSurveyCheckTypeEnum.values()) .filter(enumeration -> Objects.equals(params.getCheckType(), enumeration.getCode())) .findFirst().orElse(null); if (checkTypeEnum == null) return null; //项目维度 if (checkTypeEnum.equals(GisSurveyCheckTypeEnum.PROJECT)) { return new GisSurveySystemCheckId(GisSurveyCheckTypeEnum.PROJECT, params.getProjId()); } //任务维度 else if (checkTypeEnum.equals(GisSurveyCheckTypeEnum.JOB)) { return new GisSurveySystemCheckId(GisSurveyCheckTypeEnum.PROJECT, params.getJobId()); } return null; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GisSurveySystemCheckId that = (GisSurveySystemCheckId) o; return Objects.equals(checkType, that.checkType) && Objects.equals(code, that.code); } @Override public int hashCode() { return Objects.hash(checkType, code); } }