|
@@ -4520,8 +4520,10 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
length += 1
|
|
|
}
|
|
|
}
|
|
|
- averge = averge / float64(length)
|
|
|
- value = fmt.Sprintf("%.2f", averge)
|
|
|
+ if length > 0 {
|
|
|
+ averge = averge / float64(length)
|
|
|
+ value = fmt.Sprintf("%.2f", averge)
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
dataList := dataList.([]*data_manage.EdbDataList)
|
|
@@ -4563,9 +4565,11 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
length += 1
|
|
|
}
|
|
|
}
|
|
|
- averge = averge / float64(length)
|
|
|
+ if length > 0 {
|
|
|
+ averge = averge / float64(length)
|
|
|
+ value = fmt.Sprintf("%.2f", averge)
|
|
|
+ }
|
|
|
|
|
|
- value = fmt.Sprintf("%.2f", averge)
|
|
|
}
|
|
|
} else if markerLine.Calculation == 2 {
|
|
|
// 区间均值加N倍标准差
|
|
@@ -4617,7 +4621,10 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
length += 1
|
|
|
}
|
|
|
}
|
|
|
- averge = averge / float64(length)
|
|
|
+
|
|
|
+ if length > 0 {
|
|
|
+ averge = averge / float64(length)
|
|
|
+ }
|
|
|
if len(faloatList) <= 0 {
|
|
|
err = errors.New(`数据为空`)
|
|
|
return
|
|
@@ -4671,8 +4678,9 @@ func MarkerLineCalculate(markerLine data_manage.MarkersLine, dataList interface{
|
|
|
length += 1
|
|
|
}
|
|
|
}
|
|
|
- averge = averge / float64(length)
|
|
|
-
|
|
|
+ if length > 0 {
|
|
|
+ averge = averge / float64(length)
|
|
|
+ }
|
|
|
if len(floatList) <= 0 {
|
|
|
err = errors.New(`数据为空`)
|
|
|
return
|
|
@@ -5365,3 +5373,66 @@ func getEdbDataMapListForSeason(chartInfoId, chartType int, calendar, startDate,
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetMarkerLine
|
|
|
+// @Description: 获取标识线
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2025-05-16 18:42:59
|
|
|
+// @param markerLine data_manage.MarkersLine
|
|
|
+// @param edbList []*data_manage.ChartEdbInfoMapping
|
|
|
+// @param chartInfo *data_manage.ChartInfoView
|
|
|
+// @param startDate string
|
|
|
+// @param endDate string
|
|
|
+// @return newMarkerLine data_manage.MarkersLine
|
|
|
+// @return err error
|
|
|
+func GetMarkerLine(markerLine data_manage.MarkersLine, edbList []*data_manage.ChartEdbInfoMapping, chartInfo *data_manage.ChartInfoView, startDate, endDate string) (newMarkerLine data_manage.MarkersLine, err error) {
|
|
|
+ newMarkerLine = markerLine
|
|
|
+
|
|
|
+ // 如果是横轴,那么直接返回
|
|
|
+ if markerLine.Axis == 3 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var dataList interface{}
|
|
|
+ switch markerLine.EdbType {
|
|
|
+ case 0: // 图中第一个指标
|
|
|
+ dataList = edbList[0].DataList
|
|
|
+
|
|
|
+ case 1: // 其他指标
|
|
|
+ edbInfo, tmpErr := data_manage.GetEdbInfoById(markerLine.EdbInfoId)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = fmt.Errorf("指标计算标识线获取指标信息异常" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 判断时间区间不为跟随图表的情况
|
|
|
+ if markerLine.TimeIntervalType != 0 {
|
|
|
+ startDate = markerLine.StartDate.Date
|
|
|
+ endDate = markerLine.EndDate.Date
|
|
|
+ }
|
|
|
+ dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("指标计算标识线获取指标数据异常" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ switch markerLine.TimeIntervalType {
|
|
|
+ // 0跟随图表 1自定义
|
|
|
+ case 0: // 0跟随图表
|
|
|
+ value, tmpErr := MarkerLineCalculate(markerLine, dataList, chartInfo)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ newMarkerLine.Value = value
|
|
|
+ case 1: // 自定义
|
|
|
+ value, tmpErr := MarkerLineCalculate(markerLine, dataList, chartInfo)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = fmt.Errorf("标识线配置异常" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ newMarkerLine.Value = value
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|