From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
index fa1c157..1afad6a 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/enums/ErrorCodeConstants.java
@@ -19,6 +19,7 @@
     ErrorCode CONTRACT_GENERATE_ORDER_FAIL_NOT_APPROVE = new ErrorCode(1_020_000_006, "鐢熸垚閿�鍞鍗曞け璐ワ紝鍘熷洜锛氬悎鍚屾湭瀹℃壒閫氳繃");
     ErrorCode CONTRACT_GENERATE_ORDER_FAIL_EXISTS_ORDER = new ErrorCode(1_020_000_007, "鐢熸垚閿�鍞鍗曞け璐ワ紝鍘熷洜锛氬凡鍏宠仈閿�鍞鍗曘�恵}銆�");
     ErrorCode CONTRACT_GENERATE_ORDER_FAIL_NO_PRODUCT = new ErrorCode(1_020_000_008, "鐢熸垚閿�鍞鍗曞け璐ワ紝鍘熷洜锛氬悎鍚屾病鏈変骇鍝佷俊鎭�");
+    ErrorCode CONTRACT_BPM_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1_020_000_009, "鍚堝悓瀹℃壒娴佺▼涓嶅瓨鍦ㄦ垨鏈縺娲伙紝璇锋鏌� BPM 閰嶇疆");
 
     // ========== 绾跨储绠$悊 1-020-001-000 ==========
     ErrorCode CLUE_NOT_EXISTS = new ErrorCode(1_020_001_000, "绾跨储涓嶅瓨鍦�");
@@ -46,6 +47,13 @@
     ErrorCode RECEIVABLE_CREATE_FAIL_CONTRACT_NOT_APPROVE = new ErrorCode(1_020_004_006, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍚堝悓涓嶆槸瀹℃牳閫氳繃鐘舵��");
     ErrorCode RECEIVABLE_CREATE_FAIL_PRICE_EXCEEDS_LIMIT = new ErrorCode(1_020_004_007, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍥炴閲戦瓒呭嚭鍚堝悓閲戦锛岀洰鍓嶅墿浣欏彲閫�锛歿} 鍏�");
     ErrorCode RECEIVABLE_DELETE_FAIL_IS_APPROVE = new ErrorCode(1_020_004_008, "鍒犻櫎鍥炴澶辫触锛屽師鍥狅細鍥炴瀹℃壒宸查�氳繃");
+    ErrorCode RECEIVABLE_APPROVE_FAIL = new ErrorCode(1_020_004_009, "瀹℃牳澶辫触锛屽彧鏈夋湭瀹℃牳鐨勫洖娆炬墠鑳藉鏍�");
+    ErrorCode RECEIVABLE_PROCESS_FAIL = new ErrorCode(1_020_004_010, "鍙嶅鏍稿け璐ワ紝鍙湁宸插鏍哥殑鍥炴鎵嶈兘鍙嶅鏍�");
+    ErrorCode RECEIVABLE_ITEM_BIZ_TYPE_INVALID = new ErrorCode(1_020_004_011, "鏍搁攢鏄庣粏鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛岀殑涓氬姟绫诲瀷[{}]涓嶆纭紝鍙�� 20閿�鍞鍗曘��21閿�鍞嚭搴撱��23寮�绁ㄣ�傝閲嶆柊閫夋嫨");
+    ErrorCode RECEIVABLE_ITEM_BIZ_NOT_EXISTS = new ErrorCode(1_020_004_012, "鏍搁攢鏄庣粏鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛岄�夋嫨鐨剓}[{}]涓嶅瓨鍦ㄣ�傝閲嶆柊閫夋嫨鍏宠仈鍗曟嵁");
+    ErrorCode RECEIVABLE_ITEM_PRICE_INVALID = new ErrorCode(1_020_004_013, "鏍搁攢鏄庣粏鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛寋}[{}]鐨勬湰娆℃牳閿�閲戦涓� {}锛屽繀椤诲ぇ浜� 0銆傝淇敼璇ヨ鏍搁攢閲戦");
+    ErrorCode RECEIVABLE_ITEM_SUM_MISMATCH = new ErrorCode(1_020_004_014, "鏍搁攢鏄庣粏鏍¢獙澶辫触锛屽師鍥狅細鏍搁攢鏄庣粏鍚堣 {} 鍏冿紝涓庡洖娆鹃噾棰� {} 鍏冧笉涓�鑷淬�傝璋冩暣鏄庣粏閲戦锛屼娇涓よ�呯浉绛�");
+    ErrorCode RECEIVABLE_ITEM_PRICE_EXCEEDS = new ErrorCode(1_020_004_015, "鏍搁攢鏄庣粏鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛寋}[{}]鏈鏍搁攢 {} 鍏冿紝瓒呭嚭璇ュ崟鎹墿浣欏簲鏀� {} 鍏冿紙搴旀敹 {} 鍏冿紝宸叉牳閿� {} 鍏冿級銆傝璋冨皬璇ヨ閲戦锛屾垨鏀归�夊叾浠栧崟鎹�");
 
     // ========== 鍥炴璁″垝 1-020-005-000 ==========
     ErrorCode RECEIVABLE_PLAN_NOT_EXISTS = new ErrorCode(1_020_005_000, "鍥炴璁″垝涓嶅瓨鍦�");
@@ -109,4 +117,48 @@
 
     // ========== 鏁版嵁缁熻 1_020_014_000 ==========
 
+    // ========== 閿�鍞姤浠� 1_020_015_000 ==========
+    ErrorCode SALE_QUOTATION_NOT_EXISTS = new ErrorCode(1_020_015_000, "閿�鍞姤浠峰崟涓嶅瓨鍦�");
+    ErrorCode SALE_QUOTATION_NO_EXISTS = new ErrorCode(1_020_015_001, "鎶ヤ环鍗曞彿銆恵}銆戝凡琚崰鐢紝涓嶈兘閲嶅浣跨敤銆傝鎹竴涓紪鍙凤紝鎴栨竻绌虹紪鍙风敱绯荤粺鑷姩鐢熸垚锛堝凡鍒犻櫎鐨勬姤浠峰崟涔熶細鍗犵敤鍏跺師缂栧彿锛�");
+    ErrorCode SALE_QUOTATION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_002, "閿�鍞姤浠峰崟({})涓嶆槸鑽夌鐘舵�侊紝鏃犳硶淇敼");
+    ErrorCode SALE_QUOTATION_DELETE_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_003, "閿�鍞姤浠峰崟({})涓嶆槸鑽夌鐘舵�侊紝鏃犳硶鍒犻櫎");
+    ErrorCode SALE_QUOTATION_CONVERT_FAIL_NOT_DRAFT = new ErrorCode(1_020_015_004, "閿�鍞姤浠峰崟({})涓嶆槸鑽夌鐘舵�侊紝鏃犳硶杞悎鍚�");
+    ErrorCode SALE_QUOTATION_ITEM_NOT_EXISTS = new ErrorCode(1_020_015_005, "鐗╂枡涓嶅瓨鍦ㄦ垨鏈惎鐢�");
+    ErrorCode SALE_QUOTATION_CONTRACT_EXISTS = new ErrorCode(1_020_015_006, "閿�鍞姤浠峰崟宸茶浆鍚堝悓锛岃鍕块噸澶嶆搷浣�");
+
+    // ========== 寮�绁� 1_020_016_000 ==========
+    ErrorCode INVOICE_NOT_EXISTS = new ErrorCode(1_020_016_000, "寮�绁ㄤ笉瀛樺湪");
+    ErrorCode INVOICE_NO_EXISTS = new ErrorCode(1_020_016_001, "鐢熸垚寮�绁ㄥ簭鍒楀彿閲嶅锛岃閲嶈瘯");
+    ErrorCode INVOICE_UPDATE_FAIL_EDITING_PROHIBITED = new ErrorCode(1_020_016_002, "鏇存柊寮�绁ㄥけ璐ワ細褰撳墠鐘舵�佷负銆恵}銆戯紝浠呮湭鎻愪氦銆佸鎵逛腑鐨勫紑绁ㄥ崟鍏佽缂栬緫");
+    ErrorCode INVOICE_DELETE_FAIL_IS_APPROVE = new ErrorCode(1_020_016_003, "鍒犻櫎寮�绁ㄥけ璐ワ紝鍘熷洜锛氬紑绁ㄥ鎵瑰凡閫氳繃");
+    ErrorCode INVOICE_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_020_016_004, "寮�绁ㄦ彁浜ゅ鏍稿け璐ワ紝鍘熷洜锛氬紑绁ㄦ病澶勫湪鏈彁浜ょ姸鎬�");
+    ErrorCode INVOICE_UPDATE_AUDIT_STATUS_FAIL_NOT_PROCESS = new ErrorCode(1_020_016_005, "鏇存柊寮�绁ㄥ鏍哥姸鎬佸け璐ワ紝鍘熷洜锛氬紑绁ㄤ笉鏄鏍镐腑鐘舵��");
+    ErrorCode INVOICE_CREATE_FAIL_CONTRACT_NOT_APPROVE = new ErrorCode(1_020_016_006, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬悎鍚屼笉鏄鏍搁�氳繃鐘舵��");
+    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_LIMIT = new ErrorCode(1_020_016_007, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬紑绁ㄩ噾棰濊秴鍑哄悎鍚岄噾棰濓紝鐩墠鍙紑绁細{} 鍏�");
+    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_EXISTS = new ErrorCode(1_020_016_008, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍏宠仈鐨勫紑绁ㄤ笉瀛樺湪");
+    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_APPROVE = new ErrorCode(1_020_016_009, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍏宠仈鐨勫紑绁ㄤ笉鏄鎵归�氳繃鐘舵��");
+    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_NOT_ATTACHMENT = new ErrorCode(1_020_016_010, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍏宠仈鐨勫紑绁ㄦ湭涓婁紶鍙戠エ闄勪欢");
+    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_CONTRACT_MISMATCH = new ErrorCode(1_020_016_011, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍏宠仈鐨勫紑绁ㄤ笌鎵�閫夊悎鍚屼笉鍖归厤");
+    ErrorCode RECEIVABLE_CREATE_FAIL_INVOICE_PRICE_EXCEEDS = new ErrorCode(1_020_016_012, "鍒涘缓鍥炴澶辫触锛屽師鍥狅細鍥炴閲戦瓒呭嚭璇ュ紑绁ㄥ墿浣欏彲鍥炴閲戦锛岀洰鍓嶅彲鍥炴锛歿} 鍏�");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_NOT_EXISTS = new ErrorCode(1_020_016_013, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氶攢鍞鍗昜{}]涓嶅瓨鍦ㄣ�傝鍦ㄥ紑绁ㄥ崟閫夋嫨宸插鏍哥殑閿�鍞鍗曪紝鎴栧厛鍒般�岄攢鍞鍗曘�嶄腑鍒涘缓骞跺鏍歌璁㈠崟");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_NOT_APPROVE = new ErrorCode(1_020_016_014, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氶攢鍞鍗昜{}]褰撳墠鐘舵�佷负銆恵}銆戯紝鍙湁銆屽凡瀹℃牳銆嶇殑閿�鍞鍗曟墠鑳藉紑绁ㄣ�傝鍏堝畬鎴愯璁㈠崟瀹℃牳锛屾垨鏀归�夊叾浠栧凡瀹℃牳璁㈠崟");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_ORDER_MISMATCH = new ErrorCode(1_020_016_015, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氶攢鍞鍗昜{}]鐨勫鎴锋垨鍚堝悓涓庡綋鍓嶅紑绁ㄥ崟涓嶄竴鑷达紙璁㈠崟瀹㈡埛={}銆佽鍗曞悎鍚�={}锛涘紑绁ㄥ鎴�={}銆佸紑绁ㄥ悎鍚�={}锛夈�傝鏀归�変笌褰撳墠鍚堝悓銆佸鎴蜂竴鑷寸殑閿�鍞鍗�");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_NOT_EXISTS = new ErrorCode(1_020_016_016, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬嚭搴撳崟(ID={})涓嶅瓨鍦ㄦ垨宸插垹闄ゃ�傝閲嶆柊閫夋嫨璇ラ攢鍞鍗曚笅鐨勫嚭搴撳崟");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_NOT_FINISHED = new ErrorCode(1_020_016_017, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬嚭搴撳崟[{}]褰撳墠鐘舵�佷负銆恵}銆戯紝鍙湁銆屽凡瀹屾垚銆嶇殑鍑哄簱鍗曟墠鑳藉紑绁ㄣ�傝绛夊緟鍑哄簱瀹屾垚鍚庡啀寮�绁紝鎴栨敼閫夊叾浠栧凡瀹屾垚鍑哄簱鍗�");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_MISMATCH_ORDER = new ErrorCode(1_020_016_018, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬嚭搴撳崟[{}]涓嶅睘浜庢墍閫夐攢鍞鍗昜{}]锛堝嚭搴撳崟瀹為檯璁㈠崟={}锛夈�傝鏀归�夎閿�鍞鍗曚笅鐨勫嚭搴撳崟");
+    ErrorCode INVOICE_CREATE_FAIL_SALE_OUT_MISMATCH_CUSTOMER = new ErrorCode(1_020_016_019, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬嚭搴撳崟[{}]鐨勫鎴�(ID={})涓庡紑绁ㄥ鎴�(ID={})涓嶄竴鑷淬�傝鏀归�夊綋鍓嶅鎴峰悕涓嬬殑鍑哄簱鍗�");
+    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_SALE_ORDER = new ErrorCode(1_020_016_020, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬紑绁ㄩ噾棰濊秴鍑洪攢鍞鍗昜{}]鍓╀綑鍙紑绁ㄩ噾棰� {} 鍏冿紙璁㈠崟閲戦 {} 鍏冿紝宸插紑绁� {} 鍏冿級銆傝璋冩暣寮�绁ㄩ噾棰濓紝鎴栧厛鏍稿宸插紑绁ㄩ噾棰�");
+    ErrorCode INVOICE_CREATE_FAIL_PRICE_EXCEEDS_SALE_OUT = new ErrorCode(1_020_016_021, "鍒涘缓寮�绁ㄥけ璐ワ紝鍘熷洜锛氬紑绁ㄩ噾棰濊秴鍑哄嚭搴撳崟[{}]鍓╀綑鍙紑绁ㄩ噾棰� {} 鍏冿紙鍑哄簱閲戦 {} 鍏冿紝宸插紑绁� {} 鍏冿級銆傝璋冩暣寮�绁ㄩ噾棰濓紝鎴栨敼閫夊叾浠栧嚭搴撳崟");
+    ErrorCode INVOICE_ENTRY_FAIL_NOT_APPROVE = new ErrorCode(1_020_016_022, "褰曞叆鍙戠エ澶辫触锛屽師鍥狅細寮�绁ㄥ崟[{}]褰撳墠瀹℃壒鐘舵�佷负銆恵}銆戯紝鍙湁銆屽鎵归�氳繃銆嶇殑寮�绁ㄧ敵璇锋墠鑳藉綍鍏ュ彂绁ㄣ�傝鍏堝畬鎴愬紑绁ㄧ敵璇峰鎵�");
+    ErrorCode INVOICE_ENTRY_FAIL_INVOICE_NO_EXISTS = new ErrorCode(1_020_016_023, "褰曞叆鍙戠エ澶辫触锛屽師鍥狅細鍙戠エ鍙风爜[{}]宸茶寮�绁ㄥ崟[{}]浣跨敤銆傝鏍稿鍙戠エ鍙风爜锛屾垨鍒拌寮�绁ㄥ崟涓煡鐪�");
+    ErrorCode INVOICE_PAYMENT_NODE_INVALID = new ErrorCode(1_020_016_024, "鏀舵鑺傜偣鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛岄樁娈礫{}]鐨勯噾棰濅负 {}锛屽繀椤诲ぇ浜� 0銆傝淇敼璇ヨ妭鐐归噾棰�");
+    ErrorCode INVOICE_PAYMENT_NODE_TIME_REQUIRED = new ErrorCode(1_020_016_025, "鏀舵鑺傜偣鏍¢獙澶辫触锛屽師鍥狅細闃舵[{}]鏈�夋嫨璁″垝鍥炴鏃堕棿銆傝涓鸿鑺傜偣閫夋嫨鏃堕棿鑺傜偣");
+    ErrorCode INVOICE_PAYMENT_NODE_STAGE_INVALID = new ErrorCode(1_020_016_026, "鏀舵鑺傜偣鏍¢獙澶辫触锛屽師鍥狅細绗� {} 琛岀殑闃舵鍊糩{}]涓嶆纭紝鍙�� 1鍚堝悓娆俱��2棰勪粯娆俱��3鍒拌揣娆俱��4楠屾敹娆俱��5璐ㄤ繚閲戙�傝閲嶆柊閫夋嫨");
+    ErrorCode INVOICE_PAYMENT_NODE_STAGE_DUPLICATE = new ErrorCode(1_020_016_027, "鏀舵鑺傜偣鏍¢獙澶辫触锛屽師鍥狅細闃舵[{}]閲嶅鍑虹幇銆傚悓涓�闃舵鍙兘濉啓涓�涓妭鐐癸紝璇峰悎骞舵垨鍒犻櫎閲嶅琛�");
+    ErrorCode INVOICE_PAYMENT_NODE_ALREADY_RECEIPTED = new ErrorCode(1_020_016_028, "淇濆瓨鏀舵鑺傜偣澶辫触锛屽師鍥狅細闃舵[{}]宸叉湁鍥炴璁板綍锛堝凡鍥炴 {} 鍏冿級锛屼笉鑳藉垹闄ゆ垨淇敼銆傝鍏堝湪銆屽洖娆剧鐞嗐�嶄腑鍒犻櫎瀵瑰簲鍥炴锛屾垨淇濈暀璇ヨ妭鐐�");
+
+    ErrorCode CRM_SALES_TARGET_NOT_EXISTS = new ErrorCode(1_020_017_000, "閿�鍞洰鏍囦笉瀛樺湪");
+    ErrorCode CRM_SALES_TARGET_PERIOD_VALUE_INVALID = new ErrorCode(1_020_017_001, "鍛ㄦ湡鍊笺�恵}銆戞牸寮忎笉姝g‘锛屽簲涓� {}");
+    ErrorCode CRM_SALES_TARGET_DIMENSION_TARGET_MISSING = new ErrorCode(1_020_017_002, "璇峰~鍐欑洰鏍噞}缂栧彿");
+
 }

--
Gitblit v1.9.3