|
@@ -140,11 +140,11 @@ func (e *Entry) UpdateCowInfoByPasture(pastureId int64) {
|
|
|
dateTime := time.Now().Local().Format(model.LayoutMonth)
|
|
|
for _, cow := range cowList {
|
|
|
// 周活动量
|
|
|
- weeklyActive := e.UpdateCowWeeklyHigh(cow)
|
|
|
+ weeklyActive := e.UpdateCowWeeklyHigh(pastureId, cow)
|
|
|
+ zaplog.Info("crontab", zap.Any("weeklyActive", weeklyActive))
|
|
|
cow.EventUpdate(weeklyActive)
|
|
|
if err := e.DB.Model(new(model.Cow)).
|
|
|
- Select("day_age", "calving_age", "pregnancy_age", "admission_age",
|
|
|
- "abortion_age", "cow_type", "weekly_active", "lactation_age", "dry_milk_age", "mating_age").
|
|
|
+ Select("day_age", "calving_age", "pregnancy_age", "admission_age", "abortion_age", "cow_type", "weekly_active", "lactation_age", "dry_milk_age", "mating_age").
|
|
|
Where("id = ?", cow.Id).
|
|
|
Updates(cow).Error; err != nil {
|
|
|
zaplog.Error("Crontab", zap.Any("UpdateCowDayAge", err))
|
|
@@ -451,10 +451,16 @@ 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, 0, -30).Format(model.LayoutDate2)).
|
|
|
+ Where("active_date <= ?", time.Now().Local().AddDate(0, -1, 0).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)).
|
|
|
+ Delete(&model.NeckActiveHabit{}).Error; err != nil {
|
|
|
+ zaplog.Error("crontab", zap.Any("DeleteNeckActiveHabit", err))
|
|
|
+ }
|
|
|
return nil
|
|
|
}
|
|
|
|
|
@@ -527,13 +533,13 @@ func (e *Entry) InitEventData(cowList []*model.Cow, systemBasic *model.SystemBas
|
|
|
}
|
|
|
|
|
|
// UpdateCowWeeklyHigh 更新牛只周活动量
|
|
|
-func (e *Entry) UpdateCowWeeklyHigh(cow *model.Cow) int32 {
|
|
|
- highData, err := e.GetSystemNeckRingConfigure(cow.PastureId, model.High)
|
|
|
+func (e *Entry) UpdateCowWeeklyHigh(pastureId int64, cow *model.Cow) int32 {
|
|
|
+ highData, err := e.GetSystemNeckRingConfigure(pastureId, model.High)
|
|
|
if err != nil || highData == nil || highData.Value <= 0 {
|
|
|
return 0
|
|
|
}
|
|
|
|
|
|
- minWeeklyActive, er := e.GetSystemNeckRingConfigure(cow.PastureId, model.MinWeeklyActive)
|
|
|
+ minWeeklyActive, er := e.GetSystemNeckRingConfigure(pastureId, model.MinWeeklyActive)
|
|
|
if er != nil || minWeeklyActive == nil || minWeeklyActive.Value <= 0 {
|
|
|
return 0
|
|
|
}
|
|
@@ -544,6 +550,7 @@ func (e *Entry) UpdateCowWeeklyHigh(cow *model.Cow) int32 {
|
|
|
selectStr := fmt.Sprintf(`cow_id,heat_date,count(1) AS nb,IF(ROUND(AVG(high))>%d, ROUND(AVG(high)), %d) AS high`, minWeeklyActive.Value, minWeeklyActive.Value)
|
|
|
if err = e.DB.Model(new(model.NeckActiveHabit)).
|
|
|
Select(selectStr).
|
|
|
+ Where("pasture_id = ?", pastureId).
|
|
|
Where("cow_id = ?", cow.Id).
|
|
|
Where("heat_date BETWEEN ? AND ?", startTime, endTime).
|
|
|
Where("high > ?", highData.Value).
|