package org.sxkj.gd.workorder.enums;
|
|
/**
|
* 工单状态枚举
|
* @author lw
|
* @since 2026-01-17
|
*/
|
public enum WorkOrderStatusEnum {
|
|
/**
|
* 工单阶段:工单发布
|
*/
|
STAGE_WORK_ORDER_RELEASE("工单发布"),
|
|
/**
|
* 工单阶段:接单响应
|
*/
|
STAGE_ORDER_RESPONSE("接单响应"),
|
|
/**
|
* 工单阶段:执行中
|
*/
|
STAGE_IN_EXECUTION("执行中"),
|
|
/**
|
* 工单阶段:完成待验
|
*/
|
STAGE_COMPLETED_PENDING_INSPECTION("完成待验"),
|
|
/**
|
* 工单阶段:验收通过
|
*/
|
STAGE_ACCEPTED("验收通过"),
|
|
/**
|
* 工单阶段:结算完成
|
*/
|
STAGE_SETTLEMENT_COMPLETED("结算完成"),
|
|
// ------------------ 以下是工单状态 ------------------
|
|
/**
|
* 草稿
|
*/
|
DRAFT(0, "草稿", null),
|
|
/**
|
* 发布中_接单中
|
*/
|
PUBLISHING_ACCEPTING(10, "发布中_接单中", "工单发布"),
|
|
/**
|
* 发布中_拒绝接单
|
*/
|
PUBLISHING_REJECTING(11, "发布中_拒绝接单", "工单发布"),
|
|
/**
|
* 响应中_待拆分
|
*/
|
RESPONDING_TO_BE_SPLIT(20, "响应中_待拆分", "接单响应"),
|
|
/**
|
* 响应中_申请取消
|
*/
|
RESPONDING_APPLY_CANCEL(21, "响应中_申请取消", "接单响应"),
|
|
/**
|
* 响应中_申请修改
|
*/
|
RESPONDING_APPLY_MODIFY(22, "响应中_申请修改", "接单响应"),
|
|
/**
|
* 响应中_已取消
|
*/
|
RESPONDING_CANCELED(23, "响应中_已取消", "接单响应"),
|
|
/**
|
* 执行中_待全部完成
|
*/
|
EXECUTING_TO_BE_COMPLETED(30, "执行中_待全部完成", "执行中"),
|
|
/**
|
* 执行中_协商修改
|
*/
|
EXECUTING_NEGOTIATE_MODIFY(31, "执行中_协商修改", "执行中"),
|
|
/**
|
* 完成待验_待全部验收
|
*/
|
COMPLETED_TO_BE_INSPECTED(40, "完成待验_待全部验收", "完成待验"),
|
|
/**
|
* 验收通过_待结算
|
*/
|
ACCEPTED_TO_BE_SETTLED(50, "验收通过_待结算", "验收通过"),
|
|
/**
|
* 结算完成_已结算
|
*/
|
SETTLEMENT_COMPLETED(60, "结算完成_已结算", "结算完成");
|
|
private final Byte code;
|
private final String desc;
|
private final String stageDesc;
|
private final boolean isStage;
|
|
/**
|
* 工单阶段构造函数
|
*/
|
WorkOrderStatusEnum(String stageDesc) {
|
this.code = null;
|
this.desc = null;
|
this.stageDesc = stageDesc;
|
this.isStage = true;
|
}
|
|
/**
|
* 工单状态构造函数
|
*/
|
WorkOrderStatusEnum(int code, String desc, String stageDesc) {
|
this.code = (byte) code;
|
this.desc = desc;
|
this.stageDesc = stageDesc;
|
this.isStage = false;
|
}
|
|
/**
|
* 获取状态码
|
* @return 状态码
|
*/
|
public Byte getCode() {
|
return code;
|
}
|
|
/**
|
* 获取状态描述
|
* @return 状态描述
|
*/
|
public String getDesc() {
|
return desc;
|
}
|
|
/**
|
* 获取工单阶段描述
|
* @return 工单阶段描述
|
*/
|
public String getStageDesc() {
|
return stageDesc;
|
}
|
|
/**
|
* 是否为工单阶段
|
* @return 是否为工单阶段
|
*/
|
public boolean isStage() {
|
return isStage;
|
}
|
|
/**
|
* 是否为工单状态
|
* @return 是否为工单状态
|
*/
|
public boolean isStatus() {
|
return !isStage;
|
}
|
|
/**
|
* 根据状态码获取枚举对象
|
* @param code 状态码
|
* @return 枚举对象
|
*/
|
public static WorkOrderStatusEnum getByCode(Byte code) {
|
if (code == null) {
|
return null;
|
}
|
for (WorkOrderStatusEnum status : values()) {
|
if (status.getCode().equals(code)) {
|
return status;
|
}
|
}
|
return null;
|
}
|
|
/**
|
* 根据状态码获取状态描述
|
* @param code 状态码
|
* @return 状态描述
|
*/
|
public static String getDescByCode(Byte code) {
|
WorkOrderStatusEnum status = getByCode(code);
|
return status != null ? status.getDesc() : null;
|
}
|
|
/**
|
* 判断状态码是否有效
|
* @param code 状态码
|
* @return 是否有效
|
*/
|
public static boolean isValid(Byte code) {
|
return getByCode(code) != null;
|
}
|
}
|