ソースを参照

tmr: dashboard

Yi 1 年間 前
コミット
628b1e1245
4 ファイル変更31 行追加21 行削除
  1. 3 1
      .gitignore
  2. 7 7
      models/group_data.go
  3. 15 9
      module/group.go
  4. 6 4
      service/group/group.go

+ 3 - 1
.gitignore

@@ -19,4 +19,6 @@ logs/*
 go-admin*
 go-admin.exe
 
-.vscode
+.vscode
+
+logger/

+ 7 - 7
models/group_data.go

@@ -46,15 +46,15 @@ type AnalysisAccuracyRequest struct {
 }
 
 type MixedFodderDataList struct {
-	PlanTime                 string  `xorm:"plan_time" json:"plan_time"`
-	MixedFodderAccurateRatio float64 `xorm:"mixed_fodder_accurate_ratio" json:"mixed_fodder_accurate_ratio"`
-	MixedFodderCorrectRatio  float64 `xorm:"mixed_fodder_correct_ratio" json:"mixed_fodder_correct_ratio"`
+	PlanTime                 time.Time `xorm:"plan_time" json:"plan_time"`
+	MixedFodderAccurateRatio float64   `xorm:"mixed_fodder_accurate_ratio" json:"mixed_fodder_accurate_ratio"`
+	MixedFodderCorrectRatio  float64   `xorm:"mixed_fodder_correct_ratio" json:"mixed_fodder_correct_ratio"`
 }
 
 type SprinkleFodderDataList struct {
-	PlanTime                    string  `xorm:"plan_time" json:"plan_time"`
-	SprinkleFodderAccurateRatio float64 `xorm:"sprinkle_fodder_accurate_ratio" json:"sprinkle_fodder_accurate_ratio"`
-	SprinkleFodderCorrectRatio  float64 `xorm:"sprinkle_fodder_correct_ratio" json:"sprinkle_fodder_correct_ratio"`
+	PlanTime                    time.Time `xorm:"plan_time" json:"plan_time"`
+	SprinkleFodderAccurateRatio float64   `xorm:"sprinkle_fodder_accurate_ratio" json:"sprinkle_fodder_accurate_ratio"`
+	SprinkleFodderCorrectRatio  float64   `xorm:"sprinkle_fodder_correct_ratio" json:"sprinkle_fodder_correct_ratio"`
 }
 
 type AnalysisAccuracyResponse struct {
@@ -89,7 +89,7 @@ type ProcessData struct {
 	PlanType  int32  `xorm:"plan_type" json:"plan_type"`
 	TmrName   string `xorm:"tmr_name" json:"tmr_name"`
 	CCid      int32  `xorm:"c_cid" json:"c_cid"`
-	PastureId int32  `xorm:"pasture_id" json:"pasture_id"`
+	PastureId int64  `xorm:"pasture_id" json:"pasture_id"`
 }
 
 type ProcessTimeList struct {

+ 15 - 9
module/group.go

@@ -47,10 +47,10 @@ func MixedFodderData(req *models.AnalysisAccuracyRequest) ([]*models.MixedFodder
 	WHERE  de.pastureid= %d AND de.intime IS NOT NULL 
 	AND (SELECT d.lpplantype FROM downloadedplan d WHERE d.pastureid = de.pastureid AND d.id = de.pid) IN (0,1,4) 
 	AND de.date >= '%s' AND de.date <= '%s' %s GROUP BY de.date`, req.PastureId, req.StartDate, req.EndDate, whereFeedFormulaIdStr)
+
 	if err := restful.Engine.SQL(sql).Find(&res); err != nil {
 		return nil, err
 	}
-
 	return res, nil
 }
 
@@ -77,14 +77,20 @@ func SprinkleFodderData(req *models.AnalysisAccuracyRequest) ([]*models.Sprinkle
 // TMRList tmr设备列表
 func TMRList(req *models.AnalysisAccuracyRequest) ([]*models.ProcessData, error) {
 	res := make([]*models.ProcessData, 0)
-	sql := fmt.Sprintf(`SELECT d.lpplantype  as plan_type,d.tmrtname as tmr_name,f.ccid as c_cid,TRIM(d.pastureid) as pasture_id,TRIM(d.pid) as pid,TRIM(d.id) as id
- 			FROM downloadedplan d LEFT JOIN  feedtemplet f on  f.id = d.tempid WHERE d.pastureid= %d and d.intime IS NOT NULL
-			AND d.mydate >= '%s' AND d.mydate <= '%s'`, req.PastureId, req.StartDate, req.EndDate)
+	sql := fmt.Sprintf(`SELECT d.lpplantype  as plan_type,
+       	d.tmrtname as tmr_name,
+       	f.ccid as c_cid,
+       	TRIM(d.pastureid) as pasture_id,
+       	TRIM(d.pid) as pid,
+       	TRIM(d.id) as id
+ 		FROM downloadedplan d 
+ 		LEFT JOIN  feedtemplet f on  f.id = d.tempid 
+ 		WHERE d.pastureid= %d and d.intime IS NOT NULL
+		AND d.mydate >= '%s' AND d.mydate <= '%s'`, req.PastureId, req.StartDate, req.EndDate)
 	if req.CattleParentCategoryId > 0 {
 		sql = fmt.Sprintf("%s AND f.ccid = %d", sql, req.CattleParentCategoryId)
 	}
-
-	if err := restful.Engine.SQL(sql).Find(res); err != nil {
+	if err := restful.Engine.SQL(sql).Find(&res); err != nil {
 		return nil, err
 	}
 
@@ -96,9 +102,9 @@ func MixedProcessTimeList(pastureId int32, id int64) ([]*models.ProcessTimeList,
 	res := make([]*models.ProcessTimeList, 0)
 	sql := fmt.Sprintf(`SELECT IFNULL(TIMEDIFF (d1.intime,(SELECT MAX(intime) FROM downloadplandtl1_exec d2 
 			WHERE  d1.pid=d2.pid AND d1.pastureid = d2.pastureid AND d2.intime<d1.intime)),TIMEDIFF(intime,(SELECT MAX(intime) FROM downloadedplan d2 
-			WHERE  d1.date=d2.mydate AND d1.pastureid = d2.pastureid AND d2.id=d1.pid))) AS proess_time
+			WHERE  d1.date=d2.mydate AND d1.pastureid = d2.pastureid AND d2.id=d1.pid))) AS process_time
 			FROM downloadplandtl1_exec d1 WHERE d1.pastureid = %d AND d1.pid = %d ORDER BY sort`, pastureId, id)
-	if err := restful.Engine.SQL(sql).Find(res); err != nil {
+	if err := restful.Engine.SQL(sql).Find(&res); err != nil {
 		return nil, err
 	}
 	return res, nil
@@ -111,7 +117,7 @@ func SprinkleProcessTimeList(pastureId int32, id int64) ([]*models.ProcessTimeLi
     WHERE  d1.pid=d2.pid AND d1.pastureid = d2.pastureid AND d2.intime<d1.intime)), IMEDIFF(intime,(SELECT MAX(intime) FROM downloadplandtl1_exec d2 
 	WHERE  d1.date=d2.date AND d1.pastureid = d2.pastureid AND d2.pid=d1.pid))) AS proess_time FROM downloadplandtl2 d1
 	WHERE d1.pastureid = %d AND pid =%d ORDER BY sort`, pastureId, id)
-	if err := restful.Engine.SQL(sql).Find(res); err != nil {
+	if err := restful.Engine.SQL(sql).Find(&res); err != nil {
 		return nil, err
 	}
 	return res, nil

+ 6 - 4
service/group/group.go

@@ -89,7 +89,8 @@ func AnalysisAccuracyService(req *models.AnalysisAccuracyRequest) (*models.Analy
 	for _, dayTime := range timeList {
 		var mixedInfo, sprinkleInfo bool
 		for _, mixed := range mixedFodderDataList {
-			if mixed.PlanTime != dayTime {
+			myDate := mixed.PlanTime.Format(util.LayoutDateFormat)
+			if myDate != dayTime {
 				continue
 			}
 			// 混料准确率
@@ -117,7 +118,8 @@ func AnalysisAccuracyService(req *models.AnalysisAccuracyRequest) (*models.Analy
 		}
 
 		for _, sprinkle := range sprinkleFodderDataList {
-			if sprinkle.PlanTime != dayTime {
+			smyDate := sprinkle.PlanTime.Format(util.LayoutDateFormat)
+			if smyDate != dayTime {
 				continue
 			}
 			// 撒料准确率
@@ -166,12 +168,12 @@ func ProcessAnalysisService(req *models.AnalysisAccuracyRequest) (*models.Proces
 	stirDelayList := make([]int, 0)
 
 	for _, v := range tmrList {
-		mixedProcessTimelist, err := module.MixedProcessTimeList(req.PastureId, v.Id)
+		mixedProcessTimeList, err := module.MixedProcessTimeList(req.PastureId, v.Id)
 		if err != nil {
 			zaplog.Error("ProcessAnalysisService", zap.Any("MixedProcessTimeList", err))
 		} else {
 			tmrMixAllTime := 0
-			for _, t := range mixedProcessTimelist {
+			for _, t := range mixedProcessTimeList {
 				tmrMixAllTime += util.TimeParseToMinutes(t.ProcessTime)
 			}
 			addFeedList = append(addFeedList, tmrMixAllTime)