Browse Source

work: items 发情清单调整

Yi 1 month ago
parent
commit
cb3eff653c
4 changed files with 13 additions and 12 deletions
  1. 1 1
      go.mod
  2. 2 0
      go.sum
  3. 1 1
      http/handler/cow/cow.go
  4. 9 10
      model/neck_ring_estrus_warning.go

+ 1 - 1
go.mod

@@ -3,7 +3,7 @@ module kpt-pasture
 go 1.17
 
 require (
-	gitee.com/xuyiping_admin/go_proto v0.0.0-20250303084040-e9be94c74c2a
+	gitee.com/xuyiping_admin/go_proto v0.0.0-20250303092843-e61a247edc34
 	gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/eclipse/paho.mqtt.golang v1.4.3

+ 2 - 0
go.sum

@@ -279,6 +279,8 @@ gitee.com/xuyiping_admin/go_proto v0.0.0-20250303083156-fe44c0a9957d h1:vSbxOcwG
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250303083156-fe44c0a9957d/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250303084040-e9be94c74c2a h1:vJXz6WZY0xG+UH8UwNoK1z2IJgB3oR3/vKZO5GYhvZw=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250303084040-e9be94c74c2a/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20250303092843-e61a247edc34 h1:7AgTMu6xEV/YjLtE2folQZwNZc0DWPUMWEVX1h18/2g=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20250303092843-e61a247edc34/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b h1:w05MxH7yqveRlaRbxHhbif5YjPrJFodRPfOjYhXn7Zk=
 gitee.com/xuyiping_admin/pkg v0.0.0-20241108060137-caea58c59f5b/go.mod h1:8tF25X6pE9WkFCczlNAC0K2mrjwKvhhp02I7o0HtDxY=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=

+ 1 - 1
http/handler/cow/cow.go

@@ -91,7 +91,7 @@ func BehaviorCurve(c *gin.Context) {
 	}
 
 	if err := valid.ValidateStruct(&req,
-		valid.Field(&req.CowId, valid.Required),
+		valid.Field(&req.EarNumber, valid.Required),
 	); err != nil {
 		apierr.AbortBadRequest(c, http.StatusBadRequest, err)
 		return

+ 9 - 10
model/neck_ring_estrus_warning.go

@@ -53,22 +53,20 @@ func NewNeckRingEstrusWarning(
 // calculatePzHour 计算最佳配置时间
 func (n *NeckRingEstrusWarning) calculatePzHour(lact int32) time.Time {
 	var pzHour time.Time
-
-	dateTime := n.DateTime
-	firstTime := n.FirstTime
+	dateTime, _ := time.Parse(LayoutTime, n.DateTime)
+	firstTime, _ := time.Parse(LayoutTime, n.FirstTime)
 
 	// 条件判断
-	if n.IsPeak == pasturePb.IsShow_Ok || n.DateTime.Sub(n.FirstTime).Hours() >= 8 {
-		pzHour = n.DateTime.Add(8 * time.Hour) // v.datetime + INTERVAL 8 HOUR
+	if n.IsPeak == pasturePb.IsShow_Ok || dateTime.Sub(firstTime).Hours() >= 8 {
+		pzHour = dateTime.Add(8 * time.Hour) // v.datetime + INTERVAL 8 HOUR
 	} else {
-		pzHour = n.FirstTime.Add(16 * time.Hour) // v.firsttime + INTERVAL 16 HOUR
+		pzHour = firstTime.Add(16 * time.Hour) // v.firsttime + INTERVAL 16 HOUR
 	}
 
-	// 时间调整
+	// 胎次调整
 	if lact >= 3 {
 		pzHour = pzHour.Add(-1 * time.Hour) // 减去 1 小时
 	}
-
 	return pzHour
 }
 
@@ -99,11 +97,12 @@ func (n NeckRingEstrusWarningSlice) ToPB(cowMap map[int64]*Cow, eventLogMap map[
 			Lact:                   cow.Lact,
 			CalvingAge:             cow.CalvingAge,
 			AbortionAge:            cow.AbortionAge,
-			OptimumMatingStartTime: "",
-			OptimumMatingEndTime:   "",
+			OptimumMatingStartTime: pzHour.Add(-4 * time.Hour).Format(LayoutTime),
+			OptimumMatingEndTime:   pzHour.Add(4 * time.Hour).Format(LayoutTime),
 			LastBreedEventDetails:  lastBreedEventDetails,
 			Level:                  v.Level,
 			EstrusInterval:         0,
+			BestMatingTime:         pzHour.Format(LayoutTime),
 		}
 	}
 	return res