From ef3cbc1c6882786e8218b08be3e52ea44587f03b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 08 十一月 2026 09:45:42 +0800
Subject: [PATCH] feat(hrm): 请假批量导入、加班代申请人、批量排班与节假日区间联动

---
 yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 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 e2b579a..3440824 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
@@ -16,6 +16,21 @@
     ErrorCode EMPLOYEE_EDUCATION_NOT_EXISTS = new ErrorCode(1_030_000_003, "鏁欒偛缁忓巻涓嶅瓨鍦�");
     ErrorCode EMPLOYEE_WORK_HISTORY_NOT_EXISTS = new ErrorCode(1_030_000_004, "宸ヤ綔缁忓巻涓嶅瓨鍦�");
     ErrorCode EMPLOYEE_EMERGENCY_CONTACT_NOT_EXISTS = new ErrorCode(1_030_000_005, "绱ф�ヨ仈绯讳汉涓嶅瓨鍦�");
+    ErrorCode EMPLOYEE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_000_006, "瀵煎叆鍛樺伐鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode EMPLOYEE_DEPT_NAME_NOT_EXISTS = new ErrorCode(1_030_000_007, "閮ㄩ棬銆恵}銆戜笉瀛樺湪");
+    ErrorCode EMPLOYEE_POST_NAME_NOT_EXISTS = new ErrorCode(1_030_000_008, "宀椾綅銆恵}銆戜笉瀛樺湪");
+    ErrorCode EMPLOYEE_ROLE_NAME_NOT_EXISTS = new ErrorCode(1_030_000_009, "瑙掕壊銆恵}銆戜笉瀛樺湪");
+    ErrorCode EMPLOYEE_IMPORT_FIELD_REQUIRED = new ErrorCode(1_030_000_010, "瀵煎叆瀛楁銆恵}銆戜笉鑳戒负绌�");
+    ErrorCode EMPLOYEE_CONTRACT_NOT_EXISTS = new ErrorCode(1_030_000_011, "鍛樺伐鍚堝悓涓嶅瓨鍦�");
+    ErrorCode EMPLOYEE_CONTRACT_TERMINATE_REQUIRE_DATE_REASON = new ErrorCode(1_030_000_012, "瑙i櫎/缁堟鍚堝悓蹇呴』濉啓鏃ユ湡鍜屽師鍥�");
+    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, "璇峰亣鐢宠涓嶅瓨鍦�");
@@ -25,6 +40,12 @@
     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_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_001_007, "瀵煎叆璇峰亣鏁版嵁涓嶈兘涓虹┖");
+    ErrorCode LEAVE_APPLICATION_IMPORT_FIELD_REQUIRED = new ErrorCode(1_030_001_008, "瀵煎叆瀛楁銆恵}銆戜笉鑳戒负绌�");
+    ErrorCode LEAVE_APPLICATION_IMPORT_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_001_009, "鐢宠浜烘墜鏈哄彿銆恵}銆戞湭鎵惧埌鍛樺伐妗f锛岃鍏堢淮鎶ゅ憳宸ユ。妗�");
+    ErrorCode LEAVE_APPLICATION_IMPORT_EMPLOYEE_NO_USER = new ErrorCode(1_030_001_010, "鍛樺伐銆恵}銆戞湭鍏宠仈绯荤粺璐﹀彿锛屾棤娉曞垱寤鸿鍋囩敵璇凤紝璇峰厛鍦ㄣ�岀郴缁熺鐞�-鐢ㄦ埛绠$悊銆嶄腑缁戝畾璐﹀彿");
+    ErrorCode LEAVE_APPLICATION_IMPORT_TIME_INVALID = new ErrorCode(1_030_001_011, "寮�濮嬫椂闂淬�恵}銆戝繀椤绘棭浜庣粨鏉熸椂闂淬�恵}銆�");
+    ErrorCode LEAVE_APPLICATION_IMPORT_FIELD_INVALID = new ErrorCode(1_030_001_012, "瀵煎叆瀛楁銆恵}銆戠殑鍊笺�恵}銆戜笉鍚堟硶锛岃濉啓锛歿}");
 
     // ========== 璋冨矖鐢宠 1-030-002-000 ==========
     ErrorCode TRANSFER_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_002_000, "璋冨矖鐢宠涓嶅瓨鍦�");
@@ -35,6 +56,9 @@
     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_NO_DEPT = new ErrorCode(1_030_002_009, "鎵�閫夎皟宀椾汉鍛樸�寋}銆嶆湭璁剧疆鎵�灞為儴闂紝鏃犳硶鐢熸垚璋冨矖鐢宠锛岃鍏堝湪銆岀郴缁熺鐞�-鐢ㄦ埛绠$悊銆嶄腑涓哄叾璁剧疆閮ㄩ棬鍚庡啀璇�");
+    ErrorCode TRANSFER_APPLICATION_APPLICANT_NO_POST = new ErrorCode(1_030_002_010, "鎵�閫夎皟宀椾汉鍛樸�寋}銆嶆湭璁剧疆宀椾綅锛屾棤娉曠敓鎴愯皟宀楃敵璇凤紝璇峰厛鍦ㄣ�岀郴缁熺鐞�-鐢ㄦ埛绠$悊銆嶄腑涓哄叾璁剧疆宀椾綅鍚庡啀璇�");
 
     // ========== 绂昏亴鐢宠 1-030-003-000 ==========
     ErrorCode RESIGNATION_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_003_000, "绂昏亴鐢宠涓嶅瓨鍦�");
@@ -44,6 +68,23 @@
     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, "绂昏亴瀹℃壒娴佺▼涓嶅瓨鍦�");
+
+    // ========== 鍔犵彮鐢宠 1-030-008-000 ==========
+    ErrorCode OVERTIME_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_008_000, "鍔犵彮鐢宠涓嶅瓨鍦�");
+    ErrorCode OVERTIME_APPLICATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_008_001, "鍔犵彮鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+    ErrorCode OVERTIME_APPLICATION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_008_002, "鍔犵彮鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+    ErrorCode OVERTIME_APPLICATION_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_008_003, "鏇存柊鍔犵彮鐢宠瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
+    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_SELECTED_EMPLOYEE_NO_USER = new ErrorCode(1_030_008_008, "鎵�閫夊憳宸ャ�恵}銆戞湭鍏宠仈绯荤粺璐﹀彿锛屾棤娉曟彁浜ゅ姞鐝敵璇凤紝璇峰厛鍦ㄣ�岀郴缁熺鐞�-鐢ㄦ埛绠$悊銆嶄腑缁戝畾璐﹀彿");
+
+    // ========== 鐢ㄦ埛鏁版嵁浜ゆ帴 1-030-007-000 ==========
+    ErrorCode USER_HANDOVER_NOT_EXISTS = new ErrorCode(1_030_007_000, "鐢ㄦ埛浜ゆ帴璁板綍涓嶅瓨鍦�");
+    ErrorCode USER_HANDOVER_ALREADY_EXISTS = new ErrorCode(1_030_007_001, "璇ョ鑱岀敵璇峰凡瀛樺湪浜ゆ帴璁板綍");
+    ErrorCode USER_HANDOVER_FROM_USER_NOT_EXISTS = new ErrorCode(1_030_007_002, "浜ゆ帴婧愮敤鎴蜂笉瀛樺湪");
+    ErrorCode USER_HANDOVER_TO_USER_NOT_EXISTS = new ErrorCode(1_030_007_003, "浜ゆ帴鐩爣鐢ㄦ埛涓嶅瓨鍦�");
 
     // ========== 鑰冨嫟绠$悊 1-030-004-000 ==========
     ErrorCode ATTENDANCE_RECORD_NOT_EXISTS = new ErrorCode(1_030_004_000, "鑰冨嫟璁板綍涓嶅瓨鍦�");
@@ -56,6 +97,10 @@
     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_DATE_RANGE_INVALID = new ErrorCode(1_030_004_012, "鑺傚亣鏃ョ粨鏉熸棩鏈熶笉鑳芥棭浜庡紑濮嬫棩鏈�");
+    ErrorCode ATTENDANCE_HOLIDAY_RANGE_DATE_EXISTS = new ErrorCode(1_030_004_013, "鏃ユ湡銆恵}銆戝凡瀛樺湪鑺傚亣鏃ラ厤缃�恵}銆戯紝鏈鏈繚瀛橈紝璇峰厛鍒犻櫎璇ユ棩鏈熼厤缃垨鏀逛负缂栬緫");
+    ErrorCode ATTENDANCE_HOLIDAY_RANGE_IDS_EMPTY = new ErrorCode(1_030_004_014, "璇烽�夋嫨瑕佺紪杈戞垨鍒犻櫎鐨勮妭鍋囨棩鍖洪棿");
+    ErrorCode ATTENDANCE_HOLIDAY_RANGE_NOT_EXISTS = new ErrorCode(1_030_004_015, "閮ㄥ垎鑺傚亣鏃ラ厤缃凡涓嶅瓨鍦紙鍙兘宸茶鍒犻櫎锛夛紝璇峰埛鏂板垪琛ㄥ悗閲嶆柊鎿嶄綔");
     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, "鎵撳崱澶辫触锛屽綋鏃ヤ笉鏄伐浣滄棩");
@@ -63,6 +108,7 @@
     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_EXCEPTION_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_004_018, "鏂板鑰冨嫟寮傚父鐢宠澶辫触锛屽綋鍓嶇櫥褰曡处鍙凤紙{}锛夋湭鍏宠仈鍛樺伐妗f锛屾棤娉曠‘瀹氱敵璇蜂汉鍜岄儴闂ㄣ�傝浣跨敤宸插叧鑱斿憳宸ユ。妗堢殑璐﹀彿鐧诲綍锛屾垨鍏堝湪銆屽憳宸ユ。妗堛�嶄腑缁存姢褰撳墠璐﹀彿鍚庡啀鎻愪氦");
 
     // ========== 钖叕绠$悊 1-030-005-000 ==========
     ErrorCode SALARY_STRUCTURE_NOT_EXISTS = new ErrorCode(1_030_005_000, "钖叕缁撴瀯涓嶅瓨鍦�");
@@ -77,6 +123,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, "钖祫鍙戞斁鍙拌处宸插彂鏀撅紝璇峰嬁閲嶅鎿嶄綔");
@@ -90,5 +137,20 @@
     ErrorCode SALARY_PAYMENT_REVOKE_FAIL = new ErrorCode(1_030_005_022, "鎾ら攢鍙戞斁澶辫触锛屽師鍥狅細璇ユ槑缁嗘湭鍙戞斁");
     ErrorCode SALARY_PAYMENT_DELETE_FAIL = new ErrorCode(1_030_005_023, "鍒犻櫎澶辫触锛屽師鍥狅細浠呭緟鍙戞斁鐘舵�佸彲鍒犻櫎锛岃鍏堟挙閿�宸插彂鏀炬槑缁�");
     ErrorCode SALARY_PAYMENT_HAS_PAID_DETAIL = new ErrorCode(1_030_005_024, "鍒犻櫎澶辫触锛屽師鍥狅細瀛樺湪宸插彂鏀炬槑缁嗭紝璇峰厛鎾ら攢");
+    ErrorCode SALARY_STRUCTURE_NAME_EXISTS = new ErrorCode(1_030_005_025, "钖叕缁撴瀯鍚嶇О宸插瓨鍦�");
+    ErrorCode SALARY_STRUCTURE_IN_USE = new ErrorCode(1_030_005_026, "钖叕缁撴瀯姝e湪琚憳宸ヤ娇鐢紝鏃犳硶鍒犻櫎");
+    ErrorCode SOCIAL_SECURITY_SCHEME_DEPT_EXISTS = new ErrorCode(1_030_005_027, "閮ㄩ棬銆恵}銆戝凡缁戝畾鏂规銆恵}銆戯紝鏃犳硶鍐嶇粦瀹氬埌鏂规銆恵}銆戙�傝鍏堝湪鍘熸柟妗堜笂鍙栨秷璇ラ儴闂紝鎴栨敼閫夊叾瀹冮儴闂�");
+
+    // ========== 鐝绠$悊 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_EMPLOYEE_EMPTY = new ErrorCode(1_030_010_004, "鎵�閫夐儴闂ㄣ�恵}銆戜笅娌℃湁绗﹀悎鏉′欢鐨勫憳宸ワ紝璇锋鏌ラ儴闂ㄣ�佸矖浣嶅拰鍛樺伐鐘舵��");
 
 }

--
Gitblit v1.9.3