zwxi 8 ماه پیش
والد
کامیت
04899ee698
1فایلهای تغییر یافته به همراه46 افزوده شده و 9 حذف شده
  1. 46 9
      services/data/chart_info.go

+ 46 - 9
services/data/chart_info.go

@@ -3616,7 +3616,13 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 			quarterDataList := dataList.(data_manage.QuarterDataList)
 			for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
 				for _, vv := range quarterData.DataList {
-					averge += vv.Value
+					if markerLine.TimeIntervalType == 1 {
+						if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
+							averge += vv.Value
+						}
+					} else {
+						averge += vv.Value
+					}
 				}
 				averge = averge / float64(len(quarterData.DataList))
 				value = fmt.Sprintf("%.2f", averge)
@@ -3624,13 +3630,18 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 		} else {
 			dataList := dataList.([]*data_manage.EdbDataList)
 			for _, dataItem := range dataList {
-				averge += dataItem.Value
+				if markerLine.TimeIntervalType == 1 {
+					if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
+						averge += dataItem.Value
+					}
+				} else {
+					averge += dataItem.Value
+				}
 			}
 			averge = averge / float64(len(dataList))
 
 			value = fmt.Sprintf("%.2f", averge)
 		}
-
 	} else if markerLine.Calculation == 2 {
 		// 区间均值加N倍标准差
 		averge := 0.0
@@ -3641,8 +3652,15 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 			quarterDataList := dataList.(data_manage.QuarterDataList)
 			for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
 				for _, vv := range quarterData.DataList {
-					dataList = append(faloatList, vv.Value)
-					averge += vv.Value
+					if markerLine.TimeIntervalType == 1 {
+						if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
+							dataList = append(faloatList, vv.Value)
+							averge += vv.Value
+						}
+					} else {
+						dataList = append(faloatList, vv.Value)
+						averge += vv.Value
+					}
 				}
 				averge = averge / float64(len(quarterData.DataList))
 				stdev := utils.CalculateStandardDeviation(faloatList)
@@ -3655,8 +3673,15 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 			dataList := dataList.([]*data_manage.EdbDataList)
 			floatList := make([]float64, 0)
 			for _, dataItem := range dataList {
-				floatList = append(floatList, dataItem.Value)
-				averge += dataItem.Value
+				if markerLine.TimeIntervalType == 1 {
+					if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
+						floatList = append(floatList, dataItem.Value)
+						averge += dataItem.Value
+					}
+				} else {
+					floatList = append(floatList, dataItem.Value)
+					averge += dataItem.Value
+				}
 			}
 			averge = averge / float64(len(dataList))
 
@@ -3674,7 +3699,13 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 			quarterDataList := dataList.(data_manage.QuarterDataList)
 			for _, quarterData := range quarterDataList[len(quarterDataList)-1:] {
 				for _, vv := range quarterData.DataList {
-					faloatList = append(faloatList, vv.Value)
+					if markerLine.TimeIntervalType == 1 {
+						if vv.DataTime >= markerLine.StartDate.Date && vv.DataTime <= markerLine.EndDate.Date {
+							faloatList = append(faloatList, vv.Value)
+						}
+					} else {
+						faloatList = append(faloatList, vv.Value)
+					}
 				}
 
 				markerLineValue = PercentileAlgorithm(float64(markerLine.CalculationValue), faloatList)
@@ -3685,7 +3716,13 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
 			dataList := dataList.([]*data_manage.EdbDataList)
 			floatList := make([]float64, 0)
 			for _, dataItem := range dataList {
-				floatList = append(floatList, dataItem.Value)
+				if markerLine.TimeIntervalType == 1 {
+					if dataItem.DataTime >= markerLine.StartDate.Date && dataItem.DataTime <= markerLine.EndDate.Date {
+						floatList = append(floatList, dataItem.Value)
+					}
+				} else {
+					floatList = append(floatList, dataItem.Value)
+				}
 			}
 
 			markerLineValue = PercentileAlgorithm(float64(markerLine.CalculationValue), floatList)