ソースを参照

crontab: estrus update

Yi 1 週間 前
コミット
333acac33e
2 ファイル変更6 行追加4 行削除
  1. 2 2
      module/crontab/cow_cron.go
  2. 4 2
      module/crontab/estrus_warning.go

+ 2 - 2
module/crontab/cow_cron.go

@@ -547,13 +547,13 @@ func (e *Entry) SystemBasicCrontab() error {
 
 func (e *Entry) DeleteOldOriginal() error {
 	if err := e.DB.Model(new(model.NeckRingOriginal)).
-		Where("active_date <= ?", time.Now().Local().AddDate(0, -1, 0).Format(model.LayoutDate2)).
+		Where("active_date <= ?", time.Now().Local().AddDate(0, 0, -15).Format(model.LayoutDate2)).
 		Delete(&model.NeckRingOriginal{}).Error; err != nil {
 		zaplog.Error("crontab", zap.Any("DeleteOldOriginal", err))
 	}
 
 	if err := e.DB.Model(new(model.NeckActiveHabit)).
-		Where("heat_date <= ?", time.Now().Local().AddDate(0, -1, 0).Format(model.LayoutDate2)).
+		Where("heat_date <= ?", time.Now().Local().AddDate(0, -3, 0).Format(model.LayoutDate2)).
 		Delete(&model.NeckActiveHabit{}).Error; err != nil {
 		zaplog.Error("crontab", zap.Any("DeleteNeckActiveHabit", err))
 	}

+ 4 - 2
module/crontab/estrus_warning.go

@@ -79,10 +79,11 @@ func (e *Entry) UpdateNeckRingWarning(pastureId int64) (err error) {
 func (e *Entry) UpdateNeckRingWarningIsPeak(pastureId, minId int64) {
 	cowIds := make([]int64, 0)
 	if err := e.DB.Table(fmt.Sprintf("%s as a", new(model.NeckActiveHabit).TableName())).
-		Joins("JOIN %s as b ON a.cow_id = b.cow_id", new(model.NeckRingEstrusWarning).TableName()).
+		Joins(fmt.Sprintf("JOIN %s as b ON a.cow_id = b.cow_id", new(model.NeckRingEstrusWarning).TableName())).
 		Where("a.id >= ?", minId).
 		Where("b.pasture_id = ?", pastureId).
-		Where("a.active_time > b.date_time").Pluck("DISTINCT b.cow_id", &cowIds).Error; err != nil {
+		Where("a.active_time > b.date_time").
+		Pluck("DISTINCT b.cow_id", &cowIds).Error; err != nil {
 		zaplog.Error("UpdateNeckRingWarningIsPeak: query cow_ids failed", zap.Any("err", err))
 		return
 	}
@@ -110,6 +111,7 @@ func (e *Entry) UpdateNeckRingWarningIsPeak(pastureId, minId int64) {
 			// 继续尝试下一批,而不是直接返回
 		}
 	}
+
 	/*sqlQuery := e.DB.Table(fmt.Sprintf("%s as a", new(model.NeckActiveHabit).TableName())).
 		Select("1").
 		Where("a.id >= ?", minId).