Jelajahi Sumber

钢联数据源刷新埋点

xyxie 1 tahun lalu
induk
melakukan
fd09c4fa64

+ 1 - 1
controllers/base_from_mysteel_chemical.go

@@ -127,7 +127,7 @@ func (this *MySteelChemicalController) Refresh() {
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	// 添加指标刷新成功日志
-	_ = services.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "")
+	_ = services.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "", 0, "", "")
 
 	br.Ret = 200
 	br.Success = true

+ 1 - 8
logic/base_edb_info.go

@@ -3,7 +3,6 @@ package logic
 import (
 	"errors"
 	"eta/eta_index_lib/models"
-	"eta/eta_index_lib/services"
 	"eta/eta_index_lib/utils"
 	"strconv"
 	"time"
@@ -36,7 +35,7 @@ func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling b
 		err = errors.New("刷新指标信息失败 RefreshEdbDataFromSci,Err:" + err.Error())
 		return
 	}
-	
+
 	// 更新指标最大最小值
 	if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
 		dataUpdateTime := time.Now().Format(utils.FormatDateTime)
@@ -53,11 +52,5 @@ func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling b
 
 	// 更新ES
 	go UpdateEs(edbInfo.EdbInfoId)
-
-	// 添加钢联化工指标的刷新日志
-	if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
-		// 添加指标刷新成功日志
-		_ = services.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "")
-	}
 	return
 }

+ 28 - 25
models/data_stat/edb_info_update_log.go

@@ -7,31 +7,34 @@ import (
 
 // EdbInfoUpdateLog 指标更新/刷新日志列表
 type EdbInfoUpdateLog struct {
-	Id                 uint64    `orm:"column(id);pk"`
-	EdbInfoId          int       `description:"指标ID"`
-	SourceName         string    `description:"来源名称"`
-	Source             int       `description:"来源id"`
-	EdbCode            string    `description:"指标编码"`
-	EdbName            string    `description:"指标名称"`
-	EdbNameSource      string    `description:"指标名称来源"`
-	Frequency          string    `description:"频率"`
-	Unit               string    `description:"单位"`
-	StartDate          string    `description:"起始日期"`
-	EndDate            string    `description:"终止日期"`
-	SysUserId          int       `description:"创建人ID"`
-	SysUserRealName    string    `description:"创建人姓名"`
-	UniqueCode         string    `description:"指标唯一编码"`
-	EdbCreateTime      time.Time `description:"指标创建时间"`
-	EdbModifyTime      time.Time `description:"指标修改时间"`
-	CreateTime         time.Time `description:"创建时间"`
-	UpdateTime         time.Time `description:"刷新/修改时间"`
-	LatestDate         string    `description:"数据最新日期"`
-	LatestValue        float64   `description:"数据最新值"`
-	TerminalCode       string    `description:"终端编码,用于配置在机器上"`
-	DataUpdateTime     string    `description:"最近一次数据发生变化的时间"`
-	ErDataUpdateDate   string    `description:"本次更新,数据发生变化的最早日期"`
-	UpdateResult       int       `description:"本次刷新结果:1成功,2失败"`
-	UpdateFailedReason string    `description:"数据未正常刷新原因"`
+	Id                       uint64    `orm:"column(id);pk"`
+	EdbInfoId                int       `description:"指标ID"`
+	SourceName               string    `description:"来源名称"`
+	Source                   int       `description:"来源id"`
+	EdbCode                  string    `description:"指标编码"`
+	EdbName                  string    `description:"指标名称"`
+	EdbNameSource            string    `description:"指标名称来源"`
+	Frequency                string    `description:"频率"`
+	Unit                     string    `description:"单位"`
+	StartDate                string    `description:"起始日期"`
+	EndDate                  string    `description:"终止日期"`
+	SysUserId                int       `description:"创建人ID"`
+	SysUserRealName          string    `description:"创建人姓名"`
+	UniqueCode               string    `description:"指标唯一编码"`
+	EdbCreateTime            time.Time `description:"指标创建时间"`
+	EdbModifyTime            time.Time `description:"指标修改时间"`
+	CreateTime               time.Time `description:"创建时间"`
+	UpdateTime               time.Time `description:"刷新/修改时间"`
+	LatestDate               string    `description:"数据最新日期"`
+	LatestValue              float64   `description:"数据最新值"`
+	TerminalCode             string    `description:"终端编码,用于配置在机器上"`
+	DataUpdateTime           string    `description:"最近一次数据发生变化的时间"`
+	ErDataUpdateDate         string    `description:"本次更新,数据发生变化的最早日期"`
+	UpdateResult             int       `description:"本次刷新结果:1成功,2失败"`
+	UpdateFailedReason       string    `description:"数据未正常刷新原因"`
+	SourceUpdateResult       int       `description:"从终端刷新到数据源的刷新结果:1成功,2失败"`
+	SourceUpdateFailedReason string    `description:"从终端刷新到数据源的数据未正常刷新原因"`
+	SourceUpdateTime         string    `description:"从终端刷新到数据源的 刷新时间"`
 }
 
 func AddEdbUpdateLog(item *EdbInfoUpdateLog) (lastId int64, err error) {

+ 36 - 4
services/base_from_mysteel_chemical.go

@@ -24,7 +24,20 @@ func HandleMysteelIndex(req *models.HandleMysteelIndexResp) (err error) {
 }
 
 func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
-	//return
+	defer func() {
+		if err != nil {
+			// 添加刷新失败日志
+			sourceUpdateResult := 2
+			sourceUpdateFailedReason := err.Error()
+			sourceUpdateTime := time.Now().Format(utils.FormatDateTime)
+			edbInfo, e := models.GetEdbInfoByEdbCode(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, indexItem.IndexCode)
+			if e == nil {
+				//查询指标存在,才添加刷新日志
+				_ = AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 2, err.Error(), sourceUpdateResult, sourceUpdateFailedReason, sourceUpdateTime)
+			}
+		}
+	}()
+
 	indexObj := new(models.BaseFromMysteelChemicalIndex)
 	var indexId int64
 
@@ -125,6 +138,7 @@ func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 	}
 
 	dataObj := new(models.BaseFromMysteelChemicalData)
+	var hasUpdate bool
 	// 遍历excel数据,然后跟现有的数据做校验,不存在则入库
 	for date, value := range indexItem.ExcelDataMap {
 		if findData, ok := exitDataMap[date]; !ok {
@@ -154,6 +168,7 @@ func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 				updateDataColsArr = append(updateDataColsArr, "value")
 				updateDataColsArr = append(updateDataColsArr, "modify_time")
 				dataObj.Update(updateDataColsArr)
+				hasUpdate = true
 			}
 		}
 	}
@@ -162,7 +177,9 @@ func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 		err = dataObj.Add(addDataList)
 		if err != nil {
 			fmt.Println("dataObj.Add() Err:" + err.Error())
+			return
 		}
+		hasUpdate = true
 	}
 
 	//修改最大最小日期
@@ -173,7 +190,7 @@ func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 			fmt.Println("ModifyMysteelIndexMaxAndMinInfo Err:" + e.Error())
 		}
 	}
-
+	// todo 钢联数据刷新-ETA指标刷新异常 添加记录
 	// 同步刷新图库钢联的指标
 	go func() {
 		var indexErr error
@@ -189,10 +206,25 @@ func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 			indexErr = e
 			return
 		}
+
 		if edbInfo != nil {
-			logic.RefreshBaseEdbInfo(edbInfo, ``)
+			_, logErrMsg, logErr := logic.RefreshBaseEdbInfo(edbInfo, ``)
+			sourceUpdateResult := 2
+			var sourceUpdateFailedReason string
+			if hasUpdate {
+				sourceUpdateResult = 1
+			} else {
+				sourceUpdateFailedReason = "未刷新到数据"
+			}
+			sourceUpdateTime := time.Now().Format(utils.FormatDateTime)
+			if logErr != nil {
+				// 添加刷新失败日志
+				_ = AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 2, logErrMsg+err.Error(), sourceUpdateResult, sourceUpdateFailedReason, sourceUpdateTime)
+			} else {
+				// 添加刷新成功日志
+				_ = AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "", sourceUpdateResult, sourceUpdateFailedReason, sourceUpdateTime)
+			}
 		}
-		// todo 添加钢联终端刷新到数据源的刷新日志
 	}()
 
 	return

+ 4 - 1
services/edb_info_stat.go

@@ -8,7 +8,7 @@ import (
 )
 
 // AddEdbInfoUpdateLog 添加指标编辑/刷新日志
-func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason string) (err error) {
+func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason string, sourceUpdateResult int, sourceUpdateFailedReason string, sourceUpdateTime string) (err error) {
 	var edbInfo *models.EdbInfo
 	if edbInfoId > 0 {
 		// 获取指标详情
@@ -42,6 +42,9 @@ func AddEdbInfoUpdateLog(edbInfoId int, updateResult int, updateFailedReason str
 		log.UpdateFailedReason = updateFailedReason
 		log.DataUpdateTime = edbInfo.DataUpdateTime
 		log.ErDataUpdateDate = edbInfo.ErDataUpdateDate
+		log.SourceUpdateResult = sourceUpdateResult
+		log.SourceUpdateTime = sourceUpdateTime
+		log.SourceUpdateFailedReason = sourceUpdateFailedReason
 		_, err = data_stat.AddEdbUpdateLog(log)
 		if err != nil {
 			err = fmt.Errorf("新增指标更新日志失败,Err: %s", err)