| 
					
				 | 
			
			
				@@ -30,6 +30,13 @@ var PastureDataLogType = map[string]int32{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"FeedFormula_IsModify":          2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"FeedFormula_Cancel_Distribute": 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var EditRecodeMap = map[string]string{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"forage_name": "饲料名称", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"weight":      "重量", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"stir_delay":  "搅拌延迟", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"allow_error": "允许误差", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"sort":        "排序", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // CreateFeedFormula 添加数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (s *StoreEntry) CreateFeedFormula(ctx context.Context, req *operationPb.AddFeedFormulaRequest) error { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -109,6 +116,113 @@ func (s *StoreEntry) AddFeedByFeedFormula(ctx context.Context, req *operationPb. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// EditFeedByFeedFormula 配方饲料编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) EditFeedByFeedFormula(ctx context.Context, req *operationPb.AddFeedFormulaDetail) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	feedFormulaData := &model.FeedFormula{Id: int64(req.FeedFormulaId)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.DB.Model(new(model.FeedFormula)).First(feedFormulaData).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	feedFormulaDetail := &model.FeedFormulaDetail{Id: int64(req.Id)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.DB.Model(new(model.FeedFormulaDetail)). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Where("is_show = ?", operationPb.IsShow_OK). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		First(feedFormulaDetail).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 添加修改记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	defer s.EditFeedFormulaDetailAddRecode(ctx, req, feedFormulaDetail) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 更新数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	updateData := &model.FeedFormulaDetail{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ForageId:        int64(req.ForageId), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ForageName:      req.ForageName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ForageGroupName: req.ForageGroupName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Weight:          int32(req.Weight * 100), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		StirDelay:       req.StirDelay, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		AllowError:      req.AllowError, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Sort:            req.Sort, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.DB.Model(new(model.FeedFormulaDetail)).Where("id = ?", req.Id).Updates(updateData).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// EditFeedFormulaDetailAddRecode 更新饲料配方修改记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) EditFeedFormulaDetailAddRecode(ctx context.Context, req *operationPb.AddFeedFormulaDetail, feedFormulaDetail *model.FeedFormulaDetail) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	editRecordList := make([]*model.FeedFormulaEditRecord, 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	editRecordData := &model.FeedFormulaEditRecord{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		FeedFormulaId: int64(req.FeedFormulaId), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		PastureName:   "集团", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ForageName:    req.ForageName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Status:        operationPb.FeedFormulaEditRecordType_UPDATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if operationName, err := s.GetCurrentUserName(ctx); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		zaplog.Error("EditFeedByFeedFormula", zap.Any("GetCurrentUserName", err)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.OperationName = operationName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lastGroupIdData := &model.FeedFormulaEditRecord{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.DB.Model(new(model.FeedFormulaEditRecord)). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Where("is_show = ?", operationPb.IsShow_OK). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Order("group_id desc"). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		First(&lastGroupIdData).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		zaplog.Error("EditFeedByFeedFormula", zap.Any("lastGroupIdData", err)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.GroupId = lastGroupIdData.GroupId + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.BeforeValue = lastGroupIdData.BeforeValue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if feedFormulaDetail.ForageName != req.ForageName { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.FieldName = EditRecodeMap["forage_name"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.BeforeValue = lastGroupIdData.ForageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.AfterValue = req.ForageName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordList = append(editRecordList, editRecordData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if feedFormulaDetail.Weight != int32(req.Weight*100) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.FieldName = EditRecodeMap["weight"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.AfterValue = fmt.Sprintf("%d", int32(req.Weight*100)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordList = append(editRecordList, editRecordData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if feedFormulaDetail.AllowError != req.AllowError { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.FieldName = EditRecodeMap["allow_error"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.AfterValue = fmt.Sprintf("%d", req.AllowError) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordList = append(editRecordList, editRecordData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if feedFormulaDetail.StirDelay != req.StirDelay { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.FieldName = EditRecodeMap["stir_delay"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.AfterValue = fmt.Sprintf("%d", req.StirDelay) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordList = append(editRecordList, editRecordData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if feedFormulaDetail.Sort != req.Sort { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.FieldName = EditRecodeMap["sort"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordData.AfterValue = fmt.Sprintf("%d", req.Sort) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		editRecordList = append(editRecordList, editRecordData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.CreateFeedFormulaEditRecord(ctx, editRecordList); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		zaplog.Error("EditFeedByFeedFormula", zap.Any("CreateFeedFormulaEditRecord", err)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// CreateFeedFormulaEditRecord 创建配方修改记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *StoreEntry) CreateFeedFormulaEditRecord(ctx context.Context, req []*model.FeedFormulaEditRecord) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if req == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := s.DB.Model(new(model.FeedFormulaDetail)).Save(req).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return xerr.WithStack(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // FeedFormulaDetailBySort 配方饲料排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (s *StoreEntry) FeedFormulaDetailBySort(ctx context.Context, req *operationPb.GroupAddFeedFormulaDetail) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	feedFormulaData := &model.FeedFormula{Id: int64(req.FeedFormulaId)} 
			 |