From af0d2a46cd8a995c0f5b2d7f3cfc0ea8aeb69fdd Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@local>
Date: 星期二, 03 十一月 2026 17:25:49 +0800
Subject: [PATCH] feat(srm): 北方科技供应商准入改为免协同审批

---
 yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessAutoApproveController.java |   10 ++++-
 yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java                          |    5 ++
 yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/apply/SrmSupplierApplyServiceImpl.java                   |    7 ++-
 sql/mysql/bfkj_supplier_apply_auto_approve.sql                                                                              |   37 ++++++++++++++++++
 yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java                              |   11 +++++
 5 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/sql/mysql/bfkj_supplier_apply_auto_approve.sql b/sql/mysql/bfkj_supplier_apply_auto_approve.sql
new file mode 100644
index 0000000..f844e42
--- /dev/null
+++ b/sql/mysql/bfkj_supplier_apply_auto_approve.sql
@@ -0,0 +1,37 @@
+-- =====================================================================
+-- 鍖楁柟绉戞妧锛氫緵搴斿晢鍑嗗叆鏀逛负銆屼笉璧板崗鍚屽鎵广��
+--
+-- 鑳屾櫙锛�
+--   鍘熸祦绋嬫槸銆屽噯鍏ョ敵璇� 鈫� 鎻愪氦 鈫� 閫夊崗鍚屽姙鍏鎵规祦绋� 鈫� 閲囪喘/璐ㄩ噺/璐㈠姟涓夌骇瀹℃壒
+--   鈫� 閫氳繃鍚庢墠鐢熸垚渚涘簲鍟嗐�嶃�傚鎴疯姹傚噯鍏ヤ笉鍐嶈蛋鍗忓悓瀹℃壒銆�
+--
+-- 瀹炵幇锛�
+--   BPM 鍏嶅鎵归厤缃〃閲屾敮鎸併�屽叏灞�鎬诲紑鍏炽�嶄笌銆屾寜娴佺▼鍗曠嫭寮�鍏炽�嶄袱绉嶇矑搴︼紝
+--   鍚庣 submitApply 宸叉敼涓虹敤 isAutoApprove(processDefinitionKey) 鍒ゆ柇锛�
+--   杩欓噷鍙墦寮�渚涘簲鍟嗗噯鍏ヨ繖涓�涓祦绋嬬殑鍏嶅鎵癸紝涓嶅奖鍝嶈鍋囥�佹姤閿�绛夊叾浠栨祦绋嬨��
+--
+-- 鏁堟灉锛�
+--   鍑嗗叆鐢宠鐐广�屾彁浜ゃ�嶅悗绔嬪嵆鐢熸晥锛堝鎵圭姸鎬佺洿鎺ョ疆涓洪�氳繃锛屽悓鏃剁敓鎴愪緵搴斿晢锛夛紝
+--   涓嶅啀寮瑰嚭銆岄�夋嫨瀹℃壒娴佺▼銆嶇殑绐楀彛锛屼篃涓嶅啀浜х敓娴佺▼瀹炰緥銆�
+--
+-- 濡傞渶鎭㈠瀹℃壒锛�
+--   UPDATE bpm_process_auto_approve_config SET auto_approve = b'0'
+--   WHERE process_definition_key = 'supplier_apply_approve';
+--
+-- 鐗规�э細鍙噸澶嶆墽琛�
+-- =====================================================================
+
+DELETE FROM bpm_process_auto_approve_config
+WHERE process_definition_key = 'supplier_apply_approve';
+
+INSERT INTO bpm_process_auto_approve_config
+    (process_definition_key, auto_approve, remark,
+     creator, create_time, updater, update_time, deleted)
+VALUES
+    ('supplier_apply_approve', b'1', '鍖楁柟绉戞妧锛氫緵搴斿晢鍑嗗叆涓嶈蛋鍗忓悓瀹℃壒锛屾彁浜ゅ嵆鐢熸晥',
+     '1', NOW(), '1', NOW(), b'0');
+
+-- 楠岃瘉
+SELECT id, process_definition_key, auto_approve, remark
+FROM bpm_process_auto_approve_config
+WHERE deleted = b'0';
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java
index 0cc7638..614b2a0 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApi.java
@@ -16,6 +16,17 @@
     boolean isGlobalAutoApprove();
 
     /**
+     * 鎸囧畾娴佺▼鏄惁鍏嶅鎵广��
+     *
+     * 鍒ゅ畾瑙勫垯锛氬叏灞�鎬诲紑鍏冲紑鍚� 鈫� 涓�寰嬪厤瀹℃壒锛涘惁鍒欑湅璇ユ祦绋嬭嚜宸辩殑寮�鍏炽��
+     * 涓氬姟妯″潡搴斾紭鍏堢敤鏈柟娉曞垽鏂紝杩欐牱鏃㈣兘鍙楀叏灞�寮�鍏崇粺涓�鎺у埗锛�
+     * 涔熻兘鍙涓埆娴佺▼鍗曠嫭寮�鍚厤瀹℃壒锛堜緥濡備緵搴斿晢鍑嗗叆涓嶈蛋鍗忓悓瀹℃壒锛夈��
+     *
+     * @param processDefinitionKey 娴佺▼瀹氫箟 Key锛屽 supplier_apply_approve
+     */
+    boolean isAutoApprove(String processDefinitionKey);
+
+    /**
      * 鍒涘缓娴佺▼瀹炰緥锛堟彁渚涚粰鍐呴儴锛�
      *
      * @param userId 鐢ㄦ埛缂栧彿
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java
index 706675f..ea855b0 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/api/task/BpmProcessInstanceApiImpl.java
@@ -30,6 +30,11 @@
     }
 
     @Override
+    public boolean isAutoApprove(String processDefinitionKey) {
+        return processAutoApproveService.isAutoApprove(processDefinitionKey);
+    }
+
+    @Override
     public String createProcessInstance(Long userId, @Valid BpmProcessInstanceCreateReqDTO reqDTO) {
         return processInstanceService.createProcessInstance(userId, reqDTO);
     }
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessAutoApproveController.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessAutoApproveController.java
index 207936d..e7c75cf 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessAutoApproveController.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmProcessAutoApproveController.java
@@ -72,9 +72,15 @@
     }
 
     @GetMapping("/ui-policy")
-    @Operation(summary = "鑾峰緱褰撳墠鐧诲綍鐢ㄦ埛鐨勫鏍哥晫闈㈢瓥鐣�")
+    @Operation(summary = "鑾峰緱褰撳墠鐧诲綍鐢ㄦ埛鐨勫鏍哥晫闈㈢瓥鐣�",
+            description = "涓嶄紶 key 杩斿洖鍏ㄥ眬鎬诲紑鍏筹紱浼� key 鍒欒繑鍥炶娴佺▼鐨勬渶缁堢瓥鐣ワ紙鍏ㄥ眬寮�鎴栬娴佺▼寮�閮戒负 true锛�")
+    @Parameter(name = "key", description = "娴佺▼瀹氫箟 Key锛屽 supplier_apply_approve", example = "supplier_apply_approve")
     @PreAuthorize("isAuthenticated()")
-    public CommonResult<Boolean> getUiPolicy() {
+    public CommonResult<Boolean> getUiPolicy(@RequestParam(value = "key", required = false) String key) {
+        // 浼犲叆娴佺▼ key 鏃舵寜銆屽叏灞� || 璇ユ祦绋嬨�嶅垽瀹氾紝渚夸簬涓氬姟椤甸潰鍙鑷繁鍏冲績鐨勬祦绋嬫斁寮�鍏嶅鎵�
+        if (key != null && !key.isBlank()) {
+            return success(processAutoApproveService.isAutoApprove(key));
+        }
         return success(processAutoApproveService.isGlobalAutoApprove());
     }
 
diff --git a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/apply/SrmSupplierApplyServiceImpl.java b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/apply/SrmSupplierApplyServiceImpl.java
index cedd139..8dfe277 100644
--- a/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/apply/SrmSupplierApplyServiceImpl.java
+++ b/yudao-module-srm/src/main/java/cn/iocoder/yudao/module/srm/service/apply/SrmSupplierApplyServiceImpl.java
@@ -133,9 +133,10 @@
                 && !SupplierApplyStatusEnum.REJECTED.getCode().equals(apply.getApplyStatus())) {
             throw ServiceExceptionUtil.exception(ErrorCodeConstants.APPLY_STATUS_NOT_DRAFT);
         }
-        // 2. 鍒涘缓 BPM 娴佺▼瀹炰緥锛堥噰璐鏍糕啋璐ㄩ噺瀹℃牳鈫掕储鍔″鏍革紝娴佺▼涓庡鎵逛汉鍦ㄥ崗鍚屽姙鍏厤缃級
-        // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
-        if (processInstanceApi.isGlobalAutoApprove()) {
+        // 2. 渚涘簲鍟嗗噯鍏ヤ笉璧板崗鍚屽鎵癸細鍒ゆ柇璇ユ祦绋嬫槸鍚﹂厤缃簡鍏嶅鎵�
+        //    锛堝叏灞�鎬诲紑鍏冲紑鍚篃绠楋級锛屽懡涓垯鐩存帴鎵ц瀹℃壒閫氳繃閫昏緫锛屼笉鍐嶅垱寤� BPM 娴佺▼瀹炰緥銆�
+        //    濡傞渶鎭㈠瀹℃壒锛屾妸閰嶇疆琛ㄩ噷 supplier_apply_approve 鏀逛负 0 鍗冲彲锛屾棤闇�鏀逛唬鐮併��
+        if (processInstanceApi.isAutoApprove(processDefinitionKey)) {
             supplierApplyMapper.updateById(new SrmSupplierApplyDO()
                     .setId(id)
                     .setApplyStatus(SupplierApplyStatusEnum.PROCESS.getCode())

--
Gitblit v1.9.3