package com.cf.imes.module.executor.enums;

import com.cf.imes.framework.common.exception.ErrorCode;

/**
 * @author there
 * 生产执行服务错误码枚举 使用 1-003-000-000 段
 */
public class ErrorCodeConstants {
    private ErrorCodeConstants() {
    }

    // ========== 订单开料排单
    public static final ErrorCode PLAN_NOT_EXISTS = new ErrorCode(1_003_107_000, "订单开料排单不存在");

    public static final ErrorCode PLAN_NOT_ALLOW_DELETE = new ErrorCode(1_003_107_001, "plan.not.allow.delete");

    public static final ErrorCode PLAN_PLATE_IS_ALL_CUT = new ErrorCode(1_003_107_006, "排单号：{} 的板材已全部开料，禁止删除！");
    public static final ErrorCode PLAN_NOT_DATA_EXISTS = new ErrorCode(1_003_107_007, "排单号：{} 不存在，无法进行操作，请检查排单数据");
    public static final ErrorCode PLAN_PLATE_IS_CUTTING = new ErrorCode(1_003_107_008, "当前排单已有板材开料，无法开启混单");
    public static final ErrorCode PLAN_IS_MIXED_ERROR = new ErrorCode(1_003_107_009, "当前排单为混单，无法开启混单配置");
    public static final ErrorCode CREATE_PLAN_ORDER_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_003_107_010, "create.plan.order.update.concurrency.error");
    public static final ErrorCode CREATE_PLAN_GOODS_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_003_107_011, "create.plan.goods.update.concurrency.error");
    public static final ErrorCode ORDER_PLATE_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_003_107_012, "order.plate.update.concurrency.error");
    public static final ErrorCode GOODS_PLATE_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_003_107_013, "goods.plate.update.concurrency.error");
    public static final ErrorCode BODY_PLATE_UPDATE_CONCURRENCY_ERROR = new ErrorCode(1_003_107_014, "body.plate.update.concurrency.error");
    public static final ErrorCode ORDER_PLAN_LOCKED = new ErrorCode(1_003_107_015, "当前排单已锁定，请稍后再试");


    // ========== 订单商品 1_003_108_000 ==========
    public static final ErrorCode GOODS_NOT_EXISTS = new ErrorCode(1_003_108_000, "订单商品不存在");

    // ========== 订单 1_003_109_000 ==========
    public static final ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1_003_109_000, "order.not.exists");
    public static final ErrorCode ORDER_CAN_NOT_CANCEL = new ErrorCode(1_003_109_001, "order.can.not.cancel");
    public static final ErrorCode PLATE_IS_PLAN = new ErrorCode(1_003_109_002, "order.plate.is.plan");
    public static final ErrorCode ORDER_BODY_DEL_NO_TARGET = new ErrorCode(1_003_109_003, "order.body.del.no.target");
    public static final ErrorCode ORDER_DATA_ERROR = new ErrorCode(1_003_109_004, "订单/排单的数据已无法使用，请删除重新");
    public static final ErrorCode ORDER_PLAN_ID_NOT_NULL = new ErrorCode(1_003_109_005, "订单或排单ID至少传入一个");
    public static final ErrorCode ORDER_PLAN_ID_IS_ONE = new ErrorCode(1_003_109_006, "订单id与排单id与大板分类ID只能传一个");
    public static final ErrorCode PARENT_ORDER_NOT_EXISTS = new ErrorCode(1_003_109_007, "parent.order.not.exists");
    public static final ErrorCode SUB_ORDER_CAN_NOT_CANCEL = new ErrorCode(1_003_109_008, "sub.order.can.not.cancel");

    // ========== 订单板件 1_003_113_000 ==========
    public static final ErrorCode PLATE_NOT_EXISTS = new ErrorCode(1_003_113_000, "order.plate.not.exists");

    // ========== 订单配件 1_003_115_000 ==========
    public static final ErrorCode ORDER_PARTS_NOT_EXISTS = new ErrorCode(1_003_115_000, "order.parts.not.exists");

    // ========== 订单 1_003_116_000 ==========
    public static final ErrorCode CUSTOM_ORDER_EXISTS = new ErrorCode(1_003_117_000, "order.check.customno.exists");
    public static final ErrorCode ORDER_BODY_NOT_EXISTS = new ErrorCode(1_003_029_004, "order.body.not.exists");
    public static final ErrorCode RAW_GOODS_NOT_USED_IN_ORDER = new ErrorCode(1_003_029_005, "订单中未用到此板材");
    public static final ErrorCode ORDER_NOT_FOUND = new ErrorCode(1_003_029_006, "订单不存在");
    public static final ErrorCode APP_TOKEN_ERROR = new ErrorCode(1_003_029_007, "token获取失败");
    public static final ErrorCode PLATE_PLAN_DATA_ERROR = new ErrorCode(1_003_029_008, "接口数据获取，板件明细源数据缺少，请确定接口数据正确");
    public static final ErrorCode PLATE_GOOD_DATA_NULL = new ErrorCode(1_003_029_009, "接口数据获取，板材源数据缺少，请确定接口数据正确");
    public static final ErrorCode GOODS_DATA_ERROR = new ErrorCode(1_003_029_010, "存在小板情况下，缺少板材数据，请确认数据源是否完整");
    public static final ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_003_029_011, "小板获取为空");
    public static final ErrorCode PLATE_PRODUCE_DATA_ERROR = new ErrorCode(1_003_029_012, "小板生产数据获取为空");
    public static final ErrorCode ORDER_READ_ERR = new ErrorCode(1_003_029_014, "订单列表获取失败，请刷新重试");
    public static final ErrorCode ORDER_DATE_ERR = new ErrorCode(1_003_029_015, "获取订单列表，时间超出范围，请在30天范围内选择");
    public static final ErrorCode ORDER_TIME_ERR = new ErrorCode(1_003_029_016, "获取订单列表，时间格式输入出错，请更换格式");
    public static final ErrorCode FILE_TYPE_ERR = new ErrorCode(1_003_029_017, "当前文件类型尚未开发，敬请期待");
    public static final ErrorCode ORDER_DETAIL_DATE_ERR = new ErrorCode(1_003_029_018, "板件生产数据缺失，请确认数据源中是否存在相关数据");
    public static final ErrorCode ORDER_SUBTYPE_NOT_SUPPORT = new ErrorCode(1_003_029_019, "order.sub.type.not.support");

    public static final ErrorCode SOURCE_NOT_EXITS_ERROR = new ErrorCode(1_003_029_019, "order.source.query.error");
    public static final ErrorCode ORDER_DELETED_ERR = new ErrorCode(1_003_029_020, "order.del.error");
    public static final ErrorCode ORDER_RESTORE_ERR = new ErrorCode(1_003_029_021, "order.restore.error");
    public static final ErrorCode API_MES_ERR = new ErrorCode(1_003_029_022, "MES接口数据出错：{}");
    public static final ErrorCode CHANGE_DETAILS_ITEM_ERROR = new ErrorCode(1_003_029_023, "明细转换失败");

    // ========== 自定义板编号生成 1_003_030_ ==========
    public static final ErrorCode CUSTOM_PLATENO_GENERATE_ORDERNO_RULE_NOT_SUPPORT_RESETMODE = new ErrorCode(1_003_030_001, "order.custom.plateno.generate.orderno.rule.not.support.resetmode");
    public static final ErrorCode CUSTOM_PLATENO_GENERATE_BODY_RULE_NOT_SUPPORT_RESETMODE = new ErrorCode(1_003_030_002, "order.custom.plateno.generate.body.rule.not.support.resetmode");
    public static final ErrorCode CUSTOM_PLATENO_GENERATE_PLATE_RULE_NOT_SUPPORT_RESETMODE = new ErrorCode(1_003_030_003, "order.custom.plateno.generate.plate.rule.not.support.resetmode");
    public static final ErrorCode CUSTOM_PLATENO_GENERATE_ORG_CUSTOM_PLATENO_SEQ_MODIFY_ERROR = new ErrorCode(1_003_030_004, "order.custom.plateno.generate.org.custom.plateno.seq.modify.error");

    // ========== 订单导入 1_003_031 ==========
    public static final ErrorCode ORDER_IMPORT_TYPE_NOT_SUPPORT = new ErrorCode(1_003_031_001, "不支持的订单导入类型：{0}");
    public static final ErrorCode ORDER_IMPORT_ORGAN_LOCK_ERROR = new ErrorCode(1_003_031_002, "组织下存在正在导入的订单，请稍后再试");
    public static final ErrorCode ORDER_IMPORT_FILE_ANALYZE_ERROR = new ErrorCode(1_003_031_003, "订单导入文件解析失败，请检查文件类型和格式");
    public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_EMPTY = new ErrorCode(1_003_031_004, "订单信息【{0}】不能为空");
    public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_LENGTH_ERROR = new ErrorCode(1_003_031_005, "订单信息【{0}】长度不能超过【{1}】个字符");
    public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_MOBILE_FORMAT_ERROR = new ErrorCode(1_003_031_006, "订单信息【{0}】手机号格式错误");
    public static final ErrorCode ORDER_IMPORT_ORDER_FIELD_DATE_FORMAT_ERROR = new ErrorCode(1_003_031_007, "订单信息【{0}】日期格式错误");
    public static final ErrorCode ORDER_IMPORT_ORDER_NOT_EXISTS = new ErrorCode(1_003_031_008, "订单【{0}】不存在");
    public static final ErrorCode ORDER_IMPORT_ORDER_CUSTOMERNO_EXISTS = new ErrorCode(1_003_031_009, "{0}【{1}】已存在");
    public static final ErrorCode ORDER_IMPORT_DETAIL_VALID_ERROR = new ErrorCode(1_003_031_012, "导入校验异常：{0}");
    public static final ErrorCode ORDER_IMPORT_GROUPCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_013, "导入校验异常：板件{0}下加工组编码{1}不存在于加工组编码列表中");
    public static final ErrorCode ORDER_IMPORT_ROOMCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_014, "导入校验异常：板件{0}下房间编码{1}不存在于房间编码列表中");
    public static final ErrorCode ORDER_IMPORT_BODYCODE_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_015, "导入校验异常：板件{0}下柜体编码{1}不存在于柜体编码列表中");
    public static final ErrorCode ORDER_IMPORT_PLATEGOODS_NOT_EXIST_VALID_ERROR = new ErrorCode(1_003_031_016, "导入校验异常：第{0}行的板材不存在，请确保板材管理中存在对应商品编号或商品（名称+材质+颜色+厚度+品牌）组合的板材后导入");

    // ========== manage板材/配件 1_003_001_000 ==========
    public static final ErrorCode PARTS_NOT_EXISTS = new ErrorCode(1_003_001_000, "配件不存在");
    public static final ErrorCode PARTS_GOOD_ID_EXISTS = new ErrorCode(1_003_001_001, "配件编号已存在");
    public static final ErrorCode PARTS_UNIT_NOT_NULL = new ErrorCode(1_003_001_002, "配件－组件或五金或封边条，单位禁止为空");
    public static final ErrorCode PARTS_EDGE_NOT_NULL = new ErrorCode(1_003_001_003, "配件－封边条颜色、宽厚禁止为空");
    public static final ErrorCode FILE_NULL = new ErrorCode(1_003_001_004, "上传文件为空");
    public static final ErrorCode FILE_FORMAT_ERROR = new ErrorCode(1_003_001_005, "导入文件格式有误");
    public static final ErrorCode FILE_EXCEED_SIZE = new ErrorCode(1_003_001_006, "文件大小超过 10M");
    public static final ErrorCode FILE_CONTENT_NULL = new ErrorCode(1_003_001_007, "文件大小为空");
    public static final ErrorCode PARTS_IMPORT_QUERY_INTERRUPT_ERROR = new ErrorCode(1_003_001_008, "配件导入查询异常中断，请稍后再试");
    public static final ErrorCode PARTS_IMPORT_INTERRUPT_ERROR = new ErrorCode(1_003_001_009, "配件导入异常中断，请稍后再试");

    // ========== manage板材 1_003_005_000 ==========
    public static final ErrorCode PLATE_IMPORT_QUERY_INTERRUPT_ERROR = new ErrorCode(1_003_005_000, "配件导入查询异常中断，请稍后再试");
    public static final ErrorCode PLATE_IMPORT_INTERRUPT_ERROR = new ErrorCode(1_003_005_001, "配件导入异常中断，请稍后再试");

    public static final ErrorCode PLATE_ATTRIBUTE_NOT_EXIST = new ErrorCode(1_003_005_002,"商品编码：{}，商品名称：{}，材质：{}，颜色：{}，厚度{} 的板材不存在，请在板材管理里创建对应板材再进行导入");


    //=========== 包裹信息 1-003-006-000 ============
    public static final ErrorCode NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE = new ErrorCode(1_003_006_001, "已经是{}一条了");
    public static final ErrorCode ORDER_ALREADY_PACKAGED = new ErrorCode(1_003_006_002, "order.already.packaged");

    //=========== 生产信息 1-003-007-000 ============
    public static final ErrorCode ORDER_PLATE_EMPTY = new ErrorCode(1_003_007_001, "order.plate.empty");
    public static final ErrorCode ORDER_PLAN_DATA_ERROR = new ErrorCode(1_003_007_002, "order.plan.data.error");
    public static final ErrorCode ORDER_PLAN_OPTIMIZE_ERROR = new ErrorCode(1_003_007_003, "当前排单对应的优化数据为空，请重新进行优化");
    public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_003_007_004, "订单对应的板材造型数据为空，请重新导入订单");
    public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_003_007_005, "order.plan.plate.error");
    public static final ErrorCode ORDER_PLAN_ORDERS_EMPTY = new ErrorCode(1_003_007_006, "order.plan.orders.empty");
    public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_003_007_007, "当前排单对应的板材造型数据为空，请重新导入订单并排单");
    public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_003_007_008, "order.goods.data.error");
    public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_003_007_009, "order.pack.data.null.error");
    public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_UPDATE_ERROR = new ErrorCode(1_003_007_010, "当前排单还未保存优化结果，无法对开料结果进行修改");
    public static final ErrorCode ADVANCED_SCREENING_CONFIG_ERROR = new ErrorCode(1_003_007_014, "advanced.screening.config.error");
    public static final ErrorCode PLAN_GOODS_DATA_ERROR = new ErrorCode(1_003_007_015, "当前排单未保存大板和小板信息，请重新进行排单");
    public static final ErrorCode PLAN_PLATE_IS_CUTTED = new ErrorCode(1_003_007_016, "当前删除的小板中已有小板开料，无法删除！");
    public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_003_007_017, "process.config.default.data.error");
    public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_003_007_018, "当前选择的加工方案组配置有误，请选择其他方案组或重新配置该方案组");
    public static final ErrorCode CREAT_PLAN_PLATE_PART_PLANNED = new ErrorCode(1_003_007_019, "create.plan.plate.part.planned");
    public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_003_007_020, "create.plan.plate.empty");
    public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_003_007_021, "del.plan.plate.data.error");
    public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_003_007_022, "当前排单对应的优化数据异常，请重新进行优化");
    public static final ErrorCode ORDER_PLAN_PLATE_DATA_EMPTY = new ErrorCode(1_003_007_024, "order.plan.plate.data.empty");
    public static final ErrorCode PLAN_PROCESS_CONFIG_IS_NULL = new ErrorCode(1_003_007_025, "plan.process.config.is.null");
    public static final ErrorCode PLAN_PROCESS_CONFIG_ALL_IS_NULL = new ErrorCode(1_003_007_026, "plan.process.config.all.is.null");
    public static final ErrorCode PLAN_PROCESS_SCHEME_IS_LOCK = new ErrorCode(1_003_007_027, "plan.process.scheme.is.lock");
    public static final ErrorCode PLAN_OPTIMIZE_DATA_ALL_OPENED = new ErrorCode(1_003_007_028, "plan.optimize.data.all.opened");
    public static final ErrorCode PLAN_PLATE_IS_CUT = new ErrorCode(1_003_007_029, "plan.plate.is.cut");
    public static final ErrorCode PLAN_SCHEME_DATA_ERROR = new ErrorCode(1_003_007_031, "plan.scheme.data.error");
    public static final ErrorCode PLAN_SORT_DATA_ERROR = new ErrorCode(1_003_007_032, "plan.sort.data.error");
    public static final ErrorCode PLATE_IS_OPTIMIZE = new ErrorCode(1_003_007_033, "plate.is.optimize");
    public static final ErrorCode PACK_DATA_NULL = new ErrorCode(1_003_007_034, "pack.data.null");
    public static final ErrorCode ORDER_PLAN_CREATE_PLATE_NUM_REACH_THRESHOLD_ERROR = new ErrorCode(1_003_007_036, "order.plan.create.plate.num.reach.threshold.error");

    //=========== 板材信息 1-003-008-000 ============
    public static final ErrorCode PLATE_EXISTS = new ErrorCode(1_003_008_000, "plate.exists");
    public static final ErrorCode REMAIN_PLATE_NOT_EXISTS = new ErrorCode(1_003_008_001, "remain.plate.not.exists");
    public static final ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_003_008_002, "设计板材不存在");
    public static final ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_003_008_003, "生产板材导入数据不可以为空");
    public static final ErrorCode PLATE_ID_NULL_ERROR = new ErrorCode(1_003_008_004, "板材标识代号禁止空");
    public static final ErrorCode PLATE_GOODS_ID_NOT_SAME = new ErrorCode(1_003_008_005, "plate.goods.id.not.same");
    public static final ErrorCode PLATE_IS_SOURCE = new ErrorCode(1_003_008_006, "plate.is.source");
    public static final ErrorCode PLATE_ATTR_GROUP_EXISTS = new ErrorCode(1_003_008_007, "plate.attr.group.exists");

    //=========== 贴皮管理 1-003-009-000 ============
    public static final ErrorCode VENEER_NOT_EXIST = new ErrorCode(1_003_009_000, "veneer.not.exist");
    public static final ErrorCode VENEER_NO_EXIST = new ErrorCode(1_003_009_001, "veneer.no.exist");
    public static final ErrorCode VENEER_IMPORT_REQUIRED_LACK = new ErrorCode(1_003_009_002, "veneer.import.required.lack");
    public static final ErrorCode VENEER_IMPORT_LENGTH_ERROR = new ErrorCode(1_003_009_003, "veneer.import.length.error");
    public static final ErrorCode VENEER_IMPORT_DIGITAL_TYPE_ERROR = new ErrorCode(1_003_009_004, "veneer.import.digital.type.error");
    public static final ErrorCode VENEER_IMPORT_POSITIVE_NUMBER_ERROR = new ErrorCode(1_003_009_005, "veneer.import.positive.number.error");
    public static final ErrorCode VENEER_IMPORT_NUMBER_LENGTH_ERROR = new ErrorCode(1_003_009_006, "veneer.import.number.length.error");
    public static final ErrorCode VENEER_IMPORT_TEMPLATE_DOWNLOAD_ERROR = new ErrorCode(1_003_009_007, "veneer.import.template.download.error");
    public static final ErrorCode VENEER_IMPORT_ORG_CLASSIFICATION_NAME_NOT_EXIST = new ErrorCode(1_003_009_008, "veneer.import.org.classification.name.not.exist");
    public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_EXIST = new ErrorCode(1_003_009_009, "veneer.org.classification.name.exist");
    public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_EMPTY = new ErrorCode(1_003_009_010, "veneer.org.classification.name.empty");
    public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_NOT_EXIST = new ErrorCode(1_003_009_011, "veneer.org.classification.name.not.exist");
    public static final ErrorCode VENEER_ORG_CLASSIFICATION_NAME_USED = new ErrorCode(1_003_009_012, "veneer.org.classification.name.used");
    public static final ErrorCode VENEER_PIC_EXCEED_SIZE = new ErrorCode(1_003_009_013, "veneer.pic.exceed.size");
    public static final ErrorCode VENEER_IMPORT_VENEER_NO_DUPLICATE = new ErrorCode(1_003_009_014, "veneer.import.veneer.no.duplicate");
    public static final ErrorCode VENEER_IMPORT_VENEER_NO_FORMAT_ERROR = new ErrorCode(1_003_009_015, "veneer.import.veneer.no.format.error");
    public static final ErrorCode VENEER_IMPORT_PRODUCT_LEVEL_ERROR = new ErrorCode(1_003_009_016, "veneer.import.product.level.error");
    public static final ErrorCode VENEER_DECOMPOSE_SCOPE_REQUIRED = new ErrorCode(1_003_009_017, "veneer.decompose.scope.required");
    public static final ErrorCode VENEER_DECOMPOSE_SIDE_REQUIRED = new ErrorCode(1_003_009_018, "veneer.decompose.side.required");
    public static final ErrorCode VENEER_DECOMPOSE_PLATE_STATUS_CHANGED = new ErrorCode(1_003_009_019, "veneer.decompose.plate.status.changed");
    public static final ErrorCode VENEER_RESELECT_RECORD_REQUIRED = new ErrorCode(1_003_009_020, "veneer.reselect.record.required");
    public static final ErrorCode VENEER_RESELECT_SOURCE_REQUIRED = new ErrorCode(1_003_009_021, "veneer.reselect.source.required");
    public static final ErrorCode VENEER_RESELECT_RECORD_STATUS_CHANGED = new ErrorCode(1_003_009_022, "veneer.reselect.record.status.changed");
    public static final ErrorCode VENEER_REMOVE_RECORD_REQUIRED = new ErrorCode(1_003_009_023, "veneer.remove.record.required");
    public static final ErrorCode VENEER_REMOVE_RECORD_STATUS_CHANGED = new ErrorCode(1_003_009_024, "veneer.remove.record.status.changed");
    public static final ErrorCode VENEER_UNPLANNED_SCOPE_INVALID = new ErrorCode(1_003_009_025, "veneer.unplanned.scope.invalid");
    public static final ErrorCode VENEER_PLAN_RECORD_REQUIRED = new ErrorCode(1_003_009_026, "veneer.plan.record.required");
    public static final ErrorCode VENEER_PLAN_RECORD_STATUS_CHANGED = new ErrorCode(1_003_009_027, "veneer.plan.record.status.changed");
    public static final ErrorCode VENEER_PLAN_AREA_DATA_INVALID = new ErrorCode(1_003_009_028, "veneer.plan.area.data.invalid");
    public static final ErrorCode VENEER_PLAN_CREATE_FAILED = new ErrorCode(1_003_009_029, "veneer.plan.create.failed");
    public static final ErrorCode VENEER_PLAN_GROUP_REQUIRED = new ErrorCode(1_003_009_030, "veneer.plan.group.required");
    public static final ErrorCode VENEER_PLAN_GROUP_SOURCE_NO_REQUIRED = new ErrorCode(1_003_009_031, "veneer.plan.group.source.no.required");
    public static final ErrorCode VENEER_PLAN_GROUP_DUPLICATE = new ErrorCode(1_003_009_032, "veneer.plan.group.duplicate");
    public static final ErrorCode VENEER_PLAN_RECORD_DUPLICATE = new ErrorCode(1_003_009_033, "veneer.plan.record.duplicate");
    public static final ErrorCode VENEER_PLAN_SOURCE_NO_MISMATCH = new ErrorCode(1_003_009_034, "veneer.plan.source.no.mismatch");
    public static final ErrorCode VENEER_PLAN_SOURCE_NO_NOT_EXIST = new ErrorCode(1_003_009_035, "veneer.plan.source.no.not.exist");
    public static final ErrorCode VENEER_PLAN_SOURCE_NO_DUPLICATE = new ErrorCode(1_003_009_036, "veneer.plan.source.no.duplicate");
    public static final ErrorCode VENEER_PLAN_DELETE_RECORD_REQUIRED = new ErrorCode(1_003_009_037, "veneer.plan.delete.record.required");
    public static final ErrorCode VENEER_PLAN_DELETE_LIMIT_EXCEEDED = new ErrorCode(1_003_009_038, "veneer.plan.delete.limit.exceeded");
    public static final ErrorCode VENEER_PLAN_DELETE_NOT_EXIST = new ErrorCode(1_003_009_039, "veneer.plan.delete.not.exist");
    public static final ErrorCode VENEER_PLAN_DELETE_NOT_ALLOWED = new ErrorCode(1_003_009_040, "veneer.plan.delete.not.allowed");
    public static final ErrorCode VENEER_PLAN_DELETE_STATUS_CHANGED = new ErrorCode(1_003_009_041, "veneer.plan.delete.status.changed");
    public static final ErrorCode VENEER_PLAN_SORT_RECORD_REQUIRED = new ErrorCode(1_003_009_042, "veneer.plan.sort.record.required");
    public static final ErrorCode VENEER_PLAN_SORT_RECORD_DUPLICATE = new ErrorCode(1_003_009_043, "veneer.plan.sort.record.duplicate");
    public static final ErrorCode VENEER_PLAN_SORT_STATUS_CHANGED = new ErrorCode(1_003_009_044, "veneer.plan.sort.status.changed");
    public static final ErrorCode VENEER_PLAN_NOT_EXIST = new ErrorCode(1_003_009_045, "veneer.plan.not.exist");
    public static final ErrorCode VENEER_PLAN_PROCESS_REQUIRED = new ErrorCode(1_003_009_046, "veneer.plan.process.required");
    public static final ErrorCode VENEER_PLAN_OPERATION_STATUS_CHANGED = new ErrorCode(1_003_009_047, "veneer.plan.operation.status.changed");
    public static final ErrorCode VENEER_PLAN_PLATE_RECORD_REQUIRED = new ErrorCode(1_003_009_048, "veneer.plan.plate.record.required");
    public static final ErrorCode VENEER_PLAN_PLATE_SOURCE_MISMATCH = new ErrorCode(1_003_009_049, "veneer.plan.plate.source.mismatch");
    public static final ErrorCode VENEER_PLAN_PLATE_STATUS_CHANGED = new ErrorCode(1_003_009_050, "veneer.plan.plate.status.changed");

    //=========== 部件管理 1-003-010-000 ============
    public static final ErrorCode ORDER_COMPONENT_NOT_EXIST = new ErrorCode(1_003_010_000, "order.component.not.exist");
    public static final ErrorCode ORDER_COMPONENT_DELETE_PLATE_IN_PLAN = new ErrorCode(1_003_010_001, "order.component.delete.plate.in.plan");
    public static final ErrorCode ORDER_COMPONENT_RESTORE_PARENT_IS_DELETED = new ErrorCode(1_003_010_002, "order.component.restore.parent.is.deleted");
    public static final ErrorCode ORDER_COMPONENT_NO_NEED_TO_RESTORE = new ErrorCode(1_003_010_003, "order.component.no.need.to.restore");
    public static final ErrorCode ORDER_COMPONENT_PROCESSED_REPEAT = new ErrorCode(1_003_010_004, "order.component.processed.repeat");
    public static final ErrorCode ORDER_COMPONENT_ASSEMBLY_CONFIG_QUERY_ERROR = new ErrorCode(1_003_010_005, "order.component.assembly.config.query.error");
    public static final ErrorCode ORDER_COMPONENT_NOT_PROCESS = new ErrorCode(1_003_010_006, "order.component.not.process");
    public static final ErrorCode ORDER_COMPONENT_RESTORE_REPEAT = new ErrorCode(1_003_010_007, "order.component.restore.repeat");

    //=========== 分堆打包 1-003-011-000 ============
    public static final ErrorCode PARTS_PACK_NUM_NOT_ENOUGH = new ErrorCode(1_003_010_000, "parts.pack.num.not.enough");
    public static final ErrorCode PARTS_PACK_ITEM_SOURCE_NOT_EXISTS = new ErrorCode(1_003_010_001, "parts.pack.item.source.not.exist");
    public static final ErrorCode PARTS_HEAPSPLIT_NUM_NOT_ENOUGH = new ErrorCode(1_003_010_002, "parts.heapsplit.num.not.enough");
    public static final ErrorCode PARTS_HEAPSPLIT_ITEM_SOURCE_NOT_EXISTS = new ErrorCode(1_003_010_003, "parts.heapsplit.item.source.not.exist");
}
