gaoluyang
2 天以前 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -163,7 +163,7 @@
    // ========== MES 设备管理-设备台账(1-040-301-000) ==========
    ErrorCode DV_MACHINERY_NOT_EXISTS = new ErrorCode(1_040_301_000, "设备不存在");
    ErrorCode DV_MACHINERY_CODE_DUPLICATE = new ErrorCode(1_040_301_001, "设备编码已存在");
    ErrorCode DV_MACHINERY_CODE_DUPLICATE = new ErrorCode(1_040_301_001, "设备编号已存在");
    ErrorCode DV_MACHINERY_IS_DISABLE = new ErrorCode(1_040_301_007, "设备已禁用");
    ErrorCode DV_MACHINERY_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_301_002, "导入设备数据不能为空");
    ErrorCode DV_MACHINERY_HAS_CHECK_PLAN = new ErrorCode(1_040_301_003, "设备已关联点检计划,无法删除");
@@ -245,6 +245,10 @@
    ErrorCode PRO_PROCESS_NAME_EXISTS = new ErrorCode(1_040_500_002, "工序名称已存在");
    ErrorCode PRO_PROCESS_USED_BY_ROUTE = new ErrorCode(1_040_500_003, "工序已被工艺路线引用,无法删除");
    ErrorCode PRO_PROCESS_IS_DISABLE = new ErrorCode(1_040_500_004, "工序已禁用");
    ErrorCode PRO_PROCESS_BILLING_TYPE_INVALID = new ErrorCode(1_040_500_005,
            "工序「{}」的计费类型[{}]无效,只能是 1-计时 或 2-计件,请重新选择计费类型");
    ErrorCode PRO_PROCESS_WAGE_RATE_INVALID = new ErrorCode(1_040_500_006,
            "工序「{}」的工资定额[{}]无效,必须大于等于 0(计时为元/小时,计件为元/件),请重新填写");
    // ========== MES 生产管理-工序内容(1-040-500-100) ==========
    ErrorCode PRO_PROCESS_CONTENT_NOT_EXISTS = new ErrorCode(1_040_500_100, "工序内容不存在");
@@ -344,7 +348,31 @@
    ErrorCode PRO_FEEDBACK_PREV_PROCESS_NOT_FINISHED = new ErrorCode(1_040_506_016,
            "上一道工序「{}」尚未报工完成(剩余 {}),请先完成上一道工序的报工");
    ErrorCode PRO_FEEDBACK_EQUIPMENT_INVALID = new ErrorCode(1_040_506_017, "报工设备校验失败:{}");
    ErrorCode PRO_FEEDBACK_PROCESS_NOT_EXISTS = new ErrorCode(1_040_506_018,
            "当前生产任务关联的工序 ID={} 不存在,无法计算报工工资,请联系工艺员检查任务的工序配置");
    ErrorCode PRO_FEEDBACK_WORK_HOURS_REQUIRED = new ErrorCode(1_040_506_019,
            "工序「{}」按计时计薪,请填写本次报工工时(小时),工时必须大于 0;若实际按数量计薪,请先把该工序的计费类型改为计件");
    ErrorCode PRO_FEEDBACK_TIME_BILLING_QUICK_UNSUPPORTED = new ErrorCode(1_040_506_020,
            "工序「{}」按计时计薪,快捷报工无法录入工时(小时);请到「生产报工」页面新增报工并填写工时");
    // ========== MES 生产管理-辅助工时配置(1-040-510-000) ==========
    ErrorCode PRO_WORKTIME_AUX_NOT_EXISTS = new ErrorCode(1_040_510_000, "辅助工时项目不存在");
    ErrorCode PRO_WORKTIME_AUX_PROCESS_NOT_EXISTS = new ErrorCode(1_040_510_001,
            "所选工序 ID={} 不存在,无法保存辅助工时项目,请重新选择工序");
    ErrorCode PRO_WORKTIME_AUX_MEASURE_TYPE_INVALID = new ErrorCode(1_040_510_002,
            "辅助工时项目「{}」的计量方式[{}]无效,只能是 1-按次 / 2-按个 / 3-按盘 / 4-按米折算,请重新选择");
    ErrorCode PRO_WORKTIME_AUX_DURATION_REQUIRED = new ErrorCode(1_040_510_003,
            "辅助工时项目「{}」按[{}]计量,请填写单项分钟数且必须大于 0");
    ErrorCode PRO_WORKTIME_AUX_SPEED_REQUIRED = new ErrorCode(1_040_510_004,
            "辅助工时项目「{}」按米折算,请填写折算速度(米/分)且必须大于 0");
    ErrorCode PRO_WORKTIME_AUX_CODE_DUPLICATE = new ErrorCode(1_040_510_005,
            "工序「{}」下已存在辅助项目编码「{}」(机台范围:{}),请修改项目编码或先删除原项目");
    ErrorCode PRO_WORKTIME_AUX_IN_USE = new ErrorCode(1_040_510_006,
            "辅助工时项目「{}」已被报工记录引用,无法删除;如需停止使用,请把状态改为禁用");
    ErrorCode PRO_WORKTIME_ITEM_NOT_APPLICABLE = new ErrorCode(1_040_510_007,
            "辅助工时项目「{}」不适用于当前工序「{}」或机台「{}」,请刷新页面后重新选择");
    ErrorCode PRO_WORKTIME_REPORT_DIM_INVALID = new ErrorCode(1_040_510_008,
            "工时考核统计维度[{}]无效,只能是 1-按人 / 2-按工序 / 3-按机台 / 4-按日期,请重新选择");
    // ========== MES 生产管理-生产流转卡(1-040-507-000) ==========
    ErrorCode PRO_CARD_NOT_EXISTS = new ErrorCode(1_040_507_000, "生产流转卡不存在");
    ErrorCode PRO_CARD_CODE_DUPLICATE = new ErrorCode(1_040_507_001, "流转卡编码已存在");
@@ -421,8 +449,11 @@
    ErrorCode QC_IPQC_SOURCE_DOC_NO_PENDING_LINE = new ErrorCode(1_040_604_008, "来源报工单不存在待检产出行,无法创建 IPQC");
    ErrorCode QC_IPQC_SOURCE_LINE_NOT_BELONG = new ErrorCode(1_040_604_009, "来源单据行不属于该报工单");
    ErrorCode QC_IPQC_SOURCE_LINE_REQUIRED = new ErrorCode(1_040_604_010, "来源单据类型为报工时,来源产出行 ID 不能为空");
    ErrorCode QC_IPQC_PROCESS_REQUIRED = new ErrorCode(1_040_604_011, "过程检验单缺少检验工序:工位和检验工序均未选择。请选择工位(自动带出所属工序),或直接选择检验工序后再保存");
    ErrorCode QC_IPQC_SOURCE_LINE_NOT_PENDING = new ErrorCode(1_040_604_011, "来源产出行不是待检验状态");
    ErrorCode QC_IPQC_WORK_ORDER_STATUS_INVALID = new ErrorCode(1_040_604_012, "仅已确认或已完成的生产工单可创建过程检验");
    ErrorCode QC_IPQC_WAGE_FIELD_NOT_BELONG = new ErrorCode(1_040_604_013, "工资字段[{}]不属于过程检验单[{}]所在工序,请重新打开检验单后填写");
    ErrorCode QC_IPQC_WAGE_FIELD_VALUE_INVALID = new ErrorCode(1_040_604_014, "工资字段[{}]参与工资计算,只能填写数字,当前填写为[{}]");
    // ========== MES 质量管理-过程检验行(1-040-604-100) ==========
    ErrorCode QC_IPQC_LINE_NOT_EXISTS = new ErrorCode(1_040_604_100, "过程检验行不存在");
@@ -459,11 +490,21 @@
    ErrorCode QC_RQC_LINE_NOT_EXISTS = new ErrorCode(1_040_608_100, "退货检验行不存在");
    // ========== MES 质量管理-不合格品处理 NCR(1-040-609-000) ==========
    ErrorCode QC_NCR_NOT_EXISTS = new ErrorCode(1_040_609_000, "不合格品处理单不存在");
    ErrorCode QC_NCR_CODE_DUPLICATE = new ErrorCode(1_040_609_001, "不合格品处理单编号已存在");
    // ========== 质量巡检 1-040-610-000 ==========
    ErrorCode QC_PATROL_NOT_EXISTS = new ErrorCode(1_040_610_000, "质量巡检记录不存在");
    ErrorCode QC_PATROL_CODE_DUPLICATE = new ErrorCode(1_040_610_001, "质量巡检单编号已存在");
    ErrorCode QC_NCR_NOT_EXISTS = new ErrorCode(1_040_609_000, "不合格品处理单[{}]不存在,请刷新列表后重试");
    ErrorCode QC_NCR_CODE_DUPLICATE = new ErrorCode(1_040_609_001, "NCR单号[{}]已存在,请修改NCR单号后重新保存");
    ErrorCode QC_NCR_CLOSE_STATUS_INVALID = new ErrorCode(1_040_609_010, "不合格品处理单[{}]当前状态为[{}],只有[已处置]状态才可关闭;请先完成处置");
    ErrorCode QC_NCR_NOT_PENDING_REVIEW = new ErrorCode(1_040_609_002, "只有待评审状态的不合格品处理单才可操作");
    ErrorCode QC_NCR_NOT_REVIEWED = new ErrorCode(1_040_609_003, "只有已评审状态的不合格品处理单才可执行处置");
    ErrorCode QC_NCR_NOT_DISPOSED = new ErrorCode(1_040_609_004, "只有已处置状态的不合格品处理单才可关闭");
    ErrorCode QC_NCR_STATUS_NOT_PENDING = new ErrorCode(1_040_609_005, "不合格品处理单[{}]当前状态为[{}],只有[待评审]状态才可修改、删除或评审;审批中请等待结果,已评审请直接处置");
    ErrorCode QC_NCR_SUBMIT_STATUS_INVALID = new ErrorCode(1_040_609_006, "不合格品处理单[{}]当前状态为[{}],只有[待评审]状态才可提交审批;审批中请等待结果,已评审/已处置/已关闭无需重复提交");
    ErrorCode QC_NCR_DISPOSE_STATUS_INVALID = new ErrorCode(1_040_609_007, "不合格品处理单[{}]当前状态为[{}],只有审批通过后的[已评审]状态才可执行处置;请先提交审批并等待审批通过");
    ErrorCode QC_NCR_DISPOSITION_REQUIRED = new ErrorCode(1_040_609_008, "处置方式不能为空,请从[让步放行、返修、返工、报废]中选择一项");
    ErrorCode QC_NCR_DISPOSITION_INVALID = new ErrorCode(1_040_609_009, "处置方式[{}]不在允许范围内,请从[让步放行、返修、返工、报废]中选择一项");
    // ========== MES 仓库管理-仓库(1-040-700-000) ==========
    ErrorCode WM_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_040_700_000, "仓库不存在");
@@ -657,9 +698,20 @@
    ErrorCode WM_RETURN_VENDOR_DETAIL_NOT_EXISTS = new ErrorCode(1_040_711_200, "供应商退货单明细不存在");
    ErrorCode WM_RETURN_VENDOR_DETAIL_QUANTITY_INVALID = new ErrorCode(1_040_711_201, "退货明细数量必须大于 0");
    ErrorCode WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH = new ErrorCode(1_040_711_202, "拣货明细不属于指定的供应商退货单");
    ErrorCode WM_RETURN_VENDOR_DETAIL_STATUS_INVALID = new ErrorCode(1_040_711_203, "供应商退货单[{}]当前状态不允许修改拣货明细,仅草稿或待拣货状态可操作");
    ErrorCode WM_RETURN_VENDOR_DETAIL_PARENT_IMMUTABLE = new ErrorCode(1_040_711_204, "拣货明细不能变更所属退货单或退货行");
    ErrorCode WM_RETURN_VENDOR_PURCHASE_ORDER_REQUIRED = new ErrorCode(1_040_711_008, "请先选择采购订单");
    ErrorCode WM_RETURN_VENDOR_PURCHASE_ORDER_NO_ITEM = new ErrorCode(1_040_711_009, "采购订单无明细数据,无法带入物料");
    ErrorCode WM_RETURN_VENDOR_ITEM_NOT_IN_PURCHASE_ORDER = new ErrorCode(1_040_711_010, "退货物料不在所关联采购订单内,无法添加");
    ErrorCode WM_RETURN_VENDOR_APPROVE_PROCESS_NOT_PUBLISHED = new ErrorCode(1_040_711_011, "采购退货审批流程[{}]未发布,请联系管理员在 BPM 后台发布流程模型后再提交");
    ErrorCode WM_RETURN_VENDOR_HANDLE_TYPE_INVALID = new ErrorCode(1_040_711_012, "供应商退货单处理方式不正确:当前为[{}],仅支持 1退款 / 2换货,请修改处理方式后再操作");
    ErrorCode WM_RETURN_VENDOR_REFUND_AMOUNT_REQUIRED = new ErrorCode(1_040_711_013, "无法自动计算退款金额:退货单[{}]未关联采购订单,或退货物料[{}]未匹配到采购订单明细。请在退货单填写退款金额后再完成退货");
    ErrorCode WM_RETURN_VENDOR_FINISHED_REQUIRED = new ErrorCode(1_040_711_014, "供应商退货单[{}]当前状态为[{}],只有已完成的退货单才能执行该操作");
    ErrorCode WM_RETURN_VENDOR_ATTACHMENT_REQUIRED = new ErrorCode(1_040_711_015, "供应商退货单[{}]未上传退货附件,质量部发起退货必须上传质检报告、不合格照片等附件后才能提交审批,请先编辑单据上传附件");
    ErrorCode WM_RETURN_VENDOR_APPROVAL_REQUIRED = new ErrorCode(1_040_711_016, "供应商退货单[{}]没有有效审批记录,不能拣货或完成退货,请先提交审批");
    ErrorCode WM_RETURN_VENDOR_APPROVAL_PROCESS_INVALID = new ErrorCode(1_040_711_017, "供应商退货必须使用审批流程[{}]");
    ErrorCode WM_RETURN_VENDOR_QUANTITY_EXCEED = new ErrorCode(1_040_711_018, "退货物料[{}]数量[{}]超过采购订单剩余可退数量[{}]");
    ErrorCode WM_RETURN_VENDOR_PURCHASE_ITEM_AMBIGUOUS = new ErrorCode(1_040_711_019, "采购订单中物料[{}]存在多条明细,无法确定退货归属,请先拆分或调整采购订单明细");
    // ========== MES 仓库管理-产品收货单(1-040-712-000) ==========
    ErrorCode WM_PRODUCT_RECPT_NOT_EXISTS = new ErrorCode(1_040_712_000, "产品收货单不存在");
@@ -696,6 +748,11 @@
    ErrorCode WM_RETURN_SALES_LINE_NOT_EXISTS = new ErrorCode(1_040_713_100, "销售退货单行不存在");
    ErrorCode WM_RETURN_SALES_DETAIL_NOT_EXISTS = new ErrorCode(1_040_713_200, "销售退货单明细不存在");
    ErrorCode WM_RETURN_SALES_DETAIL_QUANTITY_EXCEED = new ErrorCode(1_040_713_201, "上架明细总数量不能超过退货行数量");
    ErrorCode WM_RETURN_SALES_DETAIL_SOURCE_MISMATCH = new ErrorCode(1_040_713_202, "退货明细的单据或物料与退货行不一致");
    ErrorCode WM_RETURN_SALES_DETAIL_BATCH_MISMATCH = new ErrorCode(1_040_713_203, "退货明细批次与退货行批次不一致");
    ErrorCode WM_RETURN_SALES_REEL_MISMATCH = new ErrorCode(1_040_713_204, "请选择盘号属于该销售订单产品明细的批次");
    ErrorCode WM_RETURN_SALES_BATCH_NOT_SHIPPED = new ErrorCode(1_040_713_205, "所选盘号批次未在该销售订单中完成出库,不能作为退货来源");
    ErrorCode WM_RETURN_SALES_LINE_NOT_QUALIFIED = new ErrorCode(1_040_713_206, "退货物料尚未质检合格,不可入库;不合格品请先处理");
    // ========== MES 仓库管理-盘点方案/任务/结果(1-040-714-100) ==========
    ErrorCode WM_STOCK_TAKING_PLAN_NOT_EXISTS = new ErrorCode(1_040_714_100, "盘点方案不存在");
@@ -717,6 +774,10 @@
    ErrorCode WM_STOCK_TAKING_TASK_RESULT_NOT_EXISTS = new ErrorCode(1_040_714_119, "盘点结果不存在");
    ErrorCode WM_STOCK_TAKING_TASK_LINE_ALREADY_TAKEN = new ErrorCode(1_040_714_120, "该盘点清单行已有盘点记录,不能重复盘点");
    ErrorCode WM_STOCK_TAKING_TASK_NOT_FINISHED = new ErrorCode(1_040_714_121, "只有已完成状态的盘点任务才能处理差异");
    ErrorCode WM_STOCK_TAKING_TASK_INCOMPLETE = new ErrorCode(1_040_714_122, "盘点任务尚有未录入结果的任务行:{}");
    ErrorCode WM_STOCK_TAKING_TASK_RESULT_LINE_INVALID = new ErrorCode(1_040_714_123, "盘点结果与当前任务行不匹配");
    ErrorCode WM_STOCK_TAKING_TASK_RESULT_DUPLICATE = new ErrorCode(1_040_714_124, "该盘点任务行已有结果,不能重复录入");
    ErrorCode WM_STOCK_TAKING_TASK_LINE_TASK_MISMATCH = new ErrorCode(1_040_714_125, "盘点清单行不属于指定任务");
    // ========== MES 仓库管理-销售出库单(1-040-714-000) ==========
    ErrorCode WM_PRODUCT_SALES_NOT_EXISTS = new ErrorCode(1_040_714_000, "销售出库单不存在");
@@ -785,9 +846,14 @@
    ErrorCode WM_SALES_NOTICE_LINE_NOT_EXISTS = new ErrorCode(1_040_720_010, "发货通知单行不存在");
    ErrorCode WM_SALES_NOTICE_LINE_EMPTY = new ErrorCode(1_040_720_011, "发货通知单行为空,不能提交");
    ErrorCode WM_SALES_NOTICE_LINE_NOT_MATCH = new ErrorCode(1_040_720_012, "发货通知单行不属于指定的发货通知单");
    ErrorCode WM_SALES_NOTICE_LINE_SALE_ITEM_REQUIRED = new ErrorCode(1_040_720_013, "关联销售订单的发货行必须选择销售订单明细");
    ErrorCode WM_SALES_NOTICE_LINE_SALE_ITEM_MISMATCH = new ErrorCode(1_040_720_014, "销售订单明细与发货通知单或物料不匹配");
    ErrorCode WM_SALES_NOTICE_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_720_013, "销售订单不存在");
    ErrorCode WM_SALES_NOTICE_SALE_ORDER_ITEM_EMPTY = new ErrorCode(1_040_720_014, "销售订单明细为空");
    ErrorCode WM_SALES_NOTICE_ALREADY_EXISTS = new ErrorCode(1_040_720_015, "该销售订单已生成发货通知单,不能重复生成");
    ErrorCode WM_SALES_NOTICE_SUBMIT_PROCESS_KEY_REQUIRED = new ErrorCode(1_040_720_020, "提交发货审批前必须选择审批流程:未传流程定义 Key");
    ErrorCode WM_SALES_NOTICE_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_040_720_021, "发货审批流程未配置:请先在「流程管理」中设计并启用「发货审批」流程,再提交发货单");
    ErrorCode WM_SALES_NOTICE_UPDATE_AUDIT_STATUS_FAIL_NOT_APPROVING = new ErrorCode(1_040_720_022, "发货单({})当前状态为[{}],不处于审批中,无法更新审批结果");
    // ========== MES 仓库管理-条码配置(1-040-730-000) ==========
    ErrorCode WM_BARCODE_CONFIG_NOT_EXISTS = new ErrorCode(1_040_730_000, "条码配置不存在");
@@ -847,6 +913,23 @@
    ErrorCode PD_PROCESS_PARAM_TEMPLATE_NOT_EXISTS = new ErrorCode(1_040_805_000, "工艺参数模板不存在");
    ErrorCode PD_PROCESS_PARAM_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1_040_805_001, "工艺参数模板编码已存在");
    // ========== MES 工序工资(1-040-806-000) ==========
    ErrorCode PRO_PROCESS_WAGE_FIELD_NOT_EXISTS = new ErrorCode(1_040_806_000, "工序工资字段不存在");
    ErrorCode PRO_PROCESS_WAGE_FIELD_CODE_DUPLICATE = new ErrorCode(1_040_806_001, "工序工资字段编码重复");
    ErrorCode PRO_PROCESS_WAGE_FIELD_TYPE_INVALID = new ErrorCode(1_040_806_002, "工序工资字段类型不合法");
    ErrorCode PRO_PROCESS_WAGE_FIELD_VALUE_INVALID = new ErrorCode(1_040_806_003, "工序工资字段值不合法");
    ErrorCode PRO_PROCESS_WAGE_FIELD_ROLE_INVALID = new ErrorCode(1_040_806_004, "工序工资字段计算角色不合法");
    ErrorCode PRO_PROCESS_WAGE_RULE_NOT_EXISTS = new ErrorCode(1_040_806_005, "工序工资单价规则不存在");
    ErrorCode PRO_PROCESS_WAGE_RULE_DUPLICATE = new ErrorCode(1_040_806_006, "工序工资单价规则重复");
    ErrorCode PRO_WAGE_QUALITY_RULE_NOT_EXISTS = new ErrorCode(1_040_806_007, "质量工资规则不存在");
    ErrorCode PRO_WAGE_QUALITY_RULE_RANGE_INVALID = new ErrorCode(1_040_806_008, "质量工资规则合格率区间不合法");
    ErrorCode PRO_WAGE_QUALITY_RULE_VALUE_INVALID = new ErrorCode(1_040_806_009, "质量工资规则系数或扣款金额不合法");
    ErrorCode QC_TEMPLATE_PROCESS_NOT_EXISTS = new ErrorCode(1_040_806_010, "质检方案-工序绑定不存在");
    ErrorCode QC_TEMPLATE_PROCESS_DUPLICATE = new ErrorCode(1_040_806_011, "该工序已绑定相同的质检方案");
    ErrorCode PRO_FEEDBACK_QUALITY_INSPECTION_NOT_FINISHED = new ErrorCode(1_040_806_012, "质检工序的过程检验尚未完成");
    ErrorCode PRO_FEEDBACK_WAGE_RATE_NOT_CONFIGURED = new ErrorCode(1_040_806_013, "工序工资单价未配置");
    ErrorCode PRO_FEEDBACK_AUX_WAGE_RATE_MISSING = new ErrorCode(1_040_806_014, "辅助工时计薪单价未配置");
    // ========== MES 仓储物流-审批配置(1-040-900-000) ==========
    ErrorCode WMS_APPROVAL_CONFIG_NOT_EXISTS = new ErrorCode(1_040_900_000, "仓库审批配置不存在");
    ErrorCode WMS_APPROVAL_ORDER_NOT_EXISTS = new ErrorCode(1_040_900_001, "审批单据不存在");