From da3e478917dea118df075357cbd2e6f10833d9c6 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 14 六月 2024 20:08:22 +0800
Subject: [PATCH] 商品调整验证后生成入库单和出库单
---
task/month_stats.go | 77 ++++++++++++++++++++++----------------
1 files changed, 45 insertions(+), 32 deletions(-)
diff --git a/task/month_stats.go b/task/month_stats.go
index b89aa88..6d82bb4 100644
--- a/task/month_stats.go
+++ b/task/month_stats.go
@@ -12,21 +12,25 @@
"wms/service"
)
-func MonthStats() {
+func MonthStats() (err error) {
//鍔犻攣锛屽彧闇�瑕佷竴涓繘绋嬭繍琛屾浠诲姟
var (
lockName = "monthStats"
serviceID = "wms"
)
- err := models.NewLockSearch().AcquireLock(lockName, serviceID)
+ err = models.NewLockSearch().AcquireLock(lockName, serviceID)
if err != nil {
logx.Errorf("MonthStats AcquireLock err:%v", err)
return
}
defer func() {
- err := models.NewLockSearch().ReleaseLock(lockName, serviceID)
+ if err != nil {
+ service.SendAlarm("鏈堝害缁熻鎵ц澶辫触", "鎶ラ敊: "+err.Error())
+ }
+ err = models.NewLockSearch().ReleaseLock(lockName, serviceID)
if err != nil {
logx.Errorf("MonthStats ReleaseLock err:%v", err)
+ service.SendAlarm("鏈堝害缁熻鎵ц鎴愬姛瑙i攣澶辫触", err.Error())
}
}()
@@ -68,6 +72,12 @@
return
}
var record models.MonthStats
+
+ err = models.NewMonthStatsSearch().SetDate(date).Delete()
+ if err != nil {
+ return
+ }
+
for _, groupSum := range groupSumList {
productId := groupSum.Class
if productMap[productId] == nil {
@@ -94,13 +104,13 @@
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 !amount.IsZero() {
+ moreValueArr = append(moreValueArr, models.UnitItems{
+ Amount: amount.Mul(unitItem.Amount),
+ Unit: unitItem.Unit,
+ Floating: unitItem.Floating,
+ })
+ }
if !inputMap[productId].IsZero() {
inputMoreValueArr = append(inputMoreValueArr, models.UnitItems{
@@ -108,9 +118,6 @@
Unit: unitItem.Unit,
Floating: unitItem.Floating,
})
- bys, _ = json.Marshal(inputMoreValueArr)
- inputMoreUnits = string(bys)
-
}
if !outputMap[productId].IsZero() {
@@ -119,16 +126,17 @@
Unit: unitItem.Unit,
Floating: unitItem.Floating,
})
- bys, _ = json.Marshal(outputMoreValueArr)
- outputMoreUnits = string(bys)
-
}
}
- }
-
- err = models.NewMonthStatsSearch().SetDate(date).Delete()
- if err != nil {
- return
+ bys, _ := json.Marshal(moreValueArr)
+ if len(moreValueArr) > 0 {
+ fmt.Println(moreValueArr)
+ }
+ moreUnits = string(bys)
+ bys, _ = json.Marshal(inputMoreValueArr)
+ inputMoreUnits = string(bys)
+ bys, _ = json.Marshal(outputMoreValueArr)
+ outputMoreUnits = string(bys)
}
record.BeginMoreUnits = moreUnits
@@ -139,18 +147,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 {
@@ -161,6 +171,9 @@
return nil
})
}
+ if err == nil {
+ service.SendAlarm("鏈堝害缁熻鎵ц鎴愬姛", "")
+ }
return
}
--
Gitblit v1.8.0