吉安感知网项目-后端
linwei
2026-01-26 4f4872af1eef1c14d95f04bffe2a4f2d2f7d835d
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
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;
 
    /**
     * 工单阶段描述
     */
    @JsonValue
    private final String stageDesc;
 
    /**
     * 根据值获取对应的枚举
     *
     * @param value 枚举值
     * @return 对应的枚举,如果未找到则返回null
     */
    public static PatrolTaskStatusEnum getByValue(String value) {
        for (PatrolTaskStatusEnum status : values()) {
            if (status.getValue().equals(value)) {
                return status;
            }
        }
        return null;
    }
 
    /**
     * 检查当前状态是否允许转换到目标状态
     *
     * @param targetStatus 审核状态:1.同意签收、2.拒绝签收 、3.撤回任务 、4.同意审核、 5.拒绝审核、 6.验收通过、 7.验收拒绝"
     * @return 是否允许转换
     */
    public boolean isAllowedTransition(Integer targetStatus) {
        if (targetStatus == null) {
            return false;
        }
        switch (this) {
            case PENDING_SIGNING:
                // 待签收状态允许转换到:拒绝签收、待审核
                return targetStatus == 1 || targetStatus == 2;
            case PENDING_AUDIT:
                // 待审核状态允许转换到:审核通过、审核驳回
                return targetStatus == 3 || targetStatus == 4 || targetStatus == 5;
            case PENDING_ACCEPTANCE:
                // 待验收状态允许转换到:验收通过、拒绝验收
                return targetStatus == 6 || targetStatus == 7;
            default:
                // 其他状态不允许转换
                return false;
        }
    }
 
 
    /**
     * 检查当前状态是否允许指定的操作类型
     *
     * @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;
        }
    }
}