|
@@ -267,6 +267,8 @@ func RefreshDataFromCalculateAll() (err error) {
|
|
|
condition += " AND edb_type=? AND edb_info_type=? AND no_update=0"
|
|
|
pars = append(pars, 2, 0)
|
|
|
|
|
|
+ condition += " AND edb_info_id NOT IN( SELECT edb_info_id FROM edb_info_calculate_mapping WHERE from_edb_info_id>edb_info_id) "
|
|
|
+
|
|
|
items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -1375,3 +1377,71 @@ func RefreshDataFromTradeAnalysis(wg *sync.WaitGroup) (err error) {
|
|
|
utils.FileLog.Info(fmt.Sprintf("持仓分析指标刷新结束: %s", time.Now().Format(utils.FormatDateTime)))
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+// 刷新计算指标-当比当前计算指标id大的依赖指标刷新完之后,再进行指标刷新
|
|
|
+func RefreshDataFromCalculateAfter() (err error) {
|
|
|
+ errMsgList := make([]string, 0)
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ errMsg := "刷新所有计算指标失败 ErrMsg:" + err.Error()
|
|
|
+ utils.FileLog.Info(errMsg)
|
|
|
+ go alarm_msg.SendAlarmMsg(errMsg, 3)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(errMsgList) > 0 {
|
|
|
+ utils.FileLog.Info("刷新所有计算指标失败 ErrMsg:" + strings.Join(errMsgList, "\n"))
|
|
|
+ go alarm_msg.SendAlarmMsg("刷新所有计算指标失败 ErrMsg:"+strings.Join(errMsgList, "\n"), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ // 查询 普通指标的计算指标
|
|
|
+ condition += " AND edb_type=? AND edb_info_type=? AND no_update=0"
|
|
|
+ pars = append(pars, 2, 0)
|
|
|
+
|
|
|
+ condition += " AND edb_info_id IN( SELECT edb_info_id FROM edb_info_calculate_mapping WHERE from_edb_info_id>edb_info_id) "
|
|
|
+
|
|
|
+ items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ nowStr := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
|
|
|
+
|
|
|
+ startDateOfWeek := utils.GetNowWeekMonday()
|
|
|
+ endDateOfWeek := utils.GetNowWeekLastDay()
|
|
|
+
|
|
|
+ for _, v := range items {
|
|
|
+
|
|
|
+ if v.Frequency == "日度" {
|
|
|
+ if v.EndDate.Format(utils.FormatDate) == nowStr {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ } else if v.Frequency == "周度" {
|
|
|
+ if !v.EndDate.Before(startDateOfWeek) && !v.EndDate.After(endDateOfWeek) {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ source := v.Source
|
|
|
+ startDate := v.StartDate.Format(utils.FormatDate)
|
|
|
+ if startDate == "0001-01-01" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
|
|
|
+
|
|
|
+ fmt.Println("RefreshEdbCalculateData", v.EdbInfoId, v.EdbCode, startDate)
|
|
|
+ result, tmpErr := RefreshEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;err:%s", v.EdbInfoId, v.EdbCode, tmpErr.Error()))
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if result.Ret != 200 {
|
|
|
+ errMsgList = append(errMsgList, fmt.Sprintf("指标ID:%d;指标编码:%s;msg:%s;errMsg:%s", v.EdbInfoId, v.EdbCode, result.Msg, result.ErrMsg))
|
|
|
+ //return err
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return err
|
|
|
+}
|