Sfoglia il codice sorgente

tmr: 饲料配方修改记录同步

Yi 1 anno fa
parent
commit
6cee639399
3 ha cambiato i file con 108 aggiunte e 22 eliminazioni
  1. 1 1
      conf/app-develop.ini
  2. 29 10
      module/group.go
  3. 78 11
      service/group/feed_template.go

+ 1 - 1
conf/app-develop.ini

@@ -42,7 +42,7 @@ Description = tmrgo
 Type = mysql
 User = root
 Password = 123456
-Host = 192.168.1.96:3306
+Host = 192.168.1.70:3306
 Name = tmrwatch2
 TablePrefix =
 

+ 29 - 10
module/group.go

@@ -511,7 +511,6 @@ func FeedFormulaVersion(pastureId int64, req *models.FeedFormulaUpdateVersionReq
 	}
 
 	zaplog.Info("FeedFormulaVersion", zap.Any("req", req), zap.Any("pastureId", pastureId))
-
 	feedDetailVersion := &models.FeedDetailVersion{
 		FeedTemplateId: req.FeedTemplateId,
 		PastureId:      pastureId,
@@ -523,7 +522,6 @@ func FeedFormulaVersion(pastureId int64, req *models.FeedFormulaUpdateVersionReq
 
 	zaplog.Info("FeedFormulaVersion-Insert", zap.Any("feedDetailVersion", feedDetailVersion))
 	if _, err := DbSession.Insert(feedDetailVersion); err != nil {
-		zaplog.Error("FeedFormulaVersion-Insert", zap.Any("err", err))
 		DbSession.Rollback()
 		return err
 	}
@@ -548,7 +546,6 @@ func FeedFormulaVersion(pastureId int64, req *models.FeedFormulaUpdateVersionReq
 	zaplog.Info("versionLogs-Insert", zap.Any("versionLogs", versionLogs))
 	if len(versionLogs) > 0 {
 		if _, err := DbSession.Table(new(models.FeedDetailVersionLog).TableName()).Insert(versionLogs); err != nil {
-			zaplog.Error("FeedFormulaVersion-Insert", zap.Any("err", err))
 			DbSession.Rollback()
 			return err
 		}
@@ -614,21 +611,33 @@ func FeedDetailVersionLogList(ctx context.Context) ([]*models.FeedDetailVersion,
 	return res, nil
 }
 
+func SearchFeedTemplateById(ctx context.Context, pastureId, id int64) (*models.FeedTemplate, error) {
+	res := &models.FeedTemplate{Id: id}
+	if _, err := restful.Engine.Table(new(models.FeedTemplate).TableName()).Where("pastureid = ?", pastureId).Get(res); err != nil {
+		return nil, err
+	}
+	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 {
+	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) {
+func GetFeedDetailVersionByDesc(ctx context.Context, pastureId, groupDataId 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 {
+		And("feed_template_id = ?", groupDataId).
+		OrderBy("id desc").Get(res); err != nil {
 		return nil, err
 	}
 	return res, nil
@@ -637,8 +646,11 @@ func GetFeedDetailVersionByDesc(ctx context.Context, pastureId, feedTemplateId i
 // 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_template_id = ?", feedTemplateId).And("version_id = ?", versionId).Find(&res); err != nil {
+	if err := restful.Engine.NewSession().Table(new(models.FeedDetailVersionLog).TableName()).
+		Where("pasture_id = ?", pastureId).
+		And("feed_template_id = ?", feedTemplateId).
+		And("version_id = ?", versionId).
+		Find(&res); err != nil {
 		return nil, err
 	}
 	return res, nil
@@ -646,7 +658,13 @@ func SearchFeedDetailVersionLogById(ctx context.Context, pastureId, feedTemplate
 
 // FeetTemplateUpgradeNewVersion 配方更新至最新版本
 func FeetTemplateUpgradeNewVersion(ctx context.Context, pastureId, feedTemplateId int64) error {
-	newFeedDetailVersion, err := GetFeedDetailVersionByDesc(ctx, pastureId, feedTemplateId)
+
+	feedTemplateData, err := SearchFeedTemplateById(ctx, pastureId, feedTemplateId)
+	if err != nil {
+		return err
+	}
+
+	newFeedDetailVersion, err := GetFeedDetailVersionByDesc(ctx, pastureId, feedTemplateData.GroupDataId)
 	if err != nil {
 		return err
 	}
@@ -660,7 +678,8 @@ func FeetTemplateUpgradeNewVersion(ctx context.Context, pastureId, feedTemplateI
 
 	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 {
+		And("feed_template_id = ?", feedTemplateId).
+		Update("is_show", operationPb.IsShow_NO); err != nil {
 		DBSession.Rollback()
 		return err
 	}

+ 78 - 11
service/group/feed_template.go

@@ -2,11 +2,14 @@ package group
 
 import (
 	"context"
+	"encoding/json"
 	"net/http"
 	"tmr-watch/models"
 	"tmr-watch/module"
+	"tmr-watch/pkg/logger/zaplog"
 
 	feedPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/pasture"
+	"go.uber.org/zap"
 )
 
 func SearchFeedTemplateList(ctx context.Context, req *feedPb.SearchFeedTemplateRequest) (*feedPb.SearchFeedTemplateResponse, error) {
@@ -34,16 +37,22 @@ func SearchFeedTemplateList(ctx context.Context, req *feedPb.SearchFeedTemplateR
 
 func GetFeetTemplateVersion(ctx context.Context, pastureId, feedTemplateId int) (*feedPb.GetFeetTemplateVersionResponse, error) {
 
+	feedTemplateData, err := module.SearchFeedTemplateById(ctx, int64(pastureId), int64(feedTemplateId))
+	if err != nil {
+		return nil, err
+	}
+
 	historyFeedTemplateDetailList, err := module.SearchFeedTemplateDetailListByFeedTemplateId(ctx, int64(pastureId), int64(feedTemplateId))
 	if err != nil {
 		return nil, err
 	}
 
-	newFeedTemplateDetailVersion, err := module.GetFeedDetailVersionByDesc(ctx, int64(pastureId), int64(feedTemplateId))
+	newFeedTemplateDetailVersion, err := module.GetFeedDetailVersionByDesc(ctx, int64(pastureId), feedTemplateData.GroupDataId)
 	if err != nil {
 		return nil, err
 	}
-	newFeedTemplateDetailVersionLogList, err := module.SearchFeedDetailVersionLogById(ctx, int64(pastureId), int64(feedTemplateId), newFeedTemplateDetailVersion.Id)
+
+	newFeedTemplateDetailVersionLogList, err := module.SearchFeedDetailVersionLogById(ctx, int64(pastureId), feedTemplateData.GroupDataId, newFeedTemplateDetailVersion.Id)
 	if err != nil {
 		return nil, err
 	}
@@ -54,23 +63,81 @@ func GetFeetTemplateVersion(ctx context.Context, pastureId, feedTemplateId int)
 		Data: make([]*feedPb.FeetTemplateVersionData, 0),
 	}
 
+	b, _ := json.Marshal(newFeedTemplateDetailVersionLogList)
+	c, _ := json.Marshal(historyFeedTemplateDetailList)
+	zaplog.Info("newFeedTemplateDetailVersionLogList", zap.String("ok", string(b)))
+	zaplog.Info("historyFeedTemplateDetailList", zap.String("ok", string(c)))
+
 	// 比例两个配方饲料的不同
 	for _, n := range newFeedTemplateDetailVersionLogList {
+
+		// 更新
 		for _, v := range historyFeedTemplateDetailList {
 			if v.FName == n.ForageName {
 				res.Data = append(res.Data, &feedPb.FeetTemplateVersionData{
-					ForageName:          v.FName,
-					ForageGroupName:     v.FeedGroup,
-					Weight:              float32(v.LWeight / 100),
-					StirDelay:           v.AutoSecond,
-					AllowError:          v.Deviation,
-					Sort:                v.Sort,
-					IsLockCowCountRatio: v.IsLockCount,
-					IsModify:            v.IsModify,
-					Status:              feedPb.VersionStatus_UPDATE,
+					ForageName:             v.FName,
+					ForageGroupNameOld:     n.ForageName,
+					ForageGroupName:        v.FeedGroup,
+					ForageNameOld:          n.ForageGroupName,
+					Weight:                 float32(v.LWeight),
+					WeightOld:              float32(n.Weight),
+					StirDelay:              v.AutoSecond,
+					StirDelayOld:           n.StirDelay,
+					AllowError:             v.Deviation,
+					AllowErrorOld:          n.AllowError,
+					Sort:                   v.Sort,
+					SortOld:                n.Sort,
+					IsLockCowCountRatio:    v.IsLockCount,
+					IsLockCowCountRatioOld: int32(n.IsLockCowCountRatio),
+					IsModify:               v.IsModify,
+					Status:                 feedPb.VersionStatus_UPDATE,
 				})
 			}
 		}
+
+		// 新增
+		var insertInfo bool
+		for _, v := range historyFeedTemplateDetailList {
+			if v.FName == n.ForageName {
+				insertInfo = true
+			}
+		}
+
+		if !insertInfo {
+			res.Data = append(res.Data, &feedPb.FeetTemplateVersionData{
+				ForageName:          n.ForageName,
+				ForageGroupName:     n.ForageGroupName,
+				Weight:              float32(n.Weight),
+				StirDelay:           n.StirDelay,
+				AllowError:          n.AllowError,
+				Sort:                n.Sort,
+				IsLockCowCountRatio: int32(n.IsLockCowCountRatio),
+				Status:              feedPb.VersionStatus_ADD,
+			})
+		}
+	}
+
+	// 删除
+	for _, v := range historyFeedTemplateDetailList {
+		var deleteInfo bool
+		for _, n := range newFeedTemplateDetailVersionLogList {
+			if v.FName == n.ForageName {
+				deleteInfo = true
+				break
+			}
+		}
+		if !deleteInfo {
+			res.Data = append(res.Data, &feedPb.FeetTemplateVersionData{
+				ForageName:          v.FName,
+				ForageGroupName:     v.FeedGroup,
+				Weight:              float32(v.LWeight),
+				StirDelay:           v.AutoSecond,
+				AllowError:          v.Deviation,
+				Sort:                v.Sort,
+				IsLockCowCountRatio: int32(v.IsLockCount),
+				Status:              feedPb.VersionStatus_DELETE,
+			})
+		}
 	}
 
 	return res, nil