zhangqian
2024-05-06 8d3f2400195b0ae746e51ed4871e2b0ab621c928
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("月度统计执行成功解锁失败", 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 {
@@ -126,11 +136,6 @@
         }
      }
      err = models.NewMonthStatsSearch().SetDate(date).Delete()
      if err != nil {
         return
      }
      record.BeginMoreUnits = moreUnits
      err = models.WithTransaction(func(db *gorm.DB) error {
         err = models.NewMonthStatsSearch().SetOrm(db).Create(&record)
@@ -161,6 +166,9 @@
         return nil
      })
   }
   if err == nil {
      service.SendAlarm("月度统计执行成功", "")
   }
   return
}