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