From 80c8e74c7428329f06d1aa3b70b95b46da732b0a Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 27 六月 2024 20:09:03 +0800
Subject: [PATCH] 保存库存结算时间点重启定时任务

---
 task/month_stats.go |   69 ++++++++++++++--------------------
 1 files changed, 28 insertions(+), 41 deletions(-)

diff --git a/task/month_stats.go b/task/month_stats.go
index a7985ad..a6b2669 100644
--- a/task/month_stats.go
+++ b/task/month_stats.go
@@ -103,37 +103,22 @@
 			moreValueArr := make([]models.UnitItems, 0, len(product.MoreUnitList))
 			inputMoreValueArr := make([]models.UnitItems, 0, len(product.MoreUnitList))
 			outputMoreValueArr := make([]models.UnitItems, 0, len(product.MoreUnitList))
-			for _, unitItem := range product.MoreUnitList {
-				moreValueArr = append(moreValueArr, models.UnitItems{
-					Amount:   amount.Mul(unitItem.Amount),
-					Unit:     unitItem.Unit,
-					Floating: unitItem.Floating,
-				})
-				bys, _ := json.Marshal(moreValueArr)
-				moreUnits = string(bys)
-
-				if !inputMap[productId].IsZero() {
-					inputMoreValueArr = append(inputMoreValueArr, models.UnitItems{
-						Amount:   inputMap[productId].Mul(unitItem.Amount),
-						Unit:     unitItem.Unit,
-						Floating: unitItem.Floating,
-					})
-					bys, _ = json.Marshal(inputMoreValueArr)
-					inputMoreUnits = string(bys)
-
-				}
-
-				if !outputMap[productId].IsZero() {
-					outputMoreValueArr = append(outputMoreValueArr, models.UnitItems{
-						Amount:   outputMap[productId].Mul(unitItem.Amount),
-						Unit:     unitItem.Unit,
-						Floating: unitItem.Floating,
-					})
-					bys, _ = json.Marshal(outputMoreValueArr)
-					outputMoreUnits = string(bys)
-
-				}
+			if !amount.IsZero() {
+				moreValueArr = service.CreateMoreUnit(amount, product.MoreUnitList)
 			}
+			if !inputMap[productId].IsZero() {
+				inputMoreValueArr = service.CreateMoreUnit(inputMap[productId], product.MoreUnitList)
+			}
+
+			if !outputMap[productId].IsZero() {
+				outputMoreValueArr = service.CreateMoreUnit(outputMap[productId], product.MoreUnitList)
+			}
+			bys, _ := json.Marshal(moreValueArr)
+			moreUnits = string(bys)
+			bys, _ = json.Marshal(inputMoreValueArr)
+			inputMoreUnits = string(bys)
+			bys, _ = json.Marshal(outputMoreValueArr)
+			outputMoreUnits = string(bys)
 		}
 
 		record.BeginMoreUnits = moreUnits
@@ -144,18 +129,20 @@
 				service.SendAlarm("鏈堝害缁熻鍒涘缓鏈湀澶辫触", fmt.Sprintf("NewMonthStatsSearch Create err:%v, record: %+v", err, record))
 			}
 
-			if oldRecordsMap[productId] != nil && (!inputMap[productId].IsZero() || !outputMap[productId].IsZero()) {
-				record.InputAmount = inputMap[productId]
-				record.InputMoreUnits = inputMoreUnits
-				record.OutputAmount = outputMap[productId]
-				record.OutputMoreUnits = outputMoreUnits
+			if oldRecordsMap[productId] != nil {
 				m := map[string]interface{}{
-					"input_amount":      inputMap[productId],
-					"input_more_units":  inputMoreUnits,
-					"output_amount":     outputMap[productId],
-					"output_more_units": outputMoreUnits,
-					"end_more_units":    moreUnits,
-					"end_amount":        amount,
+					"end_more_units": moreUnits,
+					"end_amount":     amount,
+				}
+				if !inputMap[productId].IsZero() || !outputMap[productId].IsZero() {
+					record.InputAmount = inputMap[productId]
+					record.InputMoreUnits = inputMoreUnits
+					record.OutputAmount = outputMap[productId]
+					record.OutputMoreUnits = outputMoreUnits
+					m["input_amount"] = inputMap[productId]
+					m["input_more_units"] = inputMoreUnits
+					m["output_amount"] = outputMap[productId]
+					m["output_more_units"] = outputMoreUnits
 				}
 				err = models.NewMonthStatsSearch().SetOrm(db).SetID(oldRecordsMap[productId].Id).UpdateByMap(m)
 				if err != nil {

--
Gitblit v1.8.0