From 657698fd2fb32794932474648dbaee9e284e38c8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 18:31:20 +0800
Subject: [PATCH] feat(bpm): 添加全局免审批功能支持
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/finance/ErpFinancePaymentServiceImpl.java | 34 +++++++++++++++++-----------------
1 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/finance/ErpFinancePaymentServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/finance/ErpFinancePaymentServiceImpl.java
index 5fdd106..9c74956 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/finance/ErpFinancePaymentServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/finance/ErpFinancePaymentServiceImpl.java
@@ -65,8 +65,6 @@
@Resource
private ErpSupplierService supplierService;
@Resource
- private ErpAccountService accountService;
- @Resource
private ErpPurchaseInvoiceService invoiceService;
@Resource
@@ -90,17 +88,13 @@
createReqVO.getSupplierId(), createReqVO.getItems());
// 1.2 鏍¢獙渚涘簲鍟�
supplierService.validateSupplier(createReqVO.getSupplierId());
- // 1.3 鏍¢獙缁撶畻璐︽埛
- if (createReqVO.getAccountId() != null) {
- accountService.validateAccount(createReqVO.getAccountId());
- }
- // 1.4 鏍¢獙璐㈠姟浜哄憳
+ // 1.3 鏍¢獙璐㈠姟浜哄憳
if (createReqVO.getFinanceUserId() != null) {
adminUserApi.validateUser(createReqVO.getFinanceUserId());
}
- // 1.5 鏍¢獙鍏宠仈鏉ョエ
+ // 1.4 鏍¢獙鍏宠仈鏉ョエ
validateInvoiceForPayment(createReqVO.getInvoiceId(), createReqVO.getSupplierId());
- // 1.6 鏍¢獙浠樻閲戦涓嶈秴杩囪鏉ョエ鍓╀綑鍙粯閲戦
+ // 1.5 鏍¢獙浠樻閲戦涓嶈秴杩囪鏉ョエ鍓╀綑鍙粯閲戦
validatePaymentPriceExceedsInvoiceRemaining(createReqVO.getInvoiceId(),
getSumValue(paymentItems, ErpFinancePaymentItemDO::getPaymentPrice, BigDecimal::add, BigDecimal.ZERO)
.subtract(createReqVO.getDiscountPrice()), null);
@@ -141,20 +135,16 @@
}
// 1.2 鏍¢獙渚涘簲鍟�
supplierService.validateSupplier(updateReqVO.getSupplierId());
- // 1.3 鏍¢獙缁撶畻璐︽埛
- if (updateReqVO.getAccountId() != null) {
- accountService.validateAccount(updateReqVO.getAccountId());
- }
- // 1.4 鏍¢獙璐㈠姟浜哄憳
+ // 1.3 鏍¢獙璐㈠姟浜哄憳
if (updateReqVO.getFinanceUserId() != null) {
adminUserApi.validateUser(updateReqVO.getFinanceUserId());
}
- // 1.5 鏍¢獙浠樻鍗曢」鐨勬湁鏁堟��
+ // 1.4 鏍¢獙浠樻鍗曢」鐨勬湁鏁堟��
List<ErpFinancePaymentItemDO> paymentItems = validateFinancePaymentItems(
updateReqVO.getSupplierId(), updateReqVO.getItems());
- // 1.6 鏍¢獙鍏宠仈鏉ョエ
+ // 1.5 鏍¢獙鍏宠仈鏉ョエ
validateInvoiceForPayment(updateReqVO.getInvoiceId(), updateReqVO.getSupplierId());
- // 1.7 鏍¢獙浠樻閲戦涓嶈秴杩囪鏉ョエ鍓╀綑鍙粯閲戦锛堟帓闄よ浠樻鍗曡嚜韬綋鍓嶅凡浠橀噾棰濓級
+ // 1.6 鏍¢獙浠樻閲戦涓嶈秴杩囪鏉ョエ鍓╀綑鍙粯閲戦锛堟帓闄よ浠樻鍗曡嚜韬綋鍓嶅凡浠橀噾棰濓級
validatePaymentPriceExceedsInvoiceRemaining(updateReqVO.getInvoiceId(),
getSumValue(paymentItems, ErpFinancePaymentItemDO::getPaymentPrice, BigDecimal::add, BigDecimal.ZERO)
.subtract(updateReqVO.getDiscountPrice()), payment.getPaymentPrice());
@@ -184,6 +174,16 @@
}
// 2. 鍒涘缓 BPM 娴佺▼瀹炰緥
+ // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
+ if (processInstanceApi.isGlobalAutoApprove()) {
+ financePaymentMapper.updateById(new ErpFinancePaymentDO()
+ .setId(id)
+ .setStatus(ErpAuditStatus.APPROVING.getStatus())
+ .setProcessInstanceId(""));
+ updateFinancePaymentAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+ return;
+ }
+
String processInstanceId = processInstanceApi.createProcessInstance(userId,
new BpmProcessInstanceCreateReqDTO()
.setProcessDefinitionKey(processDefinitionKey)
--
Gitblit v1.9.3