|
@@ -230,8 +230,10 @@ func refreshAllPredictCalculateNszydpjjs(to orm.TxOrmer, edbInfoId, source, form
|
|
|
_, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)
|
|
|
|
|
|
existDataMap := make(map[string]*EdbData)
|
|
|
+ removeDataTimeMap := make(map[string]int) //需要移除的日期数据
|
|
|
for _, v := range existDataList {
|
|
|
existDataMap[v.DataTime] = v
|
|
|
+ removeDataTimeMap[v.DataTime] = 1
|
|
|
}
|
|
|
|
|
|
//计算来源数据
|
|
@@ -316,6 +318,9 @@ func refreshAllPredictCalculateNszydpjjs(to orm.TxOrmer, edbInfoId, source, form
|
|
|
}
|
|
|
existAddDataMap[av] = av
|
|
|
} else {
|
|
|
+ //校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
|
|
|
+ delete(removeDataTimeMap, av)
|
|
|
+
|
|
|
existValDecimal, _ := decimal.NewFromString(existVal.Value)
|
|
|
existStr := existValDecimal.String()
|
|
|
fmt.Println(existStr, valStr, av)
|
|
@@ -329,6 +334,25 @@ func refreshAllPredictCalculateNszydpjjs(to orm.TxOrmer, edbInfoId, source, form
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //删除已经不存在的指标数据(由于该指标当日的数据删除了)
|
|
|
+ {
|
|
|
+ removeDateList := make([]string, 0)
|
|
|
+ for dateTime := range removeDataTimeMap {
|
|
|
+ removeDateList = append(removeDateList, dateTime)
|
|
|
+ }
|
|
|
+ removeNum := len(removeDateList)
|
|
|
+ if removeNum > 0 {
|
|
|
+ sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (`+utils.GetOrmInReplace(removeNum)+`) `, dataTableName)
|
|
|
+ _, err = to.Raw(sql, edbInfoId, removeDateList).Exec()
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("refreshAllPredictCalculateNszydpjjs add data ;delete Err", err.Error())
|
|
|
+ err = fmt.Errorf("删除不存在的指标数据失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if isAdd {
|
|
|
addSql = strings.TrimRight(addSql, ",")
|
|
|
//utils.FileLog.Info("addSql:" + addSql)
|