From 4445ae4de0cd4f21709b843c52fef80c0037d782 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 09 五月 2026 20:53:49 +0800
Subject: [PATCH] fix: 销售订单已发货但是产品状态显示错误问题

---
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java |   40 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 6bb145e..12b54a5 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -78,6 +78,11 @@
      */
     private BigDecimal stockedQuantity;
 
+    /**
+     * 宸插嚭搴撴暟閲�
+     */
+    private BigDecimal shippedQuantity;
+
     @Excel(name = "鏈�浣庡簱瀛樻暟閲�")
     private BigDecimal minStock;
 
@@ -87,6 +92,22 @@
     @Excel(name = "鍓╀綑鏁伴噺")
     @ApiModelProperty("鍓╀綑寰呭叆搴撴暟閲�(璁㈠崟鏁伴噺-鍚堟牸宸插叆搴�)")
     private BigDecimal remainingQuantity;
+
+    /**
+     * 鍓╀綑鍑哄簱鏁伴噺
+     */
+    private BigDecimal remainingShippedQuantity;
+
+    /**
+     * 涓嶅悎鏍煎叆搴撴暟閲�
+     */
+    private BigDecimal unqualifiedStockedQuantity;
+
+
+    /**
+     * 涓嶅悎鏍煎嚭搴撴暟閲�
+     */
+    private BigDecimal unqualifiedShippedQuantity;
 
     /**
      * 绋庣巼
@@ -227,10 +248,9 @@
     @ApiModelProperty(value = "鍙戣揣鐘舵��")
     private String shippingStatus = "寰呭彂璐�";
     /**
-     * 浜у搧鐘舵��
+     * 0-鏈嚭搴擄紝1-宸插嚭搴擄紝2-寰呭鏍革紝3-瀹℃牳瀹屾垚锛�4-瀹℃牳澶辫触锛堥攢鍞彴璐﹀垪琛ㄥ睍绀鸿鍒欒鍓嶇锛�
      */
-//    @TableField(exist = false)
-    @ApiModelProperty(value = "浜у搧鐘舵�侊細1-鍏呰冻")
+    @ApiModelProperty(value = "浜у搧鍑哄簱瀹℃壒鐘舵�侊細0-鏈嚭搴擄紝1-宸插嚭搴擄紝2-寰呭鏍革紝3-瀹℃牳瀹屾垚锛�4-瀹℃牳澶辫触")
     private Integer approveStatus;
 
     @ApiModelProperty(value = "寰呭洖娆炬�婚噾棰�")
@@ -319,6 +339,10 @@
     @TableField(exist = false)
     private Integer hasSufficientStock;
 
+    @TableField(exist = false)
+    @ApiModelProperty("閲囪喘璁㈠崟鍏ュ簱鐘舵�侊細0-鏈叆搴擄紝1-閮ㄥ垎鍏ュ簱锛�2-宸插叆搴�")
+    private Integer purchaseStockStatus;
+
     // 閫�璐ф暟閲�
     @TableField(exist = false)
     private BigDecimal returnQuality;
@@ -330,8 +354,14 @@
 
     public void fillRemainingQuantity() {
         BigDecimal q = this.quantity == null ? BigDecimal.ZERO : this.quantity;
+
         BigDecimal stocked = this.stockedQuantity == null ? BigDecimal.ZERO : this.stockedQuantity;
-        BigDecimal rem = q.subtract(stocked);
-        this.remainingQuantity = rem.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : rem;
+        BigDecimal remIn = q.subtract(stocked);
+        this.remainingQuantity = remIn.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : remIn;
+
+        BigDecimal shipped = this.shippedQuantity == null ? BigDecimal.ZERO : this.shippedQuantity;
+        // 鍓╀綑鍑哄簱鏁伴噺锛氫互鈥滃凡鍏ュ簱鏁伴噺鈥濅负鍩哄噯锛堝嚭搴撳彧鑳戒粠宸插叆搴撲腑鎵e噺锛�
+        BigDecimal remOut = stocked.subtract(shipped);
+        this.remainingShippedQuantity = remOut.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : remOut;
     }
 }

--
Gitblit v1.9.3