|
@@ -90,13 +90,23 @@ func RefreshAllCalculateResidualAnalysis(edbInfoId, source, subSource, formulaIn
|
|
|
// refreshAllCalculateResidualAnalysis 刷新所有残差分析
|
|
|
func refreshAllCalculateResidualAnalysis(edbInfoId, source, subSource, formulaInt, moveType int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, moveFrequency string, configMapping []CalculateResidualAnalysisConfigMapping) (err error) {
|
|
|
fmt.Println("refreshAllCalculateResidualAnalysis startDate:", startDate)
|
|
|
-
|
|
|
+ configMap := make(map[int64]CalculateResidualAnalysisConfigMapping, len(configMapping))
|
|
|
+ for _, v := range configMapping {
|
|
|
+ configMap[v.EdbInfoId] = v
|
|
|
+ }
|
|
|
calculateMappingList, err := GetCalculateMappingListByEdbInfoId(edbInfoId)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
- edbInfoIdA := calculateMappingList[0].FromEdbInfoId
|
|
|
- edbInfoIdB := calculateMappingList[1].FromEdbInfoId
|
|
|
+ //这里顺序和之前的不一致导致的计算错误
|
|
|
+ var edbInfoIdA, edbInfoIdB int
|
|
|
+ if configMap[int64(calculateMappingList[0].FromEdbInfoId)].IndexType == 3 {
|
|
|
+ edbInfoIdA = calculateMappingList[0].FromEdbInfoId
|
|
|
+ edbInfoIdB = calculateMappingList[1].FromEdbInfoId
|
|
|
+ } else {
|
|
|
+ edbInfoIdA = calculateMappingList[1].FromEdbInfoId
|
|
|
+ edbInfoIdB = calculateMappingList[0].FromEdbInfoId
|
|
|
+ }
|
|
|
|
|
|
mappingList, err := GetEdbInfoListByIds([]int{edbInfoIdA, edbInfoIdB})
|
|
|
if err != nil {
|
|
@@ -168,54 +178,54 @@ func refreshAllCalculateResidualAnalysis(edbInfoId, source, subSource, formulaIn
|
|
|
residualEdbList, _, err := fillResidualChartInfo(config, fromEdbInfo, edbInfoMappingA, edbInfoMappingB, mappingEdbList)
|
|
|
|
|
|
// 映射指标 与 残差指标 同步刷新
|
|
|
- for _, mapping := range configMapping {
|
|
|
- var edbDataResidualAnalysisList []edbDataResidualAnalysis
|
|
|
- if mapping.IndexType == 1 {
|
|
|
- edbInfo, err := GetEdbInfoById(int(mapping.EdbInfoId))
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ //for _, mapping := range configMapping {
|
|
|
+ mapping := configMap[int64(edbInfoId)]
|
|
|
+ var edbDataResidualAnalysisList []edbDataResidualAnalysis
|
|
|
+ if mapping.IndexType == 1 {
|
|
|
+ edbInfo, err := GetEdbInfoById(int(mapping.EdbInfoId))
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- for _, edbData := range mappingEdbList[1].DataList {
|
|
|
- value, _ := strconv.ParseFloat(edbData.Value, 64)
|
|
|
- edbDataResidualAnalysisList = append(edbDataResidualAnalysisList, edbDataResidualAnalysis{
|
|
|
- EdbInfoId: int(mapping.EdbInfoId),
|
|
|
- EdbCode: edbInfo.EdbCode,
|
|
|
- DataTime: edbData.DataTime,
|
|
|
- Value: value,
|
|
|
- CreateTime: time.Now(),
|
|
|
- ModifyTime: time.Now(),
|
|
|
- DataTimeStamp: edbData.DataTimestamp,
|
|
|
- })
|
|
|
- }
|
|
|
+ for _, edbData := range mappingEdbList[0].DataList {
|
|
|
+ value, _ := strconv.ParseFloat(edbData.Value, 64)
|
|
|
+ edbDataResidualAnalysisList = append(edbDataResidualAnalysisList, edbDataResidualAnalysis{
|
|
|
+ EdbInfoId: int(mapping.EdbInfoId),
|
|
|
+ EdbCode: edbInfo.EdbCode,
|
|
|
+ DataTime: edbData.DataTime,
|
|
|
+ Value: value,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ DataTimeStamp: edbData.DataTimestamp,
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
- _, err = AddResidualAnalysisData(edbDataResidualAnalysisList)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- } else if mapping.IndexType == 2 {
|
|
|
- edbInfo, err := GetEdbInfoById(int(mapping.EdbInfoId))
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ _, err = AddResidualAnalysisData(edbDataResidualAnalysisList)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else if mapping.IndexType == 2 {
|
|
|
+ edbInfo, err := GetEdbInfoById(int(mapping.EdbInfoId))
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- for _, edbData := range residualEdbList[1].DataList {
|
|
|
- value, _ := strconv.ParseFloat(edbData.Value, 64)
|
|
|
- edbDataResidualAnalysisList = append(edbDataResidualAnalysisList, edbDataResidualAnalysis{
|
|
|
- EdbInfoId: int(mapping.EdbInfoId),
|
|
|
- EdbCode: edbInfo.EdbCode,
|
|
|
- DataTime: edbData.DataTime,
|
|
|
- Value: value,
|
|
|
- CreateTime: time.Now(),
|
|
|
- ModifyTime: time.Now(),
|
|
|
- DataTimeStamp: edbData.DataTimestamp,
|
|
|
- })
|
|
|
- }
|
|
|
+ for _, edbData := range residualEdbList[0].DataList {
|
|
|
+ value, _ := strconv.ParseFloat(edbData.Value, 64)
|
|
|
+ edbDataResidualAnalysisList = append(edbDataResidualAnalysisList, edbDataResidualAnalysis{
|
|
|
+ EdbInfoId: int(mapping.EdbInfoId),
|
|
|
+ EdbCode: edbInfo.EdbCode,
|
|
|
+ DataTime: edbData.DataTime,
|
|
|
+ Value: value,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ DataTimeStamp: edbData.DataTimestamp,
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
- _, err = AddResidualAnalysisData(edbDataResidualAnalysisList)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
+ _, err = AddResidualAnalysisData(edbDataResidualAnalysisList)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -325,7 +335,7 @@ func fillResidualChartInfo(config ResidualAnalysisConfig, req *EdbInfo, edbInfoM
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- reverse(mappingEdb)
|
|
|
+ //reverse(mappingEdb)
|
|
|
return mappingEdb, R2, nil
|
|
|
}
|
|
|
|