浏览代码

Merge branch 'chart/10.4'

Roc 2 年之前
父节点
当前提交
035e9b74da

+ 25 - 34
controllers/base_from_calculate.go

@@ -150,6 +150,7 @@ func (this *CalculateController) Add() {
 		br.Msg = "生成计算指标失败,AddEdbInfo Err:" + err.Error()
 		br.Msg = "生成计算指标失败,AddEdbInfo Err:" + err.Error()
 		return
 		return
 	}
 	}
+	edbInfo.EdbInfoId = int(edbInfoId)
 	//处理同名指标
 	//处理同名指标
 	{
 	{
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
@@ -221,15 +222,13 @@ func (this *CalculateController) Add() {
 		br.Msg = "生成计算指标失败,Calculate Err:" + err.Error()
 		br.Msg = "生成计算指标失败,Calculate Err:" + err.Error()
 		return
 		return
 	}
 	}
-	maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(utils.DATA_SOURCE_CALCULATE, edbCode)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "生成计算指标失败"
-		br.Msg = "生成计算指标失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
-		return
-	}
 
 
-	if maxAndMinItem != nil {
-		err = models.ModifyEdbInfoMaxAndMinInfo(int(edbInfoId), maxAndMinItem)
+	// 更新指标最大最小值
+	err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
+		return
 	}
 	}
 	resp := models.AddEdbInfoResp{
 	resp := models.AddEdbInfoResp{
 		EdbInfoId:  int(edbInfoId),
 		EdbInfoId:  int(edbInfoId),
@@ -314,6 +313,14 @@ func (this *CalculateController) CalculateBatchSave() {
 		}
 		}
 	}
 	}
 
 
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
+
 	//加入缓存机制,避免创建同一个名称的指标 start
 	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("edb_info:calculate:batch:save:", req.Source, ":", req.EdbName)
 	redisKey := fmt.Sprint("edb_info:calculate:batch:save:", req.Source, ":", req.EdbName)
 	isExist := utils.Rc.IsExist(redisKey)
 	isExist := utils.Rc.IsExist(redisKey)
@@ -510,15 +517,14 @@ func (this *CalculateController) CalculateBatchSave() {
 			}
 			}
 		}
 		}
 	}
 	}
-	maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(req.Source, edbCode)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "生成" + sourName + "失败"
-		br.Msg = "生成" + sourName + "失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
+
+	// 更新指标最大最小值
+	err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
 		return
 		return
 	}
 	}
-	if maxAndMinItem != nil {
-		err = models.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-	}
 	resp := models.AddEdbInfoResp{
 	resp := models.AddEdbInfoResp{
 		EdbInfoId:  edbInfoId,
 		EdbInfoId:  edbInfoId,
 		UniqueCode: uniqueCode,
 		UniqueCode: uniqueCode,
@@ -796,28 +802,13 @@ func (this *CalculateController) Refresh() {
 			return
 			return
 		}
 		}
 
 
-		maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(source, edbInfo.EdbCode)
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
 		if err != nil {
 		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
-				br.Ret = 200
-				br.Success = true
-				br.Msg = "获取成功"
-				return
-			}
-
-			br.Msg = "刷新指标失败!"
-			br.ErrMsg = "获取指标最大最小值失败,err:" + err.Error()
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
 			return
 			return
 		}
 		}
-
-		if maxAndMinItem != nil {
-			err = models.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
-			if err != nil {
-				br.Msg = "刷新指标失败!"
-				br.ErrMsg = "修改指标最大最小值失败,err:" + errMsg
-				return
-			}
-		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 17 - 0
controllers/base_from_cffex.go

@@ -87,6 +87,14 @@ func (this *CffexController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,15 @@ func (this *CffexController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromCffex,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromCffex,Err:" + err.Error()
 			return
 			return
 		}
 		}
+
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
+
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 16 - 0
controllers/base_from_coal.go

@@ -87,6 +87,14 @@ func (this *CoalController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,14 @@ func (this *CoalController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromCoal,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromCoal,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
+
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_dl.go

@@ -38,6 +38,14 @@ func (this *DlController) Add() {
 		br.ErrMsg = "请输入指标编码,指标编码为空"
 		br.ErrMsg = "请输入指标编码,指标编码为空"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -47,6 +55,13 @@ func (this *DlController) Add() {
 			br.ErrMsg = "获取指标信息失败 AddEdbDataFromDl,Err:" + err.Error()
 			br.ErrMsg = "获取指标信息失败 AddEdbDataFromDl,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_gie.go

@@ -38,6 +38,14 @@ func (this *GieController) Add() {
 		br.ErrMsg = "请输入指标编码,指标编码为空"
 		br.ErrMsg = "请输入指标编码,指标编码为空"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -47,6 +55,13 @@ func (this *GieController) Add() {
 			br.ErrMsg = "获取指标信息失败 AddEdbDataFromGie,Err:" + err.Error()
 			br.ErrMsg = "获取指标信息失败 AddEdbDataFromGie,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_google_travel.go

@@ -87,6 +87,14 @@ func (this *GoogleTravelController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *GoogleTravelController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataGoogleTravel,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataGoogleTravel,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_lt.go

@@ -94,6 +94,14 @@ func (this *LtController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -109,6 +117,13 @@ func (this *LtController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromLt,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromLt,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_lz.go

@@ -87,6 +87,14 @@ func (this *LzController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *LzController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromLz,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromLz,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_manual.go

@@ -87,6 +87,14 @@ func (this *ManualController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *ManualController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromManual,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromManual,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_mysteel.go

@@ -87,6 +87,14 @@ func (this *MySteelController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *MySteelController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromMysteel,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromMysteel,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_pb.go

@@ -94,6 +94,14 @@ func (this *PbController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -112,6 +120,13 @@ func (this *PbController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromPb,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromPb,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_pb_finance.go

@@ -104,6 +104,14 @@ func (this *PbFinanceController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -133,6 +141,13 @@ func (this *PbFinanceController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromPb,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromPb,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 12 - 15
controllers/base_from_python.go

@@ -229,15 +229,13 @@ func (this *PythonController) Add() {
 		br.Msg = "生成python指标失败,AddPythonEdb Err:" + err.Error()
 		br.Msg = "生成python指标失败,AddPythonEdb Err:" + err.Error()
 		return
 		return
 	}
 	}
-	maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(utils.DATA_SOURCE_PYTHON, edbCode)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "生成python指标失败"
-		br.Msg = "生成python指标失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
-		return
-	}
 
 
-	if maxAndMinItem != nil {
-		err = models.ModifyEdbInfoMaxAndMinInfo(int(edbInfoId), maxAndMinItem)
+	// 更新指标最大最小值
+	err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
+		return
 	}
 	}
 	resp := models.AddEdbInfoResp{
 	resp := models.AddEdbInfoResp{
 		EdbInfoId:  int(edbInfoId),
 		EdbInfoId:  int(edbInfoId),
@@ -397,16 +395,15 @@ func (this *PythonController) Edit() {
 		br.Msg = "刷新python指标失败,EditPythonEdb Err:" + err.Error()
 		br.Msg = "刷新python指标失败,EditPythonEdb Err:" + err.Error()
 		return
 		return
 	}
 	}
-	maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(utils.DATA_SOURCE_PYTHON, edbInfo.EdbCode)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "生成python指标失败"
-		br.Msg = "生成python指标失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
+
+	// 更新指标最大最小值
+	err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
 		return
 		return
 	}
 	}
 
 
-	if maxAndMinItem != nil {
-		err = models.ModifyEdbInfoMaxAndMinInfo(edbInfo.EdbInfoId, maxAndMinItem)
-	}
 	resp := models.AddEdbInfoResp{
 	resp := models.AddEdbInfoResp{
 		EdbInfoId:  edbInfo.EdbInfoId,
 		EdbInfoId:  edbInfo.EdbInfoId,
 		UniqueCode: edbInfo.UniqueCode,
 		UniqueCode: edbInfo.UniqueCode,

+ 15 - 0
controllers/base_from_sh.go

@@ -87,6 +87,14 @@ func (this *ShController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *ShController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromSh,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromSh,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_shfe.go

@@ -87,6 +87,14 @@ func (this *ShfeController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *ShfeController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromShfe,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromShfe,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_smm.go

@@ -87,6 +87,14 @@ func (this *SmmController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *SmmController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromSmm,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromSmm,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_ths.go

@@ -94,6 +94,14 @@ func (this *ThsController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -109,6 +117,13 @@ func (this *ThsController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromThs,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromThs,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 8 - 0
controllers/base_from_wind.go

@@ -113,6 +113,7 @@ func (this *WindController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -146,6 +147,13 @@ func (this *WindController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromWind,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromWind,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 15 - 0
controllers/base_from_zz.go

@@ -87,6 +87,14 @@ func (this *ZzController) Refresh() {
 		br.ErrMsg = "请输入指标ID"
 		br.ErrMsg = "请输入指标ID"
 		return
 		return
 	}
 	}
+
+	// 获取指标详情
+	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
+	if err != nil {
+		br.Msg = "指标不存在!"
+		br.ErrMsg = "指标不存在"
+		return
+	}
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
 	if !utils.Rc.IsExist(cacheKey) {
 	if !utils.Rc.IsExist(cacheKey) {
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 		utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
@@ -96,6 +104,13 @@ func (this *ZzController) Refresh() {
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromZz,Err:" + err.Error()
 			br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromZz,Err:" + err.Error()
 			return
 			return
 		}
 		}
+		// 更新指标最大最小值
+		err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
+		if err != nil {
+			br.Msg = errMsg
+			br.ErrMsg = err.Error()
+			return
+		}
 		br.Ret = 200
 		br.Ret = 200
 		br.Success = true
 		br.Success = true
 		br.Msg = "获取成功"
 		br.Msg = "获取成功"

+ 1 - 0
models/db.go

@@ -41,5 +41,6 @@ func init() {
 		new(EdbPythonCode),
 		new(EdbPythonCode),
 		new(EdbDataPython),
 		new(EdbDataPython),
 		new(ChartEdbMapping),
 		new(ChartEdbMapping),
+		new(PredictEdbConf),
 	)
 	)
 }
 }

+ 30 - 0
models/edb_info.go

@@ -1,8 +1,10 @@
 package models
 package models
 
 
 import (
 import (
+	"errors"
 	"fmt"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_edb_lib/utils"
 	"time"
 	"time"
 )
 )
 
 
@@ -267,3 +269,31 @@ func GetEdbInfoByCondition(condition string, pars []interface{}, order int) (ite
 	_, err = o.Raw(sql, pars).QueryRows(&item)
 	_, err = o.Raw(sql, pars).QueryRows(&item)
 	return
 	return
 }
 }
+
+// UnifiedModifyEdbInfoMaxAndMinInfo 统一修改指标的最大最小值
+func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg string) {
+	// 修改最大最小值
+	maxAndMinItem, err := GetEdbInfoMaxAndMinInfo(edbInfo.Source, edbInfo.EdbCode)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			err = nil
+			return
+		}
+
+		errMsg = "刷新指标失败!"
+		err = errors.New("获取指标最大最小值失败,err:" + err.Error())
+		return
+	}
+
+	if maxAndMinItem != nil {
+		err = ModifyEdbInfoMaxAndMinInfo(edbInfo.EdbInfoId, maxAndMinItem)
+		if err != nil {
+			errMsg = "刷新指标失败!"
+			err = errors.New("修改指标最大最小值失败,err:" + err.Error())
+			return
+		}
+	}
+	// 修改关联的预测指标
+	go ModifyPredictEdbInfoMaxAndMinInfoBySourceEdbInfoId(edbInfo.EdbInfoId, maxAndMinItem)
+	return
+}

+ 54 - 0
models/predict_edb_conf.go

@@ -0,0 +1,54 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_edb_lib/utils"
+	"time"
+)
+
+type PredictEdbConf struct {
+	PredictEdbInfoId int       `orm:"column(predict_edb_info_id);pk" description:"预测指标id"`
+	SourceEdbInfoId  int       `description:"来源指标id"`
+	RuleType         int       `description:"预测规则,1:最新,2:固定值"`
+	FixedValue       float64   `description:"固定值"`
+	ModifyTime       time.Time `description:"修改时间"`
+	CreateTime       time.Time `description:"添加时间"`
+}
+
+// GetPredictEdbConfById 根据预测指标id获取预测指标配置信息
+func GetPredictEdbConfById(edbInfoId int) (item *PredictEdbConf, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? `
+	err = o.Raw(sql, edbInfoId).QueryRow(&item)
+	return
+}
+
+// GetPredictEdbConfCount 根据来源指标id获取被引用的次数
+func GetPredictEdbConfCount(sourceEdbInfoId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT COUNT(1) AS count FROM predict_edb_conf WHERE source_edb_info_id=? `
+	err = o.Raw(sql, sourceEdbInfoId).QueryRow(&count)
+	return
+}
+
+// ModifyPredictEdbInfoMaxAndMinInfoBySourceEdbInfoId 根据来源指标修改预测指标的最新数据信息
+func ModifyPredictEdbInfoMaxAndMinInfoBySourceEdbInfoId(sourceEdbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
+	o := orm.NewOrm()
+	var list []*PredictEdbConf
+	sql := ` SELECT * FROM predict_edb_conf WHERE source_edb_info_id=? `
+	total, err := o.Raw(sql, sourceEdbInfoId).QueryRows(&list)
+	if err != nil {
+		return
+	}
+
+	if total > 0 {
+		idList := make([]int, 0)
+		for _, v := range list {
+			idList = append(idList, v.PredictEdbInfoId)
+		}
+
+		sql := ` UPDATE edb_info SET start_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?,modify_time=NOW() WHERE edb_info_id in (` + utils.GetOrmInReplace(int(total)) + `) `
+		_, err = o.Raw(sql, item.MinDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, idList).Exec()
+	}
+	return
+}

+ 9 - 0
utils/common.go

@@ -1075,3 +1075,12 @@ func InArrayByStr(idStrList []string, searchId string) (has bool) {
 	}
 	}
 	return
 	return
 }
 }
+
+// GetOrmInReplace 获取orm的in查询替换?的方法
+func GetOrmInReplace(num int) string {
+	template := make([]string, num)
+	for i := 0; i < num; i++ {
+		template[i] = "?"
+	}
+	return strings.Join(template, ",")
+}