Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

gaoyagang 1 жил өмнө
parent
commit
acd607b86f

+ 51 - 0
datacenter_client/types.go

@@ -13,6 +13,12 @@ type (
 	InstrumentCompareData struct {
 		Max float64 `json:"max_val"`
 		Min float64 `json:"min_val"`
+		Avg float64 `json:"avg_val"`
+	}
+
+	RangeFirstLast struct {
+		First float64 `json:"first"`
+		Last  float64 `json:"last"`
 	}
 
 	WorkingPump struct {
@@ -161,6 +167,13 @@ type (
 		Etime     string
 	}
 
+	RangeFirstLastReq struct {
+		ProjectId string
+		ItemName  string
+		Stime     string
+		Etime     string
+	}
+
 	ItemHistoryReq struct {
 		ProjectId string
 		ItemName  string
@@ -180,6 +193,16 @@ type (
 	MultiAddReq struct {
 		List []ItemHistoryData `json:"list"`
 	}
+
+	ItemHistoryListReq struct {
+		ProjectId int
+		ItemName  string
+		Stime     string
+		Etime     string
+		Size      int
+		Interval  string // 时间单位 minute,h,day,s
+		Aggregator string // 聚合方式 min,max,avg,sum,realtime, new
+	}
 )
 
 type (
@@ -231,10 +254,25 @@ type (
 		Data *InstrumentCompareData `json:"data"`
 	}
 
+	RangeFirstLastResp struct {
+		Code int             `json:"code"`
+		Msg  string          `json:"msg"`
+		Data *RangeFirstLast `json:"data"`
+	}
 	ItemHistoryRespList struct {
 		List []ItemHistoryResp
 	}
 
+	ItemHistoryListResp struct {
+		Name   string `json:"name"`
+		Htime  string `json:"htime_at"`
+		Val    float64 `json:"val"`
+	}
+
+	ItemHistoryListRespList struct {
+		List []ItemHistoryListResp
+	}
+
 	MultiAddBody struct {
 		Code int    `json:"code"`
 		Msg  string `json:"msg"`
@@ -245,6 +283,14 @@ type (
 		Msg  string              `json:"msg"`
 		Data ItemHistoryRespList `json:"data"`
 	}
+
+	ItemHistoryListBody struct {
+		Code int                 `json:"code"`
+		Msg  string              `json:"msg"`
+		Data ItemHistoryListRespList `json:"data"`
+	}
+
+
 )
 
 type (
@@ -258,6 +304,9 @@ type (
 		// ObtainRangeMaxMin 查询最大最小值
 		ObtainRangeMaxMin(req *RangeMaxMinReq) (resp *InstrumentCompareData, err error)
 
+		// ObtainRangeMaxMin 查询最大最小值
+		ObtainRangeFirstLast(req *RangeFirstLastReq) (resp *RangeFirstLast, err error)
+
 		// GetWorkingUfByCode 获得uf工况数据
 		GetWorkingUfByCode(DcWorkingReq) (*GetWorkingUfByCodeResp, error)
 		// FindWorkingUfByCycle 查询uf工况数据, 按周期进行过滤
@@ -268,5 +317,7 @@ type (
 		GetWorkingChestByCode(DcWorkingReq) (*GetWorkingChestByCodeResp, error)
 		// GetWorkingPumpByCode 查询泵类工况数据
 		GetWorkingPumpByCode(DcWorkingReq) (*GetWorkingPumpByCodeResp, error)
+		// 平替双胞胎图表接口(时间区间内按要求聚合)
+		GetItemHistoryList(ItemHistoryListReq) (resp []ItemHistoryListResp, err error)
 	}
 )

+ 34 - 0
datacenter_client/v1/GetItemHistoryList.go

@@ -0,0 +1,34 @@
+package v1
+
+import (
+	"errors"
+	"fmt"
+	"log"
+	"metawant.greentech.com.cn/gaoyagang/gt-common/datacenter_client"
+	"metawant.greentech.com.cn/gaoyagang/gt-common/httplib"
+)
+
+func (d *DcApi) GetItemHistoryList(req datacenter_client.ItemHistoryListReq) (resp []datacenter_client.ItemHistoryListResp, err error) {
+	url := d.serviceUrl("/item-history/list")
+	h := httplib.Get(url)
+	h.Param("project_id", fmt.Sprintf("%d", req.ProjectId))
+	h.Param("item_name", req.ItemName)
+	h.Param("stime", req.Stime)
+	h.Param("etime", req.Etime)
+	h.Param("size", fmt.Sprintf("%d", req.Size))
+	h.Param("interval", req.Interval)
+	h.Param("aggregator", req.Aggregator)
+
+	result := &datacenter_client.ItemHistoryListBody{}
+	err = d.call(h, result)
+	if err != nil {
+		log.Println("GetItemHistoryList Unmarshal Error:", err)
+		return
+	}
+	if result.Code != 200 {
+		err = errors.New(result.Msg)
+		return
+	}
+	resp = result.Data.List
+	return
+}

+ 32 - 0
datacenter_client/v1/ObtainRangeFirstLast.go

@@ -0,0 +1,32 @@
+package v1
+
+import (
+	"errors"
+	"log"
+	"metawant.greentech.com.cn/gaoyagang/gt-common/datacenter_client"
+	"metawant.greentech.com.cn/gaoyagang/gt-common/httplib"
+)
+
+func (d *DcApi) ObtainRangeFirstLast(req *datacenter_client.RangeFirstLastReq) (resp *datacenter_client.RangeFirstLast, err error) {
+	url := d.serviceUrl("/item-history/first-last")
+	h := httplib.Get(url)
+	h.Param("project_id", req.ProjectId)
+	h.Param("item_name", req.ItemName)
+	h.Param("stime", req.Stime)
+	h.Param("etime", req.Etime)
+
+	result := &datacenter_client.RangeFirstLastResp{}
+
+	err = d.call(h, result)
+
+	if err != nil {
+		log.Println("ObtainRangeFirstLast Error:", err)
+		return
+	}
+	if result.Code != 200 {
+		err = errors.New(result.Msg)
+		return
+	}
+	resp = result.Data
+	return
+}