From 06ac6cc6f4693a8abc585e69139131fe19274fd1 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 27 八月 2026 14:30:26 +0800
Subject: [PATCH] feat(erp): 销售订单审批接入协同办公(BPM)

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/finance/ErpFinancePaymentController.java |   33 +++++++++++++++++----------------
 1 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/finance/ErpFinancePaymentController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/finance/ErpFinancePaymentController.java
index 21fe41e..4d70b76 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/finance/ErpFinancePaymentController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/finance/ErpFinancePaymentController.java
@@ -13,13 +13,11 @@
 import cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment.ErpFinancePaymentRespVO;
 import cn.iocoder.yudao.module.erp.controller.admin.finance.vo.payment.ErpFinancePaymentSaveReqVO;
 import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.invoice.ErpPurchaseInvoiceRespVO;
-import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpAccountDO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpFinancePaymentDO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpFinancePaymentItemDO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseInvoiceDO;
 import cn.iocoder.yudao.module.srm.api.supplier.SrmSupplierApi;
 import cn.iocoder.yudao.module.srm.api.supplier.dto.SrmSupplierRespDTO;
-import cn.iocoder.yudao.module.erp.service.finance.ErpAccountService;
 import cn.iocoder.yudao.module.erp.service.finance.ErpFinancePaymentService;
 import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseInvoiceService;
 import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
@@ -43,6 +41,7 @@
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 
 @Tag(name = "绠$悊鍚庡彴 - ERP 浠樻鍗�")
 @RestController
@@ -54,8 +53,6 @@
     private ErpFinancePaymentService financePaymentService;
     @Resource
     private SrmSupplierApi srmSupplierApi;
-    @Resource
-    private ErpAccountService accountService;
     @Resource
     private ErpPurchaseInvoiceService invoiceService;
 
@@ -79,13 +76,21 @@
         return success(true);
     }
 
-    @PutMapping("/update-status")
-    @Operation(summary = "鏇存柊浠樻鍗曠殑鐘舵��")
-    @PreAuthorize("@ss.hasPermission('erp:finance-payment:update-status')")
-    public CommonResult<Boolean> updateFinancePaymentStatus(@RequestParam("id") Long id,
-                                                           @RequestParam("status") Integer status) {
-        financePaymentService.updateFinancePaymentStatus(id, status);
+    @PostMapping("/submit")
+    @Operation(summary = "鎻愪氦浠樻鍗曞鎵�")
+    @PreAuthorize("@ss.hasPermission('erp:finance-payment:update')")
+    public CommonResult<Boolean> submitFinancePayment(@RequestParam("id") Long id,
+                                                      @RequestParam("processDefinitionKey") String processDefinitionKey) {
+        Long userId = getLoginUserId();
+        financePaymentService.submitFinancePayment(id, processDefinitionKey, userId);
         return success(true);
+    }
+
+    @GetMapping("/approve-process-list")
+    @Operation(summary = "鑾峰彇浠樻鍗曞鎵规祦绋嬪垪琛�")
+    @PreAuthorize("@ss.hasPermission('erp:finance-payment:query')")
+    public CommonResult<List<Map<String, Object>>> getApproveProcessList() {
+        return success(financePaymentService.getFinancePaymentApproveProcessDefinitionList());
     }
 
     @DeleteMapping("/delete")
@@ -158,20 +163,16 @@
         Map<Long, SrmSupplierRespDTO> supplierMap = srmSupplierApi.getSupplierList(
                 convertSet(pageResult.getList(), ErpFinancePaymentDO::getSupplierId)).getCheckedData().stream()
                 .collect(java.util.stream.Collectors.toMap(SrmSupplierRespDTO::getId, v -> v, (a, b) -> a));
-        // 1.3 缁撶畻璐︽埛淇℃伅
-        Map<Long, ErpAccountDO> accountMap = accountService.getAccountMap(
-                convertSet(pageResult.getList(), ErpFinancePaymentDO::getAccountId));
-        // 1.4 绠$悊鍛樹俊鎭�
+        // 1.3 绠$悊鍛樹俊鎭�
         Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(),
                 contact -> Stream.of(NumberUtils.parseLong(contact.getCreator()), contact.getFinanceUserId())));
-        // 1.5 鏉ョエ淇℃伅
+        // 1.4 鏉ョエ淇℃伅
         Map<Long, ErpPurchaseInvoiceDO> invoiceMap = invoiceService.getPurchaseInvoiceMap(
                 convertSet(pageResult.getList(), ErpFinancePaymentDO::getInvoiceId));
         // 2. 寮�濮嬫嫾鎺�
         return BeanUtils.toBean(pageResult, ErpFinancePaymentRespVO.class, payment -> {
             payment.setItems(BeanUtils.toBean(financePaymentItemMap.get(payment.getId()), ErpFinancePaymentRespVO.Item.class));
             MapUtils.findAndThen(supplierMap, payment.getSupplierId(), supplier -> payment.setSupplierName(supplier.getName()));
-            MapUtils.findAndThen(accountMap, payment.getAccountId(), account -> payment.setAccountName(account.getName()));
             MapUtils.findAndThen(userMap, Long.parseLong(payment.getCreator()), user -> payment.setCreatorName(user.getNickname()));
             MapUtils.findAndThen(userMap, payment.getFinanceUserId(), user -> payment.setFinanceUserName(user.getNickname()));
             MapUtils.findAndThen(invoiceMap, payment.getInvoiceId(), invoice ->

--
Gitblit v1.9.3