Переглянути джерело

Merge branch 'bug/5674'

# Conflicts:
#	services/data/edb_info.go
Roc 4 місяців тому
батько
коміт
16034b6185
2 змінених файлів з 83 додано та 46 видалено
  1. 16 46
      controllers/data_manage/edb_info.go
  2. 67 0
      services/data/edb_info.go

+ 16 - 46
controllers/data_manage/edb_info.go

@@ -85,9 +85,18 @@ func (this *EdbInfoController) EdbInfoSearch() {
 	//判断指标是否存在
 	var item *data_manage.EdbInfo
 	var err error
-	if source == utils.DATA_SOURCE_GL {
-		// 如果是钢联的话,那么就先判断是不是存在钢联化工
-		item, err = data_manage.GetEdbInfoByEdbCode(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, edbCode)
+	if utils.InArrayByInt([]int{utils.DATA_SOURCE_GL, utils.DATA_SOURCE_MYSTEEL_CHEMICAL}, source) {
+		//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() {
 				br.Msg = "获取失败"
@@ -95,50 +104,8 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				return
 			}
 		}
-		err = nil
-		if item != nil {
-			source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
-		} else {
-			// 判断是不是已经在钢联这边已经存在了
-			item, err = data_manage.GetEdbInfoByEdbCode(utils.DATA_SOURCE_GL, edbCode)
-			if err != nil {
-				if err.Error() != utils.ErrNoRow() {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取失败,Err:" + err.Error()
-					return
-				}
-			}
-			err = nil
-
-			// 如果在钢联来源也没找到,那么就需要再判断下是否处于 《钢联化工》 数据源里面
-			if item == nil {
-				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 {
@@ -2435,7 +2402,7 @@ func (this *EdbInfoController) EdbInfoAdd() {
 	//}
 
 	// 兼容钢联与钢联化工数据
-	if source == utils.DATA_SOURCE_GL {
+	if utils.InArrayByInt([]int{utils.DATA_SOURCE_GL, utils.DATA_SOURCE_MYSTEEL_CHEMICAL}, source) {
 		// 如果是钢联的话,那么就先判断是不是存在钢联化工
 		tmpInfo, err := data_manage.GetBaseFromMysteelChemicalIndexByCode(req.EdbCode)
 		if err != nil {
@@ -2448,6 +2415,9 @@ func (this *EdbInfoController) EdbInfoAdd() {
 		if tmpInfo != nil {
 			source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
 			req.Source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
+		} else {
+			source = utils.DATA_SOURCE_GL
+			req.Source = utils.DATA_SOURCE_GL
 		}
 	}
 

+ 67 - 0
services/data/edb_info.go

@@ -3122,3 +3122,70 @@ func GetIsSupplierStop(source int, edbCode string) (isSupplierStop int) {
 
 	return
 }
+
+// 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
+}