From 0ed338976c6cabb5ee17983e3ee1bedb529a0ccb Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 七月 2026 18:01:28 +0800
Subject: [PATCH] 1.联调优化采购申请到入库的整个逻辑

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java     |    3 +++
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java |    6 ++++++
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java                  |   20 +++++++++++++++++---
 3 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java
index 20563c6..dae576f 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/order/ErpPurchaseOrderRespVO.java
@@ -92,6 +92,9 @@
     @Schema(description = "閲囪喘鍏ュ簱鏁伴噺", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
     private BigDecimal inCount;
 
+    @Schema(description = "鍏ュ簱鐘舵�侊紙0:鏈叆搴� 1:閮ㄥ垎鍏ュ簱 2:鍏ㄩ儴鍏ュ簱锛�", example = "0")
+    private Integer inStatus;
+
     // ========== 閲囪喘閫�璐э紙鍑哄簱锛夛級 ==========
 
     @Schema(description = "閲囪喘閫�璐ф暟閲�", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00")
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
index 4a28ce1..40fcab4 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/request/ErpPurchaseRequestRespVO.java
@@ -61,6 +61,9 @@
     @Schema(description = "鐢熸垚鐨勯噰璐鍗曞彿", example = "CGDD001")
     private String orderNo;
 
+    @Schema(description = "鍏ュ簱鐘舵�侊紙0:鏈叆搴� 1:閮ㄥ垎鍏ュ簱 2:鍏ㄩ儴鍏ュ簱锛�", example = "0")
+    private Integer inStatus;
+
     @Schema(description = "闄勪欢鍦板潃", example = "https://xxx.com/xxx.pdf")
     private String fileUrl;
 
@@ -119,6 +122,9 @@
         @Schema(description = "鏄惁闇�瑕佹潵鏂欐楠�", example = "true")
         private Boolean qcCheckFlag;
 
+        @Schema(description = "鍏ュ簱鏁伴噺", example = "10.00")
+        private BigDecimal inCount;
+
     }
 
 }
\ No newline at end of file
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
index 55262fc..7e24cea 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseOrderServiceImpl.java
@@ -446,17 +446,31 @@
         if (CollUtil.isEmpty(items)) {
             return;
         }
-        // 3. 璁$畻鍏ュ簱鐘舵��
+        // 3. 璁$畻鍏ュ簱鐘舵�佸拰鎬诲叆搴撴暟閲�
         int inStatus = calculateInStatus(items);
-        // 4. 鏇存柊閲囪喘璁㈠崟鍏ュ簱鐘舵��
+        BigDecimal totalInCount = calculateTotalInCount(items);
+        // 4. 鏇存柊閲囪喘璁㈠崟鍏ュ簱鐘舵�佸拰鍏ュ簱鏁伴噺
         purchaseOrderMapper.updateById(new ErpPurchaseOrderDO()
-                .setId(orderId).setInStatus(inStatus));
+                .setId(orderId).setInStatus(inStatus).setInCount(totalInCount));
 
         // 5. 鍥炲啓閲囪喘鐢宠鏄庣粏鐨勫叆搴撴暟閲忓拰閲囪喘鐢宠鐨勫叆搴撶姸鎬�
         updatePurchaseRequestInStatus(items, inStatus);
     }
 
     /**
+     * 璁$畻鎬诲叆搴撴暟閲�
+     */
+    private BigDecimal calculateTotalInCount(List<ErpPurchaseOrderItemDO> items) {
+        BigDecimal total = BigDecimal.ZERO;
+        for (ErpPurchaseOrderItemDO item : items) {
+            if (item.getInCount() != null) {
+                total = total.add(item.getInCount());
+            }
+        }
+        return total;
+    }
+
+    /**
      * 鍥炲啓閲囪喘鐢宠鍏ュ簱鏁伴噺鍜屽叆搴撶姸鎬�
      *
      * @param orderItems 閲囪喘璁㈠崟鏄庣粏鍒楄〃

--
Gitblit v1.9.3