From 1a6fa89e9ffc8ade73afbeda3e6c791bad1d4cd9 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 15 八月 2023 17:30:57 +0800 Subject: [PATCH] 添加bom子项的上报 --- report/send.go | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 47 insertions(+), 6 deletions(-) diff --git a/report/send.go b/report/send.go index 6df988f..c51e58d 100644 --- a/report/send.go +++ b/report/send.go @@ -130,7 +130,10 @@ logger.Warn("搴撳瓨鏁版嵁涓婃姤澶辫触") //涓婃姤澶辫触, 缂撳瓨娓呯┖ - invReportedCache = make(map[string]float64, 0) + for _, v := range list[i:end] { + key := v.FNumber + v.FBatchNo + v.FStockNo + delete(invReportedCache, key) + } } else { successCnt = end } @@ -139,17 +142,17 @@ logger.Debug("宸蹭笂鎶�%d鏉″簱瀛樻暟鎹�", successCnt) } +// bom鏁版嵁鍒哹om鍜宐omChild涓や釜琛� func SendBom(fData bool) { // 涓婃姤bom bomList := kingdee.BomList(fData) logger.Debug("鏌ヨ鍒�%d鏉om鏁版嵁", len(bomList)) b, _ := json.Marshal(bomList) - ioutil.WriteFile("bomList.tmp", b, 0644) // 杩囨护鏁版嵁, 鍒ゆ柇鏄惁宸茬粡涓婃姤杩�, 璇锋眰鍏ㄩ噺鏁版嵁涓嶈繃婊�, 鐩存帴涓婃姤 - if fData { + if !fData { for i := 0; i < len(bomList); { cacheKey := bomList[i].FBOMNumber + bomList[i].FAudDate if _, ok := bomReportedCache[cacheKey]; ok { @@ -161,8 +164,9 @@ } } + // 鍒嗙粍涓婁紶bom鏁版嵁 if len(bomList) == 0 { - logger.Debug("娌℃湁瑕佹洿鏂扮殑Bom鏁版嵁.") + logger.Debug("娌℃湁瑕佹洿鏂扮殑BOM鏁版嵁.") } else { // 姣忔鍙� 1000 鏉� successCnt := 0 @@ -174,13 +178,15 @@ b, _ := json.Marshal(bomList[i:end]) - // TCP鍗忚涓婃姤 ok := nsqclient.Produce(config.Options.BomTopic, b) if !ok { logger.Warn("BOM鏁版嵁涓婃姤澶辫触") //涓婃姤澶辫触, 缂撳瓨娓呯┖ - bomReportedCache = make(map[string]struct{}, 0) + for _, v := range bomList[i:end] { + key := v.FBOMNumber + v.FAudDate + delete(bomReportedCache, key) + } } else { successCnt = end } @@ -189,4 +195,39 @@ } // 涓婃姤bom瀛愰」 + var bomChildList []kingdee.ICBomChild + + // 濡傛灉璇锋眰鍏ㄩ噺鏁版嵁, 鐩存帴鏌ヨ鎵�鏈夌殑鏁版嵁骞跺彂閫�. 澧為噺涓婃姤, 鍏堝垽鏂璪om鏄惁鏈夋洿鏂�,鐒跺悗鎸塨om缂栫爜鏌ヨ瀛愰」 + if fData { + bomChildList = kingdee.BomChild(nil) + b, _ := json.Marshal(bomChildList) + ioutil.WriteFile("bomChdList.tmp", b, 0644) + } else { + if len(bomList) <= 0 { + return + } + } + + if len(bomChildList) == 0 { + logger.Debug("娌℃湁瑕佹洿鏂扮殑BOM瀛愰」鏁版嵁.") + } else { + // 姣忔鍙� 1000 鏉� + successCnt := 0 + for i := 0; i < len(bomChildList); i += 1000 { + end := i + 1000 + if end > len(bomChildList) { + end = len(bomChildList) + } + + b, _ := json.Marshal(bomChildList[i:end]) + + ok := nsqclient.Produce(config.Options.BomChildTopic, b) + if !ok { + logger.Warn("BOM鏁版嵁涓婃姤澶辫触") + } else { + successCnt = end + } + } + logger.Debug("宸蹭笂鎶�%d鏉OM瀛愰」鏁版嵁", successCnt) + } } -- Gitblit v1.8.0