浏览代码

crontab: milkDaily

Yi 3 周之前
父节点
当前提交
afaf60fe7e
共有 1 个文件被更改,包括 27 次插入26 次删除
  1. 27 26
      module/crontab/milk_daily.go

+ 27 - 26
module/crontab/milk_daily.go

@@ -18,52 +18,53 @@ func (e *Entry) InsertMilkDaily() error {
 	}
 
 	for _, pasture := range pastureList {
-		e.ProcessMilkDaily(pasture.Id)
+		// 获取最大记录日期或默认日期
+		pastureId := pasture.Id
+		var maxDateTime string
+		if err := e.DB.Model(new(model.MilkDaily)).
+			Where("pasture_id = ?", pastureId).
+			Select("IFNULL(MAX(heat_date) + INTERVAL 1 DAY, CURDATE() - INTERVAL 1 MONTH) AS max_date_time").
+			Scan(&maxDateTime).Error; err != nil {
+			zaplog.Error("InsertMilkDaily", zap.Any("pastureId", pastureId), zap.Any("err", err))
+			continue
+		}
+
+		maxDate, err := util.TimeParseLocal(model.LayoutDate2, maxDateTime)
+		if err != nil {
+			zaplog.Error("InsertMilkDaily", zap.Any("pastureId", pastureId), zap.Any("err", err))
+			continue
+		}
+
+		e.ProcessMilkDaily(pastureId, maxDate)
 	}
 
 	return nil
 }
 
-func (e *Entry) ProcessMilkDaily(pastureId int64) {
-	// 获取最大记录日期或默认日期
-	var maxDateTime string
-	if err := e.DB.Model(new(model.MilkDaily)).
-		Where("pasture_id = ?", pastureId).
-		Select("IFNULL(MAX(heat_date) + INTERVAL 1 DAY, CURDATE() - INTERVAL 1 MONTH) AS max_date_time").
-		Scan(&maxDateTime).Error; err != nil {
-		zaplog.Error("ProcessMilkDaily", zap.Any("pastureId", pastureId), zap.Any("err", err))
-		return
-	}
-
+func (e *Entry) ProcessMilkDaily(pastureId int64, maxDate time.Time) {
 	nowTime := time.Now().Local()
-	if maxDateTime == "" {
-		zaplog.Error("ProcessMilkDaily", zap.Any("pastureId", pastureId), zap.Any("maxDateTime", maxDateTime))
-		return
-	}
-
-	maxDate, err := util.TimeParseLocal(model.LayoutDate2, maxDateTime)
-	if err != nil {
-		zaplog.Error("ProcessMilkDaily", zap.Any("pastureId", pastureId), zap.Any("err", err))
-		return
-	}
-
 	// 处理每一天的数据
 	for maxDate.Before(nowTime) {
 		// 处理有胎次的奶牛
-		if err = e.processCowsWithLact(maxDate); err != nil {
+		if err := e.processCowsWithLact(maxDate); err != nil {
 			zaplog.Error("ProcessMilkDaily", zap.Any("processCowsWithFetal", err))
 		}
 
 		// 处理无胎次的奶牛
-		if err = e.processCowsWithNoLact(maxDate); err != nil {
+		if err := e.processCowsWithNoLact(maxDate); err != nil {
 			zaplog.Error("ProcessMilkDaily", zap.Any("processCowsWithoutFetal", err))
 		}
-
 		// 日期加1天
 		maxDate = maxDate.AddDate(0, 0, 1)
 	}
 }
 
+func (e *Entry) UpdateMilkDaily(pastureId int64, maxDateTime string) error {
+	//yesterday := time.Now().Local().AddDate(0, 0, -1).Format(model.LayoutDate2)
+
+	return nil
+}
+
 // 处理有胎次的奶牛
 func (e *Entry) processCowsWithLact(recordDate time.Time) error {
 	// 查询有胎次且在记录日期前有记录的奶牛