Ver Fonte

fix:指标库录入的时候,修复不能添加钢联原始数据库的指标的bug

Roc há 6 meses atrás
pai
commit
5f5bbfc30e
2 ficheiros alterados com 77 adições e 46 exclusões
  1. 10 46
      controllers/data_manage/edb_info.go
  2. 67 0
      services/data/edb_info.go

+ 10 - 46
controllers/data_manage/edb_info.go

@@ -86,8 +86,16 @@ func (this *EdbInfoController) EdbInfoSearch() {
 	var item *data_manage.EdbInfo
 	var err error
 	if utils.InArrayByInt([]int{utils.DATA_SOURCE_GL, utils.DATA_SOURCE_MYSTEEL_CHEMICAL}, source) {
-		// 如果是钢联的话,那么就先判断是不是存在钢联化工
-		source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+		//source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+		source, item, err = data.GetMySteelSourceByEdbCode(edbCode)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
+	}
+
+	if item == nil {
 		item, err = data_manage.GetEdbInfoByEdbCode(source, edbCode)
 		if err != nil {
 			if err.Error() != utils.ErrNoRow() {
@@ -96,52 +104,8 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				return
 			}
 		}
-		err = nil
-		if item != nil {
-			source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
-		} else {
-			source = utils.DATA_SOURCE_GL
-			// 判断是不是已经在钢联这边已经存在了
-			item, err = data_manage.GetEdbInfoByEdbCode(source, edbCode)
-			if err != nil {
-				if err.Error() != utils.ErrNoRow() {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取失败,Err:" + err.Error()
-					return
-				}
-			}
-			err = nil
-
-			// 如果在钢联来源也没找到,那么就需要再判断下是否处于 《钢联化工》 数据源里面
-			if item == nil {
-				source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
-				tmpInfo, err := data_manage.GetBaseFromMysteelChemicalIndexByCode(edbCode)
-				if err != nil {
-					if err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取失败"
-						br.ErrMsg = "获取失败,Err:" + err.Error()
-						return
-					}
-				}
-				err = nil
-				if tmpInfo != nil {
-					source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
-				}
-			}
-
-		}
 	}
 
-	if item == nil {
-		item, err = data_manage.GetEdbInfoByEdbCode(source, edbCode)
-	}
-	if err != nil {
-		if err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取失败,Err:" + err.Error()
-			return
-		}
-	}
 	var isAdd bool
 	var isInEdb bool //是否在指标库中
 	if item != nil && item.EdbInfoId > 0 {

+ 67 - 0
services/data/edb_info.go

@@ -2966,3 +2966,70 @@ func handleByDelEdbInfo(edbInfo *data_manage.EdbInfo) {
 		_ = models.UpdateManualIsJoinEdbStatus(edbInfo.EdbCode, 0)
 	}
 }
+
+// GetMySteelSourceByEdbCode
+// @Description: 根据钢联的指标编码,获取该数据应该从哪个数据源查询
+// @author: Roc
+// @datetime 2024-09-10 13:25:07
+// @param edbCode string
+// @return source int
+// @return item *data_manage.EdbInfo
+// @return err error
+func GetMySteelSourceByEdbCode(edbCode string) (source int, item *data_manage.EdbInfo, err error) {
+	// 先判断在指标库的“上海钢联”中是否存在,存在就直接返回
+	source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+	item, err = data_manage.GetEdbInfoByEdbCode(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, edbCode)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			return
+		}
+		err = nil
+	}
+	if item != nil {
+		source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+		return
+	}
+
+	// 再判断在指标库的“钢联原始”中是否存在,存在就直接返回
+	item, err = data_manage.GetEdbInfoByEdbCode(utils.DATA_SOURCE_GL, edbCode)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			return
+		}
+		err = nil
+	}
+	if item != nil {
+		source = utils.DATA_SOURCE_GL
+		return
+	}
+
+	// 再没有就判断下是否处于 《上海钢联》 数据源里面
+	{
+		tmpInfo, tmpErr := data_manage.GetBaseFromMysteelChemicalIndexByCode(edbCode)
+		if tmpErr != nil {
+			if tmpErr.Error() != utils.ErrNoRow() {
+				err = tmpErr
+				return
+			}
+		}
+		if tmpInfo != nil {
+			source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+		}
+	}
+
+	// 再没有就判断下是否处于 《钢联原始》 数据源里面
+	{
+		tmpInfo, tmpErr := data_manage.GetGlIndexByCode(edbCode)
+		if tmpErr != nil {
+			if tmpErr.Error() != utils.ErrNoRow() {
+				err = tmpErr
+				return
+			}
+		}
+		if tmpInfo != nil {
+			source = utils.DATA_SOURCE_GL
+		}
+	}
+
+	return
+}