|
@@ -107,13 +107,23 @@ func (s *StoreEntry) CreateEnter(ctx context.Context, req *pasturePb.EventEnterR
|
|
|
|
|
|
newCow := model.NewEnterCow(userModel.AppPasture.Id, req, penMap)
|
|
|
if err = s.DB.Transaction(func(tx *gorm.DB) error {
|
|
|
- if err = tx.Create(newCow).Error; err != nil {
|
|
|
+ // 新增牛只信息
|
|
|
+ if err = tx.Model(new(model.Cow)).Create(newCow).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
+
|
|
|
+ // 新增入场事件
|
|
|
newEventEnter := model.NewEventEnter(userModel.AppPasture.Id, newCow.Id, req)
|
|
|
- if err = tx.Create(newEventEnter).Error; err != nil {
|
|
|
+ if err = tx.Model(new(model.EventEnter)).Create(newEventEnter).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
+
|
|
|
+ // 新增胎次数据
|
|
|
+ newCowLact := model.NewCowLact(userModel.AppPasture.Id, newCow)
|
|
|
+ if err = tx.Model(new(model.CowLact)).Create(newCowLact).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
eventWeight := model.NewEventWeight(
|
|
|
userModel.AppPasture.Id,
|
|
|
newCow,
|
|
@@ -125,10 +135,11 @@ func (s *StoreEntry) CreateEnter(ctx context.Context, req *pasturePb.EventEnterR
|
|
|
OperationName: req.OperationName,
|
|
|
Weight: req.Weight,
|
|
|
})
|
|
|
- if err = tx.Create(eventWeight).Error; err != nil {
|
|
|
+ if err = tx.Model(new(model.EventWeight)).Create(eventWeight).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
|
+ // 记录事件日志
|
|
|
cowLogs := s.SubmitEventLog(ctx, userModel.AppPasture.Id, newCow, pasturePb.EventType_Enter, req)
|
|
|
if err = tx.Table(cowLogs.TableName()).Create(cowLogs).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
@@ -379,7 +390,7 @@ func (s *StoreEntry) WeightBatch(ctx context.Context, req *pasturePb.BatchEventW
|
|
|
}
|
|
|
|
|
|
// 更新牛只信息
|
|
|
- cow.EventWeightUpdate(int64(item.Weight*1000), int64(item.WeightAt))
|
|
|
+ cow.EventWeightUpdate(int64(item.Weight*1000), int64(item.Height), int64(item.WeightAt))
|
|
|
if err = tx.Model(new(model.Cow)).
|
|
|
Select("last_second_weight_at", "last_second_weight", "last_weight_at", "current_weight").
|
|
|
Where("id = ?", cow.Id).
|