Przeglądaj źródła

Merge branch 'feature/tmr-group' of baishaojie/tmrgo into develop

xuyiping 1 rok temu
rodzic
commit
97c357f5ff

+ 37 - 0
http/handle/group/feed_formula.go

@@ -123,3 +123,40 @@ func DistributeAccount(c *gin.Context) {
 		})
 	}
 }
+
+// ForageCategoryDistribute 饲料分类下发
+func ForageCategoryDistribute(c *gin.Context) {
+	appG := app.Gin{C: c}
+	var req models.CategoryRequest
+	if err := c.BindJSON(&req); err != nil {
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+	if err := group.ForageCategoryDistributeService(&req); err != nil {
+		appG.Response(http.StatusBadRequest, e.ERROR_GET_S_FAIL, map[string]interface{}{
+			"error": err,
+		})
+	} else {
+		appG.Response(http.StatusOK, e.SUCCESS, map[string]bool{
+			"success": true,
+		})
+	}
+}
+
+func CattleCategoryDistribute(c *gin.Context) {
+	appG := app.Gin{C: c}
+	var req models.CategoryRequest
+	if err := c.BindJSON(&req); err != nil {
+		appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
+		return
+	}
+	if err := group.CattleCategoryDistributeService(&req); err != nil {
+		appG.Response(http.StatusBadRequest, e.ERROR_GET_S_FAIL, map[string]interface{}{
+			"error": err,
+		})
+	} else {
+		appG.Response(http.StatusOK, e.SUCCESS, map[string]bool{
+			"success": true,
+		})
+	}
+}

+ 7 - 5
http/routers/group_api.go

@@ -13,10 +13,12 @@ func GroupAPI(opts ...func(engine *gin.Engine)) func(s *gin.Engine) {
 		}
 
 		apiPasture := s.Group("/pasture")
-		apiPasture.POST("feed_formula/distribute", group.DistributeFeedFormula)    // 饲料配方下发
-		apiPasture.POST("feed_formula/is_modify", group.FeedFormulaIsModify)       // 饲料配方是否可修改
-		apiPasture.POST("dashboard/accuracy_data", group.AnalysisAccuracy)         // 混料准确率数据
-		apiPasture.POST("dashboard/process_analysis", group.ProcessAnalysis)       // 过程分析
-		apiPasture.POST("dashboard/sprinkle_statistics", group.SprinkleStatistics) // 撒料统计
+		apiPasture.POST("feed_formula/distribute", group.DistributeFeedFormula)                 // 饲料配方下发
+		apiPasture.POST("feed_formula/is_modify", group.FeedFormulaIsModify)                    // 饲料配方是否可修改
+		apiPasture.POST("dashboard/accuracy_data", group.AnalysisAccuracy)                      // 混料准确率数据
+		apiPasture.POST("dashboard/process_analysis", group.ProcessAnalysis)                    // 过程分析
+		apiPasture.POST("dashboard/sprinkle_statistics", group.SprinkleStatistics)              // 撒料统计
+		apiPasture.POST("dashboard/forage_category/distribute", group.ForageCategoryDistribute) // 饲料分类下发
+		apiPasture.POST("dashboard/cattle_category/distribute", group.CattleCategoryDistribute) // 畜牧分类下发
 	}
 }

+ 31 - 1
migration/v0001_feedtemplet.sql

@@ -1,2 +1,32 @@
 ALTER TABLE `feedtemplet`
-    ADD COLUMN `is_modify` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否可修改 0 无效 1 是 2 否';
+    ADD COLUMN `is_modify` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否可修改 0 无效 1 是 2 否';
+
+
+## SELECT * FROM apisql WHERE sqlname = 'getFTList' AND ENABLE >0
+## 需要更新的语句如下
+SELECT * FROM ( SELECT
+    tname,tcolor,ccid,ccname,fttype, remark,`enable`,source,fttypeid,tcode,is_modify,
+    TRIM(id) id,
+    TRIM(pastureid)pastureid,
+    isissue,
+    (SELECT GROUP_CONCAT( DISTINCT fp.`pastureName`) FROM feedtemplet_pasture fp
+     WHERE fp.ftid=ft.`id` AND fp.pastureid =ft.pastureid ) grouppastures,
+    (SELECT COUNT(1) FROM feedp WHERE pastureid = ft.pastureid AND (ptsfid = ft.id OR ftid = ft.id) LIMIT 1  ) AS state,
+    IF((SELECT COUNT(1) FROM ftdetail_issue fi
+        WHERE fi.pastureid = ft.pastureid AND fi.ftid = ft.id)+
+       (SELECT COUNT(1)
+        FROM  `ftdetail` ftd
+        WHERE ftd.pastureid = ft.pastureid AND ftd.ftid = ft.id)>0,1,0)  AS isadjust,ft.sort
+FROM
+    feedtemplet ft
+WHERE pastureid = ?
+  AND (ccname LIKE CONCAT("%",?,"%") OR ?='')
+  AND (tname LIKE CONCAT("%",?,"%") OR ?='')
+  AND (fttype LIKE CONCAT("%",?,"%") OR ?='')
+) f
+WHERE (f.enable = ? OR ? = '' ) AND (isadjust = ? OR ? = '') AND (source = IF( ? = 0 ,"自定义",IF (? = 1,"集团下发未调整",IF(? = 2,"集团下发有调整",IF(? = 3 ,"导入","")))) OR ? = '')
+ORDER BY  f.sort ASC;
+
+
+ALTER TABLE cowclass ADD COLUMN group_id int(11) unsigned NOT NULL DEFAULT '0' COMMENT '集团端id';
+ALTER TABLE feedclass ADD COLUMN group_id int(11) unsigned NOT NULL DEFAULT '0' COMMENT '集团端id';

+ 18 - 0
models/cow_class.go

@@ -0,0 +1,18 @@
+package models
+
+type CowClass struct {
+	Id         int64  `xorm:"id"`
+	PastureId  int64  `xorm:"pastureid"`
+	ClassCode  string `xorm:"classcode"`
+	ClassName  string `xorm:"classname"`
+	Sort       int32  `xorm:"sort"`
+	Enable     int32  `xorm:"enable"`
+	ParentId   int32  `xorm:"parentid"`
+	ParentName string `xorm:"parentname"`
+	Backup1    string `xorm:"backup1"`
+	GroupId    int64  `xorm:"group_id"`
+}
+
+func (c *CowClass) TableName() string {
+	return "cowclass"
+}

+ 18 - 0
models/feed_class.go

@@ -0,0 +1,18 @@
+package models
+
+type FeedClass struct {
+	Id               int64  `xorm:"id"`
+	PastureId        int64  `xorm:"pastureid"`
+	FCCode           string `xorm:"fccode"`
+	FCName           string `xorm:"fcname"`
+	Sort             int32  `xorm:"sort"`
+	Enable           int32  `xorm:"enable"`
+	BigFeedClassId   int32  `xorm:"bigfeedclassid"`
+	BigFeedClassName string `xorm:"bigfeedclassname"`
+	Backup1          string `xorm:"backup1"`
+	GroupId          int64  `xorm:"group_id"`
+}
+
+func (c *FeedClass) TableName() string {
+	return "feedclass"
+}

+ 11 - 0
models/group_data.go

@@ -123,3 +123,14 @@ type AccountDistributionRequest struct {
 	Phone     string `json:"phone"`
 	PastureId int32  `json:"pasture_id"`
 }
+
+type CategoryRequest struct {
+	PastureId  int32  `json:"pasture_id"`
+	ParentId   int32  `json:"parent_id"`
+	ParentName string `json:"parent_name"`
+	Name       string `json:"name"`
+	Id         int32  `json:"id"`
+	Number     string `json:"number"`
+	IsShow     int32  `json:"is_show"`
+	GroupId    int32  `json:"group_id"`
+}

+ 55 - 0
module/group.go

@@ -189,3 +189,58 @@ func AccountDistribution(req *models.AccountDistributionRequest) error {
 
 	return nil
 }
+
+func CattleCategoryDistribute(req *models.CowClass) error {
+	has, err := restful.Engine.Table(new(models.CowClass).TableName()).Exist(&models.CowClass{GroupId: req.GroupId})
+	if err != nil {
+		return err
+	}
+	if has {
+		if _, err = restful.Engine.Table(new(models.CowClass).TableName()).
+			Where("group_id = ?", req.GroupId).
+			Update(map[string]interface{}{
+				"pastureid":  req.PastureId,
+				"classcode":  req.ClassCode,
+				"classname":  req.ClassName,
+				"enable":     req.Enable,
+				"parentid":   req.ParentId,
+				"parentname": req.ParentName,
+			}); err != nil {
+			return err
+		}
+	} else {
+		if _, err = restful.Engine.Table(new(models.CowClass).TableName()).Insert(req); err != nil {
+			return err
+		}
+	}
+
+	return nil
+}
+
+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
+	}
+
+	if has {
+		if _, err = restful.Engine.Table(new(models.FeedClass).TableName()).
+			Where("group_id = ?", req.GroupId).
+			Update(map[string]interface{}{
+				"pastureid":        req.PastureId,
+				"fccode":           req.FCCode,
+				"fcname":           req.FCName,
+				"enable":           req.Enable,
+				"bigfeedclassid":   req.BigFeedClassId,
+				"bigfeedclassname": req.BigFeedClassName,
+			}); err != nil {
+			return err
+		}
+	} else {
+		if _, err = restful.Engine.Table(new(models.FeedClass).TableName()).Insert(req); err != nil {
+			return err
+		}
+	}
+	return nil
+}

+ 26 - 0
service/group/group.go

@@ -225,3 +225,29 @@ func SprinkleStatisticsService(req *models.SprinkleStatisticsRequest) ([]*models
 func AccountDistributionService(req *models.AccountDistributionRequest) error {
 	return module.AccountDistribution(req)
 }
+
+func ForageCategoryDistributeService(req *models.CategoryRequest) error {
+	feedClass := &models.FeedClass{
+		PastureId:        int64(req.PastureId),
+		FCCode:           req.Number,
+		FCName:           req.Name,
+		Enable:           req.IsShow,
+		BigFeedClassId:   req.ParentId,
+		BigFeedClassName: req.ParentName,
+	}
+
+	return module.ForageCategoryDistribute(feedClass)
+}
+
+func CattleCategoryDistributeService(req *models.CategoryRequest) error {
+	cowClass := &models.CowClass{
+		PastureId:  int64(req.PastureId),
+		ClassCode:  req.Number,
+		ClassName:  req.Name,
+		Enable:     req.IsShow,
+		ParentId:   req.ParentId,
+		ParentName: req.ParentName,
+	}
+
+	return module.CattleCategoryDistribute(cowClass)
+}