From 5dca49269399c21333b16d62945c7f74570f9ad5 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 20:33:59 +0800
Subject: [PATCH] 字段调整
---
src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java | 62 ++++++------------------------
1 files changed, 13 insertions(+), 49 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
index 0325a9d..fcd629b 100644
--- a/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MonthlySettleServiceImpl.java
@@ -276,39 +276,6 @@
currentMaterialMap.put(key, stat);
}
- // 鏀堕泦鎵�鏈夐渶瑕佹煡璇㈠簱瀛樼殑鐗╂枡锛堟湰鏈熸湁鍑哄叆搴撶殑 + 涓婁竴鏈熷瓨鍦ㄤ絾鏈湡娌℃湁鍑哄叆搴撶殑锛�
- List<String> matnrBatchList = new java.util.ArrayList<>();
- for (MaterialInOutStatDTO stat : materialStats) {
- String matnr = stat.getMatnr();
- String batch = stat.getBatch() != null ? stat.getBatch() : "";
- matnrBatchList.add(matnr + "_" + batch);
- }
- if (previousSettle != null && !previousDetailMap.isEmpty()) {
- for (Map.Entry<String, PreviousSettleEndingQtyDTO> entry : previousDetailMap.entrySet()) {
- String key = entry.getKey();
- if (!currentMaterialMap.containsKey(key)) {
- PreviousSettleEndingQtyDTO previousDetail = entry.getValue();
- String matnr = previousDetail.getMatnr();
- String batch = previousDetail.getBatch() != null ? previousDetail.getBatch() : "";
- String matnrBatchKey = matnr + "_" + batch;
- if (!matnrBatchList.contains(matnrBatchKey)) {
- matnrBatchList.add(matnrBatchKey);
- }
- }
- }
- }
- // 鎵归噺鏌ヨ搴撳瓨
- Map<String, BigDecimal> stockQtyMap = new HashMap<>();
- if (!matnrBatchList.isEmpty()) {
- List<com.zy.asrs.entity.result.StockQtyDTO> stockQtyList = manLocDetlService.queryStockAnfmeBatch(matnrBatchList);
- if (stockQtyList != null) {
- for (com.zy.asrs.entity.result.StockQtyDTO stockQtyDTO : stockQtyList) {
- String key = stockQtyDTO.getMatnr() + "_" + (stockQtyDTO.getBatch() != null ? stockQtyDTO.getBatch() : "");
- stockQtyMap.put(key, stockQtyDTO.getStockQty() != null ? stockQtyDTO.getStockQty() : BigDecimal.ZERO);
- }
- }
- }
-
// 鏀堕泦鎵�鏈夋槑缁嗚褰曪紝鐢ㄤ簬鎵归噺鎻掑叆
List<MonthlySettleDetail> detailList = new java.util.ArrayList<>();
@@ -327,15 +294,13 @@
// 3. 璁$畻搴撳瓨鐩稿叧鏁伴噺
BigDecimal beginningQty = getBeginningQty(matnr, batch, brand, previousEndingQtyMap);
BigDecimal endingQty = calculateEndingQty(beginningQty, inQty, outQty);
- // 浠庢壒閲忔煡璇㈢殑Map涓幏鍙栧簱瀛�
- String stockKey = matnr + "_" + batch;
- BigDecimal stockQtyDecimal = stockQtyMap.getOrDefault(stockKey, BigDecimal.ZERO);
- BigDecimal diffQty = calculateDiffQty(stockQtyDecimal, endingQty);
+ // 宸紓鏁伴噺 = 鏈熸湯搴撳瓨 - 鏈熷垵搴撳瓨锛堟湡鏈ぇ浜庢湡鍒濇椂涓烘鏁帮級
+ BigDecimal diffQty = calculateDiffQty(beginningQty, endingQty);
// 4. 鍒涘缓鏄庣粏璁板綍锛堟殏涓嶆彃鍏ワ級
MonthlySettleDetail detail = buildMonthlySettleDetail(
monthlySettle.getId(), settleNo, matnr, batch, maktx, brand,
- beginningQty, inQty, outQty, endingQty, stockQtyDecimal, diffQty
+ beginningQty, inQty, outQty, endingQty, diffQty
);
detail.setIsDeleted(0); // 鏈垹闄�
detailList.add(detail);
@@ -370,16 +335,13 @@
BigDecimal beginningQty = previousEndingQty;
// 鏈熸湯搴撳瓨 = 鏈熷垵 + 鍏ュ簱 - 鍑哄簱 = 鏈熷垵锛堝洜涓烘湰鏈熸病鏈夊嚭鍏ュ簱锛�
BigDecimal endingQty = beginningQty;
- // 浠庢壒閲忔煡璇㈢殑Map涓幏鍙栧簱瀛�
- String stockKey = matnr + "_" + batch;
- BigDecimal stockQtyDecimal = stockQtyMap.getOrDefault(stockKey, BigDecimal.ZERO);
- // 璁$畻宸紓
- BigDecimal diffQty = calculateDiffQty(stockQtyDecimal, endingQty);
+ // 宸紓鏁伴噺 = 鏈熷垵搴撳瓨 - 鏈熸湯搴撳瓨锛堟湡鍒濆ぇ浜庢湡鏈椂涓烘鏁帮級
+ BigDecimal diffQty = calculateDiffQty(beginningQty, endingQty);
// 鍒涘缓鏄庣粏璁板綍锛堟殏涓嶆彃鍏ワ級
MonthlySettleDetail detail = buildMonthlySettleDetail(
monthlySettle.getId(), settleNo, matnr, batch, maktx, brand,
- beginningQty, inQty, outQty, endingQty, stockQtyDecimal, diffQty
+ beginningQty, inQty, outQty, endingQty, diffQty
);
detail.setIsDeleted(0); // 鏈垹闄�
detailList.add(detail);
@@ -509,10 +471,11 @@
}
/**
- * 璁$畻宸紓鏁伴噺锛堝疄闄呭簱瀛�-鏈熸湯搴撳瓨锛�
+ * 璁$畻宸紓鏁伴噺锛堟湡鏈簱瀛�-鏈熷垵搴撳瓨锛�
+ * 鏈熸湯澶т簬鏈熷垵鏃朵负姝f暟锛岃〃绀哄簱瀛樺鍔�
*/
- private BigDecimal calculateDiffQty(BigDecimal stockQty, BigDecimal endingQty) {
- return stockQty.subtract(endingQty);
+ private BigDecimal calculateDiffQty(BigDecimal beginningQty, BigDecimal endingQty) {
+ return endingQty.subtract(beginningQty);
}
/**
@@ -521,7 +484,7 @@
private MonthlySettleDetail buildMonthlySettleDetail(
Long settleId, String settleNo, String matnr, String batch, String maktx, String brand,
BigDecimal beginningQty, BigDecimal inQty, BigDecimal outQty, BigDecimal endingQty,
- BigDecimal stockQty, BigDecimal diffQty) {
+ BigDecimal diffQty) {
MonthlySettleDetail detail = new MonthlySettleDetail();
// 鍩烘湰淇℃伅
detail.setSettleId(settleId);
@@ -535,7 +498,8 @@
detail.setInQty(inQty);
detail.setOutQty(outQty);
detail.setEndingQty(endingQty);
- detail.setStockQty(stockQty);
+ // stock_qty 瀛楁宸插簾寮冿紝瀹為檯搴撳瓨绛変簬鏈熸湯搴撳瓨锛屼笉鍐嶅崟鐙瓨鍌�
+ // detail.setStockQty(endingQty);
detail.setDiffQty(diffQty);
// 鏃堕棿淇℃伅
detail.setCreateTime(new Date());
--
Gitblit v1.9.1