|
@@ -2,8 +2,10 @@ package services
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
+ "eta/eta_index_lib/logic"
|
|
|
"eta/eta_index_lib/models"
|
|
|
"eta/eta_index_lib/models/mgo"
|
|
|
+ "eta/eta_index_lib/services/alarm_msg"
|
|
|
"eta/eta_index_lib/utils"
|
|
|
"fmt"
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
@@ -136,6 +138,8 @@ func HandleBusinessIndex(indexItem *models.AddBusinessIndexReq) (err error) {
|
|
|
exitDataMap[v.DataTime.Format(utils.FormatDate)] = v
|
|
|
}
|
|
|
|
|
|
+ // 当前传入的最小日期
|
|
|
+ var reqMinDate time.Time
|
|
|
// 待添加的数据集
|
|
|
addDataList := make([]mgo.BaseFromBusinessData, 0)
|
|
|
updateDataList := make([]mgo.BaseFromBusinessData, 0)
|
|
@@ -147,6 +151,12 @@ func HandleBusinessIndex(indexItem *models.AddBusinessIndexReq) (err error) {
|
|
|
fmt.Println("time.ParseInLocation Err:" + err.Error())
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ // 调整最小日期
|
|
|
+ if reqMinDate.IsZero() || reqMinDate.After(dateTime) {
|
|
|
+ reqMinDate = dateTime
|
|
|
+ }
|
|
|
+
|
|
|
date := dateTime.Format(utils.FormatDate)
|
|
|
|
|
|
findData, ok := exitDataMap[date]
|
|
@@ -170,9 +180,13 @@ func HandleBusinessIndex(indexItem *models.AddBusinessIndexReq) (err error) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 指标数据是否新增或修改
|
|
|
+ var isIndexUpdateOrAdd bool
|
|
|
+
|
|
|
// 入库
|
|
|
{
|
|
|
if len(addDataList) > 0 {
|
|
|
+ isIndexUpdateOrAdd = true
|
|
|
err = mogDataObj.BatchInsertData(addDataList)
|
|
|
if err != nil {
|
|
|
fmt.Println("mogDataObj.HandleData() Err:" + err.Error())
|
|
@@ -181,6 +195,7 @@ func HandleBusinessIndex(indexItem *models.AddBusinessIndexReq) (err error) {
|
|
|
}
|
|
|
|
|
|
if len(updateDataList) > 0 {
|
|
|
+ isIndexUpdateOrAdd = true
|
|
|
coll := mogDataObj.GetCollection()
|
|
|
for _, v := range updateDataList {
|
|
|
err = mogDataObj.UpdateDataByColl(coll, bson.M{"_id": v.ID}, bson.M{"$set": bson.M{"value": v.Value, "modify_time": v.ModifyTime}})
|
|
@@ -200,45 +215,65 @@ func HandleBusinessIndex(indexItem *models.AddBusinessIndexReq) (err error) {
|
|
|
//}
|
|
|
//fmt.Println("result", result)
|
|
|
|
|
|
- ////修改最大最小日期
|
|
|
- //mysteelIndexMaxItem, err := dataObj.GetMysteelIndexInfoMaxAndMinInfo(indexItem.IndexCode)
|
|
|
- //if err == nil && mysteelIndexMaxItem != nil {
|
|
|
- // e := dataObj.ModifyMysteelIndexMaxAndMinInfo(indexItem.IndexCode, mysteelIndexMaxItem)
|
|
|
- // if e != nil {
|
|
|
- // fmt.Println("ModifyMysteelIndexMaxAndMinInfo Err:" + e.Error())
|
|
|
- // }
|
|
|
- //}
|
|
|
- //// 同步刷新图库钢联的指标
|
|
|
- ////go func() {
|
|
|
- //var indexErr error
|
|
|
- //var lErr error
|
|
|
- //defer func() {
|
|
|
- // if indexErr != nil {
|
|
|
- // tips := fmt.Sprintf("钢联数据刷新-ETA指标刷新异常, 指标编码: %s, err: %s", indexObj.IndexCode, indexErr.Error())
|
|
|
- // alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
- // }
|
|
|
- //
|
|
|
- // if lErr != nil {
|
|
|
- // tips := fmt.Sprintf("钢联数据刷新-ETA指标刷新统计异常, 指标编码: %s, err: %s", indexObj.IndexCode, lErr.Error())
|
|
|
- // alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
- // }
|
|
|
- //}()
|
|
|
- //
|
|
|
- //edbInfo, e := models.GetEdbInfoByEdbCode(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, indexObj.IndexCode)
|
|
|
- //if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- // indexErr = e
|
|
|
- // return
|
|
|
- //}
|
|
|
- //
|
|
|
- //if edbInfo != nil {
|
|
|
- // dataUpdateResult := 2
|
|
|
- // dataUpdateFailedReason := "服务异常"
|
|
|
- // _, logErrMsg, logErr := logic.RefreshBaseEdbInfo(edbInfo, ``)
|
|
|
- // if logErr != nil {
|
|
|
- // lErr = AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 2, logErrMsg+logErr.Error(), dataUpdateResult, dataUpdateFailedReason, 1, 0)
|
|
|
- // return
|
|
|
- // }
|
|
|
- //}
|
|
|
+ //修改最大最小日期
|
|
|
+ indexMaxAndMinInfo, err := item.GetEdbInfoMaxAndMinInfo(indexItem.IndexCode)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err == nil && indexMaxAndMinInfo != nil {
|
|
|
+ e := item.ModifyIndexMaxAndMinInfo(indexItem.IndexCode, indexMaxAndMinInfo, isIndexUpdateOrAdd)
|
|
|
+ if e != nil {
|
|
|
+ fmt.Println("ModifyIndexMaxAndMinInfo Err:" + e.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 同步刷新指标库的指标
|
|
|
+ go refreshEdbBusiness(item.IndexCode, reqMinDate)
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func refreshEdbBusiness(indexCode string, reqMinDate time.Time) {
|
|
|
+ var indexErr error
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if indexErr != nil {
|
|
|
+ tips := fmt.Sprintf("外部数据刷新-ETA指标刷新异常, 指标编码: %s, err: %s, 错误信息:%s", indexCode, indexErr.Error(), errMsg)
|
|
|
+ alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ edbInfo, e := models.GetEdbInfoByEdbCode(utils.DATA_SOURCE_BUSINESS, indexCode)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ indexErr = e
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if edbInfo != nil {
|
|
|
+ startDate := ``
|
|
|
+ if reqMinDate.IsZero() {
|
|
|
+ startDate = edbInfo.EndDate
|
|
|
+ } else {
|
|
|
+ startDate = reqMinDate.Format(utils.FormatDate)
|
|
|
+ }
|
|
|
+ params := models.RefreshBaseParams{
|
|
|
+ EdbInfo: edbInfo,
|
|
|
+ StartDate: startDate,
|
|
|
+ }
|
|
|
+ obj := models.Business{}
|
|
|
+
|
|
|
+ indexErr, errMsg = obj.Refresh(params)
|
|
|
+ if indexErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新指标最大最小值
|
|
|
+ indexErr = obj.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
+ if indexErr != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新ES
|
|
|
+ go logic.UpdateEs(edbInfo.EdbInfoId)
|
|
|
+ }
|
|
|
+}
|