Преглед на файлове

禁用的指标被图表引用时,自动启用刷新添加配置项

xyxie преди 6 дни
родител
ревизия
2d3e9e2fd1
променени са 3 файла, в които са добавени 21 реда и са изтрити 8 реда
  1. 1 0
      models/business_conf.go
  2. 6 6
      models/data_manage/edb_info_relation.go
  3. 14 2
      services/data/edb_info_relation.go

+ 1 - 0
models/business_conf.go

@@ -70,6 +70,7 @@ const (
 	BusinessConfIsOpenChartExpired           = "IsOpenChartExpired"               // 是否开启图表有效期鉴权/报告禁止复制
 	BusinessConfReportChartExpiredTime       = "ReportChartExpiredTime"           // 图表有效期鉴权时间,单位:分钟
 	BusinessConfOssUrlReplace                = "OssUrlReplace"                    // OSS地址替换-兼容内网客户用
+	BusinessConfEdbNoUpdateAutoToNormal     = "EdbNoUpdateAutoToNormal"          // 被禁用的指标一旦被图表引用是否转为启用状态开关:1是, 0否
 )
 
 const (

+ 6 - 6
models/data_manage/edb_info_relation.go

@@ -64,7 +64,7 @@ func GetEdbInfoRelationAllByReferObjectIds(referObjectIds []int, referObjectType
 }
 
 // 新增记录
-func AddOrUpdateEdbInfoRelation(objectId, objectType int, relationList []*EdbInfoRelation, deleteEdbInfoIds []int, refreshEdbInfoIds []int, indexCodeList []string) (err error) {
+func AddOrUpdateEdbInfoRelation(objectId, objectType int, relationList []*EdbInfoRelation, deleteEdbInfoIds []int, refreshEdbInfoIds []int, indexCodeList []string, autoToNormal bool) (err error) {
 	o := global.DbMap[utils.DbNameIndex].Begin()
 	if o.Error != nil {
 		return o.Error
@@ -103,7 +103,7 @@ func AddOrUpdateEdbInfoRelation(objectId, objectType int, relationList []*EdbInf
 		}
 	}
 
-	if len(refreshEdbInfoIds) > 0 {
+	if len(refreshEdbInfoIds) > 0 && autoToNormal {
 		//todo 是否需要所有指标的刷新状态
 		sql := ` UPDATE edb_info SET no_update = 0, set_update_time=? WHERE edb_info_id IN (` + utils.GetOrmInReplace(len(refreshEdbInfoIds)) + `) `
 		err = o.Exec(sql, time.Now(), refreshEdbInfoIds).Error
@@ -113,7 +113,7 @@ func AddOrUpdateEdbInfoRelation(objectId, objectType int, relationList []*EdbInf
 	}
 
 	//更新数据源上海钢联指标
-	if len(indexCodeList) > 0 {
+	if len(indexCodeList) > 0 && autoToNormal {
 		// 更改数据源的更新状态
 		sql := ` UPDATE base_from_mysteel_chemical_index SET is_stop = 0 WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodeList)) + `) and is_stop=1`
 		err = o.Exec(sql, indexCodeList).Error
@@ -145,7 +145,7 @@ WHERE
 }
 
 // 新增记录
-func AddOrUpdateEdbInfoRelationMulti(relationList []*EdbInfoRelation, refreshEdbInfoIds []int, indexCodeList []string) (err error) {
+func AddOrUpdateEdbInfoRelationMulti(relationList []*EdbInfoRelation, refreshEdbInfoIds []int, indexCodeList []string, autoToNormal bool) (err error) {
 	o := global.DbMap[utils.DbNameIndex].Begin()
 	if o.Error != nil {
 		return o.Error
@@ -171,7 +171,7 @@ func AddOrUpdateEdbInfoRelationMulti(relationList []*EdbInfoRelation, refreshEdb
 		}
 	}
 
-	if len(refreshEdbInfoIds) > 0 {
+	if len(refreshEdbInfoIds) > 0 && autoToNormal {
 		// todo 更新指标的刷新状态
 		sql := ` UPDATE edb_info SET no_update = 0, set_update_time=? WHERE edb_info_id IN (` + utils.GetOrmInReplace(len(refreshEdbInfoIds)) + `) `
 		err = o.Exec(sql, time.Now(), refreshEdbInfoIds).Error
@@ -181,7 +181,7 @@ func AddOrUpdateEdbInfoRelationMulti(relationList []*EdbInfoRelation, refreshEdb
 	}
 
 	//更新数据源上海钢联指标
-	if len(indexCodeList) > 0 {
+	if len(indexCodeList) > 0 && autoToNormal {
 		// 更改数据源的更新状态
 		sql := ` UPDATE base_from_mysteel_chemical_index SET is_stop = 0 WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodeList)) + `) and is_stop=1`
 		err = o.Exec(sql, indexCodeList).Error

+ 14 - 2
services/data/edb_info_relation.go

@@ -1,6 +1,7 @@
 package data
 
 import (
+	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	excelModel "eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/models/fe_calendar"
@@ -148,7 +149,12 @@ func saveEdbInfoRelation(edbInfoIds []int, objectId, objectType, objectSubType i
 		deleteEdbInfoIds = append(deleteEdbInfoIds, deleteId)
 	}
 	//更新指标刷新状态为启用
-	err = data_manage.AddOrUpdateEdbInfoRelation(objectId, objectType, addList, deleteEdbInfoIds, refreshIds, indexCodeList)
+	autoToNormal := false
+	businessConf, er := models.GetBusinessConfByKey(models.BusinessConfEdbNoUpdateAutoToNormal)
+	if er == nil && businessConf.ConfVal == "1" {
+		autoToNormal = true
+	}
+	err = data_manage.AddOrUpdateEdbInfoRelation(objectId, objectType, addList, deleteEdbInfoIds, refreshIds, indexCodeList, autoToNormal)
 	if err != nil {
 		err = fmt.Errorf("删除不再需要的引用关系失败,%s", err.Error())
 		return
@@ -342,7 +348,13 @@ func SaveCalendarEdbInfoRelation(chartPermissionId int, matterDate string, editM
 		}
 	}
 	//更新指标刷新状态为启用
-	err = data_manage.AddOrUpdateEdbInfoRelationMulti(addList, refreshIds, indexCodeList)
+	//更新指标刷新状态为启用
+	autoToNormal := false
+	businessConf, er := models.GetBusinessConfByKey(models.BusinessConfEdbNoUpdateAutoToNormal)
+	if er == nil && businessConf.ConfVal == "1" {
+		autoToNormal = true
+	}
+	err = data_manage.AddOrUpdateEdbInfoRelationMulti(addList, refreshIds, indexCodeList, autoToNormal)
 	if err != nil {
 		err = fmt.Errorf("添加指标引用,%s", err.Error())
 		return