| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | package modelsimport (	"fmt"	"time"	operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"	pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture")type FeedTemplate struct {	Id           int64   `xorm:"AUTOINCR 'id'" json:"id"`	PastureId    int64   `xorm:"pastureid" json:"pasture_id"`	TCode        string  `xorm:"tcode" json:"t_code"`	TName        string  `xorm:"tname" json:"t_name"`	TColor       string  `xorm:"tcolor" json:"t_color"`	CCid         int64   `xorm:"ccid" json:"c_cid"`	CCName       string  `xorm:"ccname" json:"cc_name"`	FTType       string  `xorm:"fttype" json:"ft_type"`	FTTypeId     int32   `xorm:"fttypeid" json:"ft_type_id"`	Source       string  `xorm:"source" json:"source"`	Remark       string  `xorm:"remark" json:"remark"`	Enable       int32   `xorm:"enable" json:"enable"`	Sort         int64   `xorm:"sort" json:"sort"`	Owner        string  `xorm:"owner" json:"owner"`	Weight       float64 `xorm:"weight" json:"weight"`	DryWeight    float64 `xorm:"dryweight" json:"dry_weight"`	IsDelete     int32   `xorm:"isdelete" json:"is_delete"`	Version      int64   `xorm:"version" json:"version"`	SaveTime     string  `xorm:"savetime" json:"save_time"`	IsIssue      int32   `xorm:"isissue" json:"is_issue"`	IssueVersion int32   `xorm:"issueversion" json:"issue_version"`	IssueId      int64   `xorm:"issueid" json:"issue_id"`	Backup1      string  `xorm:"backup1" json:"backup1"`	Backup2      string  `xorm:"backup2" json:"backup2"`	IsModify     int32   `xorm:"is_modify" json:"is_modify"`	GroupDataId  int64   `xorm:"group_data_id" json:"group_data_id"`	GroupVersion int64   `xorm:"group_version" json:"group_version"`	FeedFormulaDetail []*FeedTemplateDetail `xorm:"-" json:"feed_formula_detail"`}func (f *FeedTemplate) TableName() string {	return "feedtemplet"}func NewFeedTemplateByGroup(pastureId int64, req *operationPb.DistributeFeedRequest) *FeedTemplate {	res := &FeedTemplate{		PastureId:    pastureId,		TCode:        req.EncodeNumber,		TName:        req.Name,		TColor:       req.Colour,		CCid:         int64(req.CattleCategoryId),		CCName:       req.CattleCategoryName,		FTType:       req.FormulaTypeName,		FTTypeId:     int32(req.FormulaTypeId),		Source:       "集团下发",		Remark:       req.Remarks,		Enable:       1,		Version:      int64(req.Version),		SaveTime:     time.Now().Format("2006-01-02 15:04:05"),		IsIssue:      0,		IssueVersion: 0,		IssueId:      0,		IsModify:     int32(req.IsModify),		GroupDataId:  int64(req.Id),		GroupVersion: int64(req.Version),	}	res.FeedFormulaDetail = make([]*FeedTemplateDetail, 0)	for _, v := range req.FeedFormulaDetail {		res.FeedFormulaDetail = append(res.FeedFormulaDetail, &FeedTemplateDetail{			PastureId:      pastureId,			FId:            int64(v.ForageId),			FName:          v.ForageName,			FWeight:        float64(v.Weight),			IsLockCount:    v.IsLockCowCountRatio,			Sort:           v.Sort,			FeedGroup:      v.ForageGroupName,			PreFtId:        int64(v.PreFit),			AutoSecond:     v.StirDelay,			AutoSecondName: "",			SplitFtPreId:   0,			Deviation:      v.AllowError,			IsModify:       int32(v.IsModify),			IsShow:         int32(operationPb.IsShow_OK),		})	}	return res}type FeedTemplateSlice []*FeedTemplatefunc (f FeedTemplateSlice) ToPB(feedDetailVersionLogs []*FeedDetailVersion) []*pasturePb.FeedTemplateDataList {	res := make([]*pasturePb.FeedTemplateDataList, len(f))	for i, v := range f {		var isUpdate int32 = 2		if v.GroupDataId > 0 {			for _, l := range feedDetailVersionLogs {				if l.Belong == 2 && v.GroupDataId == l.FeedTemplateId && int32(v.GroupVersion) < l.GroupVersion {					isUpdate = 1				}			}		} else {			for _, l := range feedDetailVersionLogs {				if l.Belong == 1 && v.Id == l.FeedTemplateId && int32(v.GroupVersion) < l.GroupVersion {					isUpdate = 1				}			}		}		res[i] = &pasturePb.FeedTemplateDataList{			Id:                 fmt.Sprintf("%d", v.Id),			Name:               v.TName,			Code:               v.TCode,			Color:              v.TColor,			CattleCategoryId:   int32(v.CCid),			CattleCategoryName: v.CCName,			FormulaTypeId:      v.FTTypeId,			FormulaTypeName:    v.FTType,			Source:             v.Source,			Remark:             v.Remark,			Version:            int32(v.Version),			Enable:             v.Enable,			IsModify:           v.IsModify,			IsUpdate:           isUpdate,		}	}	return res}
 |