|
@@ -93,19 +93,22 @@ func (s *StoreEntry) CreateEnter(ctx context.Context, req *pasturePb.EventEnterR
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
|
+ pastureId := userModel.AppPasture.Id
|
|
|
req.MessengerId = int32(userModel.SystemUser.Id)
|
|
|
req.MessengerName = userModel.SystemUser.Name
|
|
|
- if req.OperationId > 0 {
|
|
|
- systemUser, _ := s.GetSystemUserById(ctx, int64(req.OperationId))
|
|
|
- req.OperationName = systemUser.Name
|
|
|
+
|
|
|
+ operationSystemUser, err := s.GetSystemUserById(ctx, int64(req.OperationId))
|
|
|
+ if err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
}
|
|
|
+ req.OperationName = operationSystemUser.Name
|
|
|
|
|
|
- penMap := s.PenMap(ctx, userModel.AppPasture.Id)
|
|
|
+ penMap := s.PenMap(ctx, pastureId)
|
|
|
if len(penMap) <= 0 {
|
|
|
return xerr.Customf("请先设置牛舍信息")
|
|
|
}
|
|
|
|
|
|
- newCow := model.NewEnterCow(userModel.AppPasture.Id, req, penMap)
|
|
|
+ newCow := model.NewEnterCow(pastureId, req, penMap)
|
|
|
if err = s.DB.Transaction(func(tx *gorm.DB) error {
|
|
|
// 新增牛只信息
|
|
|
if err = tx.Model(new(model.Cow)).Create(newCow).Error; err != nil {
|
|
@@ -113,34 +116,47 @@ func (s *StoreEntry) CreateEnter(ctx context.Context, req *pasturePb.EventEnterR
|
|
|
}
|
|
|
|
|
|
// 新增入场事件
|
|
|
- newEventEnter := model.NewEventEnter(userModel.AppPasture.Id, newCow.Id, req)
|
|
|
+ newEventEnter := model.NewEventEnter(pastureId, newCow, req)
|
|
|
if err = tx.Model(new(model.EventEnter)).Create(newEventEnter).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
|
// 新增胎次数据
|
|
|
- newCowLact := model.NewCowLact(userModel.AppPasture.Id, newCow)
|
|
|
+ newCowLact := model.NewCowLact(pastureId, newCow)
|
|
|
if err = tx.Model(new(model.CowLact)).Create(newCowLact).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
|
- eventWeight := model.NewEventWeight(
|
|
|
- userModel.AppPasture.Id,
|
|
|
- newCow,
|
|
|
- userModel.SystemUser,
|
|
|
+ eventWeight := model.NewEventWeight(pastureId, newCow, userModel.SystemUser,
|
|
|
&pasturePb.EventWeight{
|
|
|
WeightAt: req.EnterAt,
|
|
|
- Remarks: "入场体重",
|
|
|
+ Remarks: model.EnterWeigh,
|
|
|
OperationId: req.OperationId,
|
|
|
OperationName: req.OperationName,
|
|
|
Weight: req.Weight,
|
|
|
})
|
|
|
- if err = tx.Model(new(model.EventWeight)).Create(eventWeight).Error; err != nil {
|
|
|
+ if err = tx.Model(new(model.EventWeight)).
|
|
|
+ Create(eventWeight).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|
|
|
|
|
|
+ // 脖环绑定
|
|
|
+ if newCow.NeckRingNumber != "" {
|
|
|
+ newCowNeckRing := model.NewNeckRing(pastureId, newCow.NeckRingNumber, newCow, operationSystemUser)
|
|
|
+ if err = tx.Model(new(model.NeckRing)).
|
|
|
+ Create(newCowNeckRing).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ newNeckRingBindLog := model.NewNeckRingBindLog(pastureId, newCow.NeckRingNumber, newCow, userModel.SystemUser, model.EventEnterBind)
|
|
|
+ if err = tx.Model(new(model.NeckRingBindLog)).
|
|
|
+ Create(newNeckRingBindLog).Error; err != nil {
|
|
|
+ return xerr.WithStack(err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 记录事件日志
|
|
|
- cowLogs := s.SubmitEventLog(ctx, userModel.AppPasture.Id, newCow, pasturePb.EventType_Enter, req)
|
|
|
+ cowLogs := s.SubmitEventLog(ctx, pastureId, newCow, pasturePb.EventType_Enter, req)
|
|
|
if err = tx.Table(cowLogs.TableName()).Create(cowLogs).Error; err != nil {
|
|
|
return xerr.WithStack(err)
|
|
|
}
|