From 962f78c8383e7c884ddb08c951c15e5ba6eb4cb8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 23 十月 2026 15:43:33 +0800
Subject: [PATCH] fix: 完善审批流程与业务状态校验

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java |  234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 228 insertions(+), 6 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 6b5c000..d7a93f2 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
@@ -18,7 +18,7 @@
     ErrorCode MD_ITEM_TYPE_CODE_DUPLICATE = new ErrorCode(1_040_100_005, "鍚屼竴鐖跺垎绫讳笅宸插瓨鍦ㄨ缂栫爜鐨勫垎绫�");
     ErrorCode MD_ITEM_TYPE_PARENT_IS_CHILD = new ErrorCode(1_040_100_006, "涓嶈兘璁剧疆鑷繁鐨勫瓙鍒嗙被涓虹埗鍒嗙被");
     ErrorCode MD_ITEM_TYPE_EXITS_ITEM = new ErrorCode(1_040_100_007, "璇ュ垎绫讳笅瀛樺湪鐗╂枡锛屾棤娉曞垹闄�");
-    ErrorCode MD_ITEM_TYPE_NOT_LEAF = new ErrorCode(1_040_100_008, "鍙兘灏嗙墿鏂欐寕杞藉埌鍙跺瓙鍒嗙被锛堣鍒嗙被涓嬪瓨鍦ㄥ瓙鍒嗙被锛�");
+    ErrorCode MD_ITEM_TYPE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_100_008, "瀵煎叆鐗╂枡鍒嗙被鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 鍩虹鏁版嵁-璁¢噺鍗曚綅锛�1-040-101-000锛� ==========
     ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "璁¢噺鍗曚綅涓嶅瓨鍦�");
@@ -33,7 +33,6 @@
     ErrorCode MD_ITEM_NOT_EXISTS = new ErrorCode(1_040_102_000, "鐗╂枡涓嶅瓨鍦�");
     ErrorCode MD_ITEM_CODE_DUPLICATE = new ErrorCode(1_040_102_001, "鐗╂枡缂栫爜宸插瓨鍦�");
     ErrorCode MD_ITEM_NAME_DUPLICATE = new ErrorCode(1_040_102_002, "鐗╂枡鍚嶇О宸插瓨鍦�");
-    ErrorCode MD_ITEM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_102_003, "瀵煎叆鐗╂枡鏁版嵁涓嶈兘涓虹┖");
     ErrorCode MD_ITEM_BATCH_REQUIRED = new ErrorCode(1_040_102_004, "褰撳墠鐗╂枡鍚敤浜嗘壒娆$鐞嗭紝璇烽�夋嫨鎵规");
     ErrorCode MD_ITEM_IS_DISABLE = new ErrorCode(1_040_102_005, "鐗╂枡宸茬鐢�");
 
@@ -84,12 +83,14 @@
     ErrorCode MD_WORKSHOP_CODE_DUPLICATE = new ErrorCode(1_040_105_001, "杞﹂棿缂栫爜宸插瓨鍦�");
     ErrorCode MD_WORKSHOP_NAME_DUPLICATE = new ErrorCode(1_040_105_002, "杞﹂棿鍚嶇О宸插瓨鍦�");
     ErrorCode MD_WORKSHOP_HAS_WORKSTATION = new ErrorCode(1_040_105_003, "杞﹂棿涓嬪瓨鍦ㄥ伐浣滅珯锛屾棤娉曞垹闄�");
+    ErrorCode MD_WORKSHOP_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_105_004, "瀵煎叆杞﹂棿鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 鍩虹鏁版嵁-宸ヤ綔绔欙紙1-040-106-000锛� ==========
     ErrorCode MD_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_106_000, "宸ヤ綔绔欎笉瀛樺湪");
     ErrorCode MD_WORKSTATION_CODE_DUPLICATE = new ErrorCode(1_040_106_001, "宸ヤ綔绔欑紪鐮佸凡瀛樺湪");
     ErrorCode MD_WORKSTATION_NAME_DUPLICATE = new ErrorCode(1_040_106_002, "宸ヤ綔绔欏悕绉板凡瀛樺湪");
     ErrorCode MD_WORKSTATION_IS_DISABLE = new ErrorCode(1_040_106_003, "宸ヤ綔绔欏凡绂佺敤");
+    ErrorCode MD_WORKSTATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_106_004, "瀵煎叆宸ヤ綔绔欐暟鎹笉鑳戒负绌�");
     // ========== MES 鍩虹鏁版嵁-璁惧璧勬簮锛�1-040-106-100锛� ==========
     ErrorCode MD_WORKSTATION_MACHINE_NOT_EXISTS = new ErrorCode(1_040_106_100, "璁惧璧勬簮璁板綍涓嶅瓨鍦�");
     ErrorCode MD_WORKSTATION_MACHINE_EXISTS = new ErrorCode(1_040_106_101, "璇ヨ澶囧凡鍒嗛厤鑷冲伐浣滅珯锛歿}");
@@ -121,6 +122,7 @@
     ErrorCode AUTO_CODE_REDIS_ERROR = new ErrorCode(1_040_110_003, "缂栫爜鐢熸垚鏈嶅姟涓嶅彲鐢紝璇风◢鍚庨噸璇�");
     ErrorCode AUTO_CODE_GENERATE_FAILED = new ErrorCode(1_040_110_004, "缂栫爜鐢熸垚澶辫触");
     ErrorCode AUTO_CODE_PART_SERIAL_NUMBER_DUPLICATE = new ErrorCode(1_040_110_005, "娴佹按鍙峰垎娈靛彧鑳藉瓨鍦ㄤ竴涓�");
+    ErrorCode AUTO_CODE_RULE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_110_006, "瀵煎叆缂栫爜瑙勫垯鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 鏃ュ巻鎺掔彮-璁″垝鐝锛�1-040-200-000锛� ==========
     ErrorCode CAL_PLAN_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "璁″垝鐝涓嶅瓨鍦�");
@@ -129,6 +131,7 @@
     // ========== MES 鏃ュ巻鎺掔彮-鐝粍锛�1-040-201-000锛� ==========
     ErrorCode CAL_TEAM_NOT_EXISTS = new ErrorCode(1_040_201_000, "鐝粍涓嶅瓨鍦�");
     ErrorCode CAL_TEAM_CODE_DUPLICATE = new ErrorCode(1_040_201_001, "鐝粍缂栫爜宸插瓨鍦�");
+    ErrorCode CAL_TEAM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_201_002, "瀵煎叆鐝粍鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 鏃ュ巻鎺掔彮-鐝粍鎴愬憳锛�1-040-201-100锛� ==========
     ErrorCode CAL_TEAM_MEMBER_NOT_EXISTS = new ErrorCode(1_040_201_100, "鐝粍鎴愬憳涓嶅瓨鍦�");
     ErrorCode CAL_TEAM_MEMBER_USER_DUPLICATE = new ErrorCode(1_040_201_101, "璇ョ敤鎴峰凡鍒嗛厤鍒板叾浠栫彮缁�");
@@ -137,12 +140,16 @@
     ErrorCode CAL_TEAM_SHIFT_NOT_EXISTS = new ErrorCode(1_040_201_200, "鐝粍鎺掔彮璁板綍涓嶅瓨鍦�");
     ErrorCode CAL_TEAM_SHIFT_GENERATE_TEAM_NOT_ENOUGH = new ErrorCode(1_040_201_201, "鐝粍鏁伴噺涓嶆弧瓒宠疆鐝柟寮忚姹�");
     ErrorCode CAL_TEAM_SHIFT_GENERATE_SHIFT_NOT_ENOUGH = new ErrorCode(1_040_201_202, "鐝鏁伴噺涓嶆弧瓒宠疆鐝柟寮忚姹�");
+    // ========== MES 鏃ュ巻鎺掔彮-鍛樺伐绾ф帓鐝槑缁嗭紙1-040-201-300锛� ==========
+    ErrorCode CAL_SCHEDULE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_201_300, "鍛樺伐鎺掔彮鏄庣粏涓嶅瓨鍦�");
+    ErrorCode CAL_SCHEDULE_DETAIL_GENERATE_TEAM_MEMBER_EMPTY = new ErrorCode(1_040_201_301, "璇ヨ鍒掑弬涓庣殑鐝粍鍧囨棤鐝粍鎴愬憳锛屾棤娉曠敓鎴愬憳宸ユ帓鐝槑缁�");
 
     // ========== MES 鏃ュ巻鎺掔彮-鎺掔彮璁″垝锛�1-040-202-000锛� ==========
     ErrorCode CAL_PLAN_NOT_EXISTS = new ErrorCode(1_040_202_000, "鎺掔彮璁″垝涓嶅瓨鍦�");
     ErrorCode CAL_PLAN_CODE_DUPLICATE = new ErrorCode(1_040_202_001, "鎺掔彮璁″垝缂栫爜宸插瓨鍦�");
     ErrorCode CAL_PLAN_NOT_PREPARE = new ErrorCode(1_040_202_002, "鎺掔彮璁″垝宸茬‘璁わ紝涓嶅厑璁镐慨鏀规垨鍒犻櫎");
     ErrorCode CAL_PLAN_TEAM_COUNT_NOT_MATCH = new ErrorCode(1_040_202_003, "纭鎺掔彮璁″垝鏃讹紝鍒嗛厤鐨勭彮缁勬暟閲忎笌杞彮鏂瑰紡涓嶅尮閰�");
+    ErrorCode CAL_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_202_004, "瀵煎叆鎺掔彮璁″垝鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 鏃ュ巻鎺掔彮-璁″垝鐝粍鍏宠仈锛�1-040-202-100锛� ==========
     ErrorCode CAL_PLAN_TEAM_NOT_EXISTS = new ErrorCode(1_040_202_100, "璁″垝鐝粍鍏宠仈涓嶅瓨鍦�");
     ErrorCode CAL_PLAN_TEAM_DUPLICATE = new ErrorCode(1_040_202_101, "璇ョ彮缁勫凡鍒嗛厤鍒版璁″垝");
@@ -159,6 +166,7 @@
     ErrorCode DV_MACHINERY_TYPE_CODE_DUPLICATE = new ErrorCode(1_040_300_005, "璁惧绫诲瀷缂栫爜宸插瓨鍦�");
     ErrorCode DV_MACHINERY_TYPE_PARENT_IS_CHILD = new ErrorCode(1_040_300_006, "涓嶈兘璁剧疆鑷繁鐨勫瓙绫诲瀷涓虹埗绫诲瀷");
     ErrorCode DV_MACHINERY_TYPE_HAS_MACHINERY = new ErrorCode(1_040_300_007, "璇ョ被鍨嬩笅瀛樺湪璁惧锛屾棤娉曞垹闄�");
+    ErrorCode DV_MACHINERY_TYPE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_300_008, "瀵煎叆璁惧绫诲瀷鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 璁惧绠$悊-璁惧鍙拌处锛�1-040-301-000锛� ==========
     ErrorCode DV_MACHINERY_NOT_EXISTS = new ErrorCode(1_040_301_000, "璁惧涓嶅瓨鍦�");
@@ -169,12 +177,21 @@
     ErrorCode DV_MACHINERY_HAS_CHECK_RECORD = new ErrorCode(1_040_301_004, "璁惧宸插叧鑱旂偣妫�璁板綍锛屾棤娉曞垹闄�");
     ErrorCode DV_MACHINERY_HAS_MAINTEN_RECORD = new ErrorCode(1_040_301_005, "璁惧宸插叧鑱斾繚鍏昏褰曪紝鏃犳硶鍒犻櫎");
     ErrorCode DV_MACHINERY_HAS_REPAIR = new ErrorCode(1_040_301_006, "璁惧宸插叧鑱旂淮淇伐鍗曪紝鏃犳硶鍒犻櫎");
+    ErrorCode DV_MACHINERY_WORKSTATION_NOT_EXISTS = new ErrorCode(1_040_301_008, "宸ヤ綔绔欑紪鐮佷笉瀛樺湪");
+    ErrorCode DV_MACHINERY_HAS_ITEM = new ErrorCode(1_040_301_009, "璁惧宸茶嚜鍔ㄧ敓鎴愮墿鏂欏苟鍏ヨ澶囦粨锛岀姝㈠垹闄わ紱濡傞渶绉婚櫎璇烽�氳繃搴撳瓨璋冩暣鍏堝鐞嗗簱瀛�");
+    ErrorCode DV_MACHINERY_EQUIP_MASTER_MISSING = new ErrorCode(1_040_301_010, "璁惧鍏ュ簱鑱斿姩鎵�闇�涓绘暟鎹湭鍒濆鍖栵紙璁惧浠撴垨鈥滆澶団�濆垎绫�/鈥滃彴鈥濊閲忓崟浣嶇己澶憋級锛岃鑱旂郴绠$悊鍛樺垵濮嬪寲");
+
+    // ========== MES 璁惧绠$悊-璁惧鏁伴噰锛�1-040-308-000锛� ==========
+    ErrorCode DV_TELEMETRY_NOT_EXISTS = new ErrorCode(1_040_308_000, "鏁伴噰閬ユ祴鏁版嵁涓嶅瓨鍦�");
+    ErrorCode DV_TELEMETRY_PULL_ERROR = new ErrorCode(1_040_308_001, "鏁伴噰鏁版嵁鎷夊彇澶辫触锛歿}");
+    ErrorCode DV_TELEMETRY_PULL_EMPTY = new ErrorCode(1_040_308_002, "鏁伴噰鎺ュ彛鏈繑鍥炴湁鏁堟暟鎹�");
 
     // ========== MES 璁惧绠$悊-鐐规淇濆吇椤圭洰锛�1-040-304-000锛� ==========
     ErrorCode DV_SUBJECT_NOT_EXISTS = new ErrorCode(1_040_304_000, "鐐规淇濆吇椤圭洰涓嶅瓨鍦�");
     ErrorCode DV_SUBJECT_CODE_DUPLICATE = new ErrorCode(1_040_304_001, "椤圭洰缂栫爜宸插瓨鍦�");
     ErrorCode DV_SUBJECT_USED_BY_CHECK_PLAN = new ErrorCode(1_040_304_002, "鐐规淇濆吇椤圭洰宸茶鐐规淇濆吇鏂规浣跨敤锛屾棤娉曞垹闄�");
     ErrorCode DV_SUBJECT_IS_DISABLE = new ErrorCode(1_040_304_003, "鐐规淇濆吇椤圭洰宸茬鐢�");
+    ErrorCode DV_SUBJECT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_304_004, "瀵煎叆鐐规淇濆吇椤圭洰鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 璁惧绠$悊-鐐规璁″垝锛�1-040-302-000锛� ==========
     ErrorCode DV_CHECK_PLAN_NOT_EXISTS = new ErrorCode(1_040_302_000, "鐐规璁″垝涓嶅瓨鍦�");
@@ -185,6 +202,7 @@
     ErrorCode DV_CHECK_PLAN_NOT_ENABLED = new ErrorCode(1_040_302_005, "鐐规淇濆吇鏂规鏈惎鐢紝涓嶅厑璁稿仠鐢�");
     ErrorCode DV_CHECK_PLAN_TYPE_MISMATCH = new ErrorCode(1_040_302_006, "鐐规淇濆吇鏂规绫诲瀷涓庡綋鍓嶄笟鍔′笉鍖归厤");
     ErrorCode DV_CHECK_PLAN_NOT_ENABLED_FOR_RECORD = new ErrorCode(1_040_302_007, "鐐规淇濆吇鏂规鏈惎鐢紝涓嶅厑璁稿垱寤鸿褰�");
+    ErrorCode DV_CHECK_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_302_008, "瀵煎叆鐐规淇濆吇鏂规鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璁惧绠$悊-鐐规鏂规璁惧锛�1-040-302-100锛� ==========
     ErrorCode DV_CHECK_PLAN_MACHINERY_NOT_EXISTS = new ErrorCode(1_040_302_100, "鐐规淇濆吇鏂规璁惧涓嶅瓨鍦�");
     ErrorCode DV_CHECK_PLAN_MACHINERY_DUPLICATE = new ErrorCode(1_040_302_101, "璇ヨ澶囧凡鍏宠仈鍒板綋鍓嶆柟妗堬紝璇峰嬁閲嶅娣诲姞");
@@ -199,6 +217,7 @@
     ErrorCode DV_REPAIR_CODE_DUPLICATE = new ErrorCode(1_040_303_002, "缁翠慨宸ュ崟缂栫爜宸插瓨鍦�");
     ErrorCode DV_REPAIR_NOT_CONFIRMED = new ErrorCode(1_040_303_003, "鍙湁缁翠慨涓姸鎬佺殑缁翠慨宸ュ崟鎵嶈兘瀹屾垚缁翠慨");
     ErrorCode DV_REPAIR_NOT_APPROVING = new ErrorCode(1_040_303_004, "鍙湁寰呴獙鏀剁姸鎬佺殑缁翠慨宸ュ崟鎵嶈兘楠屾敹");
+    ErrorCode DV_REPAIR_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_303_005, "瀵煎叆缁翠慨宸ュ崟鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璁惧绠$悊-缁翠慨宸ュ崟琛岋紙1-040-303-100锛� ==========
     ErrorCode DV_REPAIR_LINE_NOT_EXISTS = new ErrorCode(1_040_303_100, "缁翠慨宸ュ崟琛屼笉瀛樺湪");
 
@@ -206,6 +225,7 @@
     ErrorCode MAINTEN_RECORD_NOT_EXISTS = new ErrorCode(1_040_305_000, "璁惧淇濆吇璁板綍涓嶅瓨鍦�");
     ErrorCode MAINTEN_RECORD_NOT_DRAFT = new ErrorCode(1_040_305_001, "璁惧淇濆吇璁板綍宸叉彁浜わ紝涓嶅厑璁镐慨鏀规垨鍒犻櫎");
     ErrorCode MAINTEN_RECORD_NO_LINE = new ErrorCode(1_040_305_002, "鎻愪氦淇濆吇璁板綍鏃讹紝鑷冲皯闇�瑕佷竴鏉′繚鍏婚」鐩�");
+    ErrorCode DV_MAINTEN_RECORD_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_305_003, "瀵煎叆璁惧淇濆吇璁板綍鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璁惧绠$悊-淇濆吇璁板綍鏄庣粏锛�1-040-305-100锛� ==========
     ErrorCode MAINTEN_RECORD_LINE_NOT_EXISTS = new ErrorCode(1_040_305_100, "璁惧淇濆吇璁板綍鏄庣粏涓嶅瓨鍦�");
 
@@ -213,8 +233,20 @@
     ErrorCode DV_CHECK_RECORD_NOT_EXISTS = new ErrorCode(1_040_306_000, "璁惧鐐规璁板綍涓嶅瓨鍦�");
     ErrorCode DV_CHECK_RECORD_NOT_DRAFT = new ErrorCode(1_040_306_001, "璁惧鐐规璁板綍宸插畬鎴愶紝涓嶅厑璁镐慨鏀规垨鍒犻櫎");
     ErrorCode DV_CHECK_RECORD_NO_LINE = new ErrorCode(1_040_306_002, "鎻愪氦鐐规璁板綍鏃讹紝鑷冲皯闇�瑕佷竴鏉$偣妫�椤圭洰");
+    ErrorCode DV_CHECK_RECORD_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_306_003, "瀵煎叆璁惧鐐规璁板綍鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璁惧绠$悊-鐐规璁板綍鏄庣粏锛�1-040-306-100锛� ==========
     ErrorCode DV_CHECK_RECORD_LINE_NOT_EXISTS = new ErrorCode(1_040_306_100, "璁惧鐐规璁板綍鏄庣粏涓嶅瓨鍦�");
+
+    // ========== MES 璁惧绠$悊-璁¢噺鍣ㄥ叿锛�1-040-307-000锛� ==========
+    ErrorCode DV_METERING_NOT_EXISTS = new ErrorCode(1_040_307_000, "璁¢噺鍣ㄥ叿涓嶅瓨鍦�");
+    ErrorCode DV_METERING_CODE_DUPLICATE = new ErrorCode(1_040_307_001, "璁¢噺鍣ㄥ叿缂栫爜宸插瓨鍦�");
+    ErrorCode DV_METERING_HAS_CHECK_RECORD = new ErrorCode(1_040_307_002, "璁¢噺鍣ㄥ叿宸插叧鑱旀娴嬭褰曪紝鏃犳硶鍒犻櫎");
+    ErrorCode DV_METERING_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_307_003, "瀵煎叆璁¢噺鍣ㄥ叿鏁版嵁涓嶈兘涓虹┖");
+
+    // ========== MES 璁惧绠$悊-璁¢噺妫�娴嬭褰曪紙1-040-307-100锛� ==========
+    ErrorCode DV_METERING_CHECK_NOT_EXISTS = new ErrorCode(1_040_307_100, "璁¢噺妫�娴嬭褰曚笉瀛樺湪");
+    ErrorCode DV_METERING_CHECK_CODE_DUPLICATE = new ErrorCode(1_040_307_101, "璁¢噺妫�娴嬬紪鍙峰凡瀛樺湪");
+    ErrorCode DV_METERING_CHECK_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_307_102, "瀵煎叆璁¢噺妫�娴嬭褰曟暟鎹笉鑳戒负绌�");
 
     // ========== MES 宸ュ叿绠$悊-宸ュ叿绫诲瀷锛�1-040-400-000锛� ==========
     ErrorCode TM_TOOL_TYPE_NOT_EXISTS = new ErrorCode(1_040_400_000, "宸ュ叿绫诲瀷涓嶅瓨鍦�");
@@ -222,11 +254,13 @@
     ErrorCode TM_TOOL_TYPE_NAME_DUPLICATE = new ErrorCode(1_040_400_002, "宸ュ叿绫诲瀷鍚嶇О宸插瓨鍦�");
     ErrorCode TM_TOOL_TYPE_HAS_TOOL = new ErrorCode(1_040_400_003, "璇ュ伐鍏风被鍨嬩笅瀛樺湪宸ュ叿锛屾棤娉曞垹闄�");
     ErrorCode TM_TOOL_TYPE_HAS_WORKSTATION_TOOL = new ErrorCode(1_040_400_004, "璇ュ伐鍏风被鍨嬪凡琚伐浣滅珯宸ヨ璧勬簮寮曠敤锛屾棤娉曞垹闄�");
+    ErrorCode TM_TOOL_TYPE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_400_005, "瀵煎叆宸ュ叿绫诲瀷鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 宸ュ叿绠$悊-宸ュ叿鍙拌处锛�1-040-401-000锛� ==========
     ErrorCode TM_TOOL_NOT_EXISTS = new ErrorCode(1_040_401_000, "宸ュ叿涓嶅瓨鍦�");
     ErrorCode TM_TOOL_CODE_DUPLICATE = new ErrorCode(1_040_401_001, "宸ュ叿缂栫爜宸插瓨鍦�");
     ErrorCode TM_TOOL_HAS_BATCH = new ErrorCode(1_040_401_002, "璇ュ伐鍏峰凡琚壒娆″紩鐢紝鏃犳硶鍒犻櫎");
+    ErrorCode TM_TOOL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_401_003, "瀵煎叆宸ュ叿鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 鐢熶骇绠$悊-宸ュ簭锛�1-040-500-000锛� ==========
     ErrorCode PRO_PROCESS_NOT_EXISTS = new ErrorCode(1_040_500_000, "宸ュ簭涓嶅瓨鍦�");
@@ -234,6 +268,7 @@
     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_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_500_005, "瀵煎叆宸ュ簭鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 鐢熶骇绠$悊-宸ュ簭鍐呭锛�1-040-500-100锛� ==========
     ErrorCode PRO_PROCESS_CONTENT_NOT_EXISTS = new ErrorCode(1_040_500_100, "宸ュ簭鍐呭涓嶅瓨鍦�");
 
@@ -244,6 +279,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, "搴忓彿宸插瓨鍦�");
@@ -252,6 +288,7 @@
     // ========== 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 鐢熶骇绠$悊-宸ヨ壓璺嚎浜у搧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 鐗╂枡鍦ㄦ宸ュ簭宸茬粡閰嶇疆杩�");
@@ -261,9 +298,17 @@
     ErrorCode PRO_WORK_ORDER_CODE_DUPLICATE = new ErrorCode(1_040_502_001, "鐢熶骇宸ュ崟缂栫爜宸插瓨鍦�");
     ErrorCode PRO_WORK_ORDER_NOT_PREPARE = new ErrorCode(1_040_502_002, "鍙湁鑽夌鐘舵�佺殑宸ュ崟鎵嶈兘鎵ц姝ゆ搷浣�");
     ErrorCode PRO_WORK_ORDER_NOT_CONFIRMED = new ErrorCode(1_040_502_003, "鍙湁宸茬‘璁ょ姸鎬佺殑宸ュ崟鎵嶈兘鎵ц姝ゆ搷浣�");
+    ErrorCode PRO_WORK_ORDER_PRODUCTION_NOT_COMPLETE = new ErrorCode(1_040_502_007, "宸ュ崟瀹為檯浜у嚭鏈揪鍒拌鍒掓暟閲忥紝涓嶈兘瀹屾垚");
     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_BOM_NOT_EXISTS = new ErrorCode(1_040_502_100, "鐢熶骇宸ュ崟BOM涓嶅瓨鍦�");
+
+    // ========== MES 鐢熶骇绠$悊-鐢熶骇宸ュ崟宸ュ簭锛�1-040-502-300锛� ==========
+    ErrorCode PRO_WORK_ORDER_PROCESS_NOT_EXISTS = new ErrorCode(1_040_502_300, "鐢熶骇宸ュ崟宸ュ簭涓嶅瓨鍦�");
+    ErrorCode PRO_WORK_ORDER_PROCESS_SORT_DUPLICATE = new ErrorCode(1_040_502_301, "搴忓彿宸插瓨鍦�");
+    ErrorCode PRO_WORK_ORDER_PROCESS_DUPLICATE = new ErrorCode(1_040_502_302, "涓嶈兘閲嶅娣诲姞宸ュ簭");
+    ErrorCode PRO_WORK_ORDER_PROCESS_KEY_DUPLICATE = new ErrorCode(1_040_502_303, "褰撳墠宸ュ崟宸茬粡鎸囧畾杩囧叧閿伐搴�");
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇宸ュ崟鍙傛暟璁板綍锛�1-040-502-200锛� ==========
     ErrorCode PRO_WORK_ORDER_PARAM_RECORD_NOT_EXISTS = new ErrorCode(1_040_502_200, "宸ュ崟鍙傛暟璁板綍涓嶅瓨鍦�");
@@ -271,6 +316,7 @@
     ErrorCode PRO_WORK_ORDER_PARAM_RECORD_DETAIL_NOT_IN_TEMPLATE = new ErrorCode(1_040_502_202, "鍙傛暟鏄庣粏涓嶅睘浜庢墍閫夋ā鏉�");
     ErrorCode PRO_WORK_ORDER_PARAM_RECORD_REQUIRED_PARAM_MISSING = new ErrorCode(1_040_502_203, "蹇呭~鍙傛暟銆恵}銆戞湭濉啓");
     ErrorCode PRO_WORK_ORDER_PARAM_RECORD_TEMPLATE_NOT_CHANGE = new ErrorCode(1_040_502_204, "涓嶅厑璁告洿鎹㈠弬鏁版ā鏉匡紝璇峰垹闄ゅ悗閲嶆柊鍒涘缓");
+    ErrorCode PRO_WORK_ORDER_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_040_502_205, "鍏宠仈鐨勮惀閿�璁㈠崟锛堥攢鍞鍗曪級涓嶅瓨鍦�");
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇浠诲姟锛�1-040-503-000锛� ==========
     ErrorCode PRO_TASK_NOT_EXISTS = new ErrorCode(1_040_503_000, "鐢熶骇浠诲姟涓嶅瓨鍦�");
@@ -278,9 +324,11 @@
     ErrorCode PRO_TASK_WORK_ORDER_MISMATCH = new ErrorCode(1_040_503_002, "鐢熶骇浠诲姟涓嶅睘浜庡綋鍓嶇敓浜у伐鍗�");
     ErrorCode PRO_TASK_WORKSTATION_MISMATCH = new ErrorCode(1_040_503_003, "鐢熶骇浠诲姟涓嶅睘浜庡綋鍓嶅伐浣滅珯");
     ErrorCode PRO_TASK_ROUTE_PROCESS_MISMATCH = new ErrorCode(1_040_503_004, "鐢熶骇浠诲姟涓庡綋鍓嶅伐鑹鸿矾绾挎垨宸ュ簭涓嶄竴鑷�");
-    ErrorCode PRO_TASK_ITEM_MISMATCH = new ErrorCode(1_040_503_005, "鐢熶骇浠诲姟浜у搧涓庡綋鍓嶄骇鍝佺墿鏂欎笉涓�鑷�");
+    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_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_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, "鐢熶骇浠诲姟鎶曟枡璁板綍涓嶅瓨鍦�");
 
@@ -308,6 +356,9 @@
     ErrorCode PRO_FEEDBACK_QUALIFIED_UNQUALIFIED_REQUIRED = new ErrorCode(1_040_506_011, "璇疯緭鍏ュ悎鏍煎搧鍜屼笉鑹搧鏁伴噺锛屼笖鍚堣椤诲ぇ浜� 0");
     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_APPROVER_NOT_CONFIGURED = new ErrorCode(1_040_506_015, "鎶ュ伐鍗曟湭鎸囧畾瀹℃牳浜猴紝鏃犳硶瀹℃壒");
+    ErrorCode PRO_FEEDBACK_NOT_APPROVER = new ErrorCode(1_040_506_016, "鎮ㄤ笉鏄鎶ュ伐鍗曠殑鎸囧畾瀹℃牳浜猴紝鏃犳潈瀹℃壒");
 
     // ========== MES 鐢熶骇绠$悊-鐢熶骇娴佽浆鍗★紙1-040-507-000锛� ==========
     ErrorCode PRO_CARD_NOT_EXISTS = new ErrorCode(1_040_507_000, "鐢熶骇娴佽浆鍗′笉瀛樺湪");
@@ -322,9 +373,22 @@
     ErrorCode WORK_RECORD_NOT_CLOCK_IN = new ErrorCode(1_040_508_001, "褰撳墠鐢ㄦ埛鏈笂宸ワ紝鏃犳硶涓嬪伐");
     ErrorCode WORK_RECORD_ALREADY_CLOCK_IN = new ErrorCode(1_040_508_002, "褰撳墠鐢ㄦ埛宸蹭笂宸ワ紝璇峰厛涓嬪伐鍐嶆搷浣�");
 
+    // ========== MES 鐢熶骇绠$悊-鐢熶骇涓昏鍒� MPS锛�1-040-509-000锛� ==========
+    ErrorCode PRO_MPS_NOT_EXISTS = new ErrorCode(1_040_509_000, "MPS 涓嶅瓨鍦�");
+    ErrorCode PRO_MPS_NOT_DRAFT = new ErrorCode(1_040_509_001, "鍙湁鑽夌鐘舵�佺殑 MPS 鎵嶈兘鎵ц姝ゆ搷浣�");
+    ErrorCode PRO_MPS_NOT_ISSUED = new ErrorCode(1_040_509_002, "鍙湁宸蹭笅鍙戠姸鎬佺殑 MPS 鎵嶈兘鎵ц姝ゆ搷浣�");
+    ErrorCode PRO_MPS_ALREADY_ISSUED = new ErrorCode(1_040_509_003, "MPS 宸蹭笅鍙戯紝鏃犳硶淇敼");
+    ErrorCode PRO_MPS_MERGE_AT_LEAST_TWO = new ErrorCode(1_040_509_004, "鍚堝苟涓嬪彂鑷冲皯闇�瑕侀�夋嫨涓ゆ潯 MPS");
+    ErrorCode PRO_MPS_MERGE_PRODUCT_MISMATCH = new ErrorCode(1_040_509_005, "鍚堝苟涓嬪彂鐨� MPS 蹇呴』鏄浉鍚屼骇鍝�");
+    ErrorCode PRO_MPS_CODE_DUPLICATE = new ErrorCode(1_040_509_006, "MPS 缂栫爜宸插瓨鍦�");
+    ErrorCode PRO_MPS_HAS_WORK_ORDER = new ErrorCode(1_040_509_007, "MPS 宸插叧鑱旂敓浜у伐鍗曪紝鏃犳硶鍒犻櫎");
+    ErrorCode PRO_MPS_MES_PRODUCT_NOT_EXISTS = new ErrorCode(1_040_509_008, "MES 浜у搧涓嶅瓨鍦紝鏃犳硶鍒涘缓 MPS锛屼骇鍝侊細{}");
+    ErrorCode PRO_MPS_PRODUCT_TYPE_INVALID = new ErrorCode(1_040_509_009, "鎺掔▼浜у搧蹇呴』鏄骇鍝佺被鍨嬶紝绂佹浣跨敤鐗╂枡");
+
     // ========== MES 璐ㄩ噺绠$悊-璐ㄦ鏂规锛�1-040-600-000锛� ==========
     ErrorCode QC_TEMPLATE_NOT_EXISTS = new ErrorCode(1_040_600_000, "璐ㄦ鏂规涓嶅瓨鍦�");
     ErrorCode QC_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1_040_600_001, "璐ㄦ鏂规缂栧彿宸插瓨鍦�");
+    ErrorCode QC_TEMPLATE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_600_002, "瀵煎叆璐ㄦ鏂规鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璐ㄩ噺绠$悊-璐ㄦ鏂规妫�娴嬫寚鏍囬」锛�1-040-600-100锛� ==========
     ErrorCode QC_TEMPLATE_INDICATOR_NOT_EXISTS = new ErrorCode(1_040_600_100, "璐ㄦ鏂规妫�娴嬫寚鏍囬」涓嶅瓨鍦�");
     // ========== MES 璐ㄩ噺绠$悊-璐ㄦ鏂规浜у搧鍏宠仈锛�1-040-600-200锛� ==========
@@ -336,11 +400,13 @@
     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_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_601_004, "瀵煎叆璐ㄦ鎸囨爣鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 璐ㄩ噺绠$悊-缂洪櫡绫诲瀷锛�1-040-602-000锛� ==========
     ErrorCode QC_DEFECT_NOT_EXISTS = new ErrorCode(1_040_602_000, "缂洪櫡绫诲瀷涓嶅瓨鍦�");
     ErrorCode QC_DEFECT_CODE_DUPLICATE = new ErrorCode(1_040_602_001, "缂洪櫡绫诲瀷缂栫爜宸插瓨鍦�");
     ErrorCode QC_DEFECT_NAME_DUPLICATE = new ErrorCode(1_040_602_002, "缂洪櫡绫诲瀷鍚嶇О宸插瓨鍦�");
+    ErrorCode QC_DEFECT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_602_003, "瀵煎叆缂洪櫡绫诲瀷鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 璐ㄩ噺绠$悊-鏉ユ枡妫�楠� IQC锛�1-040-603-000锛� ==========
     ErrorCode QC_IQC_NOT_EXISTS = new ErrorCode(1_040_603_000, "鏉ユ枡妫�楠屽崟涓嶅瓨鍦�");
@@ -348,8 +414,10 @@
     ErrorCode QC_IQC_NOT_PREPARE = new ErrorCode(1_040_603_002, "鍙湁鑽夌鐘舵�佺殑妫�楠屽崟鎵嶅彲鎿嶄綔");
     ErrorCode QC_IQC_QUANTITY_MISMATCH = new ErrorCode(1_040_603_004, "鍚堟牸鍝佷笌涓嶅悎鏍煎搧鏁伴噺涔嬪拰椤荤瓑浜庢娴嬫暟閲�");
     ErrorCode QC_NO_TEMPLATE = new ErrorCode(1_040_603_005, "褰撳墠浜у搧鏈厤缃娴嬫ā鏉�");
+    ErrorCode QC_NO_TEMPLATE_FOR_ITEM = new ErrorCode(1_040_603_008, "鐗╂枡銆恵}銆戞湭閰嶇疆 IQC 妫�娴嬫ā鏉匡紝璇峰厛鍦ㄨ川閲忕鐞嗕腑閰嶇疆");
     ErrorCode QC_IQC_SOURCE_DOC_PARAMS_MISSING = new ErrorCode(1_040_603_006, "鏉ユ簮鍗曟嵁绫诲瀷闈炵┖鏃讹紝鏉ユ簮鍗曟嵁 ID 鍜屾潵婧愬崟鎹 ID 涓嶈兘涓虹┖");
     ErrorCode QC_IQC_CHECK_RESULT_EMPTY = new ErrorCode(1_040_603_007, "瀹屾垚妫�楠屽崟鍓嶏紝妫�娴嬬粨鏋滃繀椤诲~鍐�");
+    ErrorCode QC_IQC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_603_009, "瀵煎叆鏉ユ枡妫�楠屽崟鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璐ㄩ噺绠$悊-鏉ユ枡妫�楠岃锛�1-040-603-100锛� ==========
     ErrorCode QC_IQC_LINE_NOT_EXISTS = new ErrorCode(1_040_603_100, "鏉ユ枡妫�楠岃涓嶅瓨鍦�");
 
@@ -365,6 +433,7 @@
     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_SOURCE_LINE_NOT_PENDING = new ErrorCode(1_040_604_011, "鏉ユ簮浜у嚭琛屼笉鏄緟妫�楠岀姸鎬�");
+    ErrorCode QC_IPQC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_604_012, "瀵煎叆杩囩▼妫�楠屽崟鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璐ㄩ噺绠$悊-杩囩▼妫�楠岃锛�1-040-604-100锛� ==========
     ErrorCode QC_IPQC_LINE_NOT_EXISTS = new ErrorCode(1_040_604_100, "杩囩▼妫�楠岃涓嶅瓨鍦�");
 
@@ -386,6 +455,7 @@
     ErrorCode QC_OQC_NO_TEMPLATE = new ErrorCode(1_040_607_005, "褰撳墠浜у搧鏈厤缃� OQC 妫�娴嬫ā鏉�");
     ErrorCode QC_OQC_CHECK_RESULT_EMPTY = new ErrorCode(1_040_607_006, "瀹屾垚妫�楠屽崟鍓嶏紝妫�娴嬬粨鏋滃繀椤诲~鍐�");
     ErrorCode QC_OQC_SOURCE_DOC_TYPE_UNKNOWN = new ErrorCode(1_040_607_007, "鏈煡鐨� OQC 鏉ユ簮鍗曟嵁绫诲瀷");
+    ErrorCode QC_OQC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_607_008, "瀵煎叆鍑鸿揣妫�楠屽崟鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 璐ㄩ噺绠$悊-鍑鸿揣妫�楠岃锛�1-040-607-100锛� ==========
     ErrorCode QC_OQC_LINE_NOT_EXISTS = new ErrorCode(1_040_607_100, "鍑鸿揣妫�楠岃涓嶅瓨鍦�");
@@ -397,8 +467,20 @@
     ErrorCode QC_RQC_QUANTITY_MISMATCH = new ErrorCode(1_040_608_004, "鍚堟牸鍝佷笌涓嶅悎鏍煎搧鏁伴噺涔嬪拰椤荤瓑浜庢娴嬫暟閲�");
     ErrorCode QC_RQC_NO_TEMPLATE = new ErrorCode(1_040_608_005, "褰撳墠浜у搧鏈厤缃� RQC 妫�娴嬫ā鏉�");
     ErrorCode QC_RQC_CHECK_RESULT_EMPTY = new ErrorCode(1_040_608_006, "瀹屾垚妫�楠屽崟鍓嶏紝妫�娴嬬粨鏋滃繀椤诲~鍐�");
+    ErrorCode QC_RQC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_608_007, "瀵煎叆閫�璐ф楠屽崟鏁版嵁涓嶈兘涓虹┖");
     // ========== MES 璐ㄩ噺绠$悊-閫�璐ф楠岃锛�1-040-608-100锛� ==========
     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, "涓嶅悎鏍煎搧澶勭悊鍗曠紪鍙峰凡瀛樺湪");
+    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_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_609_005, "瀵煎叆涓嶅悎鏍煎搧澶勭悊鍗曟暟鎹笉鑳戒负绌�");
+
+    // ========== MES 璐ㄩ噺绠$悊-濮斿妫�娴�/璇曢獙鍗曪紙1-040-610-000锛� ==========
+    ErrorCode QC_OUTSOURCE_TEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_610_000, "瀵煎叆濮斿妫�娴�/璇曢獙鍗曟暟鎹笉鑳戒负绌�");
 
     // ========== MES 浠撳簱绠$悊-浠撳簱锛�1-040-700-000锛� ==========
     ErrorCode WM_WAREHOUSE_NOT_EXISTS = new ErrorCode(1_040_700_000, "浠撳簱涓嶅瓨鍦�");
@@ -408,6 +490,7 @@
     ErrorCode WM_WAREHOUSE_HAS_WORKSTATION = new ErrorCode(1_040_700_004, "浠撳簱宸茶宸ヤ綔绔欏紩鐢紝鏃犳硶鍒犻櫎");
     ErrorCode WM_WAREHOUSE_HAS_MATERIAL_STOCK = new ErrorCode(1_040_700_005, "浠撳簱涓嬫湁搴撳瓨璁板綍锛屾棤娉曞垹闄�");
     ErrorCode WM_WAREHOUSE_IS_VIRTUAL = new ErrorCode(1_040_700_006, "铏氭嫙浠撳簱涓嶅厑璁告搷浣�");
+    ErrorCode WM_WAREHOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_700_007, "瀵煎叆浠撳簱鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-搴撳尯锛�1-040-701-000锛� ==========
     ErrorCode WM_WAREHOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1_040_701_000, "搴撳尯涓嶅瓨鍦�");
@@ -419,6 +502,7 @@
     ErrorCode WM_WAREHOUSE_LOCATION_RELATION_INVALID = new ErrorCode(1_040_701_006, "搴撳尯涓嶅睘浜庢墍閫変粨搴�");
     ErrorCode WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK = new ErrorCode(1_040_701_007, "搴撳尯涓嬫湁搴撳瓨璁板綍锛屾棤娉曞垹闄�");
     ErrorCode WM_WAREHOUSE_LOCATION_IS_VIRTUAL = new ErrorCode(1_040_701_008, "铏氭嫙搴撳尯涓嶅厑璁告搷浣�");
+    ErrorCode WM_WAREHOUSE_LOCATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_701_009, "瀵煎叆搴撳尯鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-搴撲綅锛�1-040-702-000锛� ==========
     ErrorCode WM_WAREHOUSE_AREA_NOT_EXISTS = new ErrorCode(1_040_702_000, "搴撲綅涓嶅瓨鍦�");
@@ -430,6 +514,7 @@
     ErrorCode WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK = new ErrorCode(1_040_702_006, "搴撲綅涓嬫湁搴撳瓨璁板綍锛屾棤娉曞垹闄�");
     ErrorCode WM_WAREHOUSE_AREA_WAREHOUSE_MISMATCH = new ErrorCode(1_040_702_007, "搴撲綅涓嶅睘浜庢墍閫変粨搴�");
     ErrorCode WM_WAREHOUSE_AREA_IS_VIRTUAL = new ErrorCode(1_040_702_008, "铏氭嫙搴撲綅涓嶅厑璁告搷浣�");
+    ErrorCode WM_WAREHOUSE_AREA_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_702_009, "瀵煎叆搴撲綅鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-搴撳瓨锛�1-040-703-000锛� ==========
     ErrorCode WM_MATERIAL_STOCK_NOT_EXISTS = new ErrorCode(1_040_703_000, "搴撳瓨璁板綍涓嶅瓨鍦�");
@@ -448,6 +533,7 @@
     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_QUANTITY_INVALID = new ErrorCode(1_040_703_015, "璋冩暣鏁伴噺涓嶈兘涓虹┖鎴栭浂");
+    ErrorCode WM_MATERIAL_STOCK_FROZEN = new ErrorCode(1_040_703_016, "搴撳瓨璁板綍宸插喕缁擄紝鏃犳硶绉诲簱");
 
     // ========== MES 浠撳簱绠$悊-鍒拌揣閫氱煡鍗曪紙1-040-704-000锛� ==========
     ErrorCode WM_ARRIVAL_NOTICE_NOT_EXISTS = new ErrorCode(1_040_704_000, "鍒拌揣閫氱煡鍗曚笉瀛樺湪");
@@ -458,6 +544,7 @@
     ErrorCode WM_ARRIVAL_NOTICE_IQC_PENDING = new ErrorCode(1_040_704_005, "瀛樺湪寰呮楠岃锛屾棤娉曞鎵归�氳繃");
     ErrorCode WM_ARRIVAL_NOTICE_NO_LINE = new ErrorCode(1_040_704_006, "鑷冲皯闇�瑕佷竴鏉¤椤圭洰");
     ErrorCode WM_ARRIVAL_NOTICE_VENDOR_MISMATCH = new ErrorCode(1_040_704_007, "鍒拌揣閫氱煡鍗曠殑渚涘簲鍟嗕笌褰撳墠鍗曟嵁涓嶄竴鑷�");
+    ErrorCode WM_ARRIVAL_NOTICE_ALREADY_EXISTS = new ErrorCode(1_040_704_008, "璇ラ噰璐鍗曞凡鐢熸垚鍒拌揣閫氱煡鍗曪紝涓嶈兘閲嶅鐢熸垚");
     ErrorCode WM_ARRIVAL_NOTICE_LINE_NOT_EXISTS = new ErrorCode(1_040_704_100, "鍒拌揣閫氱煡鍗曡涓嶅瓨鍦�");
     ErrorCode WM_ARRIVAL_NOTICE_LINE_NOT_MATCH = new ErrorCode(1_040_704_101, "鍒拌揣閫氱煡鍗曡涓嶅睘浜庢寚瀹氱殑鍒拌揣閫氱煡鍗�");
 
@@ -469,7 +556,10 @@
     ErrorCode WM_ITEM_RECEIPT_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_705_004, "鏄庣粏涓婃灦鎬绘暟涓庤鍏ュ簱鏁伴噺涓嶅尮閰�");
     ErrorCode WM_ITEM_RECEIPT_STATUS_ERROR = new ErrorCode(1_040_705_005, "鍏ュ簱鍗曠姸鎬佷笉姝g‘");
     ErrorCode WM_ITEM_RECEIPT_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_705_006, "宸插畬鎴愭垨宸插彇娑堢殑鍏ュ簱鍗曚笉鍏佽鍙栨秷");
-    ErrorCode WM_PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_040_705_007, "閲囪喘璁㈠崟涓嶅瓨鍦�");
+    ErrorCode WM_ITEM_RECEIPT_ALREADY_EXISTS = new ErrorCode(1_040_705_007, "璇ュ埌璐ч�氱煡鍗曞凡鐢熸垚鍏ュ簱鍗曪紝涓嶈兘閲嶅鐢熸垚");
+    ErrorCode WM_ITEM_RECEIPT_NOT_APPROVING = new ErrorCode(1_040_705_008, "鍙湁寰呬笂鏋剁姸鎬佺殑閲囪喘鍏ュ簱鍗曟墠鑳藉鏍�");
+    ErrorCode WM_ITEM_RECEIPT_REJECT_REASON_REQUIRED = new ErrorCode(1_040_705_009, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+    ErrorCode WM_PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_040_705_008, "閲囪喘璁㈠崟涓嶅瓨鍦�");
     ErrorCode WM_PURCHASE_ORDER_NO_ITEM = new ErrorCode(1_040_705_008, "閲囪喘璁㈠崟鏃犳槑缁嗘暟鎹�");
     ErrorCode WM_ITEM_RECEIPT_LINE_NOT_EXISTS = new ErrorCode(1_040_705_100, "閲囪喘鍏ュ簱鍗曡涓嶅瓨鍦�");
     ErrorCode WM_ITEM_RECEIPT_LINE_ARRIVAL_NOTICE_LINE_REQUIRED = new ErrorCode(1_040_705_101,
@@ -478,6 +568,7 @@
             "鍏ュ簱鍗曟湭鍏宠仈鍒拌揣閫氱煡鍗曪紝涓嶈兘閫夋嫨鍒拌揣閫氱煡鍗曡");
     ErrorCode WM_ITEM_RECEIPT_DETAIL_NOT_EXISTS = new ErrorCode(1_040_705_200, "閲囪喘鍏ュ簱鏄庣粏涓嶅瓨鍦�");
     ErrorCode WM_ITEM_RECEIPT_DETAIL_QUANTITY_EXCEED = new ErrorCode(1_040_705_202, "涓婃灦鏄庣粏鎬绘暟閲忎笉鑳借秴杩囪鍏ュ簱鏁伴噺");
+    ErrorCode WM_ITEM_RECEIPT_BATCH_REQUIRED = new ErrorCode(1_040_705_203, "鐗╂枡銆恵}-{}銆戝凡寮�鍚壒娆$鐞嗭紝涓婃灦鏄庣粏鐨勬壒娆″彿涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-棰嗘枡鐢宠鍗曪紙1-040-706-000锛� ==========
     ErrorCode WM_MATERIAL_REQUEST_NOT_EXISTS = new ErrorCode(1_040_706_000, "棰嗘枡鐢宠鍗曚笉瀛樺湪");
@@ -570,6 +661,8 @@
     ErrorCode WM_RETURN_VENDOR_CODE_DUPLICATE = new ErrorCode(1_040_711_005, "渚涘簲鍟嗛��璐у崟缂栧彿宸插瓨鍦�");
     ErrorCode WM_RETURN_VENDOR_NO_DETAIL = new ErrorCode(1_040_711_006, "渚涘簲鍟嗛��璐у崟娌℃湁鎷h揣鏄庣粏锛屾棤娉曟墽琛岄��璐�");
     ErrorCode WM_RETURN_VENDOR_DETAIL_ITEM_MISMATCH = new ErrorCode(1_040_711_007, "鎷h揣鏄庣粏鐨勭墿鏂欎笌閫�璐у崟琛岀殑鐗╂枡涓嶄竴鑷�");
+    ErrorCode WM_RETURN_VENDOR_NOT_APPROVING = new ErrorCode(1_040_711_008, "鍙湁寰呮嫞璐х姸鎬佺殑渚涘簲鍟嗛��璐у崟鎵嶈兘瀹℃牳");
+    ErrorCode WM_RETURN_VENDOR_REJECT_REASON_REQUIRED = new ErrorCode(1_040_711_009, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
     ErrorCode WM_RETURN_VENDOR_LINE_NOT_EXISTS = new ErrorCode(1_040_711_100, "渚涘簲鍟嗛��璐у崟琛屼笉瀛樺湪");
     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");
@@ -619,6 +712,9 @@
     ErrorCode WM_STOCK_TAKING_PLAN_PARAM_NOT_EXISTS = new ErrorCode(1_040_714_104, "鐩樼偣鏂规鍙傛暟涓嶅瓨鍦�");
     ErrorCode WM_STOCK_TAKING_PLAN_PARAM_EMPTY = new ErrorCode(1_040_714_105, "鐩樼偣鏂规鍙傛暟涓嶈兘涓虹┖锛岃鍏堥厤缃洏鐐瑰弬鏁�");
     ErrorCode WM_STOCK_TAKING_PLAN_DYNAMIC_TIME_INVALID = new ErrorCode(1_040_714_106, "鍔ㄦ�佺洏鐐规柟妗堝繀椤昏缃紑濮嬫椂闂村拰缁撴潫鏃堕棿锛屼笖缁撴潫鏃堕棿蹇呴』鏅氫簬寮�濮嬫椂闂�");
+    ErrorCode WM_STOCK_TAKING_PLAN_AUTO_GENERATE_CRON_REQUIRED = new ErrorCode(1_040_714_107, "寮�鍚畾鏈熻嚜鍔ㄧ敓鎴愭椂蹇呴』閰嶇疆鐢熸垚鍛ㄦ湡 cron 琛ㄨ揪寮�");
+    ErrorCode WM_STOCK_TAKING_PLAN_AUTO_GENERATE_CRON_INVALID = new ErrorCode(1_040_714_108, "鐢熸垚鍛ㄦ湡 cron 琛ㄨ揪寮忎笉鍚堟硶");
+    ErrorCode WM_STOCK_TAKING_PLAN_NOT_AUTO_GENERATE = new ErrorCode(1_040_714_109, "璇ョ洏鐐规柟妗堟湭寮�鍚畾鏈熻嚜鍔ㄧ敓鎴�");
     ErrorCode WM_STOCK_TAKING_TASK_NOT_EXISTS = new ErrorCode(1_040_714_110, "鐩樼偣浠诲姟涓嶅瓨鍦�");
     ErrorCode WM_STOCK_TAKING_TASK_CODE_DUPLICATE = new ErrorCode(1_040_714_111, "鐩樼偣浠诲姟缂栫爜宸插瓨鍦�");
     ErrorCode WM_STOCK_TAKING_TASK_NOT_PREPARE = new ErrorCode(1_040_714_112, "鍙湁鑽夌鐘舵�佺殑鐩樼偣浠诲姟鎵嶅厑璁告鎿嶄綔");
@@ -631,6 +727,12 @@
     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_NO_RESULT = new ErrorCode(1_040_714_122, "鐩樼偣浠诲姟鑷冲皯闇�瑕佷竴鏉$洏鐐圭粨鏋滄墠鍏佽鎻愪氦缁撴灉瀹℃壒");
+    ErrorCode WM_STOCK_TAKING_TASK_ALREADY_SUBMIT_APPROVAL = new ErrorCode(1_040_714_123, "鐩樼偣缁撴灉瀹℃壒宸叉彁浜わ紝璇峰嬁閲嶅鎻愪氦");
+    ErrorCode WM_STOCK_TAKING_TASK_RESULT_NOT_SUBMITTED = new ErrorCode(1_040_714_124, "鍙湁宸叉彁浜ょ粨鏋滃鎵圭殑鐩樼偣浠诲姟鎵嶈兘瀹℃牳");
+    ErrorCode WM_STOCK_TAKING_TASK_REJECT_REASON_REQUIRED = new ErrorCode(1_040_714_125, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+    ErrorCode WM_STOCK_TAKING_TASK_RESULT_APPROVAL_PENDING = new ErrorCode(1_040_714_126, "鐩樼偣缁撴灉瀹℃壒宸叉彁浜わ紝瀹℃牳瀹屾垚鍓嶄笉鍏佽淇敼鐩樼偣缁撴灉");
+    ErrorCode WM_STOCK_TAKING_TASK_LINE_NOT_MATCH = new ErrorCode(1_040_714_127, "鐩樼偣浠诲姟琛屼笉灞炰簬鎸囧畾鐨勭洏鐐逛换鍔�");
 
     // ========== MES 浠撳簱绠$悊-閿�鍞嚭搴撳崟锛�1-040-714-000锛� ==========
     ErrorCode WM_PRODUCT_SALES_NOT_EXISTS = new ErrorCode(1_040_714_000, "閿�鍞嚭搴撳崟涓嶅瓨鍦�");
@@ -643,8 +745,9 @@
     ErrorCode WM_PRODUCT_SALES_CANNOT_FINISH = new ErrorCode(1_040_714_007, "褰撳墠鐘舵�佷笉鍏佽鎵ц鍑哄簱");
     ErrorCode WM_PRODUCT_SALES_CANNOT_CANCEL = new ErrorCode(1_040_714_008, "褰撳墠鐘舵�佷笉鍏佽鍙栨秷");
     ErrorCode WM_PRODUCT_SALES_CANNOT_CONFIRM = new ErrorCode(1_040_714_009, "褰撳墠鐘舵�佷笉鍏佽纭妫�楠岄�氳繃");
+    ErrorCode WM_PRODUCT_SALES_ALREADY_EXISTS = new ErrorCode(1_040_714_010, "璇ュ彂璐ч�氱煡鍗曞凡鐢熸垚閿�鍞嚭搴撳崟锛屼笉鑳介噸澶嶇敓鎴�");
     ErrorCode WM_PRODUCT_SALES_DETAILS_EMPTY = new ErrorCode(1_040_714_020, "鎷h揣鏄庣粏涓嶈兘涓虹┖");
-    ErrorCode WM_PRODUCT_SALES_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_714_010, "鎷h揣鏁伴噺涓庡嚭搴撴暟閲忎笉鍖归厤");
+    ErrorCode WM_PRODUCT_SALES_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_714_011, "鎷h揣鏁伴噺涓庡嚭搴撴暟閲忎笉鍖归厤");
     ErrorCode WM_PRODUCT_SALES_LINE_NOT_EXISTS = new ErrorCode(1_040_714_011, "閿�鍞嚭搴撳崟琛屼笉瀛樺湪");
     ErrorCode WM_PRODUCT_SALES_DETAIL_NOT_EXISTS = new ErrorCode(1_040_714_012, "閿�鍞嚭搴撴槑缁嗕笉瀛樺湪");
     ErrorCode WM_PRODUCT_SALES_STOCK_INSUFFICIENT = new ErrorCode(1_040_714_013, "搴撳瓨涓嶈冻锛屾棤娉曟嫞璐�");
@@ -671,8 +774,11 @@
     ErrorCode WM_MISC_ISSUE_NO_LINE = new ErrorCode(1_040_715_003, "鏉傞」鍑哄簱鍗曡嚦灏戦渶瑕佷竴鏉¤鏁版嵁");
     ErrorCode WM_MISC_ISSUE_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_715_004, "鏉傞」鍑哄簱鍗曞凡瀹屾垚鎴栧凡鍙栨秷锛屾棤娉曞彇娑�");
     ErrorCode WM_MISC_ISSUE_DETAIL_QUANTITY_MISMATCH = new ErrorCode(1_040_715_005, "鏉傞」鍑哄簱鍗曡鏁伴噺涓庢槑缁嗘暟閲忎笉涓�鑷�");
+    ErrorCode WM_MISC_ISSUE_NOT_APPROVING = new ErrorCode(1_040_715_006, "鍙湁瀹℃壒涓姸鎬佺殑鏉傞」鍑哄簱鍗曟墠鑳藉鏍�");
+    ErrorCode WM_MISC_ISSUE_REJECT_REASON_REQUIRED = new ErrorCode(1_040_715_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
     ErrorCode WM_MISC_ISSUE_LINE_NOT_EXISTS = new ErrorCode(1_040_715_100, "鏉傞」鍑哄簱鍗曡涓嶅瓨鍦�");
     ErrorCode WM_MISC_ISSUE_DETAIL_NOT_EXISTS = new ErrorCode(1_040_715_200, "鏉傞」鍑哄簱鍗曟槑缁嗕笉瀛樺湪");
+    ErrorCode WM_MISC_ISSUE_QUANTITY_INVALID = new ErrorCode(1_040_715_008, "鏉傞」鍑哄簱鏁伴噺涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-鏉傞」鍏ュ簱鍗曪紙1-040-716-000锛� ==========
     ErrorCode WM_MISC_RECEIPT_NOT_EXISTS = new ErrorCode(1_040_716_000, "鏉傞」鍏ュ簱鍗曚笉瀛樺湪");
@@ -681,6 +787,8 @@
     ErrorCode WM_MISC_RECEIPT_STATUS_NOT_APPROVED = new ErrorCode(1_040_716_003, "鍙湁宸插鎵圭姸鎬佹墠鍏佽鎵ц鍏ュ簱");
     ErrorCode WM_MISC_RECEIPT_NO_LINE = new ErrorCode(1_040_716_004, "鑷冲皯闇�瑕佷竴鏉¤椤圭洰");
     ErrorCode WM_MISC_RECEIPT_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_716_005, "宸插畬鎴愭垨宸插彇娑堢殑鍏ュ簱鍗曚笉鍏佽鍙栨秷");
+    ErrorCode WM_MISC_RECEIPT_NOT_APPROVING = new ErrorCode(1_040_716_006, "鍙湁瀹℃壒涓姸鎬佺殑鏉傞」鍏ュ簱鍗曟墠鑳藉鏍�");
+    ErrorCode WM_MISC_RECEIPT_REJECT_REASON_REQUIRED = new ErrorCode(1_040_716_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
     ErrorCode WM_MISC_RECEIPT_LINE_NOT_EXISTS = new ErrorCode(1_040_716_100, "鏉傞」鍏ュ簱鍗曡涓嶅瓨鍦�");
     ErrorCode WM_MISC_RECEIPT_WAREHOUSE_REQUIRED = new ErrorCode(1_040_716_101, "浠撳簱涓嶈兘涓虹┖");
     ErrorCode WM_MISC_RECEIPT_QUANTITY_INVALID = new ErrorCode(1_040_716_102, "鍏ュ簱鏁伴噺蹇呴』澶т簬 0");
@@ -698,11 +806,13 @@
     ErrorCode WM_SALES_NOTICE_LINE_NOT_MATCH = new ErrorCode(1_040_720_012, "鍙戣揣閫氱煡鍗曡涓嶅睘浜庢寚瀹氱殑鍙戣揣閫氱煡鍗�");
     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, "璇ラ攢鍞鍗曞凡鐢熸垚鍙戣揣閫氱煡鍗曪紝涓嶈兘閲嶅鐢熸垚");
 
     // ========== MES 浠撳簱绠$悊-鏉$爜閰嶇疆锛�1-040-730-000锛� ==========
     ErrorCode WM_BARCODE_CONFIG_NOT_EXISTS = new ErrorCode(1_040_730_000, "鏉$爜閰嶇疆涓嶅瓨鍦�");
     ErrorCode WM_BARCODE_CONFIG_BIZ_TYPE_DUPLICATE = new ErrorCode(1_040_730_001, "璇ヤ笟鍔$被鍨嬬殑鏉$爜閰嶇疆宸插瓨鍦�");
     ErrorCode WM_BARCODE_CONFIG_HAS_BARCODE = new ErrorCode(1_040_730_002, "璇ユ潯鐮侀厤缃凡琚潯鐮佽褰曞叧鑱旓紝鏃犳硶鍒犻櫎");
+    ErrorCode WM_BARCODE_CONFIG_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_730_003, "瀵煎叆鏉$爜閰嶇疆鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 浠撳簱绠$悊-鏉$爜娓呭崟锛�1-040-731-000锛� ==========
     ErrorCode WM_BARCODE_NOT_EXISTS = new ErrorCode(1_040_731_000, "鏉$爜涓嶅瓨鍦�");
@@ -711,6 +821,29 @@
     ErrorCode BARCODE_BIZ_TYPE_NOT_EXISTS = new ErrorCode(1_040_731_003, "涓氬姟绫诲瀷涓嶈兘涓虹┖");
     ErrorCode BARCODE_BIZ_CODE_NOT_EXISTS = new ErrorCode(1_040_731_004, "涓氬姟缂栫爜涓嶈兘涓虹┖");
     ErrorCode BARCODE_CONFIG_NOT_EXISTS = new ErrorCode(1_040_731_005, "鏉$爜閰嶇疆涓嶅瓨鍦�");
+    ErrorCode BARCODE_FORMAT_INVALID = new ErrorCode(1_040_731_006, "鏉$爜鏍煎紡涓嶆敮鎸佹覆鏌�");
+    ErrorCode BARCODE_CONTENT_EMPTY = new ErrorCode(1_040_731_007, "鏉$爜鍐呭涓嶈兘涓虹┖");
+
+    // ========== MES 浠撳簱绠$悊-SN 鐮侊紙1-040-732-000锛� ==========
+    ErrorCode WM_SN_NOT_EXISTS = new ErrorCode(1_040_732_000, "SN 鐮佷笉瀛樺湪");
+    ErrorCode WM_SN_ITEM_NOT_SERIAL = new ErrorCode(1_040_732_001, "鐗╂枡鏈惎鐢ㄥ簭鍒楀彿绠$悊锛屾棤娉曠櫥璁� SN");
+    ErrorCode WM_SN_ALREADY_IN_STOCK = new ErrorCode(1_040_732_002, "SN 宸插湪搴擄紝璇峰厛鍑哄簱鍐嶇櫥璁板叆搴�");
+    ErrorCode WM_SN_NOT_IN_STOCK = new ErrorCode(1_040_732_003, "SN 涓嶅湪搴擄紝鏃犳硶鍑哄簱");
+    ErrorCode WM_SN_ITEM_MISMATCH = new ErrorCode(1_040_732_004, "SN 涓庣墿鏂欎笉鍖归厤");
+    ErrorCode WM_SN_LOCATION_MISMATCH = new ErrorCode(1_040_732_005, "SN 涓嶅湪鎸囧畾搴撲綅鍦ㄥ簱锛屾棤娉曞嚭搴�");
+
+    // ========== MES 璁惧鍏ュ簱鍗曪紙1-040-733-000锛� ==========
+    ErrorCode WM_EQUIP_RECEIPT_NOT_EXISTS = new ErrorCode(1_040_733_000, "璁惧鍏ュ簱鍗曚笉瀛樺湪");
+    ErrorCode WM_EQUIP_RECEIPT_CODE_DUPLICATE = new ErrorCode(1_040_733_001, "璁惧鍏ュ簱鍗曠紪鐮佸凡瀛樺湪");
+    ErrorCode WM_EQUIP_RECEIPT_STATUS_NOT_PREPARE = new ErrorCode(1_040_733_002, "鍙湁鑽夌鐘舵�佹墠鍏佽姝ゆ搷浣�");
+    ErrorCode WM_EQUIP_RECEIPT_STATUS_NOT_APPROVED = new ErrorCode(1_040_733_003, "鍙湁宸插鎵圭姸鎬佹墠鍏佽鎵ц鍏ュ簱");
+    ErrorCode WM_EQUIP_RECEIPT_NO_LINE = new ErrorCode(1_040_733_004, "鑷冲皯闇�瑕佷竴鏉¤椤圭洰");
+    ErrorCode WM_EQUIP_RECEIPT_CANCEL_NOT_ALLOWED = new ErrorCode(1_040_733_005, "宸插畬鎴愭垨宸插彇娑堢殑鍏ュ簱鍗曚笉鍏佽鍙栨秷");
+    ErrorCode WM_EQUIP_RECEIPT_LINE_NOT_EXISTS = new ErrorCode(1_040_733_100, "璁惧鍏ュ簱鍗曡涓嶅瓨鍦�");
+    ErrorCode WM_EQUIP_RECEIPT_MACHINERY_NOT_VALID = new ErrorCode(1_040_733_101, "鎵�閫夎澶囨湭鍏宠仈鐗╂枡锛屾棤娉曞叆搴�");
+    ErrorCode WM_EQUIP_RECEIPT_QUANTITY_INVALID = new ErrorCode(1_040_733_102, "鍏ュ簱鏁伴噺蹇呴』澶т簬 0");
+    ErrorCode WM_EQUIP_RECEIPT_NOT_APPROVING = new ErrorCode(1_040_733_006, "鍙湁瀹℃壒涓姸鎬佺殑璁惧鍏ュ簱鍗曟墠鑳藉鏍�");
+    ErrorCode WM_EQUIP_RECEIPT_REJECT_REASON_REQUIRED = new ErrorCode(1_040_733_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
 
     // ========== MES 浠撳簱绠$悊-瑁呯鍗曪紙1-040-740-000锛� ==========
     ErrorCode WM_PACKAGE_NOT_EXISTS = new ErrorCode(1_040_740_000, "瑁呯鍗曚笉瀛樺湪");
@@ -733,6 +866,11 @@
     ErrorCode PD_PROJECT_NOT_UPLOAD_FOR_AUDIT = new ErrorCode(1_040_800_005, "鍙湁寰呭鏍哥姸鎬佺殑璁捐椤圭洰鎵嶈兘瀹℃牳");
     ErrorCode PD_PROJECT_NOT_AUDIT_FOR_ARCHIVE = new ErrorCode(1_040_800_006, "鍙湁寰呭綊妗g姸鎬佺殑璁捐椤圭洰鎵嶈兘褰掓。");
     ErrorCode PD_PROJECT_AUDIT_NOT_FINISHED = new ErrorCode(1_040_800_007, "璇ラ」鐩笅瀛樺湪鏈鏍哥殑璧勬枡锛岃鍏堝畬鎴愭墍鏈夎祫鏂欏鏍�");
+    ErrorCode PD_PROJECT_NOT_UPLOAD_FOR_APPROVAL = new ErrorCode(1_040_800_008, "鍙湁寰呭鏍哥姸鎬佺殑璁捐椤圭洰鎵嶈兘鎻愪氦瀹℃壒");
+    ErrorCode PD_PROJECT_NOT_APPROVING = new ErrorCode(1_040_800_009, "鍙湁瀹℃壒涓姸鎬佺殑璁捐椤圭洰鎵嶈兘瀹℃牳");
+    ErrorCode PD_PROJECT_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_040_800_010, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+    ErrorCode PD_PROJECT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_800_011, "瀵煎叆璁捐椤圭洰鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode PD_PROJECT_NO_DOCUMENT = new ErrorCode(1_040_800_012, "璁捐椤圭洰鑷冲皯闇�瑕佷竴浠借祫鏂欐墠鍏佽鎻愪氦瀹℃壒");
 
     // ========== MES 浜у搧璁捐-璧勬枡瀛愯〃锛�1-040-801-000锛� ==========
     ErrorCode PD_DOCUMENT_NOT_EXISTS = new ErrorCode(1_040_801_000, "璁捐璧勬枡涓嶅瓨鍦�");
@@ -747,10 +885,43 @@
     // ========== MES 浜у搧璁捐-宸ヨ壓鍙傛暟锛�1-040-804-000锛� ==========
     ErrorCode PD_PROCESS_PARAM_NOT_EXISTS = new ErrorCode(1_040_804_000, "宸ヨ壓鍙傛暟涓嶅瓨鍦�");
     ErrorCode PD_PROCESS_PARAM_CODE_DUPLICATE = new ErrorCode(1_040_804_001, "宸ヨ壓鍙傛暟缂栫爜宸插瓨鍦�");
+    ErrorCode PD_PROCESS_PARAM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_804_002, "瀵煎叆宸ヨ壓鍙傛暟鏁版嵁涓嶈兘涓虹┖");
 
     // ========== MES 浜у搧璁捐-宸ヨ壓鍙傛暟妯℃澘锛�1-040-805-000锛� ==========
     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, "宸ヨ壓鍙傛暟妯℃澘缂栫爜宸插瓨鍦�");
+    ErrorCode PD_PROCESS_PARAM_TEMPLATE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_805_002, "瀵煎叆宸ヨ壓鍙傛暟妯℃澘鏁版嵁涓嶈兘涓虹┖");
+
+    // ========== MES 浜у搧璁捐-鎹綅瀵肩嚎鎶�鏈弬鏁帮紙1-040-806-000锛� ==========
+    ErrorCode PD_CTC_NOT_EXISTS = new ErrorCode(1_040_806_000, "鎹綅瀵肩嚎鎶�鏈弬鏁颁笉瀛樺湪");
+    ErrorCode PD_CTC_ITEM_DUPLICATE = new ErrorCode(1_040_806_001, "璇ョ墿鏂欏凡瀛樺湪鎹綅瀵肩嚎鎶�鏈弬鏁帮紝璇峰嬁閲嶅娣诲姞");
+    ErrorCode PD_CTC_CALC_PARAM_INVALID = new ErrorCode(1_040_806_002, "璁$畻鍙傛暟涓嶅悎娉曪紝璇锋鏌ヨ緭鍏�");
+
+    // ========== MES 浜у搧璁捐-鐩樺叿璁$畻锛�1-040-807-000锛� ==========
+    ErrorCode PD_CTC_REEL_NOT_EXISTS = new ErrorCode(1_040_807_000, "鐩樺叿璁$畻璁板綍涓嶅瓨鍦�");
+
+    // ========== MES 浜у搧璁捐-鎶�鏈‘璁ゅ嚱锛�1-040-808-000锛� ==========
+    ErrorCode PD_TECH_CONFIRM_NOT_EXISTS = new ErrorCode(1_040_808_000, "鎶�鏈‘璁ゅ嚱涓嶅瓨鍦�");
+    ErrorCode PD_TECH_CONFIRM_NO_DUPLICATE = new ErrorCode(1_040_808_001, "纭鍑界紪鍙峰凡瀛樺湪");
+    ErrorCode PD_TECH_CONFIRM_NOT_EDITABLE = new ErrorCode(1_040_808_002, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑鎶�鏈‘璁ゅ嚱鎵嶈兘淇敼鎴栧垹闄�");
+    ErrorCode PD_TECH_CONFIRM_NOT_EDITABLE_FOR_SUBMIT = new ErrorCode(1_040_808_003, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑鎶�鏈‘璁ゅ嚱鎵嶈兘鎻愪氦瀹℃牳");
+    ErrorCode PD_TECH_CONFIRM_NOT_PENDING_AUDIT = new ErrorCode(1_040_808_004, "鍙湁寰呭鏍哥姸鎬佺殑鎶�鏈‘璁ゅ嚱鎵嶈兘瀹℃牳");
+    ErrorCode PD_TECH_CONFIRM_REJECT_REASON_REQUIRED = new ErrorCode(1_040_808_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+    ErrorCode PD_TECH_CONFIRM_NOT_AUDITED_FOR_CUSTOMER_CONFIRM = new ErrorCode(1_040_808_008, "鍙湁宸插鏍哥姸鎬佺殑鎶�鏈‘璁ゅ嚱鎵嶈兘杩涜瀹㈡埛纭");
+    ErrorCode PD_TECH_CONFIRM_NO_REQUIRED = new ErrorCode(1_040_808_009, "纭鍑界紪鍙蜂笉鑳戒负绌�");
+
+    // ========== MES 浜у搧璁捐-浜у搧妗f涓庡熀纭�鏁版嵁锛�1-040-809-000锛� ==========
+    ErrorCode PD_PRODUCT_NOT_EXISTS = new ErrorCode(1_040_809_000, "浜у搧妗f涓嶅瓨鍦�");
+    ErrorCode PD_PRODUCT_AUDIT_STATUS_INVALID = new ErrorCode(1_040_809_001, "浜у搧妗f鐘舵�佷笉姝g‘锛屾棤娉曟墽琛岃鎿嶄綔");
+    ErrorCode PD_PRODUCT_SUBMIT_DUPLICATE = new ErrorCode(1_040_809_002, "浜у搧妗f宸叉彁浜ゅ鎵癸紝璇峰嬁閲嶅鎻愪氦");
+    ErrorCode PD_PRODUCT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_809_003, "瀵煎叆浜у搧妗f鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode PD_ELECTRICITY_TYPE_NOT_EXISTS = new ErrorCode(1_040_809_100, "鐢ㄧ數绫诲瀷涓嶅瓨鍦�");
+    ErrorCode PD_VOLTAGE_LEVEL_NOT_EXISTS = new ErrorCode(1_040_809_101, "鐢靛帇绛夌骇涓嶅瓨鍦�");
+    ErrorCode PD_SERVICE_PACKAGE_NOT_EXISTS = new ErrorCode(1_040_809_102, "鏈嶅姟濂楅涓嶅瓨鍦�");
+    ErrorCode PD_PRICE_STANDARD_NOT_EXISTS = new ErrorCode(1_040_809_103, "瀹氫环鏍囧噯涓嶅瓨鍦�");
+    ErrorCode PD_DISCOUNT_POLICY_NOT_EXISTS = new ErrorCode(1_040_809_104, "浼樻儬绛栫暐涓嶅瓨鍦�");
+    ErrorCode PD_TIERED_PRICE_NOT_EXISTS = new ErrorCode(1_040_809_105, "闃舵鐢典环涓嶅瓨鍦�");
+    ErrorCode PD_PRICE_CALC_OBJECT_NOT_CONFIGURED = new ErrorCode(1_040_809_200, "闃舵鐢典环鏈厤缃紝鏃犳硶璁$畻");
 
     // ========== MES 浠撳偍鐗╂祦-瀹℃壒閰嶇疆锛�1-040-900-000锛� ==========
     ErrorCode WMS_APPROVAL_CONFIG_NOT_EXISTS = new ErrorCode(1_040_900_000, "浠撳簱瀹℃壒閰嶇疆涓嶅瓨鍦�");
@@ -760,4 +931,55 @@
     ErrorCode WMS_APPROVAL_STATUS_INVALID = new ErrorCode(1_040_900_004, "鍗曟嵁鐘舵�佷笉姝g‘锛屾棤娉曟彁浜ゅ鎵�");
     ErrorCode WMS_APPROVAL_ALREADY_SUBMITTED = new ErrorCode(1_040_900_005, "鍗曟嵁宸叉彁浜ゅ鎵癸紝璇峰嬁閲嶅鎻愪氦");
 
+    // ========== MES 宸ヨ壓璁捐-浣滀笟鏇夸唬鏂规/鐢靛姏杩愮淮鏃ュ巻锛�1-040-901-000锛� ==========
+    ErrorCode MES_PRO_ALTERNATIVE_PLAN_NOT_EXISTS = new ErrorCode(1_040_901_000, "浣滀笟鏇夸唬鏂规涓嶅瓨鍦�");
+    ErrorCode MES_PRO_ALTERNATIVE_PLAN_NOT_PREPARE = new ErrorCode(1_040_901_001, "浣滀笟鏇夸唬鏂规鐘舵�佷笉姝g‘锛屾棤娉曟墽琛岃鎿嶄綔");
+    ErrorCode MES_PRO_MAINTENANCE_CALENDAR_NOT_EXISTS = new ErrorCode(1_040_901_100, "鐢靛姏杩愮淮鏃ュ巻涓嶅瓨鍦�");
+    ErrorCode MES_PRO_MAINTENANCE_CALENDAR_NOT_PREPARE = new ErrorCode(1_040_901_101, "鐢靛姏杩愮淮鏃ュ巻鐘舵�佷笉姝g‘锛屾棤娉曟墽琛岃鎿嶄綔");
+
+    // ========== MES 浠撳簱绠$悊-鍗曟嵁瀵煎叆锛�1-040-950-000锛� ==========
+    ErrorCode WM_MISC_ISSUE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_000, "瀵煎叆鏉傞」鍑哄簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_MISC_RECEIPT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_001, "瀵煎叆鏉傞」鍏ュ簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_OUTSOURCE_ISSUE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_002, "瀵煎叆澶栧崗鍙戞枡鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_OUTSOURCE_RECEIPT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_003, "瀵煎叆澶栧崗鍏ュ簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_PRODUCT_SALES_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_004, "瀵煎叆閿�鍞嚭搴撳崟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode WM_PRODUCT_ISSUE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_005, "瀵煎叆鐢熶骇棰嗘枡鍑哄簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_PRODUCT_RECPT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_006, "瀵煎叆浜у搧鏀惰揣鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_ITEM_RECEIPT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_007, "瀵煎叆閲囪喘鍏ュ簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_EQUIP_RECEIPT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_008, "瀵煎叆璁惧鍏ュ簱鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_ARRIVAL_NOTICE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_009, "瀵煎叆鍒拌揣閫氱煡鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_SALES_NOTICE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_010, "瀵煎叆鍙戣揣閫氱煡鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_RETURN_ISSUE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_011, "瀵煎叆鐢熶骇閫�鏂欏崟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode WM_RETURN_SALES_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_012, "瀵煎叆閿�鍞��璐у崟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode WM_RETURN_VENDOR_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_013, "瀵煎叆渚涘簲鍟嗛��璐у崟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode WM_TRANSFER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_014, "瀵煎叆杞Щ鍗曟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode WM_PACKAGE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_950_015, "瀵煎叆瑁呯鍗曟暟鎹笉鑳戒负绌猴紒");
+
+    // ========== MES 鑳借�楃鐞嗭紙1-040-902-000锛� ==========
+    ErrorCode EM_METER_NOT_EXISTS = new ErrorCode(1_040_902_000, "鑳借�楄閲忕偣涓嶅瓨鍦�");
+    ErrorCode EM_METER_CODE_DUPLICATE = new ErrorCode(1_040_902_001, "鑳借�楄閲忕偣缂栫爜宸插瓨鍦�");
+    ErrorCode EM_METER_HAS_RECORD = new ErrorCode(1_040_902_002, "鑳借�楄閲忕偣宸插瓨鍦ㄦ妱琛ㄨ褰曪紝鏃犳硶鍒犻櫎");
+    ErrorCode EM_METER_OBJECT_NOT_EXISTS = new ErrorCode(1_040_902_003, "璁¢噺鐐瑰叧鑱旂殑杞﹂棿/浜х嚎/璁惧涓嶅瓨鍦�");
+    ErrorCode EM_RECORD_NOT_EXISTS = new ErrorCode(1_040_902_010, "鑳借�楁妱琛ㄨ褰曚笉瀛樺湪");
+    ErrorCode EM_RECORD_DATE_DUPLICATE = new ErrorCode(1_040_902_011, "璇ヨ閲忕偣鍦ㄥ綋鏃ュ凡瀛樺湪鎶勮〃璁板綍");
+    ErrorCode EM_RECORD_READING_INVALID = new ErrorCode(1_040_902_012, "鏈熸湯璇绘暟涓嶈兘灏忎簬鏈熷垵璇绘暟");
+    ErrorCode EM_QUOTA_NOT_EXISTS = new ErrorCode(1_040_902_020, "鑳借�楄�冩牳鎸囨爣涓嶅瓨鍦�");
+    ErrorCode EM_QUOTA_OBJECT_NOT_EXISTS = new ErrorCode(1_040_902_021, "鑰冩牳瀵硅薄涓嶅瓨鍦�");
+    ErrorCode EM_ALERT_NOT_EXISTS = new ErrorCode(1_040_902_030, "鑳借�楅璀︿笉瀛樺湪");
+    ErrorCode EM_ALERT_ALREADY_HANDLED = new ErrorCode(1_040_902_031, "鑳借�楅璀﹀凡澶勭悊锛岃鍕块噸澶嶆搷浣�");
+
+    // ========== MES 鐢熶骇妯″潡-鍗曟嵁瀵煎叆锛�1-040-960-000锛� ==========
+    ErrorCode MES_PRO_WORK_ORDER_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_000, "瀵煎叆鐢熶骇宸ュ崟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_FEEDBACK_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_001, "瀵煎叆鐢熶骇鎶ュ伐鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_TASK_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_002, "瀵煎叆鐢熶骇浠诲姟鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_MPS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_003, "瀵煎叆 MPS 鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_CARD_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_004, "瀵煎叆鐢熶骇娴佽浆鍗℃暟鎹笉鑳戒负绌猴紒");
+    ErrorCode MES_PRO_EMERGENCY_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_005, "瀵煎叆搴旀�ュ缃妗堟暟鎹笉鑳戒负绌猴紒");
+    ErrorCode MES_PRO_ALTERNATIVE_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_006, "瀵煎叆浣滀笟鏇夸唬鏂规鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_MAINTENANCE_PLAN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_007, "瀵煎叆鐢靛姏浣滀笟璁″垝鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode MES_PRO_MAINTENANCE_CALENDAR_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_008, "瀵煎叆鐢靛姏杩愮淮鏃ュ巻鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode PD_CTC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_009, "瀵煎叆鎹綅瀵肩嚎鎶�鏈弬鏁版暟鎹笉鑳戒负绌猴紒");
+    ErrorCode PD_CTC_REEL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_010, "瀵煎叆鐩樺叿璁$畻鏁版嵁涓嶈兘涓虹┖锛�");
+    ErrorCode PD_TECH_CONFIRM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_040_960_011, "瀵煎叆鎶�鏈‘璁ゅ嚱鏁版嵁涓嶈兘涓虹┖锛�");
+
 }

--
Gitblit v1.9.3