From b3fe06c151dc8455649bf0a46e481ceb83e3ea2a Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 13:37:54 +0800
Subject: [PATCH] feat: 完成好水川 MOM 需求1/2/4/5/8(装箱、BOM成本、销售合同、劳动合同、留样)

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
index 8953571..7b2fb8a 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
@@ -32,6 +32,7 @@
     // ========== MES 鍩虹鏁版嵁-鐗╂枡锛�1-040-102-000锛� ==========
     ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "鐗╂枡涓嶅瓨鍦�");
     ErrorCode MD_ITEM_CODE_DUPLICATE = new ErrorCode(1_040_102_001, "鐗╂枡缂栫爜宸插瓨鍦�");
+    // 1_040_102_002锛氱墿鏂欏悕绉板敮涓�鏍¢獙宸插彇娑堬紙鍏佽鍚屽悕涓嶅悓缂栫爜锛屼笌 MDM 鐗╂枡瀵归綈锛夛紝姝ょ爜浠呬繚鐣欏崰浣嶏紝璇峰嬁鍐嶇敤浜庢牎楠�
     ErrorCode MD_ITEM_NAME_DUPLICATE = new ErrorCode(1_040_102_002, "鐗╂枡鍚嶇О宸插瓨鍦�");
     ErrorCode MD_ITEM_BATCH_REQUIRED = new ErrorCode(1_040_102_004, "褰撳墠鐗╂枡鍚敤浜嗘壒娆$鐞嗭紝璇烽�夋嫨鎵规");
     ErrorCode MD_ITEM_IS_DISABLE = new ErrorCode(1_040_102_005, "鐗╂枡宸茬鐢�");
@@ -64,7 +65,6 @@
 
     // ========== MES 鍩虹鏁版嵁-瀹㈡埛锛�1-040-103-000锛� ==========
     ErrorCode MD_CLIENT_NOT_EXISTS = new ErrorCode(1_040_103_000, "瀹㈡埛涓嶅瓨鍦�");
-    ErrorCode MD_CLIENT_CODE_DUPLICATE = new ErrorCode(1_040_103_001, "瀹㈡埛缂栫爜宸插瓨鍦�");
     ErrorCode MD_CLIENT_NAME_DUPLICATE = new ErrorCode(1_040_103_002, "瀹㈡埛鍚嶇О宸插瓨鍦�");
     ErrorCode MD_CLIENT_NICKNAME_DUPLICATE = new ErrorCode(1_040_103_003, "瀹㈡埛绠�绉板凡瀛樺湪");
     ErrorCode MD_CLIENT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_103_004, "瀵煎叆瀹㈡埛鏁版嵁涓嶈兘涓虹┖");
@@ -254,6 +254,7 @@
     ErrorCode PRO_ROUTE_ENABLE_NO_KEY_PROCESS = new ErrorCode(1_040_501_003, "宸ヨ壓璺嚎蹇呴』瑕佹湁鍏抽敭宸ュ簭");
     ErrorCode PRO_ROUTE_ENABLE_PRODUCT_NO_BOM = new ErrorCode(1_040_501_004, "浜у搧 {} 鏈厤缃伐搴忕殑 BOM 娑堣��");
     ErrorCode PRO_ROUTE_IS_ENABLE = new ErrorCode(1_040_501_005, "宸ヨ壓璺嚎宸插惎鐢紝涓嶅厑璁告搷浣�");
+    ErrorCode PRO_ROUTE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_501_006, "瀵煎叆宸ヨ壓璺嚎鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 鐢熶骇绠$悊-宸ヨ壓璺嚎宸ュ簭锛�1-040-501-100锛� ==========
     ErrorCode PRO_ROUTE_PROCESS_NOT_EXISTS = new ErrorCode(1_040_501_100, "宸ヨ壓璺嚎宸ュ簭涓嶅瓨鍦�");
     ErrorCode PRO_ROUTE_PROCESS_SORT_DUPLICATE = new ErrorCode(1_040_501_101, "搴忓彿宸插瓨鍦�");
@@ -262,6 +263,13 @@
     // ========== MES 鐢熶骇绠$悊-宸ヨ壓璺嚎浜у搧锛�1-040-501-200锛� ==========
     ErrorCode PRO_ROUTE_PRODUCT_NOT_EXISTS = new ErrorCode(1_040_501_200, "宸ヨ壓璺嚎浜у搧涓嶅瓨鍦�");
     ErrorCode PRO_ROUTE_PRODUCT_ITEM_DUPLICATE = new ErrorCode(1_040_501_201, "姝や骇鍝佸凡閰嶇疆浜嗗伐鑹鸿矾绾�");
+    ErrorCode PRO_ROUTE_PRODUCT_ITEM_TYPE_INVALID = new ErrorCode(1_040_501_202, "鐗╂枡銆恵}銆戠殑涓绘暟鎹被鍨嬪強MES鍒嗙被鍧囬潪鎴愬搧/鍗婃垚鍝侊紝璇峰厛鏍稿鐗╂枡绫诲瀷");
+    ErrorCode PRO_ROUTE_PRODUCT_WAREHOUSE_REQUIRED = new ErrorCode(1_040_501_203, "浜у搧銆恵}銆戞湭閰嶇疆鎶ュ伐鍏ュ簱浠撳簱銆佸簱鍖哄拰搴撲綅");
+    ErrorCode PRO_ROUTE_PROCESS_OUTPUT_REQUIRED = new ErrorCode(1_040_501_204, "宸ュ簭銆恵}銆戞湭閰嶇疆浜у嚭浜у搧");
+    ErrorCode PRO_ROUTE_PROCESS_OUTPUT_NOT_BOUND = new ErrorCode(1_040_501_205, "宸ュ簭浜у嚭浜у搧銆恵}銆戞湭缁戝畾鍒板綋鍓嶅伐鑹鸿矾绾�");
+    ErrorCode PRO_ROUTE_MIDDLE_OUTPUT_INVALID = new ErrorCode(1_040_501_206, "涓棿宸ュ簭銆恵}銆戝彧鑳戒骇鍑哄崐鎴愬搧鍒嗙被浜у搧");
+    ErrorCode PRO_ROUTE_LAST_OUTPUT_INVALID = new ErrorCode(1_040_501_207, "鏈亾宸ュ簭銆恵}銆戝彧鑳戒骇鍑烘垚鍝佸垎绫讳骇鍝侊紝涓斿繀椤诲寘鍚叏閮ㄧ粦瀹氭垚鍝�");
+    ErrorCode PRO_ROUTE_LAST_OUTPUT_ATTRIBUTION_REQUIRED = new ErrorCode(1_040_501_208, "鏈亾宸ュ簭銆恵}銆戠殑鎴愬搧浜у嚭蹇呴』鎸変骇鍝佸綊灞為厤缃紝姣忎釜鎴愬搧褰掑睘鍒拌嚜韬紝涓嶈兘浣跨敤鈥滈�氱敤鈥�");
     // ========== MES 鐢熶骇绠$悊-宸ヨ壓璺嚎浜у搧BOM锛�1-040-501-300锛� ==========
     ErrorCode PRO_ROUTE_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_501_300, "宸ヨ壓璺嚎浜у搧 BOM 涓嶅瓨鍦�");
     ErrorCode PRO_ROUTE_PRODUCT_BOM_DUPLICATE = new ErrorCode(1_040_501_301, "褰撳墠 BOM 鐗╂枡鍦ㄦ宸ュ簭宸茬粡閰嶇疆杩�");
@@ -274,6 +282,8 @@
     ErrorCode PRO_WORK_ORDER_HAS_CHILDREN = new ErrorCode(1_040_502_004, "瀛樺湪瀛愬伐鍗曪紝鏃犳硶鍒犻櫎");
     ErrorCode PRO_WORK_ORDER_PRODUCT_MISMATCH = new ErrorCode(1_040_502_005, "褰撳墠浜у搧鐗╂枡涓庣敓浜у伐鍗曚骇鍝佷笉涓�鑷�");
     ErrorCode PRO_WORK_ORDER_SCHEDULE_QUANTITY_EXCEED = new ErrorCode(1_040_502_006, "鎺掍骇鏁伴噺瓒呴檺锛氬伐鍗晎}(璁″垝{}锛屽凡鎺掍骇{}锛屾湰娆℃帓浜})");
+    ErrorCode PRO_WORK_ORDER_RETENTION_SAMPLE_REQUIRED = new ErrorCode(1_040_502_007, "鐢熶骇宸ュ崟銆恵}銆戝皻鏈櫥璁扮暀鏍疯褰曪紝鏃犳硶瀹屾垚锛涜鍏堝湪銆愯川閲忕鐞� 鈫� 鐣欐牱绠$悊銆戜腑鏂板璇ュ伐鍗曠殑鐣欐牱璁板綍");
+    ErrorCode PRO_WORK_ORDER_NO_PRODUCED_QUANTITY = new ErrorCode(1_040_502_008, "鐢熶骇宸ュ崟銆恵}銆戝凡鐢熶骇鏁伴噺涓� 0锛屾棤娉曞畬鎴愶紱璇峰厛鍦ㄦ渶鍚庝竴閬撳伐搴忓畬鎴愭姤宸ュ苟瀹℃壒閫氳繃锛屽緟宸ュ崟宸茬敓浜ф暟閲忓ぇ浜� 0 鍚庡啀瀹屾垚宸ュ崟");
     ErrorCode PRO_WORK_ORDER_BOM_NOT_EXISTS = new ErrorCode(1_040_502_100, "鐢熶骇宸ュ崟BOM涓嶅瓨鍦�");
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇宸ュ崟宸ュ簭锛�1-040-502-300锛� ==========
@@ -291,6 +301,8 @@
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇浠诲姟锛�1-040-503-000锛� ==========
     ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "鐢熶骇浠诲姟涓嶅瓨鍦�");
+    ErrorCode PRO_TASK_SCHEDULE_INVALID = new ErrorCode(1_040_503_020, "鎺掍骇鏍¢獙鏈�氳繃锛歿}");
+    ErrorCode PRO_TASK_SCHEDULE_PREVIEW_CHANGED = new ErrorCode(1_040_503_021, "鎺掍骇鏁版嵁宸插彉鍖栨垨棰勮宸茶繃鏈燂紝璇烽噸鏂扮敓鎴愰瑙堝悗纭");
     ErrorCode PRO_TASK_ALREADY_FINISHED = new ErrorCode(1_040_503_001, "鐢熶骇浠诲姟宸插畬鎴愭垨宸插彇娑堬紝涓嶈兘缁х画鎿嶄綔");
     ErrorCode PRO_TASK_WORK_ORDER_MISMATCH = new ErrorCode(1_040_503_002, "鐢熶骇浠诲姟涓嶅睘浜庡綋鍓嶇敓浜у伐鍗�");
     ErrorCode PRO_TASK_WORKSTATION_MISMATCH = new ErrorCode(1_040_503_003, "鐢熶骇浠诲姟涓嶅睘浜庡綋鍓嶅伐浣滅珯");
@@ -298,7 +310,7 @@
     ErrorCode PRO_TASK_ITEM_MISMATCH = new ErrorCode(1_040_503_005, "妫�楠岀墿鏂欎笌鐢熶骇浠诲姟鐗╂枡涓嶄竴鑷�");
     ErrorCode PRO_TASK_HAS_FEEDBACK = new ErrorCode(1_040_503_006, "璇ヤ换鍔′笅瀛樺湪鎶ュ伐璁板綍锛屾棤娉曞垹闄わ紙閬垮厤鎶ュ伐杩芥函鏂摼锛�");
     ErrorCode PRO_WORKSTATION_PROCESS_MISMATCH = new ErrorCode(1_040_503_009, "宸ヤ綔绔欐墍灞炲伐搴忎笌褰撳墠宸ュ簭涓嶄竴鑷�"); // 淇缂栧彿鍐茬獊
-    ErrorCode PRO_TASK_CANNOT_PAUSE = new ErrorCode(1_040_503_007, "鍙湁銆愮敓浜т腑銆戞垨銆愰儴鍒嗗畬鎴愩�戠殑浠诲姟鍙互鍋滃伐");
+    ErrorCode PRO_TASK_CANNOT_PAUSE = new ErrorCode(1_040_503_007, "鍙湁銆愯崏绋裤�戙�併�愮敓浜т腑銆戞垨銆愰儴鍒嗗畬鎴愩�戠殑浠诲姟鍙互鍋滃伐");
     ErrorCode PRO_TASK_NOT_PAUSED = new ErrorCode(1_040_503_008, "浠诲姟涓嶅浜庛�愬凡鍋滃伐銆戠姸鎬侊紝鏃犳硶澶嶅伐");
     // ========== MES 鐢熶骇绠$悊-鐢熶骇浠诲姟鎶曟枡锛�1-040-503-100锛� ==========
     ErrorCode PRO_TASK_ISSUE_NOT_EXISTS = new ErrorCode(1_040_503_100, "鐢熶骇浠诲姟鎶曟枡璁板綍涓嶅瓨鍦�");
@@ -328,6 +340,11 @@
     ErrorCode PRO_FEEDBACK_UNCHECK_QUANTITY_EXISTS = new ErrorCode(1_040_506_012, "褰撳墠鎶ュ伐鍗曟湭瀹屾垚妫�楠岋紙寰呮鏁伴噺锛歿}锛夛紝鏃犳硶鎵ц鎶ュ伐");
     ErrorCode PRO_FEEDBACK_BACKFLUSH_BOM_REQUIRED = new ErrorCode(1_040_506_013, "褰撳墠宸ュ簭涓哄�掑啿宸ュ簭锛屼絾鏈厤缃瓸OM娑堣�楋紝鏃犳硶鎶ュ伐");
     ErrorCode PRO_FEEDBACK_CANNOT_CREATE_WHEN_PAUSED = new ErrorCode(1_040_506_014, "鐢熶骇浠诲姟澶勪簬鍋滃伐鐘舵�侊紝鏃犳硶鎶ュ伐");
+    ErrorCode PRO_FEEDBACK_PENDING_PRODUCE_UNREPAIRABLE = new ErrorCode(1_040_506_015,
+            "鎶ュ伐瀵瑰簲鐨勪骇鍑哄叆搴撳崟宸插瓨鍦ㄥ鐞嗙粨鏋滐紝鏃犳硶鑷姩琛ョ敓鎴愬緟妫�琛岋紝璇疯繍琛岃川妫�鎶ュ伐鏁版嵁淇鑴氭湰鏍稿");
+    ErrorCode PRO_FEEDBACK_PREV_PROCESS_NOT_FINISHED = new ErrorCode(1_040_506_016,
+            "涓婁竴閬撳伐搴忋�寋}銆嶅皻鏈姤宸ュ畬鎴愶紙鍓╀綑 {}锛夛紝璇峰厛瀹屾垚涓婁竴閬撳伐搴忕殑鎶ュ伐");
+    ErrorCode PRO_FEEDBACK_EQUIPMENT_INVALID = new ErrorCode(1_040_506_017, "鎶ュ伐璁惧鏍¢獙澶辫触锛歿}");
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇娴佽浆鍗★紙1-040-507-000锛� ==========
     ErrorCode PRO_CARD_NOT_EXISTS = new ErrorCode(1_040_507_000, "鐢熶骇娴佽浆鍗′笉瀛樺湪");
@@ -368,6 +385,12 @@
     ErrorCode QC_INDICATOR_CODE_DUPLICATE = new ErrorCode(1_040_601_001, "璐ㄦ鎸囨爣缂栫爜宸插瓨鍦�");
     ErrorCode QC_INDICATOR_NAME_DUPLICATE = new ErrorCode(1_040_601_002, "璐ㄦ鎸囨爣鍚嶇О宸插瓨鍦�");
     ErrorCode QC_INDICATOR_RESULT_SPECIFICATION_REQUIRED = new ErrorCode(1_040_601_003, "缁撴灉鍊煎睘鎬т笉鑳戒负绌�");
+    ErrorCode QC_INDICATOR_PARENT_NOT_EXISTS = new ErrorCode(1_040_601_004, "鐖舵寚鏍囦笉瀛樺湪");
+    ErrorCode QC_INDICATOR_PARENT_NOT_GROUP = new ErrorCode(1_040_601_005, "鐖舵寚鏍囦笉鏄垎缁勯」");
+    ErrorCode QC_INDICATOR_PARENT_SELF = new ErrorCode(1_040_601_006, "鐖舵寚鏍囦笉鑳芥槸鑷繁");
+    ErrorCode QC_INDICATOR_GROUP_CANNOT_NEST = new ErrorCode(1_040_601_007, "鍒嗙粍椤逛笉鑳芥寕鍦ㄥ叾瀹冩寚鏍囦笅");
+    ErrorCode QC_INDICATOR_HAS_CHILDREN = new ErrorCode(1_040_601_008, "璇ユ寚鏍囦笅宸叉湁瀛愰」");
+    ErrorCode QC_INDICATOR_RESULT_TYPE_REQUIRED = new ErrorCode(1_040_601_009, "褰曞叆椤圭殑缁撴灉鍊肩被鍨嬩笉鑳戒负绌�");
 
     // ========== MES 璐ㄩ噺绠$悊-缂洪櫡绫诲瀷锛�1-040-602-000锛� ==========
     ErrorCode QC_DEFECT_NOT_EXISTS = new ErrorCode(1_040_602_000, "缂洪櫡绫诲瀷涓嶅瓨鍦�");
@@ -440,6 +463,21 @@
     ErrorCode QC_NCR_NOT_REVIEWED = new ErrorCode(1_040_609_003, "鍙湁宸茶瘎瀹$姸鎬佺殑涓嶅悎鏍煎搧澶勭悊鍗曟墠鍙墽琛屽缃�");
     ErrorCode QC_NCR_NOT_DISPOSED = new ErrorCode(1_040_609_004, "鍙湁宸插缃姸鎬佺殑涓嶅悎鏍煎搧澶勭悊鍗曟墠鍙叧闂�");
 
+    // ========== MES 璐ㄩ噺绠$悊-鐣欐牱绠$悊锛�1-040-610-000锛� ==========
+    ErrorCode QC_RETENTION_SAMPLE_NOT_EXISTS = new ErrorCode(1_040_610_000, "鐣欐牱璁板綍涓嶅瓨鍦�");
+    ErrorCode QC_RETENTION_SAMPLE_CODE_DUPLICATE = new ErrorCode(1_040_610_001, "鐣欐牱缂栧彿銆恵}銆戝凡瀛樺湪锛岃鍒锋柊椤甸潰鍚庨噸璇�");
+    ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_002, "鐢熶骇宸ュ崟涓嶅瓨鍦紝璇烽噸鏂伴�夋嫨宸ュ崟");
+    ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_DUPLICATE = new ErrorCode(1_040_610_003, "鐢熶骇宸ュ崟銆恵}銆戝凡鐧昏鐣欐牱璁板綍锛堢暀鏍风紪鍙枫�恵}銆戯級锛屾瘡寮犲伐鍗曞彧鑳界櫥璁颁竴鏉$暀鏍凤紱濡傞渶璋冩暣璇蜂慨鏀瑰師鐣欐牱璁板綍");
+    ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_CANCELED = new ErrorCode(1_040_610_004, "鐢熶骇宸ュ崟銆恵}銆戝凡鍙栨秷锛屼笉鑳界櫥璁扮暀鏍�");
+    ErrorCode QC_RETENTION_SAMPLE_QUANTITY_INVALID = new ErrorCode(1_040_610_005, "鐣欐牱鏁伴噺蹇呴』澶т簬 0锛岃濉啓瀹為檯鐣欐牱浠舵暟");
+    ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_REQUIRED = new ErrorCode(1_040_610_006, "鐢熶骇宸ュ崟銆恵}銆戞潵婧愰攢鍞鍗曘�恵}銆戯紝璇烽�夋嫨瀵瑰簲鐨勯攢鍞鍗曞悗鍐嶇櫥璁扮暀鏍�");
+    ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_MISMATCH = new ErrorCode(1_040_610_007, "鎵�閫夐攢鍞鍗曚笌宸ュ崟涓嶄竴鑷达細宸ュ崟銆恵}銆戝搴旈攢鍞鍗曚负銆恵}銆戯紝鎻愪氦鐨勯攢鍞鍗曚负銆恵}銆戯紱璇烽噸鏂伴�夋嫨璇ュ伐鍗曞搴旂殑閿�鍞鍗�");
+    ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_008, "鎵�閫夐攢鍞鍗曚笉瀛樺湪锛坽}锛夛紝璇烽噸鏂伴�夋嫨");
+    ErrorCode QC_RETENTION_SAMPLE_WORK_ORDER_CHANGED = new ErrorCode(1_040_610_009, "鐣欐牱璁板綍涓嶅厑璁镐慨鏀规墍灞炵敓浜у伐鍗曪紱濡傞渶鏇存崲宸ュ崟锛岃鍒犻櫎鏈潯璁板綍鍚庨噸鏂扮櫥璁�");
+    ErrorCode QC_RETENTION_SAMPLE_FINISHED_DELETE = new ErrorCode(1_040_610_010, "鐢熶骇宸ュ崟銆恵}銆戝凡瀹屾垚锛岀暀鏍疯褰曚笉鍏佽鍒犻櫎锛涘闇�璋冩暣璇疯仈绯荤鐞嗗憳");
+    ErrorCode QC_RETENTION_SAMPLE_SALE_ORDER_AMBIGUOUS = new ErrorCode(1_040_610_011, "鐢熶骇宸ュ崟銆恵}銆戠敱澶氬紶閿�鍞鍗曞悎骞朵笅鍙戯紙{}锛夛紝璇烽�夋嫨鏈鐣欐牱瀵瑰簲鐨勯攢鍞鍗�");
+    ErrorCode QC_RETENTION_SAMPLE_MPS_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_610_012, "鐢熶骇宸ュ崟銆恵}銆戠敱 MPS 涓嬪彂锛屼絾 MPS 璁板綍鐨勯攢鍞鍗曘�恵}銆戯紙ID={}锛夊湪閿�鍞鍗曚腑涓嶅瓨鍦紝鏃犳硶鐧昏鐣欐牱锛涜鍏堜慨姝h MPS 鐨勯攢鍞鍗曚俊鎭悗鍐嶇櫥璁�");
+
     // ========== MES 浠撳簱绠$悊-浠撳簱锛�1-040-700-000锛� ==========
     ErrorCode WM_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_040_700_000, "浠撳簱涓嶅瓨鍦�");
     ErrorCode WM_WAREHOUSE_CODE_DUPLICATE = new ErrorCode(1_040_700_001, "浠撳簱缂栫爜宸插瓨鍦�");
@@ -486,7 +524,7 @@
     ErrorCode WM_TRANSACTION_LIST_EMPTY = new ErrorCode(1_040_703_011, "搴撳瓨浜嬪姟鍒楄〃涓嶈兘涓虹┖");
     ErrorCode WM_TRANSACTION_BATCH_NOT_EXISTS = new ErrorCode(1_040_703_012, "鎵规璁板綍涓嶅瓨鍦�");
     ErrorCode WM_MATERIAL_STOCK_REQUIRED = new ErrorCode(1_040_703_013, "搴撳瓨璁板綍涓嶈兘涓虹┖");
-    ErrorCode WM_MATERIAL_STOCK_SELECTION_MISMATCH = new ErrorCode(1_040_703_014, "搴撳瓨璁板綍涓庢彁浜ょ殑鐗╂枡銆佹壒娆℃垨搴撲綅淇℃伅涓嶄竴鑷�");
+    ErrorCode WM_MATERIAL_STOCK_SELECTION_MISMATCH = new ErrorCode(1_040_703_014, "鎵�閫夊簱瀛樿褰曚笌鍗曟嵁淇℃伅涓嶄竴鑷达紝璇锋牳瀵瑰悗閲嶆柊鎿嶄綔");
     ErrorCode WM_MATERIAL_STOCK_QUANTITY_INVALID = new ErrorCode(1_040_703_015, "璋冩暣鏁伴噺涓嶈兘涓虹┖鎴栭浂");
     ErrorCode WM_MATERIAL_STOCK_FROZEN = new ErrorCode(1_040_703_016, "搴撳瓨璁板綍宸插喕缁擄紝鏃犳硶绉诲簱");
     ErrorCode WM_MATERIAL_STOCK_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_703_017, "瀵煎叆鐨勫簱瀛樻暟鎹笉鑳戒负绌�");
@@ -632,6 +670,7 @@
     ErrorCode WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH = new ErrorCode(1_040_711_202, "鎷h揣鏄庣粏涓嶅睘浜庢寚瀹氱殑渚涘簲鍟嗛��璐у崟");
     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, "閫�璐х墿鏂欎笉鍦ㄦ墍鍏宠仈閲囪喘璁㈠崟鍐咃紝鏃犳硶娣诲姞");
 
     // ========== MES 浠撳簱绠$悊-浜у搧鏀惰揣鍗曪紙1-040-712-000锛� ==========
     ErrorCode WM_PRODUCT_RECPT_NOT_EXISTS = new ErrorCode(1_040_712_000, "浜у搧鏀惰揣鍗曚笉瀛樺湪");
@@ -783,6 +822,12 @@
     ErrorCode WM_PACKAGE_CHILD_NOT_FINISHED = new ErrorCode(1_040_740_007, "瀛愮蹇呴』鏄凡瀹屾垚鐘舵�佹墠鑳芥坊鍔�");
     ErrorCode WM_PACKAGE_HAS_CHILDREN = new ErrorCode(1_040_740_008, "瀛樺湪瀛愮锛屼笉鍏佽鍒犻櫎");
     ErrorCode WM_PACKAGE_LINE_NOT_EXISTS = new ErrorCode(1_040_740_100, "瑁呯鏄庣粏涓嶅瓨鍦�");
+    ErrorCode WM_PACKAGE_LINE_ITEM_NOT_FINISHED = new ErrorCode(1_040_740_101, "瑁呯鐗╂枡銆恵}銆戞墍灞炲垎绫讳笉鏄垚鍝佸垎绫伙紝涓嶈兘瑁呯锛涜閫夋嫨鎴愬搧鍒嗙被涓嬬殑鐗╂枡");
+    ErrorCode WM_PACKAGE_LINE_BOX_QUANTITY_NOT_CONFIGURED = new ErrorCode(1_040_740_102, "瑁呯鐗╂枡銆恵}銆戞湭閰嶇疆姣忕鏁伴噺锛屾棤娉曡嚜鍔ㄨ绠楃鏁帮紱璇峰厛鍦ㄧ墿鏂欐。妗堜腑缁存姢姣忕鏁伴噺");
+    ErrorCode WM_PACKAGE_LINE_WORK_ORDER_PRODUCT_MISMATCH = new ErrorCode(1_040_740_103, "瑁呯鐗╂枡銆恵}銆戜笌鐢熶骇宸ュ崟銆恵}銆戠殑浜у搧銆恵}銆戜笉涓�鑷达紝璇烽�夋嫨璇ュ伐鍗曞搴旂殑浜у搧瑁呯");
+    ErrorCode WM_PACKAGE_LINE_WORK_ORDER_QUANTITY_EXCEED = new ErrorCode(1_040_740_104, "鐢熶骇宸ュ崟銆恵}銆戣绠辨暟閲忚秴闄愶細宸ュ崟鏁伴噺 {}锛屽凡瑁呯/宸茶鍒� {}锛屾湰娆¤绠� {}锛涜璋冩暣瑁呯鏁伴噺");
+    ErrorCode WM_PACKAGE_LINE_ASSEMBLY_PROCESS_NOT_FOUND = new ErrorCode(1_040_740_105, "鐢熶骇宸ュ崟銆恵}銆戞湭閰嶇疆銆愮粍瑁呫�戝伐搴忥紝涓嶈兘瑁呯锛涜鍏堝湪璇ュ伐鍗曠殑銆屽伐鍗曞伐搴忋�嶄腑娣诲姞鍚嶇О涓恒�岀粍瑁呫�嶏紙缂栫爜 PRO-ASSEMBLY锛夌殑宸ュ簭锛屽苟瀹屾垚鎶ュ伐");
+    ErrorCode WM_PACKAGE_LINE_ASSEMBLY_NOT_COMPLETED = new ErrorCode(1_040_740_106, "鐢熶骇宸ュ崟銆恵}銆戠粍瑁呭伐搴忔姤宸ュ悎鏍兼暟閲忎笉瓒筹細宸插畬鎴愮粍瑁呭悎鏍� {}锛屾湰娆¤绠卞悗绱瑁呯 {}锛堝凡瑁呯/宸茶鍒� {} + 鏈 {}锛夛紱璇峰厛瀹屾垚缁勮宸ュ簭鎶ュ伐锛屾垨璋冨皬鏈瑁呯鏁伴噺");
 
     // ========== MES 浜у搧璁捐-璁捐椤圭洰锛�1-040-800-000锛� ==========
     ErrorCode PD_PROJECT_NOT_EXISTS = new ErrorCode(1_040_800_000, "璁捐椤圭洰涓嶅瓨鍦�");
@@ -802,6 +847,8 @@
 
     // ========== MES 浜у搧璁捐-璧勬枡瀹℃牳锛�1-040-802-000锛� ==========
     ErrorCode PD_DOCUMENT_AUDIT_NOT_EXISTS = new ErrorCode(1_040_802_000, "璧勬枡瀹℃牳璁板綍涓嶅瓨鍦�");
+    ErrorCode PD_DOCUMENT_AUDIT_STATUS_REQUIRED = new ErrorCode(1_040_802_001, "瀹℃牳缁撴灉涓嶈兘涓虹┖锛氳閫夋嫨銆屽鏍搁�氳繃銆嶆垨銆屽鏍镐笉閫氳繃銆嶅悗閲嶆柊鎻愪氦");
+    ErrorCode PD_DOCUMENT_AUDIT_STATUS_INVALID = new ErrorCode(1_040_802_002, "瀹℃牳缁撴灉涓嶅悎娉曪細鍙厑璁搞�屽鏍搁�氳繃銆嶆垨銆屽鏍镐笉閫氳繃銆嶏紝璇烽噸鏂伴�夋嫨鍚庢彁浜�");
 
     // ========== MES 浜у搧璁捐-褰掓。鍙拌处锛�1-040-803-000锛� ==========
     ErrorCode PD_ARCHIVE_NOT_EXISTS = new ErrorCode(1_040_803_000, "褰掓。鍙拌处涓嶅瓨鍦�");

--
Gitblit v1.9.3