|
@@ -15,11 +15,44 @@ const (
|
|
|
)
|
|
|
|
|
|
// DistributeFeedFormula 集团饲料配方下发
|
|
|
-func DistributeFeedFormula(res []*models.FeedTemplate) error {
|
|
|
- if _, err := restful.Engine.Table(new(models.FeedTemplate)).Insert(&res); err != nil {
|
|
|
- return err
|
|
|
+func DistributeFeedFormula(pastureId int64, feedTemplateList []*models.FeedTemplate, feedFormulaDetailList []*models.FeedFormulaDetail) error {
|
|
|
+
|
|
|
+ tx := restful.Engine.NewSession()
|
|
|
+ defer tx.Close()
|
|
|
+ for _, feedTemplate := range feedTemplateList {
|
|
|
+ if _, err := tx.Table(new(models.FeedTemplate)).Insert(feedTemplate); err != nil {
|
|
|
+ tx.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ feedFormulaDetail := make([]*models.FeedTemplateDetail, 0)
|
|
|
+ for _, f := range feedFormulaDetailList {
|
|
|
+ feedFormulaDetail = append(feedFormulaDetail, &models.FeedTemplateDetail{
|
|
|
+ PastureId: pastureId,
|
|
|
+ FtId: feedTemplate.Id,
|
|
|
+ FId: f.ForageId,
|
|
|
+ FName: f.ForageName,
|
|
|
+ FWeight: float64(f.Weight / 100),
|
|
|
+ IsLockCount: f.IsLockCowCountRatio,
|
|
|
+ Sort: f.Sort,
|
|
|
+ FeedGroup: f.ForageGroupName,
|
|
|
+ PreFtId: f.Prefit,
|
|
|
+ AutoSecond: f.StirDelay,
|
|
|
+ AutoSecondName: "",
|
|
|
+ SplitFtPreId: 0,
|
|
|
+ Deviation: f.AllowError,
|
|
|
+ IsModify: f.IsModify,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if len(feedFormulaDetail) <= 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if _, err := tx.Table(new(models.FeedTemplateDetail)).Insert(feedFormulaDetail); err != nil {
|
|
|
+ tx.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
- return nil
|
|
|
+
|
|
|
+ return tx.Commit()
|
|
|
}
|
|
|
|
|
|
// CancelDistributeFeedFormula 集团饲料配方取消下发
|
|
@@ -250,7 +283,6 @@ func CattleCategoryDistribute(req *models.CowClass) error {
|
|
|
}
|
|
|
|
|
|
func ForageCategoryDistribute(req *models.FeedClass) error {
|
|
|
-
|
|
|
has, err := restful.Engine.Table(new(models.FeedClass).TableName()).Exist(&models.FeedClass{GroupId: req.GroupId})
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -354,12 +386,10 @@ func FeedTemplateDetailList(req *models.FeedListRequest) ([]*models.FeedTemplate
|
|
|
total, err = newSession.Table(new(models.FeedTemplateDetail).TableName()).
|
|
|
Where("pastureid = ?", req.PastureId).Count(&res)
|
|
|
if err != nil {
|
|
|
- fmt.Println("=========FeedTemplateDetailList==========", err)
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
|
|
|
if err = newSession.Table(new(models.FeedTemplateDetail).TableName()).Limit(int(req.PageSize), int(req.Page-1)*int(req.PageSize)).Find(&res); err != nil {
|
|
|
- fmt.Println("=========newSession==========", err)
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
return res, total, nil
|