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/purchase/ErpPurchaseOrderController.java |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
index f779a39..f014f62 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
@@ -17,6 +17,7 @@
 import cn.iocoder.yudao.module.erp.enums.ErpPurchaseOrderSourceTypeEnum;
 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.purchase.ErpPurchaseInvoiceService;
 import cn.iocoder.yudao.module.erp.service.purchase.ErpPurchaseOrderService;
 import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
 import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
@@ -56,6 +57,8 @@
 
     @Resource
     private ErpPurchaseOrderService purchaseOrderService;
+    @Resource
+    private ErpPurchaseInvoiceService purchaseInvoiceService;
     @Resource
     private SrmSupplierApi srmSupplierApi;
 
@@ -211,6 +214,9 @@
         // 1.5 鍗曚綅淇℃伅
         Map<Long, MdmUnitMeasureRespDTO> unitMeasureMap = mdmUnitMeasureApi.getUnitMeasureMap(
                 convertSet(purchaseOrderItemList, ErpPurchaseOrderItemDO::getProductUnitId));
+        // 1.6 宸叉潵绁ㄩ噾棰濓細鎸夐噰璐鍗曠粺璁★紝鐢ㄤ簬璁$畻鍓╀綑鍙紑绁ㄩ噾棰�
+        Map<Long, BigDecimal> invoicePriceSumMap = purchaseInvoiceService
+                .getPurchaseInvoicePriceSumMapByOrderIds(convertSet(pageResult.getList(), ErpPurchaseOrderDO::getId));
         // 2. 寮�濮嬫嫾鎺�
         return BeanUtils.toBean(pageResult, ErpPurchaseOrderRespVO.class, purchaseOrder -> {
             purchaseOrder.setItems(BeanUtils.toBean(purchaseOrderItemMap.get(purchaseOrder.getId()), ErpPurchaseOrderRespVO.Item.class,
@@ -225,6 +231,9 @@
             MapUtils.findAndThen(userMap, Long.parseLong(purchaseOrder.getCreator()), user -> purchaseOrder.setCreatorName(user.getNickname()));
             purchaseOrder.setSourceTypeName(ErpPurchaseOrderSourceTypeEnum.WORK_ORDER.getType()
                     .equals(purchaseOrder.getSourceType()) ? "鐢熶骇宸ュ崟" : null);
+            // 鍓╀綑鍙紑绁ㄩ噾棰� = 璁㈠崟鎬婚噾棰� - 宸叉潵绁ㄩ噾棰�
+            purchaseOrder.setRemainInvoicePrice(purchaseOrder.getTotalPrice().subtract(
+                    invoicePriceSumMap.getOrDefault(purchaseOrder.getId(), BigDecimal.ZERO)));
         });
     }
 

--
Gitblit v1.9.3