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, "已关闭"), // 简易模式状态 PRICE_COMPARING(10, "比价中"), CONFIRMED(20, "已确认"); 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); } /** BIDDING(完整版),或 PRICE_COMPARING(简易版)允许供应商投标 */ public static boolean canCreateBid(Integer status) { return BIDDING.getCode().equals(status) || PRICE_COMPARING.getCode().equals(status); } /** PUBLISHED 或 BIDDING(完整版),或 PRICE_COMPARING(简易版)允许供应商报价 */ public static boolean canCreateOrUpdateQuote(Integer status) { return PUBLISHED.getCode().equals(status) || BIDDING.getCode().equals(status) || PRICE_COMPARING.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); } // ========== 简易模式工具方法 ========== /** DRAFT 且简易模式允许开始比价 */ public static boolean canStartPriceComparing(Integer status) { return DRAFT.getCode().equals(status); } /** PRICE_COMPARING 允许确认授标 */ public static boolean canConfirm(Integer status) { return PRICE_COMPARING.getCode().equals(status); } }