From 24984ff670fcce16322aa8c2460f93307ddc3f9a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 13 十月 2026 15:15:06 +0800
Subject: [PATCH] test(invoice): 优化开票编辑状态验证逻辑并添加测试

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
index 33adf57..e805567 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/invoice/CrmInvoiceServiceImpl.java
@@ -402,15 +402,17 @@
         CrmInvoiceDO oldInvoice = validateInvoiceExists(updateReqVO.getId());
         updateReqVO.setOwnerUserId(oldInvoice.getOwnerUserId()).setCustomerId(oldInvoice.getCustomerId())
                 .setContractId(oldInvoice.getContractId()); // 璁剧疆宸插瓨鍦ㄧ殑鍊�
-        // 1.2 鏍¢獙鍙紑绁ㄩ噾棰濊秴杩囦笂闄�
-        validateInvoicePriceExceedsLimit(updateReqVO);
-
-        // 1.3 鍙湁鑽夌銆佸鎵逛腑锛屽彲浠ョ紪杈戯紱
-        if (!ObjectUtils.equalsAny(oldInvoice.getAuditStatus(), CrmAuditStatusEnum.DRAFT.getStatus(),
+        // 1.2 鍏嶅鎵规椂涓嶉檺鍒剁紪杈戠姸鎬侊紱姝e父瀹℃壒浠呰崏绋裤�佸鎵逛腑鍙互缂栬緫銆�
+        if (!bpmProcessInstanceApi.isGlobalAutoApprove()
+                && !ObjectUtils.equalsAny(oldInvoice.getAuditStatus(), CrmAuditStatusEnum.DRAFT.getStatus(),
                 CrmAuditStatusEnum.PROCESS.getStatus())) {
-            throw exception(INVOICE_UPDATE_FAIL_EDITING_PROHIBITED);
+            throw exception(INVOICE_UPDATE_FAIL_EDITING_PROHIBITED,
+                    StrUtil.blankToDefault(CrmAuditStatusEnum.getNameByStatus(oldInvoice.getAuditStatus()), "鏈煡鐘舵��"));
         }
 
+        // 1.3 鏍¢獙鍙紑绁ㄩ噾棰濊秴杩囦笂闄�
+        validateInvoicePriceExceedsLimit(updateReqVO);
+
         // 2. 鏇存柊寮�绁�
         CrmInvoiceDO updateObj = BeanUtils.toBean(updateReqVO, CrmInvoiceDO.class);
         invoiceMapper.updateById(updateObj);

--
Gitblit v1.9.3