package cn.iocoder.yudao.module.srm.enums; import lombok.Getter; /** * 招标状态枚举 */ @Getter public enum TenderStatusEnum { DRAFT(0, "草稿"), PUBLISHED(1, "发布中"), BIDDING(2, "投标中"), EVALUATING(3, "评标中"), AWARDED(4, "已定标"), CLOSED(5, "已关闭"); TenderStatusEnum(Integer code, String name) { this.code = code; this.name = name; } private final Integer code; private final String name; // ========== 状态工具方法 ========== /** DRAFT 允许全字段编辑 */ public static boolean canEditFullProject(Integer status) { return DRAFT.getCode().equals(status); } /** PUBLISHED 或 BIDDING 允许部分编辑(招标说明、资质要求) */ public static boolean canEditPartialProject(Integer status) { return PUBLISHED.getCode().equals(status) || BIDDING.getCode().equals(status); } /** DRAFT 允许编辑物料清单 */ public static boolean canEditMaterial(Integer status) { return DRAFT.getCode().equals(status); } /** PUBLISHED 或 BIDDING 允许供应商投标 */ public static boolean canCreateBid(Integer status) { return PUBLISHED.getCode().equals(status) || BIDDING.getCode().equals(status); } /** PUBLISHED 或 BIDDING 允许供应商报价 */ public static boolean canCreateOrUpdateQuote(Integer status) { return PUBLISHED.getCode().equals(status) || BIDDING.getCode().equals(status); } /** EVALUATING 允许评标操作 */ public static boolean canEvaluate(Integer status) { return EVALUATING.getCode().equals(status); } /** EVALUATING 允许定标操作 */ public static boolean canAward(Integer status) { return EVALUATING.getCode().equals(status); } }