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);
|
}
|
|
/** PUBLISHED 或 BIDDING(完整版),或 PRICE_COMPARING(简易版)允许供应商投标 */
|
public static boolean canCreateBid(Integer status) {
|
return PUBLISHED.getCode().equals(status) || 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);
|
}
|
|
}
|