package org.sxkj.common.enums; import com.fasterxml.jackson.annotation.JsonValue; /** * 工单状态枚举 */ public enum WorkOrderStatusEnum { /** * 草稿 */ DRAFT("0", "草稿"), /** * 发布中_接单中 */ PUBLISHING_ACCEPTING("10", "发布中_接单中"), /** * 发布中_拒绝接单 */ PUBLISHING_REJECTING("11", "发布中_拒绝接单"), /** * 响应中_待拆分 */ RESPONDING_TO_SPLIT("20", "响应中_待拆分"), /** * 响应中_申请取消 */ RESPONDING_APPLY_CANCEL("21", "响应中_申请取消"), /** * 响应中_申请修改 */ RESPONDING_APPLY_MODIFY("22", "响应中_申请修改"), /** * 响应中_已取消 */ RESPONDING_CANCELLED("23", "响应中_已取消"), /** * 执行中_待全部完成 */ EXECUTING_TO_COMPLETE("30", "执行中_待全部完成"), /** * 执行中_协商修改 */ EXECUTING_NEGOTIATE_MODIFY("31", "执行中_协商修改"), /** * 完成待验_待全部验收 */ COMPLETED_TO_CHECK("40", "完成待验_待全部验收"), /** * 验收通过_待结算 */ ACCEPTED_TO_SETTLE("50", "验收通过_待结算"), /** * 结算完成_已结算 */ SETTLED_COMPLETED("60", "结算完成_已结算"); private final String code; private final String description; WorkOrderStatusEnum(String code, String description) { this.code = code; this.description = description; } @JsonValue public String getCode() { return code; } public String getDescription() { return description; } /** * 根据编码获取枚举值 * * @param code 编码 * @return 枚举值 */ public static WorkOrderStatusEnum getByCode(String code) { for (WorkOrderStatusEnum status : values()) { if (status.code.equals(code)) { return status; } } return null; } /** * 验证工单状态编码是否有效 * * @param code 工单状态编码 * @return 是否有效 */ public static boolean isValidCode(String code) { return getByCode(code) != null; } }