From 3bbcdae17bd49743737df19df201ec56e48260de Mon Sep 17 00:00:00 2001
From: gigibox <gigibox@163.com>
Date: 星期三, 21 六月 2023 18:11:26 +0800
Subject: [PATCH] 添加相同编号相同批次并且同一个仓库的库存数据过滤

---
 report/tasks.go |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/report/tasks.go b/report/tasks.go
index 7d23605..a79046a 100644
--- a/report/tasks.go
+++ b/report/tasks.go
@@ -113,6 +113,21 @@
 
 		logger.Debug("鏌ヨ鍒�%d鏉″簱瀛樻暟鎹�", len(list))
 
+		// 鍏堣繃婊や竴閬嶆暟鎹�, 鏍肩憺绫冲彂鐜版湁鍚屼竴涓骇鍝佸悓鎵瑰彿鍚屼粨搴�, 鏈夊鏉″簱瀛樿褰曠殑鎯呭喌
+		// 灏嗙被浼肩殑鏁版嵁搴撳瓨鏁扮疮璁″埌涓�璧�
+		var filterMap = make(map[string]float64, 0)
+		for i := 0; i < len(list); {
+			cacheKey := list[i].FNumber + list[i].FBatchNo + list[i].FStockNo
+			if qty, ok := filterMap[cacheKey]; ok {
+				filterMap[cacheKey] = list[i].FUnitQty + qty
+				list = append(list[:i], list[i+1:]...)
+			} else {
+				filterMap[cacheKey] = list[i].FUnitQty
+				i++
+			}
+		}
+
+		// 杩囨护鏁版嵁, 鍒ゆ柇鏄惁宸茬粡涓婃姤杩�
 		for i := 0; i < len(list); {
 			cacheKey := list[i].FNumber + list[i].FBatchNo + list[i].FStockNo
 			if qty, ok := invReportedCache[cacheKey]; ok && qty == list[i].FUnitQty {
@@ -122,9 +137,14 @@
 				i++
 			}
 		}
+
+		if len(list) == 0 {
+			logger.Debug("娌℃湁瑕佹洿鏂扮殑搴撳瓨鏁版嵁.")
+			return
+		}
 	}
 
-	// 姣忔鍙� 100 鏉�
+	// 姣忔鍙� 1000 鏉�
 	successCnt := 0
 	for i := 0; i < len(list); i += 1000 {
 		end := i + 1000

--
Gitblit v1.8.0