|
@@ -8,6 +8,7 @@ import (
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
"math"
|
|
|
+ "sort"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
)
|
|
@@ -295,16 +296,19 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
afterIndexData := dataList[index+1]
|
|
|
|
|
|
// 从最早时间开始,补充时间为自然日
|
|
|
- if utils.IsMoreThanOneDay(beforeIndexData.DataTime, afterIndexData.DataTime) {
|
|
|
+ for utils.IsMoreThanOneDay(beforeIndexData.DataTime, afterIndexData.DataTime) {
|
|
|
// 创建补充数据
|
|
|
replenishIndexData := data_manage.EdbDataList{
|
|
|
- DataTime: utils.GetNextDay(beforeIndexData.DataTime),
|
|
|
+ DataTime: utils.GetNextDay(beforeIndexData.DataTime), // 计算下一个自然日
|
|
|
DataTimestamp: time.Now().UnixMilli(),
|
|
|
- Value: beforeIndexData.Value,
|
|
|
+ Value: beforeIndexData.Value, // 可以选择使用前一天的值,或者其他逻辑来计算值
|
|
|
}
|
|
|
|
|
|
// 将补充数据加入补充数据列表
|
|
|
replenishDataList = append(replenishDataList, &replenishIndexData)
|
|
|
+
|
|
|
+ // 更新 beforeIndexData 为新创建的补充数据
|
|
|
+ beforeIndexData = &replenishIndexData
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -312,6 +316,7 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
dataList = append(dataList, replenishDataList...)
|
|
|
|
|
|
// 排序
|
|
|
+ sort.Sort(ByDataTime(dataList))
|
|
|
|
|
|
// 拟合残差 计算a,b
|
|
|
var coordinateList []utils.Coordinate
|
|
@@ -378,6 +383,22 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
return mappingEdbList, a, b, r, nil
|
|
|
}
|
|
|
|
|
|
+type ByDataTime []*data_manage.EdbDataList
|
|
|
+
|
|
|
+func (a ByDataTime) Len() int {
|
|
|
+ return len(a)
|
|
|
+}
|
|
|
+
|
|
|
+func (a ByDataTime) Swap(i, j int) {
|
|
|
+ a[i], a[j] = a[j], a[i]
|
|
|
+}
|
|
|
+
|
|
|
+func (a ByDataTime) Less(i, j int) bool {
|
|
|
+ t1 := utils.StringToTime(a[i].DataTime)
|
|
|
+ t2 := utils.StringToTime(a[j].DataTime)
|
|
|
+ return t1.Before(t2)
|
|
|
+}
|
|
|
+
|
|
|
func fillOriginalChart(req residual_analysis_model.ResidualAnalysisReq, mappingList []*data_manage.ChartEdbInfoMapping, startDate string, endDate string, edbInfoMappingA *data_manage.ChartEdbInfoMapping, edbInfoMappingB *data_manage.ChartEdbInfoMapping, originalEdbList []residual_analysis_model.ResidualAnalysisChartEdbInfoMapping) ([]residual_analysis_model.ResidualAnalysisChartEdbInfoMapping, error) {
|
|
|
for _, v := range mappingList {
|
|
|
var edbInfoMapping residual_analysis_model.ResidualAnalysisChartEdbInfoMapping
|