소스 검색

区间计算异常值处理

xyxie 7 달 전
부모
커밋
bef5ed293c

+ 2 - 3
controllers/data_manage/range_analysis/chart_info.go

@@ -5,7 +5,6 @@ import (
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
-	"eta/eta_api/models/data_manage/request"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
@@ -1284,7 +1283,7 @@ func (this *RangeChartChartInfoController) Refresh() {
 // @Success Ret=200 返回指标id
 // @router /edb/save [post]
 func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
-	br := new(models.BaseResponse).Init()
+	/*br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
 		this.ServeJSON()
@@ -1339,7 +1338,6 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 	}
 
 	// todo 校验配置合法性
-
 	multipleGraphConfigEdbMapping, err := data_manage.GetMultipleGraphConfigEdbMappingByIdAndSource(req.MultipleGraphConfigId, 10)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = `保存失败`
@@ -1502,4 +1500,5 @@ func (this *RangeChartChartInfoController) MultipleGraphConfigSaveEdb() {
 	br.Msg = "保存成功"
 	br.Data = resp
 	br.IsAddLog = true
+	*/
 }

+ 1 - 1
models/data_manage/chart_info_range_analysis.go

@@ -40,7 +40,7 @@ type EdbDateConfDateChange struct {
 }
 
 type ChartRangeAnalysisDeleteDataConf struct {
-	Formula string
+	Formula string `description:"比较符号:=、>、<、>=、<="`
 	Value   float64
 }
 

+ 15 - 1
services/data/range_analysis/chart_info.go

@@ -474,7 +474,21 @@ func getChartDataByEdbInfo(edbInfoMapping *data_manage.ChartEdbInfoMapping, req
 		return
 	}
 	if req.UnNormalDataDealType > 0 {
-		// todo 异常数据处理
+		switch req.UnNormalDataDealType { //0:不处理,1:剔除,2替换
+		case 1:
+			dealDataList := make([]*data_manage.EdbDataList, 0)
+			for _, v := range newDataList {
+				if !utils.CompareFloatByOpStrings(req.UnNormalDataConf.Formula, v.Value, req.UnNormalDataConf.Value) {
+					dealDataList = append(dealDataList, v)
+				}
+			}
+		case 2:
+			for i, v := range newDataList {
+				if utils.CompareFloatByOpStrings(req.UnNormalDataConf.Formula, v.Value, req.UnNormalDataConf.Value) {
+					newDataList[i].Value = req.UnNormalDataConf.Value
+				}
+			}
+		}
 	}
 
 	if req.DataConvertType > 0 {

+ 16 - 0
utils/common.go

@@ -2597,3 +2597,19 @@ func HandleSystemAppointDateT(currDate time.Time, appointDay, frequency string)
 
 	return
 }
+
+func CompareFloatByOpStrings(op string, a, b float64) bool {
+	switch op {
+	case "=":
+		return a == b
+	case ">":
+		return a > b
+	case ">=":
+		return a >= b
+	case "<=":
+		return a <= b
+	case "<":
+		return a < b
+	}
+	return false
+}