|
@@ -10,16 +10,8 @@ import (
|
|
|
"tmr-watch/models"
|
|
|
|
|
|
operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
|
|
|
-
|
|
|
- "github.com/xormplus/xorm"
|
|
|
-
|
|
|
pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture"
|
|
|
-)
|
|
|
-
|
|
|
-const (
|
|
|
- IsDefault = 0
|
|
|
- IsOk = 1
|
|
|
- IsNo = 2
|
|
|
+ "github.com/xormplus/xorm"
|
|
|
)
|
|
|
|
|
|
// DistributeFeedFormula 集团饲料配方下发
|
|
@@ -196,7 +188,7 @@ func SprinkleStatistics(req *models.SprinkleStatisticsRequest) ([]*models.Sprink
|
|
|
func AccountDistribution(req *models.AccountDistributionRequest) error {
|
|
|
res := &models.User{}
|
|
|
_, err := restful.Engine.Select("pastureid,username,empname,password,phone").
|
|
|
- Where("enable = ?", IsOk).And("isdelete = ?", IsNo).And("pastureid = ?", req.PastureId).
|
|
|
+ Where("enable = ?", operationPb.IsShow_OK).And("isdelete = ?", operationPb.IsShow_NO).And("pastureid = ?", req.PastureId).
|
|
|
And("username = ?", req.Account).Get(res)
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -498,7 +490,7 @@ func getSprinkleDetail(pastureId, feedFormulaId int32, startTime, endTime string
|
|
|
return dataList, nil
|
|
|
}
|
|
|
|
|
|
-func FeedFormulaVersion(req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
+func FeedFormulaVersion(pastureId int64, req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
if req.Belong == 0 {
|
|
|
return nil
|
|
|
}
|
|
@@ -510,48 +502,25 @@ func FeedFormulaVersion(req *models.FeedFormulaUpdateVersionRequest) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- history := &models.FeedDetailVersion{}
|
|
|
- if _, err := DbSession.Where("feed_template_id = ?", req.FeedTemplateId).
|
|
|
- And("belong = ?", req.Belong).
|
|
|
- Get(history); err != nil {
|
|
|
- return err
|
|
|
+ feedDetailVersion := &models.FeedDetailVersion{
|
|
|
+ FeedTemplateId: req.FeedTemplateId,
|
|
|
+ PastureId: pastureId,
|
|
|
+ GroupVersion: req.Version,
|
|
|
+ Belong: req.Belong,
|
|
|
+ CreatedAt: time.Now().Unix(),
|
|
|
+ UpdatedAt: time.Now().Unix(),
|
|
|
}
|
|
|
-
|
|
|
- if history.Id > 0 {
|
|
|
- history.GroupVersion = req.Version
|
|
|
- history.UpdatedAt = time.Now().Unix()
|
|
|
- if _, err := DbSession.Table(new(models.FeedDetailVersion).TableName()).
|
|
|
- Where("id = ?", history.Id).Cols("group_version", "updated_at").
|
|
|
- Update(history); err != nil {
|
|
|
- DbSession.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- if _, err := DbSession.Table(new(models.FeedDetailVersionLog).TableName()).
|
|
|
- Where("feed_formula_id = ?", history.FeedTemplateId).
|
|
|
- Update(map[string]interface{}{"is_show": operationPb.IsShow_NO}); err != nil {
|
|
|
- DbSession.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- } else {
|
|
|
- feedDetailVersionLog := &models.FeedDetailVersion{
|
|
|
- FeedTemplateId: req.FeedTemplateId,
|
|
|
- GroupVersion: req.Version,
|
|
|
- Belong: req.Belong,
|
|
|
- CreatedAt: time.Now().Unix(),
|
|
|
- UpdatedAt: time.Now().Unix(),
|
|
|
- }
|
|
|
- if _, err := DbSession.Insert(feedDetailVersionLog); err != nil {
|
|
|
- DbSession.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
+ if _, err := DbSession.Insert(feedDetailVersion); err != nil {
|
|
|
+ DbSession.Rollback()
|
|
|
+ return err
|
|
|
}
|
|
|
|
|
|
// FeedDetailVersionLog 更新
|
|
|
versionLogs := make([]*models.FeedDetailVersionLog, 0)
|
|
|
for _, v := range req.Data {
|
|
|
versionLogs = append(versionLogs, &models.FeedDetailVersionLog{
|
|
|
+ VersionId: feedDetailVersion.Id,
|
|
|
+ PastureId: pastureId,
|
|
|
FeedTemplateId: req.FeedTemplateId,
|
|
|
ForageId: int64(v.ForageId),
|
|
|
ForageName: v.ForageName,
|
|
@@ -625,3 +594,94 @@ func FeedDetailVersionLogList(ctx context.Context) ([]*models.FeedDetailVersion,
|
|
|
}
|
|
|
return res, nil
|
|
|
}
|
|
|
+
|
|
|
+// SearchFeedTemplateDetailListByFeedTemplateId 获取配方当前饲料列表详情
|
|
|
+func SearchFeedTemplateDetailListByFeedTemplateId(ctx context.Context, pastureId, feedTemplateId int64) ([]*models.FeedTemplateDetail, error) {
|
|
|
+ res := make([]*models.FeedTemplateDetail, 0)
|
|
|
+ if err := restful.Engine.Table(new(models.FeedTemplateDetail).TableName()).Where("pastureid = ?", pastureId).And("ftid = ?", feedTemplateId).Find(&res); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+// GetFeedDetailVersionByDesc 获取配方最新版本数据
|
|
|
+func GetFeedDetailVersionByDesc(ctx context.Context, pastureId, feedTemplateId int64) (*models.FeedDetailVersion, error) {
|
|
|
+ res := &models.FeedDetailVersion{}
|
|
|
+ if _, err := restful.Engine.Table(new(models.FeedDetailVersion).TableName()).
|
|
|
+ Where("pasture_id = ?", pastureId).
|
|
|
+ And("feed_template_id = ?", feedTemplateId).OrderBy("id desc").Get(res); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+// SearchFeedDetailVersionLogById 获取配方关联最新饲料信息
|
|
|
+func SearchFeedDetailVersionLogById(ctx context.Context, pastureId, feedTemplateId, versionId int64) ([]*models.FeedDetailVersionLog, error) {
|
|
|
+ res := make([]*models.FeedDetailVersionLog, 0)
|
|
|
+ if err := restful.Engine.NewSession().Table(new(models.FeedDetailVersionLog).TableName()).Where("pasture_id = ?", pastureId).
|
|
|
+ And("feed_formula_id = ?", feedTemplateId).And("version = ?", versionId).Find(&res); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ return res, nil
|
|
|
+}
|
|
|
+
|
|
|
+// FeetTemplateUpgradeNewVersion 配方更新至最新版本
|
|
|
+func FeetTemplateUpgradeNewVersion(ctx context.Context, pastureId, feedTemplateId int64) error {
|
|
|
+ newFeedDetailVersion, err := GetFeedDetailVersionByDesc(ctx, pastureId, feedTemplateId)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ DBSession := restful.Engine.NewSession()
|
|
|
+ defer DBSession.Close()
|
|
|
+
|
|
|
+ if err = DBSession.Begin(); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if _, err = DBSession.Table(new(models.FeedTemplateDetail).TableName()).
|
|
|
+ Where("pasture_id = ?", pastureId).
|
|
|
+ And("feed_template_id = ?", feedTemplateId).Update("is_show", operationPb.IsShow_NO); err != nil {
|
|
|
+ DBSession.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ res, err := SearchFeedDetailVersionLogById(ctx, pastureId, feedTemplateId, newFeedDetailVersion.Id)
|
|
|
+ if err != nil {
|
|
|
+ DBSession.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(res) <= 0 {
|
|
|
+ return DBSession.Commit()
|
|
|
+ }
|
|
|
+
|
|
|
+ newFtDetailList := make([]*models.FeedTemplateDetail, 0)
|
|
|
+ for _, v := range res {
|
|
|
+ newFtDetailList = append(newFtDetailList, &models.FeedTemplateDetail{
|
|
|
+ PastureId: pastureId,
|
|
|
+ FtId: feedTemplateId,
|
|
|
+ FId: v.ForageId,
|
|
|
+ FName: v.ForageName,
|
|
|
+ FWeight: float64(v.Weight / 100),
|
|
|
+ IsLockCount: int32(v.IsLockCowCountRatio),
|
|
|
+ IsFg: 0,
|
|
|
+ Sort: v.Sort,
|
|
|
+ FeedGroup: v.ForageGroupName,
|
|
|
+ PreFtId: 0,
|
|
|
+ AutoSecond: v.StirDelay,
|
|
|
+ AutoSecondName: "",
|
|
|
+ SplitFtPreId: 0,
|
|
|
+ Deviation: v.AllowError,
|
|
|
+ IsModify: int32(v.IsModify),
|
|
|
+ IsShow: int32(operationPb.IsShow_OK),
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if _, err = DBSession.Table(new(models.FeedTemplateDetail).TableName()).Insert(newFtDetailList); err != nil {
|
|
|
+ DBSession.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return DBSession.Commit()
|
|
|
+}
|