From 3481d209ec847542b73fa16616ffe0e13c949e80 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 18 四月 2026 18:11:03 +0800
Subject: [PATCH] fix: 入库与出库数量绑定
---
src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 164 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 03a034d..58132a9 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -13,6 +13,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
+import java.util.List;
/**
* 浜у搧淇℃伅瀵硅薄 sales_ledger_product
@@ -71,8 +72,43 @@
*/
@Excel(name = "鏁伴噺")
private BigDecimal quantity;
+
+ /**
+ * 宸插叆搴撴暟閲�
+ */
+ private BigDecimal stockedQuantity;
+
+ /**
+ * 宸插嚭搴撴暟閲�
+ */
+ private BigDecimal shippedQuantity;
+
@Excel(name = "鏈�浣庡簱瀛樻暟閲�")
private BigDecimal minStock;
+
+ /**
+ * 鍓╀綑寰呭叆搴撴暟閲忥紙璁㈠崟鏁伴噺 鈭� 鍚堟牸宸插叆搴撴暟閲忥紝澶氬叆鏃惰涓� 0锛�
+ */
+ @Excel(name = "鍓╀綑鏁伴噺")
+ @ApiModelProperty("鍓╀綑寰呭叆搴撴暟閲�(璁㈠崟鏁伴噺-鍚堟牸宸插叆搴�)")
+ private BigDecimal remainingQuantity;
+
+ /**
+ * 鍓╀綑鍑哄簱鏁伴噺
+ */
+ private BigDecimal remainingShippedQuantity;
+
+ /**
+ * 涓嶅悎鏍煎叆搴撴暟閲�
+ */
+ private BigDecimal unqualifiedStockedQuantity;
+
+
+ /**
+ * 涓嶅悎鏍煎嚭搴撴暟閲�
+ */
+ private BigDecimal unqualifiedShippedQuantity;
+
/**
* 绋庣巼
*/
@@ -111,34 +147,34 @@
/**
* 鏈鏉ョエ鏁�
*/
- private BigDecimal ticketsNum=BigDecimal.ZERO;
+ private BigDecimal ticketsNum = BigDecimal.ZERO;
/**
* 鏈鏉ョエ閲戦(鍏�)
*/
- private BigDecimal ticketsAmount=BigDecimal.ZERO;
+ private BigDecimal ticketsAmount = BigDecimal.ZERO;
/**
* 鏈潵绁ㄦ暟
*/
- private BigDecimal futureTickets=BigDecimal.ZERO;
+ private BigDecimal futureTickets = BigDecimal.ZERO;
/**
* 鏈潵绁ㄩ噾棰�(鍏�)
*/
- private BigDecimal futureTicketsAmount=BigDecimal.ZERO;
+ private BigDecimal futureTicketsAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "寮�绁ㄦ暟")
- private BigDecimal invoiceNum;
+ private BigDecimal invoiceNum = BigDecimal.ZERO;
@ApiModelProperty(value = "鏈紑绁ㄦ暟")
- private BigDecimal noInvoiceNum;
+ private BigDecimal noInvoiceNum = BigDecimal.ZERO;
@ApiModelProperty(value = "寮�绁ㄩ噾棰�")
- private BigDecimal invoiceAmount;
+ private BigDecimal invoiceAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "鏈紑绁ㄩ噾棰�")
- private BigDecimal noInvoiceAmount;
+ private BigDecimal noInvoiceAmount = BigDecimal.ZERO;
@ApiModelProperty(value = "鏈寮�绁ㄦ暟")
@TableField(exist = false)
@@ -149,7 +185,7 @@
private BigDecimal currentInvoiceAmount;
/**
- * 浜у搧id
+ * 浜у搧id
*/
private Long productId;
@@ -192,6 +228,14 @@
@TableField(exist = false)
private String shippingCarNumber;
+ @ApiModelProperty("蹇�掑叕鍙�")
+ @TableField(exist = false)
+ private String expressCompany;
+
+ @ApiModelProperty("蹇�掑崟鍙�")
+ @TableField(exist = false)
+ private String expressNumber;
+
/**
* 鍙戣揣鏃ユ湡
*/
@@ -200,16 +244,121 @@
@JsonFormat(pattern = "yyyy-MM-dd")
private Date shippingDate;
-// @TableField(exist = false)
-// @ApiModelProperty(value = "鐢熶骇鐘舵��")
-// private String productionStatus = "鏈紑濮�";
+ @TableField(exist = false)
+ @ApiModelProperty(value = "鍙戣揣鐘舵��")
+ private String shippingStatus = "寰呭彂璐�";
/**
- * 鍙戣揣瀹℃壒鐘舵��
+ * 浜у搧鐘舵��
*/
// @TableField(exist = false)
- @ApiModelProperty(value = "瀹℃壒鐘舵�侊細0鏈敓浜�,1宸茬敓浜�,2寰呭鏍�(瀹℃牳涓�),3瀹℃牳瀹屾垚,4瀹℃牳澶辫触")
+ @ApiModelProperty(value = "浜у搧鐘舵�侊細1-鍏呰冻")
private Integer approveStatus;
-
+
+ @ApiModelProperty(value = "寰呭洖娆炬�婚噾棰�")
+ private BigDecimal pendingInvoiceTotal;
+
+ @ApiModelProperty(value = "鍥炴鎬婚噾棰�")
+ private BigDecimal invoiceTotal = BigDecimal.ZERO;
+
+ @ApiModelProperty(value = "寰呬粯娆炬�婚噾棰�")
+ private BigDecimal pendingTicketsTotal;
+
+ @ApiModelProperty(value = "浠樻鎬婚噾棰�")
+ private BigDecimal ticketsTotal = BigDecimal.ZERO;
+
@ApiModelProperty(value = "鏄惁璐ㄦ")
private Boolean isChecked;
+
+ @TableField(exist = false)
+ @ApiModelProperty("閲嶇")
+ private BigDecimal thickness;
+
+ @ApiModelProperty("瀹�")
+ private BigDecimal width;
+
+ @ApiModelProperty("楂�")
+ private BigDecimal height;
+
+ @ApiModelProperty("鍔犲伐瑕佹眰")
+ private String processRequirement;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ /**
+ * 瀹為檯鍗曠墖闈㈢Н(銕�)
+ */
+ @ApiModelProperty("瀹為檯鍗曠墖闈㈢Н(銕�)")
+ private BigDecimal actualPieceArea;
+
+ /**
+ * 瀹為檯鎬婚潰绉�(銕�)
+ */
+ @ApiModelProperty("瀹為檯鎬婚潰绉�(銕�)")
+ private BigDecimal actualTotalArea;
+
+ /**
+ * 缁撶畻鍗曠墖闈㈢Н(銕�)
+ */
+ @ApiModelProperty("缁撶畻鍗曠墖闈㈢Н(銕�)")
+ private BigDecimal settlePieceArea;
+
+ /**
+ * 缁撶畻鎬婚潰绉�(銕�)
+ */
+ @ApiModelProperty("缁撶畻鎬婚潰绉�(銕�)")
+ private BigDecimal settleTotalArea;
+
+ /**
+ * 鍛ㄩ暱
+ */
+ @ApiModelProperty("鍛ㄩ暱(cm)")
+ private BigDecimal perimeter;
+
+ /**
+ * 閲嶇
+ */
+ @ApiModelProperty("閲嶇")
+ private BigDecimal heavyBox;
+
+ /**
+ * 妤煎眰缂栧彿
+ */
+ @ApiModelProperty("妤煎眰缂栧彿")
+ private String floorCode;
+
+ /**
+ * 浜у搧鍏ュ簱鐘舵�侊細0-鏈叆搴擄紝1-閮ㄥ垎鍏ュ簱锛�2-宸插叆搴�
+ */
+ @ApiModelProperty("浜у搧鍏ュ簱鐘舵�侊細0-鏈叆搴擄紝1-閮ㄥ垎鍏ュ簱锛�2-宸插叆搴�")
+ private Integer productStockStatus;
+
+ @TableField(exist = false)
+ @ApiModelProperty("閿�鍞骇鍝侀澶栧姞宸�")
+ private List<SalesLedgerProductProcess> salesProductProcessList;
+
+ @TableField(exist = false)
+ private Integer hasSufficientStock;
+
+ // 閫�璐ф暟閲�
+ @TableField(exist = false)
+ private BigDecimal returnQuality;
+
+ // 鍙敤鏁伴噺 quantity - returnQuality
+ @TableField(exist = false)
+ private BigDecimal availableQuality;
+
+
+ public void fillRemainingQuantity() {
+ BigDecimal q = this.quantity == null ? BigDecimal.ZERO : this.quantity;
+
+ BigDecimal stocked = this.stockedQuantity == null ? BigDecimal.ZERO : this.stockedQuantity;
+ 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