From 321564177399931273e63647f37cdddd268fa5a5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 21:50:35 +0800
Subject: [PATCH] fix: 修复全流程测试 P0/P1 问题

---
 yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java |   66 +++++++++++++++++++++++++++++++-
 1 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
index c845909..9b284bb 100644
--- a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
+++ b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
@@ -26,6 +26,11 @@
     ErrorCode EMPLOYEE_CONTRACT_END_DATE_REQUIRE_FOR_FIXED = new ErrorCode(1_030_000_013, "鍥哄畾鏈熼檺鍚堝悓蹇呴』濉啓缁撴潫鏃ユ湡");
     ErrorCode EMPLOYEE_CONTRACT_DATE_INVALID = new ErrorCode(1_030_000_014, "鍚堝悓鏃ユ湡涓嶅悎娉曪紝寮�濮嬫棩鏈熶笉鑳芥櫄浜庣粨鏉熸棩鏈�");
     ErrorCode EMPLOYEE_CONTRACT_DATE_OVERLAP = new ErrorCode(1_030_000_015, "璇ュ憳宸ュ湪鎵�閫夋椂闂存宸插瓨鍦ㄦ湭瑙i櫎/鏈粓姝㈢殑鍚堝悓锛岃鍏堣В闄�/缁堟鍚庡啀绛捐");
+    ErrorCode EMPLOYEE_CONTRACT_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_000_016, "瀵煎叆鍛樺伐鍚堝悓鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode EMPLOYEE_CONTRACT_IMPORT_FIELD_REQUIRED = new ErrorCode(1_030_000_017, "瀵煎叆瀛楁銆恵}銆戜笉鑳戒负绌�");
+    ErrorCode EMPLOYEE_CONTRACT_IMPORT_EMPLOYEE_NAME_NOT_EXISTS = new ErrorCode(1_030_000_018, "鍛樺伐濮撳悕銆恵}銆戜笉瀛樺湪锛岃鍏堢淮鎶ゅ憳宸ユ。妗�");
+    ErrorCode EMPLOYEE_CONTRACT_IMPORT_EMPLOYEE_NAME_MULTIPLE = new ErrorCode(1_030_000_019, "鍛樺伐濮撳悕銆恵}銆戝搴斿涓憳宸ユ。妗堬紝鏃犳硶鑷姩鍖归厤锛岃鍏堝湪椤甸潰鎵嬪伐涓鸿鍛樺伐鏂板鍚堝悓");
+    ErrorCode EMPLOYEE_CONTRACT_IMPORT_CONTRACT_EXISTS = new ErrorCode(1_030_000_020, "璇ュ憳宸ャ�恵}銆戝凡瀛樺湪鐩稿悓绫诲瀷銆佺浉鍚屽紑濮嬫棩鏈熺殑鍚堝悓锛屽闇�瑕嗙洊璇峰嬀閫夆�滃凡瀛樺湪鏃舵洿鏂扳��");
 
     // ========== 璇峰亣鐢宠 1-030-001-000 ==========
     ErrorCode LEAVE_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_001_000, "璇峰亣鐢宠涓嶅瓨鍦�");
@@ -35,6 +40,15 @@
     ErrorCode LEAVE_APPLICATION_NO_EXISTS = new ErrorCode(1_030_001_004, "鐢熸垚璇峰亣鐢宠鍗曞彿閲嶅锛岃閲嶈瘯");
     ErrorCode LEAVE_APPLICATION_DURATION_EXCEED = new ErrorCode(1_030_001_005, "璇峰亣鏃堕暱瓒呭嚭骞村亣浣欓");
     ErrorCode LEAVE_APPLICATION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_001_006, "璇峰亣瀹℃壒娴佺▼涓嶅瓨鍦�");
+    ErrorCode LEAVE_APPLICATION_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_001_007, "褰撳墠璐﹀彿鏈叧鑱斿憳宸ユ。妗�");
+    ErrorCode LEAVE_APPLICATION_APPLICANT_NOT_EXISTS = new ErrorCode(1_030_001_008, "鎵�閫夌敵璇蜂汉璐﹀彿涓嶅瓨鍦�");
+    ErrorCode LEAVE_APPLICATION_SELECTED_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_001_009, "鎵�閫夌敵璇蜂汉鏈叧鑱斿憳宸ユ。妗�");
+    ErrorCode LEAVE_APPLICATION_UPDATE_FAIL_NOT_EDITABLE = new ErrorCode(1_030_001_010, "浠呰崏绋挎垨瀹℃壒椹冲洖鐘舵�佺殑璇峰亣鐢宠鍙互淇敼");
+    ErrorCode LEAVE_APPLICATION_APPLICANT_IMMUTABLE = new ErrorCode(1_030_001_011, "璇峰亣鐢宠浜哄垱寤哄悗涓嶈兘淇敼");
+    ErrorCode LEAVE_APPLICATION_OPERATOR_NOT_ALLOWED = new ErrorCode(1_030_001_012, "浠呯敵璇蜂汉鎴栧師浠g敵璇峰垱寤轰汉鍙互鎿嶄綔璇ヨ鍋囩敵璇�");
+    ErrorCode LEAVE_APPLICATION_DEPT_MISMATCH = new ErrorCode(1_030_001_013, "璇峰亣鐢宠閮ㄩ棬涓庢墍閫夌敵璇蜂汉鍛樺伐妗f閮ㄩ棬涓嶄竴鑷达紝璇峰埛鏂板悗閲嶈瘯");
+    ErrorCode LEAVE_APPLICATION_EMPLOYEE_DEPT_NOT_FOUND = new ErrorCode(1_030_001_014, "鎵�閫夌敵璇蜂汉鍛樺伐妗f鏈缃儴闂�");
+    ErrorCode LEAVE_APPLICATION_IMPORT_FILE_EMPTY = new ErrorCode(1_030_001_015, "瀵煎叆鏂囦欢娌℃湁鍙鍙栫殑鏁版嵁琛岋紝璇风‘璁よ〃澶翠緷娆′负锛氭墜鏈哄彿銆佸憳宸ュ鍚嶃�佽鍋囩被鍨嬨�佸紑濮嬫椂闂淬�佺粨鏉熸椂闂淬�佽鍋囨椂闀�(澶�)銆佽鍋囧師鍥犮�佸娉�");
 
     // ========== 璋冨矖鐢宠 1-030-002-000 ==========
     ErrorCode TRANSFER_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_002_000, "璋冨矖鐢宠涓嶅瓨鍦�");
@@ -45,6 +59,14 @@
     ErrorCode TRANSFER_APPLICATION_SAME_DEPT = new ErrorCode(1_030_002_005, "璋冨矖澶辫触锛屽師鍥狅細鐩爣閮ㄩ棬涓庡師閮ㄩ棬鐩稿悓");
     ErrorCode TRANSFER_APPLICATION_SAME_POST = new ErrorCode(1_030_002_006, "璋冨矖澶辫触锛屽師鍥狅細鐩爣宀椾綅涓庡師宀椾綅鐩稿悓");
     ErrorCode TRANSFER_APPLICATION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_002_007, "璋冨矖瀹℃壒娴佺▼涓嶅瓨鍦�");
+    ErrorCode TRANSFER_APPLICATION_APPLICANT_NOT_EXISTS = new ErrorCode(1_030_002_008, "璋冨矖鐢宠澶辫触锛氭墍閫夊憳宸ユ湭鍏宠仈鏈夋晥鐨勭郴缁熻处鍙�");
+    ErrorCode TRANSFER_APPLICATION_APPLICANT_DEPT_EMPTY = new ErrorCode(1_030_002_009, "璋冨矖鐢宠澶辫触锛氭墍閫夊憳宸ユ湭璁剧疆閮ㄩ棬");
+    ErrorCode TRANSFER_APPLICATION_APPLICANT_POST_EMPTY = new ErrorCode(1_030_002_010, "璋冨矖鐢宠澶辫触锛氭墍閫夊憳宸ユ湭璁剧疆宀椾綅");
+    ErrorCode TRANSFER_APPLICATION_EMPLOYEE_DEPT_NOT_FOUND = new ErrorCode(1_030_002_011, "鎵�閫夊憳宸ユ湭鍏宠仈鏈夋晥鍛樺伐妗f鎴栨。妗堟湭璁剧疆閮ㄩ棬");
+    ErrorCode TRANSFER_APPLICATION_CURRENT_DEPT_MISMATCH = new ErrorCode(1_030_002_012, "鍘熼儴闂ㄤ笌鎵�閫夊憳宸ュ綋鍓嶉儴闂ㄤ笉涓�鑷达紝璇峰埛鏂板憳宸ヤ俊鎭悗閲嶈瘯");
+    ErrorCode TRANSFER_APPLICATION_UPDATE_FAIL_NOT_EDITABLE = new ErrorCode(1_030_002_013, "浠呰崏绋挎垨瀹℃壒椹冲洖鐘舵�佺殑璋冨矖鐢宠鍙互淇敼");
+    ErrorCode TRANSFER_APPLICATION_APPLICANT_IMMUTABLE = new ErrorCode(1_030_002_014, "璋冨矖鐢宠浜哄垱寤哄悗涓嶈兘淇敼");
+    ErrorCode TRANSFER_APPLICATION_OPERATOR_NOT_ALLOWED = new ErrorCode(1_030_002_015, "浠呯敵璇蜂汉鎴栧師浠g敵璇峰垱寤轰汉鍙互鎿嶄綔璇ヨ皟宀楃敵璇�");
 
     // ========== 绂昏亴鐢宠 1-030-003-000 ==========
     ErrorCode RESIGNATION_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_003_000, "绂昏亴鐢宠涓嶅瓨鍦�");
@@ -53,7 +75,21 @@
     ErrorCode RESIGNATION_APPLICATION_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_003_003, "鏇存柊绂昏亴鐢宠瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
     ErrorCode RESIGNATION_APPLICATION_NO_EXISTS = new ErrorCode(1_030_003_004, "鐢熸垚绂昏亴鐢宠鍗曞彿閲嶅锛岃閲嶈瘯");
     ErrorCode RESIGNATION_APPLICATION_EXISTS = new ErrorCode(1_030_003_005, "璇ュ憳宸ュ凡瀛樺湪绂昏亴鐢宠锛岃鍕块噸澶嶆彁浜�");
-    ErrorCode RESIGNATION_APPLICATION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_003_006, "绂昏亴瀹℃壒娴佺▼涓嶅瓨鍦�");
+    ErrorCode RESIGNATION_APPLICATION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_003_006, "绂昏亴瀹℃壒娴佺▼涓嶅瓨鍦紝璇峰厛鍦ㄥ崗鍚屽姙鍏腑閰嶇疆骞跺彂甯冪鑱屽鎵规祦绋�");
+    ErrorCode RESIGNATION_APPLICATION_CANCEL_FAIL_STATUS = new ErrorCode(1_030_003_007, "绂昏亴鐢宠鎾ら攢澶辫触锛屽師鍥狅細浠呰崏绋挎垨瀹℃壒涓姸鎬佸彲浠ユ挙閿�");
+    ErrorCode RESIGNATION_HANDOVER_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_003_008, "浜ゆ帴鍛樺伐涓嶅瓨鍦紝璇烽噸鏂伴�夋嫨浜ゆ帴鍛樺伐");
+    ErrorCode RESIGNATION_HANDOVER_EMPLOYEE_NO_USER = new ErrorCode(1_030_003_009, "浜ゆ帴鍛樺伐鏈叧鑱旂郴缁熺敤鎴凤紝鏃犳硶杞Щ鐢ㄦ埛鏁版嵁");
+    ErrorCode RESIGNATION_HANDOVER_SELF = new ErrorCode(1_030_003_010, "浜ゆ帴浜轰笉鑳芥槸鐢宠浜烘湰浜猴紝璇烽�夋嫨鍏朵粬鍛樺伐");
+    ErrorCode RESIGNATION_HANDOVER_EMPLOYEE_RESIGNED = new ErrorCode(1_030_003_011, "浜ゆ帴鍛樺伐宸茬鑱岋紝璇烽噸鏂伴�夋嫨鍦ㄨ亴鍛樺伐");
+    ErrorCode RESIGNATION_HANDOVER_TARGET_REQUIRED = new ErrorCode(1_030_003_012, "鏈寚瀹氫氦鎺ュ憳宸ワ紝鏃犳硶寮�濮嬫垨瀹屾垚宸ヤ綔浜ゆ帴");
+    ErrorCode RESIGNATION_HANDOVER_COMPLETED_CANNOT_REVERT = new ErrorCode(1_030_003_013, "浜ゆ帴宸插畬鎴愶紝涓嶈兘鍥為��浜ゆ帴鐘舵��");
+    ErrorCode RESIGNATION_HANDOVER_NOT_APPROVED = new ErrorCode(1_030_003_014, "绂昏亴鐢宠瀹℃壒閫氳繃鍚庢墠鑳借繘琛屽伐浣滀氦鎺�");
+    ErrorCode RESIGNATION_HANDOVER_NOT_STARTED = new ErrorCode(1_030_003_015, "宸ヤ綔浜ゆ帴灏氭湭寮�濮嬶紝涓嶈兘鐩存帴瀹屾垚");
+    ErrorCode RESIGNATION_HANDOVER_CHANGE_AFTER_START = new ErrorCode(1_030_003_016, "宸ヤ綔浜ゆ帴宸插紑濮嬶紝涓嶈兘鏇存崲浜ゆ帴鍛樺伐");
+    ErrorCode RESIGNATION_APPLICANT_NOT_EXISTS = new ErrorCode(1_030_003_017, "鐢宠浜轰笉瀛樺湪锛岃閲嶆柊閫夋嫨鐢宠浜�");
+    ErrorCode RESIGNATION_HANDOVER_STATUS_INVALID = new ErrorCode(1_030_003_018, "浜ゆ帴鐘舵�佸�间笉鍚堟硶锛屼粎鏀寔 0鏈紑濮嬨��10杩涜涓��20宸插畬鎴�");
+    ErrorCode RESIGNATION_APPLICATION_APPLICANT_IMMUTABLE = new ErrorCode(1_030_003_019, "绂昏亴鐢宠浜哄垱寤哄悗涓嶈兘淇敼");
+    ErrorCode RESIGNATION_APPLICATION_OPERATOR_NOT_ALLOWED = new ErrorCode(1_030_003_020, "浠呯敵璇蜂汉鎴栧師浠g敵璇峰垱寤轰汉鍙互鎿嶄綔璇ョ鑱岀敵璇�");
 
     // ========== 鍔犵彮鐢宠 1-030-008-000 ==========
     ErrorCode OVERTIME_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_008_000, "鍔犵彮鐢宠涓嶅瓨鍦�");
@@ -63,6 +99,9 @@
     ErrorCode OVERTIME_APPLICATION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_008_004, "鍔犵彮瀹℃壒娴佺▼涓嶅瓨鍦紝璇峰厛鍦ㄥ崗鍚屽姙鍏腑閰嶇疆骞跺彂甯冩祦绋�");
     ErrorCode OVERTIME_APPLICATION_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_008_005, "褰撳墠璐﹀彿鏈叧鑱斿憳宸ユ。妗�");
     ErrorCode OVERTIME_APPLICATION_TIME_INVALID = new ErrorCode(1_030_008_006, "鍔犵彮鏃舵鎴栨墸闄ゆ椂闀夸笉鍚堟硶");
+    ErrorCode OVERTIME_APPLICATION_SELECTED_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_008_007, "鎵�閫夌敵璇蜂汉鐨勫憳宸ユ。妗堜笉瀛樺湪锛岃鍒锋柊鍛樺伐鍒楄〃鍚庨噸鏂伴�夋嫨");
+    ErrorCode OVERTIME_APPLICATION_PROXY_NOT_ALLOWED = new ErrorCode(1_030_008_008, "鏃犳潈涓哄叾浠栧憳宸ヤ唬鐢宠鍔犵彮锛氬綋鍓嶈处鍙锋湭鎸佹湁 hrm:overtime:manage 鏉冮檺锛岃绉婚櫎鐢宠浜猴紙鏀逛负鏈汉锛夋垨鑱旂郴绠$悊鍛樻巿浜堣鏉冮檺");
+    ErrorCode OVERTIME_APPLICATION_OPERATOR_NOT_ALLOWED = new ErrorCode(1_030_008_009, "鏃犳潈鎿嶄綔璇ュ姞鐝敵璇凤細褰撳墠璐﹀彿鏃笉鏄敵璇蜂汉锛屼篃鏈寔鏈� hrm:overtime:manage 鏉冮檺");
 
     // ========== 鐢ㄦ埛鏁版嵁浜ゆ帴 1-030-007-000 ==========
     ErrorCode USER_HANDOVER_NOT_EXISTS = new ErrorCode(1_030_007_000, "鐢ㄦ埛浜ゆ帴璁板綍涓嶅瓨鍦�");
@@ -79,8 +118,8 @@
     ErrorCode ATTENDANCE_RULE_NOT_EXISTS = new ErrorCode(1_030_004_005, "鑰冨嫟瑙勫垯涓嶅瓨鍦�");
     ErrorCode ATTENDANCE_RULE_NAME_EXISTS = new ErrorCode(1_030_004_006, "鑰冨嫟瑙勫垯鍚嶇О宸插瓨鍦�");
     ErrorCode ATTENDANCE_RULE_DEPT_EXISTS = new ErrorCode(1_030_004_007, "璇ラ儴闂ㄥ凡閰嶇疆鑰冨嫟瑙勫垯");
-    ErrorCode ATTENDANCE_HOLIDAY_NOT_EXISTS = new ErrorCode(1_030_004_008, "鑺傚亣鏃ラ厤缃笉瀛樺湪");
-    ErrorCode ATTENDANCE_HOLIDAY_DATE_EXISTS = new ErrorCode(1_030_004_009, "璇ユ棩鏈熻妭鍋囨棩閰嶇疆宸插瓨鍦�");
+    ErrorCode ATTENDANCE_HOLIDAY_NOT_EXISTS = new ErrorCode(1_030_004_008, "鑺傚亣鏃ラ厤缃笉瀛樺湪锛圛D={}锛夛紝鍙兘宸茶浠栦汉鍒犻櫎銆傝鍒锋柊鍒楄〃鍚庨噸璇�");
+    ErrorCode ATTENDANCE_HOLIDAY_RANGE_OVERLAP = new ErrorCode(1_030_004_009, "鏃ユ湡鍖洪棿銆恵} ~ {}銆戜笌宸叉湁閰嶇疆銆寋}銆嶏紙{} ~ {}锛夐噸鍙狅紝鏃犳硶淇濆瓨銆傝璋冩暣鏈鏃ユ湡鍖洪棿閬垮紑璇ラ厤缃紝鎴栫洿鎺ョ紪杈�/鍒犻櫎宸叉湁閰嶇疆鍚庡啀淇濆瓨");
     ErrorCode ATTENDANCE_CLOCK_FAIL_NO_RULE = new ErrorCode(1_030_004_010, "鎵撳崱澶辫触锛屾湭鎵惧埌鑰冨嫟瑙勫垯");
     ErrorCode ATTENDANCE_CLOCK_FAIL_HOLIDAY = new ErrorCode(1_030_004_011, "鎵撳崱澶辫触锛屽綋鏃ヤ负浼戞伅鏃�");
     ErrorCode ATTENDANCE_CLOCK_FAIL_NOT_WORKDAY = new ErrorCode(1_030_004_012, "鎵撳崱澶辫触锛屽綋鏃ヤ笉鏄伐浣滄棩");
@@ -88,6 +127,13 @@
     ErrorCode ATTENDANCE_EXCEPTION_UPDATE_AUDIT_STATUS_FAIL = new ErrorCode(1_030_004_014, "鏇存柊鑰冨嫟寮傚父瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
     ErrorCode ATTENDANCE_EXCEPTION_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_030_004_015, "鑰冨嫟寮傚父瀹℃壒娴佺▼涓嶅瓨鍦�");
     ErrorCode ATTENDANCE_CLOCK_ALREADY_CLOCKED = new ErrorCode(1_030_004_016, "宸叉墦杩囧崱锛岃鍕块噸澶嶆墦鍗�");
+    ErrorCode ATTENDANCE_HOLIDAY_DATE_RANGE_INVALID = new ErrorCode(1_030_004_017, "缁撴潫鏃ユ湡銆恵}銆戜笉鑳芥棭浜庡紑濮嬫棩鏈熴�恵}銆戯紝鏃犳硶淇濆瓨銆傝閲嶆柊閫夋嫨姝g‘鐨勬棩鏈熷尯闂�");
+    ErrorCode ATTENDANCE_LOCATION_RULE_INVALID = new ErrorCode(1_030_004_050, "鑰冨嫟瑙勫垯鍦扮偣閰嶇疆涓嶅畬鏁达紝璇疯仈绯荤鐞嗗憳");
+    ErrorCode ATTENDANCE_LOCATION_REQUIRED = new ErrorCode(1_030_004_051, "璇峰紑鍚畾浣嶅苟鎻愪緵缁忕含搴︺�佺簿搴﹀拰鍧愭爣绯诲悗鎵撳崱");
+    ErrorCode ATTENDANCE_LOCATION_COORDINATE_INVALID = new ErrorCode(1_030_004_052, "鎵撳崱缁忕含搴﹁秴鍑烘湁鏁堣寖鍥�");
+    ErrorCode ATTENDANCE_LOCATION_ACCURACY_INVALID = new ErrorCode(1_030_004_053, "瀹氫綅绮惧害椤诲ぇ浜� 0 涓斾笉瓒呰繃 100 绫筹紝璇峰埌寮�闃斾綅缃噸璇�");
+    ErrorCode ATTENDANCE_LOCATION_SYSTEM_INVALID = new ErrorCode(1_030_004_054, "鎵撳崱鍧愭爣绯诲繀椤讳负 WGS84");
+    ErrorCode ATTENDANCE_LOCATION_OUT_OF_RANGE = new ErrorCode(1_030_004_055, "褰撳墠浣嶇疆璺濃�渰}鈥漿}绫筹紝瓒呰繃鍏佽鑼冨洿{}绫�");
 
     // ========== 钖叕绠$悊 1-030-005-000 ==========
     ErrorCode SALARY_STRUCTURE_NOT_EXISTS = new ErrorCode(1_030_005_000, "钖叕缁撴瀯涓嶅瓨鍦�");
@@ -102,6 +148,7 @@
     ErrorCode EMPLOYEE_SOCIAL_SECURITY_NOT_EXISTS = new ErrorCode(1_030_005_009, "鍛樺伐绀句繚鍏Н閲戞。妗堜笉瀛樺湪");
     ErrorCode SOCIAL_SECURITY_SCHEME_NOT_EXISTS = new ErrorCode(1_030_005_010, "绀句繚鍏Н閲戞柟妗堜笉瀛樺湪");
     ErrorCode LEAVE_TYPE_CONFIG_NOT_EXISTS = new ErrorCode(1_030_005_011, "璇峰亣绫诲瀷鎵f閰嶇疆涓嶅瓨鍦�");
+    ErrorCode LEAVE_TYPE_CONFIG_TYPE_EXISTS = new ErrorCode(1_030_005_022, "璇ヨ鍋囩被鍨嬫墸娆鹃厤缃凡瀛樺湪");
     ErrorCode SALARY_PAYMENT_EXISTS = new ErrorCode(1_030_005_012, "璇ュ懆鏈熻柂璧勫彂鏀惧彴璐﹀凡瀛樺湪");
     ErrorCode SALARY_CALCULATION_NO_CONFIRMED = new ErrorCode(1_030_005_013, "璇ュ懆鏈熸病鏈夊凡纭鐨勮柂閰牳绠楄褰�");
     ErrorCode SALARY_PAYMENT_ALREADY_PAY = new ErrorCode(1_030_005_014, "钖祫鍙戞斁鍙拌处宸插彂鏀撅紝璇峰嬁閲嶅鎿嶄綔");
@@ -118,4 +165,17 @@
     ErrorCode SALARY_STRUCTURE_NAME_EXISTS = new ErrorCode(1_030_005_025, "钖叕缁撴瀯鍚嶇О宸插瓨鍦�");
     ErrorCode SALARY_STRUCTURE_IN_USE = new ErrorCode(1_030_005_026, "钖叕缁撴瀯姝e湪琚憳宸ヤ娇鐢紝鏃犳硶鍒犻櫎");
 
+    // ========== 鐝绠$悊 1-030-009-000 ==========
+    ErrorCode SHIFT_NOT_EXISTS = new ErrorCode(1_030_009_000, "鐝涓嶅瓨鍦�");
+    ErrorCode SHIFT_NAME_EXISTS = new ErrorCode(1_030_009_001, "鐝鍚嶇О宸插瓨鍦�");
+    ErrorCode SHIFT_IN_USE = new ErrorCode(1_030_009_002, "鐝宸茶鎺掔彮浣跨敤锛屾棤娉曞垹闄�");
+
+    // ========== 鎺掔彮绠$悊 1-030-010-000 ==========
+    ErrorCode SCHEDULE_ITEM_LIST_EMPTY = new ErrorCode(1_030_010_000, "鎺掔彮鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode SCHEDULE_SHIFT_NOT_EXISTS = new ErrorCode(1_030_010_001, "鎺掔彮寮曠敤鐨勭彮娆′笉瀛樺湪");
+    ErrorCode SCHEDULE_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_010_002, "鎺掔彮寮曠敤鐨勫憳宸ヤ笉瀛樺湪");
+    ErrorCode SCHEDULE_BATCH_DATE_RANGE_INVALID = new ErrorCode(1_030_010_003, "鎵归噺鎺掔彮鏃ユ湡鍖洪棿涓嶅悎娉曪細缁撴潫鏃ユ湡[{}]鏃╀簬寮�濮嬫棩鏈焄{}]锛岃璋冩暣鍚庨噸璇�");
+    ErrorCode SCHEDULE_BATCH_RANGE_TOO_LONG = new ErrorCode(1_030_010_004, "鎵归噺鎺掔彮鏃ユ湡鍖洪棿涓篬{} ~ {}]锛屽叡 {} 澶╋紝瓒呰繃鍗曟鏈�澶� 62 澶╃殑闄愬埗锛岃鍒嗘鎺掔彮");
+    ErrorCode SCHEDULE_BATCH_NO_EMPLOYEE = new ErrorCode(1_030_010_005, "閮ㄩ棬[{}]锛堝惈涓嬬骇閮ㄩ棬锛変笅娌℃湁绗﹀悎鏉′欢鐨勫憳宸ワ紙宀椾綅锛歿}锛屽憳宸ョ姸鎬侊細{}锛夛紝鏈敓鎴愪换浣曟帓鐝紝璇疯皟鏁寸瓫閫夋潯浠跺悗閲嶈瘯");
+
 }

--
Gitblit v1.9.3