| 
					
				 | 
			
			
				@@ -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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 |