Procházet zdrojové kódy

周度指标统计是否应该刷新调整

xyxie před 1 rokem
rodič
revize
c0d79433eb
1 změnil soubory, kde provedl 16 přidání a 9 odebrání
  1. 16 9
      services/edb_info_stat.go

+ 16 - 9
services/edb_info_stat.go

@@ -61,6 +61,7 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 	defer func() {
 		if err != nil {
 			tips := fmt.Sprintf("钢联数据刷新-ETA指标刷新统计异常 Err: %s", err.Error())
+			utils.FileLog.Info(tips)
 			alarm_msg.SendAlarmMsg(tips, 3)
 		}
 	}()
@@ -83,7 +84,8 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 		err = fmt.Errorf("查询钢联化工指标终端更新日志报错,err: %s", err)
 		return
 	}
-	if !needStat && len(updateLogList) == 0 {
+	fmt.Println(len(updateLogList))
+	if !needStat && len(updateLogList) == 0 { //如果不存在变更记录 则不进行汇总
 		return
 	}
 	updateLogMap := make(map[int]*data_stat.EdbInfoUpdateLog)
@@ -113,10 +115,10 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 	week := int(nowTime.Weekday())
 	weekNeedRefreshMap := make(map[string]struct{})
 	if week >= 3 && week <= 6 {
-		yesterday := nowTime.AddDate(0, 0, -1).Format(utils.FormatDate)
+		endDate := utils.GetNowWeekMonday().Format(utils.FormatDate)
 		cond := ` AND frequency = ? AND end_date < ? AND is_stop = 0`
 		var tmpPars []interface{}
-		tmpPars = append(tmpPars, "周度", yesterday)
+		tmpPars = append(tmpPars, "周度", endDate)
 		//查询所有需要当日刷新的周度指标
 		indexTotal, tErr := indexObj.GetIndexByCondition(cond, tmpPars)
 		if tErr != nil {
@@ -130,9 +132,8 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 	//查询所有停更指标
 	stopRefreshMap := make(map[string]struct{})
 	tmpCond := ` AND is_stop = 1`
-	var tmpPars []interface{}
 	//查询所有需要当日刷新的周度指标
-	indexStop, tErr := indexObj.GetIndexByCondition(tmpCond, tmpPars)
+	indexStop, tErr := indexObj.GetIndexByCondition(tmpCond, []interface{}{})
 	if tErr != nil {
 		err = fmt.Errorf("查询钢联化工原始指标报错,err: %s", tErr)
 		return
@@ -173,6 +174,8 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 				ErDataUpdateDate: v.ErDataUpdateDate,
 				ModifyTime:       nowTime,
 			}
+			exist, existOk := updateStatMap[v.EdbInfoId]
+
 			frequency := v.Frequency
 			if v.Frequency == "旬度" { //特殊处理指标库里和数据源里频度不一致的情况
 				//查询源指标库的频度
@@ -181,8 +184,12 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 					frequency = indexTmp.Frequency
 				}
 			}
-			needRefresh, _ := checkMySteelEdbInfoNeedRefresh(v.EdbCode, frequency, weekNeedRefreshMap)
-			tmp.NeedRefresh = needRefresh
+			if existOk {
+				tmp.NeedRefresh = exist.NeedRefresh
+			} else {
+				needRefresh, _ := checkMySteelEdbInfoNeedRefresh(v.EdbCode, frequency, weekNeedRefreshMap)
+				tmp.NeedRefresh = needRefresh
+			}
 
 			// 判断是否当日新增
 			if v.CreateTime.After(todayT) || v.CreateTime == todayT {
@@ -199,14 +206,14 @@ func SetMysteelChemicalEdbInfoUpdateStat(needStat bool) (err error) {
 				tmp.UpdateResult = up.UpdateResult
 				tmp.UpdateFailedReason = up.UpdateFailedReason
 				tmp.UpdateTime = up.CreateTime.Format(utils.FormatDateTime)
-			} else if needRefresh == 1 {
+			} else if tmp.NeedRefresh == 1 {
 				tmp.HasRefresh = 0
 				tmp.DataUpdateResult = 2
 				tmp.DataUpdateFailedReason = "服务异常"
 			}
 
 			// 判断是否需要新增还是更新
-			if exist, ok := updateStatMap[v.EdbInfoId]; ok {
+			if existOk {
 				tmp.Id = exist.Id
 				modifyList = append(modifyList, tmp)
 			} else {