|
@@ -287,8 +287,10 @@ func (obj PredictLjzzj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
|
|
|
return
|
|
|
}
|
|
|
dataMap := make(map[string]string)
|
|
|
+ removeDateMap := make(map[string]bool) //需要移除的日期
|
|
|
for _, v := range existDataList {
|
|
|
dataMap[v.DataTime] = v.Value
|
|
|
+ removeDateMap[v.DataTime] = true
|
|
|
}
|
|
|
existDataMap := make(map[string]string)
|
|
|
for yk, yv := range yearMap {
|
|
@@ -331,7 +333,8 @@ func (obj PredictLjzzj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
|
|
|
a := decimal.NewFromFloat(dataTwoItem.Value)
|
|
|
b := decimal.NewFromFloat(2.0)
|
|
|
val, _ = a.Div(b).Float64()
|
|
|
-
|
|
|
+ // 有计算出来值,那么就从待删除指标中移除
|
|
|
+ delete(removeDateMap, date)
|
|
|
tmpSql, newAdd, tmpErr := obj.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
if !isAdd {
|
|
|
isAdd = newAdd
|
|
@@ -362,6 +365,8 @@ func (obj PredictLjzzj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
|
|
|
}
|
|
|
}
|
|
|
if date != "" {
|
|
|
+ // 有计算出来值,那么就从待删除指标中移除
|
|
|
+ delete(removeDateMap, date)
|
|
|
tmpSql, newAdd, tmpErr := obj.calculate(edbInfoId, date, edbInfoIdStr, edbCode, dataTableName, addSql, val, dataMap, existDataMap, to)
|
|
|
if !isAdd {
|
|
|
isAdd = newAdd
|
|
@@ -374,6 +379,23 @@ func (obj PredictLjzzj) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if len(removeDateMap) > 0 {
|
|
|
+ removeDateList := make([]string, 0) //需要移除的日期
|
|
|
+ for k := range removeDateMap {
|
|
|
+ removeDateList = append(removeDateList, k)
|
|
|
+ }
|
|
|
+ removeDateStr := strings.Join(removeDateList, `","`)
|
|
|
+ removeDateStr = `"` + removeDateStr + `"`
|
|
|
+ //如果拼接指标变更了,那么需要删除所有的指标数据
|
|
|
+ tableName := GetEdbDataTableName(source, subSource)
|
|
|
+ sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
|
|
|
+
|
|
|
+ _, err = to.Raw(sql, edbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("删除计算失败的计算指标数据失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
if isAdd {
|
|
|
addSql = strings.TrimRight(addSql, ",")
|
|
|
_, err = to.Raw(addSql).Exec()
|