|
@@ -414,16 +414,18 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
|
|
|
condition += " AND edb_info_id=? "
|
|
|
pars = append(pars, edbInfo.EdbInfoId)
|
|
|
|
|
|
- var dataList []*EdbDataCalculateNhcc
|
|
|
- sql := ` SELECT * FROM edb_data_calculate_nhcc WHERE edb_info_id=? ORDER BY data_time DESC `
|
|
|
- err = to.Raw(sql, edbInfo.EdbInfoId).Scan(&dataList).Error
|
|
|
+ //获取年化指标所有数据
|
|
|
+ existDataList, err := GetAllEdbDataListByTo(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource)
|
|
|
+ //var dataList []*EdbDataCalculateNhcc
|
|
|
+ //sql := ` SELECT * FROM edb_data_calculate_nhcc WHERE edb_info_id=? ORDER BY data_time DESC `
|
|
|
+ //err = to.Raw(sql, edbInfo.EdbInfoId).Scan(&dataList).Error
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
var dateArr []string
|
|
|
- dataMap := make(map[string]*EdbDataCalculateNhcc)
|
|
|
+ dataMap := make(map[string]*EdbData)
|
|
|
removeDataTimeMap := make(map[string]int) //需要移除的日期数据
|
|
|
- for _, v := range dataList {
|
|
|
+ for _, v := range existDataList {
|
|
|
dateArr = append(dateArr, v.DataTime)
|
|
|
dataMap[v.DataTime] = v
|
|
|
removeDataTimeMap[v.DataTime] = 1
|
|
@@ -500,7 +502,8 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
|
|
|
bDecimal := decimal.NewFromFloat(bData.Value)
|
|
|
b2Decimal := decimal.NewFromFloat(b2Val)
|
|
|
|
|
|
- val, _ := bDecimal.Sub(b2Decimal).Round(4).Float64()
|
|
|
+ valDeci := bDecimal.Sub(b2Decimal)
|
|
|
+ val, _ := valDeci.Round(4).Float64()
|
|
|
|
|
|
// 判断之前有没有该数据
|
|
|
existData, ok := dataMap[currDate]
|
|
@@ -520,9 +523,15 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
|
|
|
addDataList = append(addDataList, edbDataNhcc)
|
|
|
} else {
|
|
|
// 如果有的话,还需要判断值是否一致,一致则不处理,不一致则修改
|
|
|
- if existData.Value != val {
|
|
|
- existData.Value = val
|
|
|
- _ = to.Model(existData).Select([]string{"Value"}).Updates(existData).Error
|
|
|
+
|
|
|
+ tmpExistVal, tmpErr := decimal.NewFromString(existData.Value)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !tmpExistVal.Equal(valDeci) {
|
|
|
+ err = ModifyEdbDataById(edbInfo.Source, edbInfo.SubSource, existData.EdbDataId, valDeci.String())
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|