From 8a5f5dc40e82bf98e307082726ebe860002e019f Mon Sep 17 00:00:00 2001 From: gigibox <gigibox@163.com> Date: 星期三, 21 六月 2023 15:45:31 +0800 Subject: [PATCH] 修改库存数据为增量上报 --- report/tasks.go | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/report/tasks.go b/report/tasks.go index de930dc..7d23605 100644 --- a/report/tasks.go +++ b/report/tasks.go @@ -4,6 +4,7 @@ "encoding/json" "io/ioutil" "kingdee-dbapi/logger" + "time" "kingdee-dbapi/cache" "kingdee-dbapi/config" @@ -78,8 +79,22 @@ } } +var invReportedCache = make(map[string]float64, 0) +var fullLoad bool + func SendInventory() { var list []kingdee.Inventory + + // 璁剧疆姣忓ぉ鍑屾櫒1鐐逛笂鎶ヤ竴娆″叏閲忔暟鎹� + hour := time.Now().Hour() + if hour == 1 { + if fullLoad == false { + invReportedCache = make(map[string]float64, 0) + fullLoad = true + } + } else { + fullLoad = false + } if config.Options.Debug { data, err := ioutil.ReadFile(inventoryLocalStore) @@ -95,7 +110,18 @@ } } else { list = kingdee.ICInventory() + logger.Debug("鏌ヨ鍒�%d鏉″簱瀛樻暟鎹�", len(list)) + + 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 { + list = append(list[:i], list[i+1:]...) + } else { + invReportedCache[cacheKey] = list[i].FUnitQty + i++ + } + } } // 姣忔鍙� 100 鏉� @@ -119,9 +145,13 @@ ok := nsqclient.Produce(config.Options.InventoryTopic, b) if !ok { logger.Warn("搴撳瓨鏁版嵁涓婃姤澶辫触") + + //涓婃姤澶辫触, 缂撳瓨娓呯┖ + invReportedCache = make(map[string]float64, 0) } else { successCnt = end } } + logger.Debug("宸蹭笂鎶�%d鏉″簱瀛樻暟鎹�", successCnt) } -- Gitblit v1.8.0