吉安感知网项目-后端
linwei
2026-01-20 99eb7fcdf24d7284576c9558c57b9cab0106da62
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package org.sxkj.gd.workorder.enums;
 
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
 
/**
 * 巡查任务状态枚举
 * 用于标识巡查任务的不同状态
 *
 * @author BladeX
 * @date 2026-01-19
 */
@Getter
@AllArgsConstructor
public enum PatrolTaskStatusEnum {
 
    /**
     * 待签收
     */
    PENDING_SIGNING("0", "待签收"),
 
    /**
     * 拒绝签收
     */
    REJECTED_SIGNING("1", "拒绝签收"),
 
    /**
     * 已撤回
     */
    WITHDRAWN("2", "已撤回"),
 
    /**
     * 待审核
     */
    PENDING_AUDIT("3", "待审核"),
 
    /**
     * 审核驳回
     */
    AUDIT_REJECTED("4", "审核驳回"),
 
    /**
     * 审核通过
     */
    AUDIT_PASSED("5", "审核通过"),
 
    /**
     * 待验收
     */
    PENDING_ACCEPTANCE("6", "待验收"),
 
    /**
     * 拒绝验收
     */
    REJECTED_ACCEPTANCE("7", "拒绝验收"),
 
    /**
     * 验收通过
     */
    ACCEPTANCE_PASSED("8", "验收通过");
 
    /**
     * 枚举值,对应数据库存储值
     */
    @EnumValue
    private final String value;
 
    /**
     * 枚举描述,用于展示
     */
    @JsonValue
    private final String desc;
 
    /**
     * 根据值获取对应的枚举
     *
     * @param value 枚举值
     * @return 对应的枚举,如果未找到则返回null
     */
    public static PatrolTaskStatusEnum getByValue(String value) {
        for (PatrolTaskStatusEnum status : values()) {
            if (status.getValue().equals(value)) {
                return status;
            }
        }
        return null;
    }
 
    /**
     * 判断值是否为有效的巡查任务状态
     *
     * @param value 待验证的值
     * @return 是否有效
     */
    public static boolean isValidValue(String value) {
        return getByValue(value) != null;
    }
 
    /**
     * 检查当前状态是否允许指定的操作类型
     * @param operationType 操作类型:1接单,2拒接接单,3申请取消,4申请修改,5同意取消,6不同意取消,7同意修改,8不同意修改
     * @return 是否允许操作
     */
    public boolean isAllowedOperation(Integer operationType) {
        if (operationType == null) {
            return false;
        }
 
        switch (this) {
            case PENDING_SIGNING:
                // 发布中_接单中状态允许:1接单,2拒接接单
                return operationType == 1 || operationType == 2;
            case REJECTED_SIGNING:
                // 响应中_待拆分状态允许:3申请取消,4申请修改
                return operationType == 3 || operationType == 4 ;
            case WITHDRAWN:
                // 响应中_申请取消状态允许:5同意取消,6不同意取消
                return operationType == 5 || operationType == 6;
            case PENDING_AUDIT:
                // 响应中_申请修改状态允许:7同意修改,8不同意修改
                return operationType ==7 || operationType == 8 ;
            case AUDIT_REJECTED:
                // 响应中_拒绝取消状态允许:3申请取消
                return operationType == 3;
            case AUDIT_PASSED:
                // 响应中_拒绝修改状态允许:4申请修改
                return operationType == 4;
            case PENDING_ACCEPTANCE:
                // 响应中_拒绝修改状态允许:4申请修改
                return operationType == 4;
            case REJECTED_ACCEPTANCE:
                // 响应中_拒绝修改状态允许:4申请修改
                return operationType == 4;
            case ACCEPTANCE_PASSED:
                // 响应中_拒绝修改状态允许:4申请修改
                return operationType == 4;
            default:
                // 其他状态不允许操作
                return false;
        }
    }
}