Bladeren bron

cow: event penUpdate

Yi 1 week geleden
bovenliggende
commit
bc04b0a1dc
6 gewijzigde bestanden met toevoegingen van 22 en 11 verwijderingen
  1. 1 1
      go.mod
  2. 2 0
      go.sum
  3. 3 0
      model/cow.go
  4. 14 6
      module/backend/event_base.go
  5. 1 3
      module/backend/event_cow_log.go
  6. 1 1
      module/backend/event_health.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-20250812064516-17d87a02cad2
+	gitee.com/xuyiping_admin/go_proto v0.0.0-20250813060227-ac0a14292eb8
 	gitee.com/xuyiping_admin/pkg v0.0.0-20250613101634-36c36a2d27d0
 	github.com/dgrijalva/jwt-go v3.2.0+incompatible
 	github.com/eclipse/paho.mqtt.golang v1.4.3

+ 2 - 0
go.sum

@@ -1333,6 +1333,8 @@ gitee.com/xuyiping_admin/go_proto v0.0.0-20250806065630-af563d4b2726 h1:Nw5SlOLC
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250806065630-af563d4b2726/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250812064516-17d87a02cad2 h1:vnNX8F32UB9Tsx/aMFxf1QLeaA3Dtf4HOXWJEQ63OPo=
 gitee.com/xuyiping_admin/go_proto v0.0.0-20250812064516-17d87a02cad2/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20250813060227-ac0a14292eb8 h1:MFeaHtBnwmLb9ljU90N1JpnHZPgXiHhlHGU3M3+5W7E=
+gitee.com/xuyiping_admin/go_proto v0.0.0-20250813060227-ac0a14292eb8/go.mod h1:BKrFW6YLDectlQcQk3FYKBeXvjEiodAKJ5rq7O/QiPE=
 gitee.com/xuyiping_admin/pkg v0.0.0-20250613101634-36c36a2d27d0 h1:ZCOqEAnGm6+DTAhACigzWKbwMKtleb8/7OzP2xfHG7g=
 gitee.com/xuyiping_admin/pkg v0.0.0-20250613101634-36c36a2d27d0/go.mod h1:8tF25X6pE9WkFCczlNAC0K2mrjwKvhhp02I7o0HtDxY=
 github.com/BurntSushi/toml v0.3.0/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=

+ 3 - 0
model/cow.go

@@ -157,6 +157,9 @@ func (c *Cow) EventHealthStatusUpdate(healthStatus pasturePb.HealthStatus_Kind)
 func (c *Cow) EventPenUpdate(pen *Pen) {
 	c.PenId = pen.Id
 	c.PenName = pen.Name
+	if pen.PenType == pasturePb.PenType_Reserve {
+		c.CowType = pasturePb.CowType_Reserve_Calf
+	}
 }
 
 // EventEarNumberUpdate 更新耳标号

+ 14 - 6
module/backend/event_base.go

@@ -10,6 +10,9 @@ import (
 	"strings"
 	"time"
 
+	"gitee.com/xuyiping_admin/pkg/logger/zaplog"
+	"go.uber.org/zap"
+
 	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow"
 	"gitee.com/xuyiping_admin/pkg/xerr"
 	"gorm.io/gorm"
@@ -264,12 +267,17 @@ func (s *StoreEntry) CreateGroupTransfer(ctx context.Context, req *pasturePb.Tra
 				return xerr.WithStack(err)
 			}
 
-			if err = s.DB.Model(cow).
-				Updates(map[string]interface{}{
-					"pen_id":   v.TransferInPenId,
-					"pen_name": penMap[v.TransferReasonId].Name,
-				}).Error; err != nil {
-				return xerr.WithStack(err)
+			penInfo, ok := penMap[v.TransferInPenId]
+			if !ok {
+				return xerr.Custom("转栏的栏舍不存在")
+			}
+
+			cow.EventPenUpdate(penInfo)
+			if err = s.DB.Model(new(model.Cow)).
+				Select("pen_id", "pen_name", "cow_type").
+				Where("id = ?", cow.Id).
+				Updates(cow).Error; err != nil {
+				zaplog.Error("CowDiseaseCreate", zap.Any("EventPenUpdate", err))
 			}
 
 			// 事件日志

+ 1 - 3
module/backend/event_cow_log.go

@@ -5,7 +5,6 @@ import (
 	"errors"
 	"fmt"
 	"kpt-pasture/model"
-	"kpt-pasture/util"
 	"strconv"
 	"strings"
 	"time"
@@ -45,8 +44,7 @@ func (s *StoreEntry) SubmitEventLog(ctx context.Context, pastureId int64, cow *m
 			strconv.FormatFloat(float64(data.Price), 'f', 2, 64), sourceMap[cow.SourceKind])
 	case pasturePb.EventType_Transfer_Ben:
 		data := req.(*model.EventTransferGroup)
-		transferAt, _ := util.TimeParseLocal(model.LayoutTime, data.TransferDate)
-		eventAt = transferAt.Unix()
+		eventAt = data.TransferDate
 		remarks = data.Remarks
 		operationUser.Id = data.OperationId
 		operationUser.Name = data.OperationName

+ 1 - 1
module/backend/event_health.go

@@ -265,7 +265,7 @@ func (s *StoreEntry) CowDiseaseCreate(ctx context.Context, req *pasturePb.EventC
 			if penData, ok := penMap[req.PenId]; ok {
 				cow.EventPenUpdate(penData)
 				if err = s.DB.Model(new(model.Cow)).
-					Select("pen_id", "pen_name").
+					Select("pen_id", "pen_name", "cow_type").
 					Where("id = ?", cow.Id).
 					Updates(cow).Error; err != nil {
 					zaplog.Error("CowDiseaseCreate", zap.Any("EventPenUpdate", err))