|
@@ -265,7 +265,7 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
}
|
|
|
|
|
|
// 领先指标 dataList进行数据处理
|
|
|
- if req.IndexType == 2 {
|
|
|
+ /*if req.IndexType == 2 {
|
|
|
if req.LeadValue < 0 {
|
|
|
return nil, a, b, r, fmt.Errorf("领先值不能小于0")
|
|
|
} else if req.LeadValue > 0 {
|
|
@@ -282,9 +282,10 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
case "年":
|
|
|
indexData.DataTime = utils.TimeToString(utils.AddDate(utils.StringToTime(indexData.DataTime), req.LeadValue, 0), utils.YearMonthDay)
|
|
|
}
|
|
|
+ indexData.DataTimestamp = utils.StringToTime(indexData.DataTime).UnixMilli()
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
// 指标B数据补充
|
|
|
// 新建一个切片来保存补充的数据
|
|
@@ -317,6 +318,9 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
// 将补充数据插入原始数据列表
|
|
|
dataList = append(dataList, replenishDataList...)
|
|
|
|
|
|
+ // 填充映射指标值 使得时间长度一致
|
|
|
+ dataList = FillDataBList(dataList, edbInfoMappingA)
|
|
|
+
|
|
|
// 排序
|
|
|
sort.Sort(ByDataTime(dataList))
|
|
|
|
|
@@ -385,6 +389,31 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
|
|
|
return mappingEdbList, a, b, r, nil
|
|
|
}
|
|
|
|
|
|
+// FillDataBList 填充B的数据 使得与A的时间保持一致
|
|
|
+func FillDataBList(dataList []*data_manage.EdbDataList, edbInfoMappingA *data_manage.ChartEdbInfoMapping) []*data_manage.EdbDataList {
|
|
|
+ dataAList, ok := edbInfoMappingA.DataList.([]*data_manage.EdbDataList)
|
|
|
+ if !ok {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ for utils.StringToTime(dataList[len(dataList)-1].DataTime).Before(utils.StringToTime(dataAList[len(dataAList)-1].DataTime)) {
|
|
|
+ // 使用A的时间填充时间差
|
|
|
+ timeDiff := utils.GetNextDayN(dataList[len(dataList)-1].DataTime, 1)
|
|
|
+
|
|
|
+ // 创建新的数据点并填充 前值填充
|
|
|
+ newDataPoint := &data_manage.EdbDataList{
|
|
|
+ DataTime: timeDiff,
|
|
|
+ Value: dataList[len(dataList)-1].Value,
|
|
|
+ DataTimestamp: utils.StringToTime(timeDiff).UnixMilli(),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将新数据点添加到dataList末尾
|
|
|
+ dataList = append(dataList, newDataPoint)
|
|
|
+ }
|
|
|
+
|
|
|
+ return dataList
|
|
|
+}
|
|
|
+
|
|
|
type ByDataTime []*data_manage.EdbDataList
|
|
|
|
|
|
func (a ByDataTime) Len() int {
|
|
@@ -425,6 +454,29 @@ func fillOriginalChart(req residual_analysis_model.ResidualAnalysisReq, mappingL
|
|
|
edbInfoMapping.ChartColor = `#F00`
|
|
|
edbInfoMapping.ChartWidth = 1
|
|
|
|
|
|
+ // 领先指标 dataList进行数据处理
|
|
|
+ if req.IndexType == 2 {
|
|
|
+ if req.LeadValue < 0 {
|
|
|
+ return nil, fmt.Errorf("领先值不能小于0")
|
|
|
+ } else if req.LeadValue > 0 {
|
|
|
+ for _, indexData := range dataList {
|
|
|
+ switch req.LeadFrequency {
|
|
|
+ case "天":
|
|
|
+ indexData.DataTime = utils.GetNextDayN(indexData.DataTime, req.LeadValue)
|
|
|
+ case "周":
|
|
|
+ indexData.DataTime = utils.GetNextDayN(indexData.DataTime, req.LeadValue*7)
|
|
|
+ case "月":
|
|
|
+ indexData.DataTime = utils.TimeToString(utils.AddDate(utils.StringToTime(indexData.DataTime), 0, req.LeadValue), utils.YearMonthDay)
|
|
|
+ case "季":
|
|
|
+ indexData.DataTime = utils.TimeToString(utils.AddDate(utils.StringToTime(indexData.DataTime), 0, req.LeadValue*3), utils.YearMonthDay)
|
|
|
+ case "年":
|
|
|
+ indexData.DataTime = utils.TimeToString(utils.AddDate(utils.StringToTime(indexData.DataTime), req.LeadValue, 0), utils.YearMonthDay)
|
|
|
+ }
|
|
|
+ indexData.DataTimestamp = utils.StringToTime(indexData.DataTime).UnixMilli()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
edbInfoMappingB.DataList = dataList
|
|
|
} else {
|
|
|
edbInfoMappingA.DataList = dataList
|