From c41453da216df0e5c01a9d319544c88446e22b66 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 26 八月 2026 10:51:47 +0800
Subject: [PATCH] fix(approve): 修复审批模板更新时的引用检查逻辑

---
 src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
index 9a5f0b8..fa049f1 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalTemplateServiceImpl.java
@@ -85,8 +85,8 @@
 
     @Override
     public Boolean updateApprovalTemplateDto(ApprovalTemplateDto approvalTemplateDto) {
-        // 妫�鏌ユā鏉挎槸鍚﹁瀹℃壒瀹炰緥寮曠敤
-        if (isTemplateReferenced(approvalTemplateDto.getId())) {
+        // 妫�鏌ユā鏉挎槸鍚﹁杩涜涓殑瀹℃壒瀹炰緥寮曠敤
+        if (hasPendingReference(approvalTemplateDto.getId())) {
             throw new RuntimeException("璇ュ鎵规ā鏉垮凡琚鎵规祦绋嬪紩鐢紝鏃犳硶缂栬緫");
         }
         approvalTemplateMapper.updateById(approvalTemplateDto);
@@ -305,4 +305,17 @@
         );
         return count != null && count > 0;
     }
+
+    private boolean hasPendingReference(Long templateId) {
+        if (templateId == null) {
+            return false;
+        }
+        Long count = approvalInstanceMapper.selectCount(
+                new LambdaQueryWrapper<ApprovalInstance>()
+                        .eq(ApprovalInstance::getTemplateId, templateId)
+                        .eq(ApprovalInstance::getDeleted, 0)
+                        .eq(ApprovalInstance::getStatus, "PENDING")
+        );
+        return count != null && count > 0;
+    }
 }

--
Gitblit v1.9.3