2026-08-07 d65c665b483f9c7b57358d4ad2c4bf3c6e1f9608
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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);
    }
 
}