|
@@ -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 {
|
|
|
// 查询有胎次且在记录日期前有记录的奶牛
|