From 7d2ee3cef2e0d68ba6400bc5957640d2771bbf4c Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 18:05:40 +0800
Subject: [PATCH] refactor: 单据审核改为审批配置状态机(新增:audit接口/审核人字段/DB变更脚本)
---
yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java | 69 +++++++++++++++++++++++++++++-----
1 files changed, 59 insertions(+), 10 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 cc22b35..7649438 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,34 +16,48 @@
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 HRM_CERTIFICATE_NOT_EXISTS = new ErrorCode(1_030_000_016, "璇佷功璧勮川涓嶅瓨鍦�");
+ ErrorCode HRM_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_030_000_017, "鍛樺伐涓嶅瓨鍦�");
// ========== 璇峰亣鐢宠 1-030-001-000 ==========
ErrorCode LEAVE_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_001_000, "璇峰亣鐢宠涓嶅瓨鍦�");
ErrorCode LEAVE_APPLICATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_001_001, "璇峰亣鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
- ErrorCode LEAVE_APPLICATION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_001_002, "璇峰亣鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode LEAVE_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_001_002, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑璇峰亣鐢宠鎵嶈兘鎻愪氦瀹℃壒");
ErrorCode LEAVE_APPLICATION_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_001_003, "鏇存柊璇峰亣鐢宠瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
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_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_001_006, "鍙湁瀹℃壒涓姸鎬佺殑璇峰亣鐢宠鎵嶈兘瀹℃牳");
+ ErrorCode LEAVE_APPLICATION_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_001_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
// ========== 璋冨矖鐢宠 1-030-002-000 ==========
ErrorCode TRANSFER_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_002_000, "璋冨矖鐢宠涓嶅瓨鍦�");
ErrorCode TRANSFER_APPLICATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_002_001, "璋冨矖鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
- ErrorCode TRANSFER_APPLICATION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_002_002, "璋冨矖鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
- ErrorCode TRANSFER_APPLICATION_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_002_003, "鏇存柊璋冨矖鐢宠瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
+ ErrorCode TRANSFER_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_002_002, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑璋冨矖鐢宠鎵嶈兘鎻愪氦瀹℃壒");
ErrorCode TRANSFER_APPLICATION_NO_EXISTS = new ErrorCode(1_030_002_004, "鐢熸垚璋冨矖鐢宠鍗曞彿閲嶅锛岃閲嶈瘯");
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_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_002_008, "鍙湁瀹℃壒涓姸鎬佺殑璋冨矖鐢宠鎵嶈兘瀹℃牳");
+ ErrorCode TRANSFER_APPLICATION_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_002_009, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
// ========== 绂昏亴鐢宠 1-030-003-000 ==========
ErrorCode RESIGNATION_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_003_000, "绂昏亴鐢宠涓嶅瓨鍦�");
ErrorCode RESIGNATION_APPLICATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_003_001, "绂昏亴鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
- ErrorCode RESIGNATION_APPLICATION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_003_002, "绂昏亴鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode RESIGNATION_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_003_002, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑绂昏亴鐢宠鎵嶈兘鎻愪氦瀹℃壒");
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_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_003_006, "鍙湁瀹℃壒涓姸鎬佺殑绂昏亴鐢宠鎵嶈兘瀹℃牳");
+ ErrorCode RESIGNATION_APPLICATION_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_003_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
// ========== 鐢ㄦ埛鏁版嵁浜ゆ帴 1-030-007-000 ==========
ErrorCode USER_HANDOVER_NOT_EXISTS = new ErrorCode(1_030_007_000, "鐢ㄦ埛浜ゆ帴璁板綍涓嶅瓨鍦�");
@@ -56,7 +70,9 @@
ErrorCode ATTENDANCE_RECORD_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_030_004_001, "瀵煎叆鑰冨嫟鏁版嵁涓嶈兘涓虹┖");
ErrorCode ATTENDANCE_RECORD_EXISTS = new ErrorCode(1_030_004_002, "璇ュ憳宸ュ綋鏃ヨ�冨嫟璁板綍宸插瓨鍦�");
ErrorCode ATTENDANCE_EXCEPTION_NOT_EXISTS = new ErrorCode(1_030_004_003, "鑰冨嫟寮傚父鐢宠涓嶅瓨鍦�");
- ErrorCode ATTENDANCE_EXCEPTION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_004, "鑰冨嫟寮傚父鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode ATTENDANCE_EXCEPTION_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_004_004, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑鑰冨嫟寮傚父鐢宠鎵嶈兘鎻愪氦瀹℃壒");
+ ErrorCode ATTENDANCE_EXCEPTION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_017, "鑰冨嫟寮傚父鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode ATTENDANCE_EXCEPTION_DELETE_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_018, "鑰冨嫟寮傚父鐢宠鍒犻櫎澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
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, "璇ラ儴闂ㄥ凡閰嶇疆鑰冨嫟瑙勫垯");
@@ -66,9 +82,22 @@
ErrorCode ATTENDANCE_CLOCK_FAIL_HOLIDAY = new ErrorCode(1_030_004_011, "鎵撳崱澶辫触锛屽綋鏃ヤ负浼戞伅鏃�");
ErrorCode ATTENDANCE_CLOCK_FAIL_NOT_WORKDAY = new ErrorCode(1_030_004_012, "鎵撳崱澶辫触锛屽綋鏃ヤ笉鏄伐浣滄棩");
ErrorCode ATTENDANCE_SUMMARY_NOT_EXISTS = new ErrorCode(1_030_004_013, "鑰冨嫟姹囨�昏褰曚笉瀛樺湪");
- 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_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_004_019, "鍙湁瀹℃壒涓姸鎬佺殑鑰冨嫟寮傚父鐢宠鎵嶈兘瀹℃牳");
+ ErrorCode ATTENDANCE_EXCEPTION_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_004_020, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+
+ // ========== 缁╂晥鑰冩牳 1-030-008-000 ==========
+ ErrorCode PERFORMANCE_APPRAISE_NOT_EXISTS = new ErrorCode(1_030_008_000, "缁╂晥鑰冩牳鏂规涓嶅瓨鍦�");
+ ErrorCode PERFORMANCE_APPRAISE_ITEM_NOT_EXISTS = new ErrorCode(1_030_008_001, "鑰冩牳鎸囨爣涓嶅瓨鍦�");
+ ErrorCode PERFORMANCE_APPRAISE_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_008_002, "缁╂晥鑰冩牳鏂规鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode PERFORMANCE_APPRAISE_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_008_003, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑缁╂晥鑰冩牳鏂规鎵嶈兘鎻愪氦瀹℃壒");
+ ErrorCode PERFORMANCE_APPRAISE_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_008_004, "鍙湁瀹℃壒涓姸鎬佺殑缁╂晥鑰冩牳鏂规鎵嶈兘瀹℃牳");
+ ErrorCode PERFORMANCE_APPRAISE_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_008_005, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+ ErrorCode PERFORMANCE_APPRAISE_ITEM_EMPTY = new ErrorCode(1_030_008_006, "鑰冩牳鎸囨爣涓嶈兘涓虹┖");
+ ErrorCode PERFORMANCE_APPRAISE_RESULT_NOT_EXISTS = new ErrorCode(1_030_008_007, "鑰冩牳缁撴灉涓嶅瓨鍦�");
+ ErrorCode PERFORMANCE_APPRAISE_RESULT_ITEM_NOT_EXISTS = new ErrorCode(1_030_008_008, "鑰冩牳鎸囨爣璇勫垎涓嶅瓨鍦�");
+ ErrorCode PERFORMANCE_APPRAISE_SCORE_FAIL_STATUS = new ErrorCode(1_030_008_009, "璇勫垎澶辫触锛屽師鍥狅細鏂规涓嶆槸宸插彂甯�/杩涜涓姸鎬�");
+ ErrorCode PERFORMANCE_APPRAISE_SCOPE_TEAM_EMPTY = new ErrorCode(1_030_008_010, "鎸囧畾鐝粍涓虹┖锛屾棤娉曠敓鎴愯鑰冩牳浜�");
// ========== 钖叕绠$悊 1-030-005-000 ==========
ErrorCode SALARY_STRUCTURE_NOT_EXISTS = new ErrorCode(1_030_005_000, "钖叕缁撴瀯涓嶅瓨鍦�");
@@ -97,4 +126,24 @@
ErrorCode SALARY_PAYMENT_DELETE_FAIL = new ErrorCode(1_030_005_023, "鍒犻櫎澶辫触锛屽師鍥狅細浠呭緟鍙戞斁鐘舵�佸彲鍒犻櫎锛岃鍏堟挙閿�宸插彂鏀炬槑缁�");
ErrorCode SALARY_PAYMENT_HAS_PAID_DETAIL = new ErrorCode(1_030_005_024, "鍒犻櫎澶辫触锛屽師鍥狅細瀛樺湪宸插彂鏀炬槑缁嗭紝璇峰厛鎾ら攢");
+ // ========== 杞鐢宠 1-030-006-000 ==========
+ ErrorCode REGULARIZE_APPLICATION_NOT_EXISTS = new ErrorCode(1_030_006_000, "杞鐢宠涓嶅瓨鍦�");
+ ErrorCode REGULARIZE_APPLICATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_006_001, "杞鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+ ErrorCode REGULARIZE_APPLICATION_SUBMIT_FAIL_NOT_EDITABLE = new ErrorCode(1_030_006_002, "鍙湁鑽夌鎴栧鏍镐笉閫氳繃鐘舵�佺殑杞鐢宠鎵嶈兘鎻愪氦瀹℃壒");
+ ErrorCode REGULARIZE_APPLICATION_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_030_006_003, "鏇存柊杞鐢宠瀹℃壒鐘舵�佸け璐ワ紝鍘熷洜锛氫笉鏄鎵逛腑鐘舵��");
+ ErrorCode REGULARIZE_APPLICATION_NO_EXISTS = new ErrorCode(1_030_006_004, "鐢熸垚杞鐢宠鍗曞彿閲嶅锛岃閲嶈瘯");
+ ErrorCode REGULARIZE_APPLICATION_EXISTS = new ErrorCode(1_030_006_005, "璇ュ憳宸ュ凡瀛樺湪杞鐢宠锛岃鍕块噸澶嶆彁浜�");
+ ErrorCode REGULARIZE_APPLICATION_AUDIT_FAIL_NOT_PROCESS = new ErrorCode(1_030_006_006, "鍙湁瀹℃壒涓姸鎬佺殑杞鐢宠鎵嶈兘瀹℃牳");
+ ErrorCode REGULARIZE_APPLICATION_AUDIT_REJECT_REASON_REQUIRED = new ErrorCode(1_030_006_007, "瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜");
+
+ // ========== 鍩硅绠$悊 1-030-009-000 ==========
+ ErrorCode TRAINING_NOT_EXISTS = new ErrorCode(1_030_009_000, "鍩硅娲诲姩涓嶅瓨鍦�");
+ ErrorCode TRAINING_PARTICIPANT_NOT_EXISTS = new ErrorCode(1_030_009_001, "鍩硅鍙傝浜哄憳涓嶅瓨鍦�");
+ ErrorCode TRAINING_EMPLOYEE_LIST_EMPTY = new ErrorCode(1_030_009_002, "璇烽�夋嫨鍙傝鍛樺伐");
+ ErrorCode TRAINING_CERT_VALIDITY_REQUIRED = new ErrorCode(1_030_009_003, "鍚敤鑷姩鍙戣瘉鏃跺繀椤诲~鍐欒瘉涔︽湁鏁堟湡锛堟湀锛�");
+ ErrorCode TRAINING_CERT_TYPE_NOT_SUPPORT = new ErrorCode(1_030_009_004, "浠呭畨鍏ㄥ煿璁�/鎶�鑳藉煿璁敮鎸佽嚜鍔ㄥ彂璇�");
+ ErrorCode TRAINING_LOCKED = new ErrorCode(1_030_009_005, "鍩硅宸插畬鎴愭垨宸插彇娑堬紝涓嶅彲淇敼");
+ ErrorCode TRAINING_COMPLETE_FAIL_STATUS = new ErrorCode(1_030_009_006, "鍩硅瀹屾垚鎿嶄綔澶辫触锛屽師鍥狅細浠呰崏绋�/寰呭紑灞曠姸鎬佸彲瀹屾垚");
+ ErrorCode TRAINING_PARTICIPANT_EXISTS = new ErrorCode(1_030_009_007, "璇ュ憳宸ュ凡鍦ㄦ湰娆″煿璁弬璁悕鍗曚腑锛岃鍕块噸澶嶆坊鍔�");
+
}
--
Gitblit v1.9.3