genlong 1 rok temu
rodzic
commit
f8442c7bb9
42 zmienionych plików z 190 dodań i 959 usunięć
  1. 1 1
      .idea/vcs.xml
  2. 4 4
      controllers/data_manage/chart_info.go
  3. 42 38
      controllers/data_manage/edb_info.go
  4. 6 6
      controllers/data_manage/predict_edb_info.go
  5. 1 1
      models/data_manage/chart_edb_mapping.go
  6. 12 8
      models/data_manage/chart_info.go
  7. 2 2
      models/data_manage/edb_data_baiinfo.go
  8. 10 31
      models/data_manage/edb_data_base.go
  9. 3 3
      models/data_manage/edb_data_calculate.go
  10. 1 1
      models/data_manage/edb_data_calculate_time_shift.go
  11. 3 3
      models/data_manage/edb_data_cffex.go
  12. 2 2
      models/data_manage/edb_data_coal.go
  13. 3 3
      models/data_manage/edb_data_dl.go
  14. 2 2
      models/data_manage/edb_data_gie.go
  15. 1 1
      models/data_manage/edb_data_insert_config.go
  16. 2 2
      models/data_manage/edb_data_lz.go
  17. 5 5
      models/data_manage/edb_data_manual.go
  18. 2 2
      models/data_manage/edb_data_sci.go
  19. 3 3
      models/data_manage/edb_data_sh.go
  20. 3 3
      models/data_manage/edb_data_shfe.go
  21. 0 350
      models/data_manage/edb_data_zz.go
  22. 28 19
      models/data_manage/edb_info.go
  23. 1 167
      models/data_manage/edb_info_calculate.go
  24. 2 2
      models/data_manage/edb_info_calculate_bp.go
  25. 2 2
      models/data_manage/edb_info_calculate_hbz.go
  26. 2 2
      models/data_manage/edb_info_calculate_hcz.go
  27. 8 8
      models/data_manage/edb_info_calculate_ljztbpj.go
  28. 2 2
      models/data_manage/edb_info_calculate_ljzzy.go
  29. 2 2
      models/data_manage/edb_info_calculate_nszydpjjs.go
  30. 4 259
      models/data_manage/edb_info_calculate_tbz.go
  31. 2 2
      models/data_manage/edb_info_calculate_tcz.go
  32. 4 4
      models/data_manage/edb_info_calculate_zjpj.go
  33. 1 1
      services/data/chart_info.go
  34. 4 4
      services/data/correlation/chart_info.go
  35. 1 1
      services/data/edb_classify.go
  36. 2 2
      services/data/edb_data.go
  37. 4 4
      services/data/edb_info.go
  38. 2 2
      services/data/edb_info_calculate.go
  39. 1 1
      services/data/future_good/chart_info.go
  40. 3 3
      services/data/predict_edb_info.go
  41. 1 1
      services/data/predict_edb_info_rule.go
  42. 6 0
      utils/constants.go

+ 1 - 1
.idea/vcs.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
   </component>
 </project>

+ 4 - 4
controllers/data_manage/chart_info.go

@@ -942,14 +942,14 @@ func (this *ChartInfoController) ChartInfoEdbInfoDetail() {
 
 	switch edbInfo.EdbInfoType {
 	case 0: //普通源指标
-		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDateReal, endDate)
+		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDateReal, endDate)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.Msg = "获取失败,Err:" + err.Error()
 			return
 		}
 		//查询区间内最大最小值
-		minData, maxData, err = data_manage.GetEdbDataListMinAndMax(edbInfo.Source, edbInfoId, startDateReal, endDate)
+		minData, maxData, err = data_manage.GetEdbDataListMinAndMax(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDateReal, endDate)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.Msg = "获取指标最新的最大最小值失败,Err:" + err.Error()
@@ -966,7 +966,7 @@ func (this *ChartInfoController) ChartInfoEdbInfoDetail() {
 		// 有预测数据,且为普通的预测指标
 		if len(dataList) > 0 && edbInfo.EdbInfoType == 0 {
 			//查询区间内最大最小值
-			minData, maxData, err = data_manage.GetEdbDataListMinAndMax(sourceEdbInfoItem.Source, sourceEdbInfoItem.EdbInfoId, startDateReal, endDate)
+			minData, maxData, err = data_manage.GetEdbDataListMinAndMax(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, sourceEdbInfoItem.EdbInfoId, startDateReal, endDate)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.Msg = "获取指标最新的最大最小值失败,Err:" + err.Error()
@@ -1794,4 +1794,4 @@ func (this *ChartInfoController) ChartInfoImageSet() {
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "保存成功"
-}
+}

+ 42 - 38
controllers/data_manage/edb_info.go

@@ -43,6 +43,8 @@ func (this *EdbInfoController) EdbInfoSearch() {
 	edbCode = strings.Trim(edbCode, " ")
 	edbCode = strings.Replace(edbCode, "\t", "", -1)
 
+	subSource := utils.DATA_SUB_SOURCE_EDB
+
 	if source <= 0 {
 		br.Msg = "无效的数据来源"
 		return
@@ -152,7 +154,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 
 		searchItem := new(data_manage.EdbInfoSearch)
 		if source == utils.DATA_SOURCE_THS {
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_THS, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_THS, utils.DATA_SUB_SOURCE_EDB, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
@@ -195,7 +197,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 		} else if source == utils.DATA_SOURCE_WIND {
 			fmt.Println("wind data exist")
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_WIND, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_WIND, utils.DATA_SUB_SOURCE_EDB, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Wind已存在信息失败,Err:" + err.Error()
@@ -240,7 +242,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 		} else if source == utils.DATA_SOURCE_PB || source == utils.DATA_SOURCE_PB_FINANCE {
 			fmt.Println("pb data exist")
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Pb已存在信息失败,Err:" + err.Error()
@@ -281,7 +283,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				isAdd = true
 			}
 		} else if source == utils.DATA_SOURCE_MANUAL { //手工数据指标
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_MANUAL, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_MANUAL, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Ths已存在信息失败,Err:" + err.Error()
@@ -335,7 +337,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 
 		} else if source == utils.DATA_SOURCE_LZ {
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LZ, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LZ, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取隆众已存在信息失败,Err:" + err.Error()
@@ -404,7 +406,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = lzInfo.SampleName + lzInfo.BreedName + lzInfo.QuotaName
 			}
 		} else if source == utils.DATA_SOURCE_YS { //有色网
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Ys已存在信息失败,Err:" + err.Error()
@@ -464,7 +466,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 
 		} else if source == utils.DATA_SOURCE_GL { //钢联
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
@@ -528,7 +530,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取郑商所已存在信息失败,Err:" + err.Error()
@@ -606,7 +608,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取大商所已存在信息失败,Err:" + err.Error()
@@ -685,7 +687,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取上期所已存在信息失败,Err:" + err.Error()
@@ -764,7 +766,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取中金所已存在信息失败,Err:" + err.Error()
@@ -843,7 +845,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取上期能源已存在信息失败,Err:" + err.Error()
@@ -937,7 +939,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取欧洲天然气已存在信息失败,Err:" + err.Error()
@@ -1045,7 +1047,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "暂不支持编码中含有=的指标"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LT, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_LT, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取 lt 已存在信息失败,Err:" + err.Error()
@@ -1054,7 +1056,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			fmt.Println("lt dataItems:", len(dataItems))
 			if len(dataItems) > 0 {
 				searchItem.EdbCode = edbCode
-				edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取lt日期信息失败,Err:" + err.Error()
@@ -1101,7 +1103,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				br.ErrMsg = "指标code异常"
 				return
 			}
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取煤炭网已存在信息失败,Err:" + err.Error()
@@ -1162,7 +1164,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = coalInfo.IndexName
 			}
 		} else if source == utils.DATA_SOURCE_GOOGLE_TRAVEL { //谷歌出行数据
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取煤炭网已存在信息失败,Err:" + err.Error()
@@ -1171,7 +1173,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 
 			if len(dataItems) > 0 {
 				searchItem.EdbCode = edbCode
-				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取煤炭网日期信息失败,Err:" + err.Error()
@@ -1197,7 +1199,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				isAdd = true
 			}
 		} else if source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL { //钢联化工
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
@@ -1249,7 +1251,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = glInfo.IndexName
 			}
 		} else if source == utils.DATA_SOURCE_EIA_STEO { //eia steo报告
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
@@ -1258,7 +1260,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 
 			if len(dataItems) > 0 {
 				searchItem.EdbCode = edbCode
-				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取eia steo日期信息失败,Err:" + err.Error()
@@ -1294,7 +1296,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = eiasteoInfo.IndexName
 			}
 		} else if source == utils.DATA_SOURCE_COM_TRADE { // un数据源
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取联合国商品贸易数据已存在信息失败,Err:" + err.Error()
@@ -1303,7 +1305,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 
 			if len(dataItems) > 0 {
 				searchItem.EdbCode = edbCode
-				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取联合国商品贸易数据日期信息失败,Err:" + err.Error()
@@ -1348,7 +1350,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = eiasteoInfo.Name
 			}
 		} else if source == utils.DATA_SOURCE_SCI { //卓创数据(红桃三)
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取SCI已存在信息失败,Err:" + err.Error()
@@ -1408,7 +1410,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 
 		} else if source == utils.DATA_SOURCE_BAIINFO { //百川盈孚
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取BAIINFO已存在信息失败,Err:" + err.Error()
@@ -1468,7 +1470,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 
 		} else if source == utils.DATA_SOURCE_NATIONAL_STATISTICS { // 国家统计局
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取国家统计局已存在信息失败,Err:" + err.Error()
@@ -1477,7 +1479,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 
 			if len(dataItems) > 0 {
 				searchItem.EdbCode = edbCode
-				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				item, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if err != nil {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取国家统计局日期信息失败,Err:" + err.Error()
@@ -1513,7 +1515,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbName = fmt.Sprintf("%s%s", nationalInfo.Reg, nationalInfo.IndexName)
 			}
 		} else if source == utils.DATA_SOURCE_FUBAO { //数宝
-			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_FUBAO, utils.EDB_DATA_LIMIT)
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_FUBAO, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取Fubao已存在信息失败,Err:" + err.Error()
@@ -1556,7 +1558,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 
 			// 获取指标数据
-			dataList, e := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataList, e := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if e != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取指标数据失败, Err: " + e.Error()
@@ -1566,7 +1568,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 				searchItem.EdbCode = edbCode
 				searchItem.DataList = dataList
 				// 获取最大最小值
-				edbInfoMaxAndMinInfo, e := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+				edbInfoMaxAndMinInfo, e := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 				if e != nil && e.Error() != utils.ErrNoRow() {
 					br.Msg = "获取失败"
 					br.ErrMsg = "获取数据失败, GetEdbInfoMaxAndMinInfo Err:" + e.Error()
@@ -1620,7 +1622,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 		}
 		if isAdd {
-			dataList, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, utils.EDB_DATA_LIMIT)
+			dataList, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取数据失败,GetEdbDataAllByEdbCode Err:" + err.Error()
@@ -1628,7 +1630,7 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			}
 			searchItem.DataList = dataList
 
-			edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+			edbInfoMaxAndMinInfo, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取数据失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()
@@ -1773,14 +1775,14 @@ func (this *EdbInfoController) EdbInfoList() {
 	dataCondition += ` AND edb_info_id=? `
 	dataPars = append(dataPars, edbInfoItem.EdbInfoId)
 
-	dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
+	dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取指标信息失败"
 		br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
 		return
 	}
 	page = paging.GetPaging(currentIndex, pageSize, dataCount)
-	dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
+	dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource, pageSize, startSize)
 	if err != nil {
 		br.Msg = "获取指标信息失败"
 		br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
@@ -1874,6 +1876,8 @@ func (this *EdbInfoController) EdbInfoAdd() {
 		return
 	}
 
+	subSource := utils.DATA_SUB_SOURCE_EDB
+
 	req.EdbName = strings.Trim(req.EdbName, " ")
 	req.EdbCode = strings.Trim(req.EdbCode, " ")
 
@@ -1925,7 +1929,7 @@ func (this *EdbInfoController) EdbInfoAdd() {
 	}
 
 	// 指标入库
-	edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(source, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName)
+	edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(source, subSource, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -3015,7 +3019,7 @@ func (this *ChartInfoController) EdbInfoData() {
 		br.Msg = "获取失败,Err:" + err.Error()
 		return
 	}
-	dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
+	dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDate, endDate)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.Msg = "获取失败,Err:" + err.Error()
@@ -3475,7 +3479,7 @@ func (this *EdbInfoController) RelationEdbList() {
 
 		dataList := make([]*data_manage.EdbDataList, 0)
 		if v.EdbInfoType == 0 {
-			dataList, err = data_manage.GetEdbDataList(v.Source, v.EdbInfoId, "", "")
+			dataList, err = data_manage.GetEdbDataList(v.Source, v.SubSource, v.EdbInfoId, "", "")
 		} else {
 			_, dataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(v.EdbInfoId, "", "", false)
 		}
@@ -3743,7 +3747,7 @@ func (this *ChartInfoController) EdbInfoDataTb() {
 		//同比值的计算方式,是需要与去年同期对比,所以如果用户需要某个时间段的数据的话,获取基础数据时,需要往前面推(1年+兼容的日期频度(目前是35天))
 		startDate = startDateTime.AddDate(-1, 0, -35).Format(utils.FormatDate)
 	}
-	tmpDataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
+	tmpDataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfoId, startDate, endDate)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.Msg = "获取失败,Err:" + err.Error()

+ 6 - 6
controllers/data_manage/predict_edb_info.go

@@ -159,14 +159,14 @@ func (this *PredictEdbInfoController) List() {
 			dataCondition += ` AND edb_info_id=? `
 			dataPars = append(dataPars, sourceEdbInfoItem.EdbInfoId)
 
-			dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, sourceEdbInfoItem.Source)
+			dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
 				return
 			}
 			page = paging.GetPaging(currentIndex, pageSize, dataCount)
-			dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, sourceEdbInfoItem.Source, pageSize, startSize)
+			dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, pageSize, startSize)
 			if err != nil {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
@@ -177,7 +177,7 @@ func (this *PredictEdbInfoController) List() {
 
 		// 第一页才需要 获取预测指标未来的数据
 		if currentIndex == 1 {
-			allDataList, err := data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.EdbInfoId, "", "")
+			allDataList, err := data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, sourceEdbInfoItem.EdbInfoId, "", "")
 			if err != nil {
 				br.Msg = "获取失败"
 				br.Msg = "获取失败,Err:" + err.Error()
@@ -226,14 +226,14 @@ func (this *PredictEdbInfoController) List() {
 			dataCondition += ` AND edb_info_id=? AND data_time <= ? `
 			dataPars = append(dataPars, edbInfoItem.EdbInfoId, edbInfoItem.LatestDate)
 
-			dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
+			dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
 				return
 			}
 			page = paging.GetPaging(currentIndex, pageSize, dataCount)
-			dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
+			dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource, pageSize, startSize)
 			if err != nil {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
@@ -250,7 +250,7 @@ func (this *PredictEdbInfoController) List() {
 			dataCondition += ` AND edb_info_id=? AND data_time > ? `
 			dataPars = append(dataPars, edbInfoItem.EdbInfoId, edbInfoItem.LatestDate)
 
-			predictDataList, err = data_manage.GetAllEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source)
+			predictDataList, err = data_manage.GetAllEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
 			if err != nil {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据失败,Err:" + err.Error()

+ 1 - 1
models/data_manage/chart_edb_mapping.go

@@ -74,7 +74,7 @@ func GetChartEdbMappingListByEdbInfoIdList(edbIdList []int) (list []*ChartEdbInf
 		return
 	}
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT edb_info_id,source_name,source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type
+	sql := ` SELECT edb_info_id,source_name,source,edb_code,edb_name,edb_name_en,frequency,unit,unit_en,start_date,end_date,modify_time,latest_date,latest_value,unique_code,edb_info_type AS edb_info_category_type,max_value,min_value,edb_type,sub_source,sub_source_name,indicator_code,stock_code
              FROM edb_info
 			 WHERE edb_info_id IN(` + utils.GetOrmInReplace(num) + `)
 			ORDER BY FIELD(edb_info_id,` + utils.GetOrmInReplace(num) + `)

+ 12 - 8
models/data_manage/chart_info.go

@@ -322,8 +322,8 @@ type EdbDataList struct {
 	Value         float64 `description:"数据值"`
 }
 
-func GetEdbDataList(source, endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
-	tableName := GetEdbDataTableName(source)
+func GetEdbDataList(source, subSource, endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
+	tableName := GetEdbDataTableName(source, subSource)
 	if tableName == "" {
 		err = errors.New("无效的渠道:" + strconv.Itoa(source))
 		list = make([]*EdbDataList, 0)
@@ -355,8 +355,8 @@ type EdbDataListByUniqueCode struct {
 	Value         float64 `description:"数据值"`
 }
 
-func GetEdbDataListByByUniqueCode(source, endInfoId int, startDate, endDate string) (list []*EdbDataListByUniqueCode, err error) {
-	tableName := GetEdbDataTableName(source)
+func GetEdbDataListByByUniqueCode(source, subSource, endInfoId int, startDate, endDate string) (list []*EdbDataListByUniqueCode, err error) {
+	tableName := GetEdbDataTableName(source, subSource)
 	if tableName == "" {
 		err = errors.New("无效的渠道:" + strconv.Itoa(source))
 		list = make([]*EdbDataListByUniqueCode, 0)
@@ -389,8 +389,8 @@ func GetEdbDataLunarList(endInfoId int, startDate, endDate string) (list []*EdbD
 	return
 }
 
-func GetEdbDataListMinAndMax(source, endInfoId int, startDate, endDate string) (min_data, max_data float64, err error) {
-	tableName := GetEdbDataTableName(source)
+func GetEdbDataListMinAndMax(source, subSource, endInfoId int, startDate, endDate string) (min_data, max_data float64, err error) {
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT min(value) AS min_data,max(value) AS max_data FROM %s WHERE edb_info_id=? `
 	var pars []interface{}
 	var condition string
@@ -460,6 +460,10 @@ type ChartEdbInfoMapping struct {
 	MappingSource       int    `description:"1:ETA图库;2:商品价格曲线"`
 	RegionType          string `description:"交易所来源,海外还是国内" json:"-"`
 	ClassifyId          int    `description:"分类id"`
+	SubSource           int    `description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName       string `description:"子数据来源名称"`
+	IndicatorCode       string `description:"指标代码"`
+	StockCode           string `description:"证券代码"`
 }
 
 type QuarterData struct {
@@ -1026,8 +1030,8 @@ func EditChartEnInfoAndEdbEnInfo(req *EditChartEnInfoReq) (err error) {
 	return
 }
 
-func ModifyEdbDatadTimestamp(source, edbDataId int, dataTimestamp int64) (err error) {
-	tableName := GetEdbDataTableName(source)
+func ModifyEdbDatadTimestamp(source, subSource, edbDataId int, dataTimestamp int64) (err error) {
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := `UPDATE %s SET data_timestamp=? WHERE edb_data_id=? `
 	sql = fmt.Sprintf(sql, tableName)
 	o := orm.NewOrmUsingDB("data")

+ 2 - 2
models/data_manage/edb_data_baiinfo.go

@@ -25,7 +25,7 @@ func GetEdbDataBaiinfoMaxAndMinDate(edbCode string) (min_date, max_date string,
 }
 
 // 全部刷新有色数据
-func RefreshAllEdbDataByBaiinfo(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByBaiinfo(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -46,7 +46,7 @@ func RefreshAllEdbDataByBaiinfo(edbInfoId, source int, edbCode, startDate, endDa
 
 	//获取已存在指标所有数据
 	existDataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)

+ 10 - 31
models/data_manage/edb_data_base.go

@@ -8,12 +8,16 @@ import (
 )
 
 // 指标数据->存储表
-func GetEdbDataTableName(source int) (tableName string) {
+func GetEdbDataTableName(source, subSource int) (tableName string) {
 	switch source {
 	case utils.DATA_SOURCE_THS:
 		tableName = "edb_data_ths"
 	case utils.DATA_SOURCE_WIND:
-		tableName = "edb_data_wind"
+		if subSource == utils.DATA_SUB_SOURCE_EDB {
+			tableName = "edb_data_wind"
+		} else {
+			tableName = "edb_data_wind_wsd"
+		}
 	case utils.DATA_SOURCE_PB, utils.DATA_SOURCE_PB_FINANCE: //彭博经济数据、彭博财务数据
 		tableName = "edb_data_pb"
 	case utils.DATA_SOURCE_CALCULATE:
@@ -165,31 +169,6 @@ func GetEdbDataTableName(source int) (tableName string) {
 	return
 }
 
-//计算指标->关联的基础指标表
-//func GetEdbInfoCalculateTableName(source int) (tableName string) {
-//	switch source {
-//	case utils.DATA_SOURCE_CALCULATE:
-//		tableName = "edb_info_calculate"
-//	case utils.DATA_SOURCE_CALCULATE_LJZZY:
-//		tableName = "edb_info_calculate_ljzzy"
-//	case utils.DATA_SOURCE_CALCULATE_TBZ:
-//		tableName = "edb_info_calculate_tbz"
-//	case utils.DATA_SOURCE_CALCULATE_TCZ:
-//		tableName = "edb_info_calculate_tcz"
-//	case utils.DATA_SOURCE_CALCULATE_NSZYDPJJS:
-//		tableName = "edb_info_calculate_nszydpjjs"
-//	case utils.DATA_SOURCE_CALCULATE_HBZ:
-//		tableName = "edb_info_calculate_hbz"
-//	case utils.DATA_SOURCE_CALCULATE_HCZ:
-//		tableName = "edb_info_calculate_hcz"
-//	case utils.DATA_SOURCE_CALCULATE_BP:
-//		tableName = "edb_info_calculate_bp"
-//	default:
-//		tableName = ""
-//	}
-//	return
-//}
-
 type EdbDataBase struct {
 	EdbDataId     int `orm:"column(edb_data_id);pk"`
 	EdbInfoId     int
@@ -202,12 +181,12 @@ type EdbDataBase struct {
 	DataTimestamp int64
 }
 
-func GetEdbDataAllByEdbCode(edbCode string, source, limit int) (items []*EdbInfoSearchData, err error) {
+func GetEdbDataAllByEdbCode(edbCode string, source, subSource, limit int) (items []*EdbInfoSearchData, err error) {
 	var pars []interface{}
 	pars = append(pars, edbCode)
 	o := orm.NewOrmUsingDB("data")
 
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE edb_code=? ORDER BY data_time DESC`
 	if limit > 0 {
 		sql += `  LIMIT ?  `
@@ -218,9 +197,9 @@ func GetEdbDataAllByEdbCode(edbCode string, source, limit int) (items []*EdbInfo
 	return
 }
 
-func GetEdbDataBaseByCodeAndDate(source int, edbCode string, startDate string) (count int, err error) {
+func GetEdbDataBaseByCodeAndDate(source, subSource int, edbCode string, startDate string) (count int, err error) {
 	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT COUNT(1) AS count FROM %s WHERE edb_code=? AND data_time=? `
 	sql = fmt.Sprintf(sql, tableName)
 	err = o.Raw(sql, edbCode, startDate).QueryRow(&count)

+ 3 - 3
models/data_manage/edb_data_calculate.go

@@ -50,7 +50,7 @@ func GetEdbDataCalculateByCodeAndDate(edbCode string, startDate string) (count i
 }
 
 // 刷新全部数据
-func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoId, source int, edbCode, formulaStr, startDate, endDate string, edbInfoIdBytes []string) (err error) {
+func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoId, source, subSource int, edbCode, formulaStr, startDate, endDate string, edbInfoIdBytes []string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -79,7 +79,7 @@ func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoId, source int, edbCode
 			pars = append(pars, endDate)
 		}
 		fmt.Println("v.Source:", v.Source)
-		dataList, err := GetEdbDataListAll(condition, pars, v.Source, 1)
+		dataList, err := GetEdbDataListAll(condition, pars, v.Source, v.SubSource, 1)
 		if err != nil {
 			return err
 		}
@@ -106,7 +106,7 @@ func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoId, source int, edbCode
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 1 - 1
models/data_manage/edb_data_calculate_time_shift.go

@@ -122,7 +122,7 @@ func EditCalculateTimeShift(req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbI
 		condition += " AND edb_info_id=? "
 		pars = append(pars, req.FromEdbInfoId)
 		fmt.Println("EdbInfoId:", req.FromEdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+		dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 		if err != nil {
 			return edbInfoId, err
 		}

+ 3 - 3
models/data_manage/edb_data_cffex.go

@@ -123,7 +123,7 @@ func GetEdbDataByCffex(edbCode, suffix, startDate, endDate string) (searchItem *
 		_ = to.Commit()
 	}
 	size := utils.EDB_DATA_LIMIT
-	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_CFFEX, size)
+	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_CFFEX, utils.DATA_SUB_SOURCE_EDB, size)
 	if err != nil {
 		utils.FileLogData.Info("GetEdbDataCffexByCode Err:%s", err.Error())
 		return searchItem, err
@@ -246,7 +246,7 @@ func RefreshEdbDataByCffex(edbInfoId int, edbCode, startDate, endDate string) (e
 }
 
 // RefreshAllEdbDataByCffex 全部刷新中金所
-func RefreshAllEdbDataByCffex(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByCffex(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -297,7 +297,7 @@ func RefreshAllEdbDataByCffex(edbInfoId, source int, edbCode, startDate, endDate
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 2 - 2
models/data_manage/edb_data_coal.go

@@ -156,7 +156,7 @@ func RefreshEdbDataByCoal(edbInfoId int, edbCode, startDate, endDate string) (er
 }
 
 // RefreshAllEdbDataByCoal 全部刷新中金所
-func RefreshAllEdbDataByCoal(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByCoal(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -205,7 +205,7 @@ func RefreshAllEdbDataByCoal(edbInfoId, source int, edbCode, startDate, endDate
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 3 - 3
models/data_manage/edb_data_dl.go

@@ -124,7 +124,7 @@ func GetEdbDataByDl(edbCode, suffix, startDate, endDate string) (searchItem *Edb
 	}
 
 	size := utils.EDB_DATA_LIMIT
-	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_DL, size)
+	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_DL, utils.DATA_SUB_SOURCE_EDB, size)
 	if err != nil {
 		utils.FileLogData.Info("GetEdbDataDlByCode Err:%s", err.Error())
 		return searchItem, err
@@ -247,7 +247,7 @@ func RefreshEdbDataByDl(edbInfoId int, edbCode, startDate, endDate string) (err
 }
 
 // RefreshAllEdbDataByDl 全部刷新大商所
-func RefreshAllEdbDataByDl(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByDl(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -298,7 +298,7 @@ func RefreshAllEdbDataByDl(edbInfoId, source int, edbCode, startDate, endDate st
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 2 - 2
models/data_manage/edb_data_gie.go

@@ -251,7 +251,7 @@ func RefreshEdbDataByGie(edbInfoId int, edbCode, startDate, endDate string) (err
 }
 
 // RefreshAllEdbDataByGie 全部刷新欧洲天然气
-func RefreshAllEdbDataByGie(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByGie(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -316,7 +316,7 @@ func RefreshAllEdbDataByGie(edbInfoId, source int, edbCode, startDate, endDate s
 	fmt.Println("all eicDataList", len(eicDataList))
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 1 - 1
models/data_manage/edb_data_insert_config.go

@@ -30,7 +30,7 @@ func GetEdbDataInsertConfigByEdbId(edbInfoId int) (item *EdbDataInsertConfig, er
 func CreateEdbDataInsertConfigAndData(edbInfo *EdbInfo, date time.Time, value float64) (err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
-	tableName := GetEdbDataTableName(edbInfo.Source)
+	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	if tableName == `` {
 		err = errors.New("找不到该指标的数据表")
 		return

+ 2 - 2
models/data_manage/edb_data_lz.go

@@ -234,7 +234,7 @@ func RefreshEdbDataByLz(edbInfoId int, edbCode, startDate, endDate string) (err
 }
 
 // 全部刷新隆众数据
-func RefreshAllEdbDataByLz(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByLz(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -275,7 +275,7 @@ func RefreshAllEdbDataByLz(edbInfoId, source int, edbCode, startDate, endDate st
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 5 - 5
models/data_manage/edb_data_manual.go

@@ -221,7 +221,7 @@ func RefreshEdbDataByManual(edbInfoId int, edbCode, startDate, endDate string) (
 }
 
 // 刷新手工指标数据
-func RefreshAllEdbDataByManual(edbInfoId, source int, edbCode string) (err error) {
+func RefreshAllEdbDataByManual(edbInfoId, source, subSource int, edbCode string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -251,7 +251,7 @@ func RefreshAllEdbDataByManual(edbInfoId, source int, edbCode string) (err error
 	manualDataList, err := GetEdbdataManualByTradeCode(condition, pars)
 	//获取指标所有数据
 	existDataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)
@@ -297,7 +297,7 @@ func RefreshAllEdbDataByManual(edbInfoId, source int, edbCode string) (err error
 	}
 	for _, v := range existDataList {
 		if _, ok := manualMap[v.DataTime]; !ok {
-			go DeleteEdbDataByIdAndSource(v.EdbDataId, utils.DATA_SOURCE_MANUAL)
+			go DeleteEdbDataByIdAndSource(v.EdbDataId, utils.DATA_SOURCE_MANUAL, utils.DATA_SUB_SOURCE_EDB)
 		}
 	}
 	fmt.Println("isAdd:", isAdd)
@@ -312,9 +312,9 @@ func RefreshAllEdbDataByManual(edbInfoId, source int, edbCode string) (err error
 	return
 }
 
-func DeleteEdbDataByIdAndSource(edbDataId, source int) (err error) {
+func DeleteEdbDataByIdAndSource(edbDataId, source, subSource int) (err error) {
 	sql := ` DELETE FROM %s WHERE edb_data_id=? `
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = fmt.Sprintf(sql, tableName)
 
 	o := orm.NewOrmUsingDB("data")

+ 2 - 2
models/data_manage/edb_data_sci.go

@@ -25,7 +25,7 @@ func GetEdbDataSciMaxAndMinDate(edbCode string) (min_date, max_date string, err
 }
 
 // 全部刷新有色数据
-func RefreshAllEdbDataBySci(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataBySci(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -46,7 +46,7 @@ func RefreshAllEdbDataBySci(edbInfoId, source int, edbCode, startDate, endDate s
 
 	//获取已存在指标所有数据
 	existDataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)

+ 3 - 3
models/data_manage/edb_data_sh.go

@@ -124,7 +124,7 @@ func GetEdbDataBySh(edbCode, suffix, startDate, endDate string) (searchItem *Edb
 	}
 
 	size := utils.EDB_DATA_LIMIT
-	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_SH, size)
+	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_SH, utils.DATA_SUB_SOURCE_EDB, size)
 	if err != nil {
 		utils.FileLogData.Info("GetEdbDataShByCode Err:%s", err.Error())
 		return searchItem, err
@@ -244,7 +244,7 @@ func RefreshEdbDataBySh(edbInfoId int, edbCode, startDate, endDate string) (err
 }
 
 // RefreshAllEdbDataBySh 全部刷新上期所
-func RefreshAllEdbDataBySh(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataBySh(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -295,7 +295,7 @@ func RefreshAllEdbDataBySh(edbInfoId, source int, edbCode, startDate, endDate st
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 3 - 3
models/data_manage/edb_data_shfe.go

@@ -123,7 +123,7 @@ func GetEdbDataByShfe(edbCode, suffix, startDate, endDate string) (searchItem *E
 		_ = to.Commit()
 	}
 	size := utils.EDB_DATA_LIMIT
-	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_SHFE, size)
+	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_SHFE, utils.DATA_SUB_SOURCE_EDB, size)
 	if err != nil {
 		utils.FileLogData.Info("GetEdbDataShfeByCode Err:%s", err.Error())
 		return searchItem, err
@@ -246,7 +246,7 @@ func RefreshEdbDataByShfe(edbInfoId int, edbCode, startDate, endDate string) (er
 }
 
 // RefreshAllEdbDataByShfe 全部刷新上期能源
-func RefreshAllEdbDataByShfe(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
+func RefreshAllEdbDataByShfe(edbInfoId, source, subSource int, edbCode, startDate, endDate string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -300,7 +300,7 @@ func RefreshAllEdbDataByShfe(edbInfoId, source int, edbCode, startDate, endDate
 
 	//获取指标所有数据
 	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
+	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? `
 	sql = fmt.Sprintf(sql, dataTableName)
 	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)

+ 0 - 350
models/data_manage/edb_data_zz.go

@@ -1,11 +1,8 @@
 package data_manage
 
 import (
-	"eta/eta_mobile/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
-	"strconv"
-	"strings"
 	"time"
 )
 
@@ -64,307 +61,6 @@ func GetEdbDataZzMaxOrMinDate(edbCode string) (minDate, maxDate string, err erro
 	return
 }
 
-func GetEdbDataByZz(edbCode, suffix, startDate, endDate string) (searchItem *EdbInfoSearch, err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	searchItem = new(EdbInfoSearch)
-	searchItem.EdbCode = edbCode
-	zzBaseDataAll, err := GetBaseFromZhengzhouDataAllByIndexCode(edbCode, suffix)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return
-	}
-
-	var isAdd bool
-	addSql := ` INSERT INTO edb_data_zz(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	dataList := make([]*EdbInfoSearchData, 0)
-	existMap := make(map[string]string)
-
-	for _, sv := range zzBaseDataAll {
-		eDate := sv.DataTime
-		dataTime, err := time.Parse(utils.FormatDate, eDate)
-		if err != nil {
-			fmt.Println("time.Parse Err:" + eDate)
-			return nil, err
-		}
-		timestamp := dataTime.UnixNano() / 1e6
-		timeStr := fmt.Sprintf("%d", timestamp)
-		if _, ok := existMap[eDate]; !ok {
-			if suffix == "deal" {
-				addSql += GetAddSql("0", edbCode, eDate, timeStr, sv.DealValue)
-			} else if suffix == "buy" {
-				addSql += GetAddSql("0", edbCode, eDate, timeStr, sv.BuyValue)
-			} else {
-				addSql += GetAddSql("0", edbCode, eDate, timeStr, sv.SoldValue)
-			}
-			isAdd = true
-		}
-		if suffix == "deal" {
-			existMap[eDate] = sv.DealValue
-		} else if suffix == "buy" {
-			existMap[eDate] = sv.BuyValue
-		} else {
-			existMap[eDate] = sv.SoldValue
-		}
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		utils.FileLog.Info("addSql:" + addSql)
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return searchItem, err
-		}
-	}
-	if err != nil {
-		_ = to.Rollback()
-	} else {
-		_ = to.Commit()
-	}
-	size := utils.EDB_DATA_LIMIT
-	dataList, err = GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_ZZ, size)
-	if err != nil {
-		utils.FileLogData.Info("GetEdbDataZzByCode Err:%s", err.Error())
-		return searchItem, err
-	}
-	minDate, maxDate, err := GetEdbDataZzMaxOrMinDate(edbCode)
-	if err != nil {
-		return searchItem, err
-	}
-	searchItem.DataList = dataList
-	searchItem.StartDate = minDate
-	searchItem.EndDate = maxDate
-	if searchItem.DataList == nil {
-		searchItem.DataList = make([]*EdbInfoSearchData, 0)
-	}
-	return
-}
-
-// RefreshEdbDataByZz 刷新郑商所指标数据
-func RefreshEdbDataByZz(edbInfoId int, edbCode, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	if err != nil {
-		return
-	}
-	var suffix string
-	if strings.Contains(edbCode, "deal") {
-		suffix = "deal"
-	} else if strings.Contains(edbCode, "buy") {
-		suffix = "buy"
-	} else if strings.Contains(edbCode, "sold") {
-		suffix = "sold"
-	}
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
-	var condition string
-	var pars []interface{}
-
-	if edbCode != "" {
-		if suffix == "deal" {
-			condition += " AND deal_code=? "
-		} else if suffix == "buy" {
-			condition += " AND buy_code=? "
-		} else {
-			condition += " AND sold_code=? "
-		}
-		pars = append(pars, edbCode)
-	}
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-
-	if endDate != "" {
-		condition += " AND data_time<=? "
-		pars = append(pars, endDate)
-	}
-
-	glDataList, err := GetZzDataByTradeCode(condition, pars)
-
-	addSql := ` INSERT INTO edb_data_zz(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	existMap := make(map[string]string)
-	for _, v := range glDataList {
-		var value string
-		if suffix == "deal" {
-			value = v.DealValue
-		} else if suffix == "buy" {
-			value = v.BuyValue
-		} else {
-			value = v.SoldValue
-		}
-		item := v
-		itemValue := value
-		if _, ok := existMap[v.DataTime]; !ok {
-			count, err := GetEdbDataZzByCodeAndDate(edbCode, v.DataTime)
-			if err != nil && err.Error() != utils.ErrNoRow() {
-				return err
-			}
-			if count <= 0 {
-				eDate := item.DataTime
-				sValue := itemValue
-				if sValue != "" {
-					dataTime, err := time.Parse(utils.FormatDate, eDate)
-					if err != nil {
-						return err
-					}
-					timestamp := dataTime.UnixNano() / 1e6
-					timeStr := fmt.Sprintf("%d", timestamp)
-					addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, sValue)
-					isAdd = true
-				}
-			} else {
-				err = ModifyEdbDataZz(int64(edbInfoId), v.DataTime, value)
-				if err != nil {
-					return err
-				}
-			}
-		}
-		existMap[v.DataTime] = value
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return err
-		}
-	}
-	return
-}
-
-// RefreshAllEdbDataByZz 全部刷新郑商所
-func RefreshAllEdbDataByZz(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	if err != nil {
-		return
-	}
-	var suffix string
-	if strings.Contains(edbCode, "deal") {
-		suffix = "deal"
-	} else if strings.Contains(edbCode, "buy") {
-		suffix = "buy"
-	} else if strings.Contains(edbCode, "sold") {
-		suffix = "sold"
-	}
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
-	var condition string
-	var pars []interface{}
-
-	if edbCode != "" {
-		if suffix == "deal" {
-			condition += " AND deal_code=? "
-		} else if suffix == "buy" {
-			condition += " AND buy_code=? "
-		} else {
-			condition += " AND sold_code=? "
-		}
-		pars = append(pars, edbCode)
-	}
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-
-	if endDate != "" {
-		condition += " AND data_time<=? "
-		pars = append(pars, endDate)
-	}
-
-	glDataList, err := GetZzDataByTradeCode(condition, pars)
-
-	//获取指标所有数据
-	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
-	sql := `SELECT * FROM %s WHERE edb_info_id=? `
-	sql = fmt.Sprintf(sql, dataTableName)
-	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)
-	if err != nil {
-		return err
-	}
-	dataMap := make(map[string]string)
-	for _, v := range dataList {
-		dataMap[v.DataTime] = v.Value
-	}
-
-	addSql := ` INSERT INTO edb_data_zz(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	existMap := make(map[string]string)
-	for _, v := range glDataList {
-		var value string
-		if suffix == "deal" {
-			value = v.DealValue
-		} else if suffix == "buy" {
-			value = v.BuyValue
-		} else {
-			value = v.SoldValue
-		}
-		item := v
-		itemValue := value
-		if _, ok := existMap[v.DataTime]; !ok {
-			eDate := item.DataTime
-			sValue := itemValue
-			if sValue != "" {
-				dataTime, err := time.Parse(utils.FormatDate, eDate)
-				if err != nil {
-					return err
-				}
-				timestamp := dataTime.UnixNano() / 1e6
-				timeStr := fmt.Sprintf("%d", timestamp)
-				saveValue := sValue
-
-				if existVal, ok := dataMap[eDate]; !ok {
-					addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, saveValue)
-					isAdd = true
-				} else {
-					if existVal != saveValue {
-						sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-						sql = fmt.Sprintf(sql, dataTableName)
-						_, err = to.Raw(sql, sValue, edbInfoId, eDate).Exec()
-						if err != nil {
-							return err
-						}
-					}
-				}
-			}
-		}
-		existMap[v.DataTime] = v.DataTime
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return err
-		}
-	}
-	return
-}
-
 // GetBaseInfoFromZhengzhouByIndexCode 获取指标信息
 func GetBaseInfoFromZhengzhouByIndexCode(indexCode, suffix string) (list []*BaseInfoFromZz, err error) {
 	o := orm.NewOrmUsingDB("data")
@@ -373,49 +69,3 @@ func GetBaseInfoFromZhengzhouByIndexCode(indexCode, suffix string) (list []*Base
 	_, err = o.Raw(sql, indexCode).QueryRows(&list)
 	return
 }
-
-func GetZzDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromZzDataSimple, err error) {
-	sql := ` SELECT * FROM base_from_trade_zhengzhou_index WHERE 1=1 `
-	o := orm.NewOrmUsingDB("data")
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY data_time DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&item)
-	return
-}
-
-func AddEdbDataZzBySql(sqlStr string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sqlStr).Exec()
-	return
-}
-
-func GetEdbDataZzByCode(edbCode string) (items []*EdbInfoSearchData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_data_zz WHERE edb_code=? ORDER BY data_time DESC LIMIT ? `
-	_, err = o.Raw(sql, edbCode, utils.EDB_DATA_LIMIT).QueryRows(&items)
-	return
-}
-
-func GetBaseFromZhengzhouDataAllByIndexCode(indexCode, suffix string) (list []*BaseFromTradeZhengzhouIndex, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM base_from_trade_zhengzhou_index WHERE %s_code=? `
-	sql = fmt.Sprintf(sql, suffix)
-	_, err = o.Raw(sql, indexCode).QueryRows(&list)
-	return
-}
-
-func GetEdbDataZzByCodeAndDate(edbCode string, startDate string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_data_zz WHERE edb_code=? AND data_time=? `
-	err = o.Raw(sql, edbCode, startDate).QueryRow(&count)
-	return
-}
-
-func ModifyEdbDataZz(edbInfoId int64, dataTime, value string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE edb_data_zz SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-	_, err = o.Raw(sql, value, edbInfoId, dataTime).Exec()
-	return
-}

+ 28 - 19
models/data_manage/edb_info.go

@@ -46,6 +46,10 @@ type EdbInfo struct {
 	Calendar         string  `description:"公历/农历" orm:"default(公历);"`
 	DataDateType     string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
 	ManualSave       int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
+	SubSource        int     `description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName    string  `description:"子数据来源名称"`
+	IndicatorCode    string  `description:"指标代码"`
+	StockCode        string  `description:"证券代码"`
 }
 
 type EdbInfoFullClassify struct {
@@ -153,7 +157,7 @@ type AddEdbInfoReq struct {
 	EndDate    string `description:"终止日期"`
 }
 
-func DeleteEdbInfoAndData(edbInfoId, source int) (err error) {
+func DeleteEdbInfoAndData(edbInfoId, source, subSource int) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
 	if err != nil {
@@ -175,7 +179,7 @@ func DeleteEdbInfoAndData(edbInfoId, source int) (err error) {
 	}
 
 	// 删除指标数据
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	if tableName != "" {
 		sql = ` DELETE FROM %s WHERE edb_info_id=? `
 		sql = fmt.Sprintf(sql, tableName)
@@ -289,6 +293,10 @@ type EdbInfoList struct {
 	IsEnEdb          bool                    `description:"是否展示英文标识"`
 	DataInsertConfig EdbDataInsertConfigItem `description:"指标数据插入配置"`
 	DataDateType     string                  `description:"数据日期类型,枚举值:交易日、自然日"`
+	SubSource        int                     `description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName    string                  `description:"子数据来源名称"`
+	IndicatorCode    string                  `description:"指标代码"`
+	StockCode        string                  `description:"证券代码"`
 }
 
 type EdbDataInsertConfigItem struct {
@@ -320,9 +328,9 @@ func GetEdbInfoByCondition(condition string, pars []interface{}) (item *EdbInfoL
 	return
 }
 
-func GetEdbDataCountByCondition(condition string, pars []interface{}, source int) (count int, err error) {
+func GetEdbDataCountByCondition(condition string, pars []interface{}, source, subSource int) (count int, err error) {
 	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT COUNT(1) AS count FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 	if condition != "" {
@@ -332,9 +340,9 @@ func GetEdbDataCountByCondition(condition string, pars []interface{}, source int
 	return
 }
 
-func GetEdbDataListByCondition(condition string, pars []interface{}, source, pageSize, startSize int) (item []*EdbData, err error) {
+func GetEdbDataListByCondition(condition string, pars []interface{}, source, subSource, pageSize, startSize int) (item []*EdbData, err error) {
 	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
@@ -348,9 +356,9 @@ func GetEdbDataListByCondition(condition string, pars []interface{}, source, pag
 }
 
 // GetAllEdbDataListByCondition 根据条件获取所有的数据
-func GetAllEdbDataListByCondition(condition string, pars []interface{}, source int) (item []*EdbData, err error) {
+func GetAllEdbDataListByCondition(condition string, pars []interface{}, source, subSource int) (item []*EdbData, err error) {
 	o := orm.NewOrmUsingDB("data")
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
@@ -457,10 +465,10 @@ type EdbInfoMaxAndMinInfo struct {
 	LatestValue float64 `description:"最新值"`
 }
 
-func GetEdbInfoMaxAndMinInfo(source int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
+func GetEdbInfoMaxAndMinInfo(source, subSource int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ``
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM %s WHERE edb_code=? `
 	sql = fmt.Sprintf(sql, tableName)
 	err = o.Raw(sql, edbCode).QueryRow(&item)
@@ -495,10 +503,10 @@ func GetEdbInfoFilter(condition string, pars []interface{}) (list []*EdbInfoList
 }
 
 //order:1升序,其余值为降序
-func GetEdbDataListAll(condition string, pars []interface{}, source, order int) (item []*EdbInfoSearchData, err error) {
+func GetEdbDataListAll(condition string, pars []interface{}, source, subSource, order int) (item []*EdbInfoSearchData, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ``
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
@@ -515,10 +523,10 @@ func GetEdbDataListAll(condition string, pars []interface{}, source, order int)
 }
 
 // GetLastEdbData 获取最近的一条指标数据
-func GetLastEdbData(condition string, pars []interface{}, source int) (item *EdbInfoSearchData, err error) {
+func GetLastEdbData(condition string, pars []interface{}, source, subSource int) (item *EdbInfoSearchData, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ``
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT * FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
@@ -531,10 +539,10 @@ func GetLastEdbData(condition string, pars []interface{}, source int) (item *Edb
 }
 
 //order:1升序,其余值为降序
-func GetEdbDataCount(condition string, pars []interface{}, source int) (count int, err error) {
+func GetEdbDataCount(condition string, pars []interface{}, source, subSource int) (count int, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ``
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` SELECT COUNT(1) AS count FROM %s WHERE 1=1 `
 	sql = fmt.Sprintf(sql, tableName)
 
@@ -716,10 +724,10 @@ func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculate
 	return
 }
 
-func ModifyEdbInfoDataStatus(edbInfoId int64, source int, edbCode string) (err error) {
+func ModifyEdbInfoDataStatus(edbInfoId int64, source, subSource int, edbCode string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ``
-	tableName := GetEdbDataTableName(source)
+	tableName := GetEdbDataTableName(source, subSource)
 	sql = ` UPDATE %s SET edb_info_id=?,modify_time=NOW() WHERE edb_code=? `
 	sql = fmt.Sprintf(sql, tableName)
 	_, err = o.Raw(sql, edbInfoId, edbCode).Exec()
@@ -943,6 +951,7 @@ func replaceRelationEdbInfo(mappingList []*EdbInfoCalculateMapping, oldEdbInfo,
 			uniqueCode := edbInfo.UniqueCode
 			sourName := edbInfo.SourceName
 			source := edbInfo.Source
+			subSource := edbInfo.SubSource
 			edbInfoId := edbInfo.EdbInfoId
 
 			req := new(EdbInfoCalculateBatchSaveReq)
@@ -1193,7 +1202,7 @@ func replaceRelationEdbInfo(mappingList []*EdbInfoCalculateMapping, oldEdbInfo,
 				err = fmt.Errorf("无效计算方式,source:" + strconv.Itoa(source))
 				return
 			}
-			maxAndMinItem, tmpErr := GetEdbInfoMaxAndMinInfo(source, edbCode)
+			maxAndMinItem, tmpErr := GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 			err = tmpErr
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				errmsg = "生成" + sourName + "失败,GetEdbInfoMaxAndMinInfo Err:" + err.Error()

+ 1 - 167
models/data_manage/edb_info_calculate.go

@@ -232,172 +232,6 @@ func GetEdbInfoCalculateMap(edbInfoId, source int) (list []*EdbInfo, err error)
 	return
 }
 
-// 指标运算
-func AddCalculate(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo []*EdbInfoCalculateDetail, edbCode, uniqueCode, formulaStr string, sysUserId int, sysUserRealName string) (edbInfoId int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	if req.EdbInfoId <= 0 {
-		edbInfo := new(EdbInfo)
-		edbInfo.Source = utils.DATA_SOURCE_CALCULATE
-		edbInfo.SourceName = "指标运算"
-		edbInfo.EdbCode = edbCode
-		edbInfo.EdbName = req.EdbName
-		edbInfo.EdbNameSource = req.EdbName
-		edbInfo.Frequency = req.Frequency
-		edbInfo.Unit = req.Unit
-		edbInfo.ClassifyId = req.ClassifyId
-		edbInfo.SysUserId = sysUserId
-		edbInfo.SysUserRealName = sysUserRealName
-		edbInfo.CreateTime = time.Now()
-		edbInfo.ModifyTime = time.Now()
-		edbInfo.UniqueCode = uniqueCode
-		edbInfo.CalculateFormula = req.CalculateFormula
-		edbInfo.EdbType = 2
-		newEdbInfoId, err := to.Insert(edbInfo)
-		if err != nil {
-			return int(newEdbInfoId), err
-		}
-		edbInfoId = int(newEdbInfoId)
-		//处理同名指标
-		{
-			edbNameList, err := GetEdbInfoByName(req.EdbName)
-			if err != nil {
-				return edbInfoId, err
-			}
-			if len(edbNameList) >= 2 {
-				for _, v := range edbNameList {
-					edbName := v.EdbName + "(" + v.SourceName + ")"
-					err = ModifyEdbInfoNameSource(edbName, v.EdbInfoId)
-					if err != nil {
-						return edbInfoId, err
-					}
-				}
-			}
-		}
-
-		//calculateList := make([]*EdbInfoCalculate, 0)
-		edbInfoList := make([]*EdbInfo, 0)
-
-		for _, v := range req.EdbInfoIdArr {
-			edbInfo, err := GetEdbInfoById(v.EdbInfoId)
-			if err != nil {
-				return edbInfoId, err
-			}
-			//calculateItem := new(EdbInfoCalculate)
-			//calculateItem.CreateTime = time.Now()
-			//calculateItem.ModifyTime = time.Now()
-			//calculateItem.Sort = k + 1
-			//calculateItem.EdbCode = edbCode
-			//calculateItem.EdbInfoId = int(edbInfoId)
-			//calculateItem.FromEdbInfoId = edbInfo.EdbInfoId
-			//calculateItem.FromEdbCode = edbInfo.EdbCode
-			//calculateItem.FromEdbName = edbInfo.EdbName
-			//calculateItem.FromSource = edbInfo.Source
-			//calculateItem.FromSourceName = edbInfo.SourceName
-			//calculateItem.FromTag = v.FromTag
-			//calculateList = append(calculateList, calculateItem)
-			edbInfoList = append(edbInfoList, edbInfo)
-		}
-		//if len(calculateList) > 0 {
-		//	_, err = to.InsertMulti(1, calculateList)
-		//	if err != nil {
-		//		return edbInfoId, err
-		//	}
-		//}
-	} else {
-		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE)
-		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
-		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
-		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
-	}
-	//计算数据
-	saveDataMap := make(map[string]map[int]float64)
-	for _, v := range fromEdbInfo {
-		var condition string
-		var pars []interface{}
-		condition += " AND edb_info_id=? "
-		pars = append(pars, v.FromEdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, v.FromSource, 1)
-		if err != nil {
-			return edbInfoId, err
-		}
-		dataMap := make(map[string]float64)
-		for _, dv := range dataList {
-			if val, ok := saveDataMap[dv.DataTime]; ok {
-				if _, ok := val[v.EdbInfoId]; !ok {
-					val[v.EdbInfoId] = dv.Value
-				}
-			} else {
-				temp := make(map[int]float64)
-				temp[v.EdbInfoId] = dv.Value
-				saveDataMap[dv.DataTime] = temp
-			}
-		}
-		item := new(CalculateItems)
-		item.EdbInfoId = v.EdbInfoId
-		item.DataMap = dataMap
-	}
-
-	//formulaMap := CheckFormula(formulaStr)
-	//addSql := ` INSERT INTO edb_data_calculate(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	//nowStr := time.Now().Format(utils.FormatDateTime)
-	//var isAdd bool
-	//
-	//for sk, sv := range saveDataMap {
-	//	formulaStr = strings.ToUpper(formulaStr)
-	//	formulaFormStr := ReplaceFormula(edbInfoIdArr, sv, formulaMap, formulaStr, edbInfoIdBytes)
-	//	if formulaFormStr != "" {
-	//		utils.FileLog.Info("formulaFormStr:%s", formulaFormStr)
-	//		expression := formula.NewExpression(formulaFormStr)
-	//		calResult, err := expression.Evaluate()
-	//		if err != nil {
-	//			err = errors.New("计算失败:Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-	//			fmt.Println(err)
-	//			return err
-	//		}
-	//		calVal, err := calResult.Float64()
-	//		if err != nil {
-	//			err = errors.New("计算失败:获取计算值失败 Err:" + err.Error() + ";formulaStr:" + formulaFormStr)
-	//			fmt.Println(err)
-	//			return err
-	//		}
-	//
-	//		//需要存入的数据
-	//		{
-	//			dataTime, _ := time.Parse(utils.FormatDate, sk)
-	//			timestamp := dataTime.UnixNano() / 1e6
-	//			timeStr := fmt.Sprintf("%d", timestamp)
-	//			addSql += "("
-	//			addSql += strconv.Itoa(edbInfoId) + "," + "'" + edbCode + "'" + "," + "'" + sk + "'" + "," + utils.SubFloatToString(calVal, 4) + "," + "'" + nowStr + "'" +
-	//				"," + "'" + nowStr + "'" + "," + "1"
-	//			addSql += "," + "'" + timeStr + "'"
-	//			addSql += "),"
-	//			isAdd = true
-	//		}
-	//	}
-	//}
-	//if isAdd {
-	//	addSql = strings.TrimRight(addSql, ",")
-	//	AddEdbDataCalculateBySql(addSql)
-	//	if err != nil {
-	//		fmt.Println("AddEdbDataCalculate Err:" + err.Error())
-	//		return
-	//	}
-	//}
-	return
-}
-
 type CalculateItems struct {
 	EdbInfoId int
 	DataMap   map[string]float64
@@ -561,7 +395,7 @@ func Calculate(edbInfoIdArr []*EdbInfo, edbInfoId int, edbCode, formulaStr strin
 		var pars []interface{}
 		condition += " AND edb_info_id=? "
 		pars = append(pars, v.EdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, v.Source, 1)
+		dataList, err := GetEdbDataListAll(condition, pars, v.Source, v.SubSource, 1)
 		if err != nil {
 			return err
 		}

+ 2 - 2
models/data_manage/edb_info_calculate_bp.go

@@ -71,7 +71,7 @@ func AddCalculateBp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_BP)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_BP, utils.DATA_SUB_SOURCE_EDB)
 		fmt.Println("dataTableName:" + dataTableName)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
@@ -92,7 +92,7 @@ func AddCalculateBp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 	} else {
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 2 - 2
models/data_manage/edb_info_calculate_hbz.go

@@ -72,7 +72,7 @@ func AddCalculateHbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_HBZ)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_HBZ, utils.DATA_SUB_SOURCE_EDB)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
 		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
@@ -89,7 +89,7 @@ func AddCalculateHbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 	} else {
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 2 - 2
models/data_manage/edb_info_calculate_hcz.go

@@ -72,7 +72,7 @@ func AddCalculateHcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_HCZ)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_HCZ, utils.DATA_SUB_SOURCE_EDB)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
 		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
@@ -89,7 +89,7 @@ func AddCalculateHcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 	} else {
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 8 - 8
models/data_manage/edb_info_calculate_ljztbpj.go

@@ -77,7 +77,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 				}
 
 				//如果拼接指标变更了,那么需要删除所有的指标数据
-				tableName := GetEdbDataTableName(nowEdbInfo.Source)
+				tableName := GetEdbDataTableName(nowEdbInfo.Source, nowEdbInfo.SubSource)
 				sql = fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
 
 				_, err = to.Raw(sql, edbInfoId).Exec()
@@ -117,7 +117,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 			pars = append(pars, "%12-31", firstEdbInfo.EdbInfoId)
 
 			//获取最新的待拼接指标
-			lastEdbData, tmpErr := GetLastEdbData(condition, pars, firstEdbInfo.Source)
+			lastEdbData, tmpErr := GetLastEdbData(condition, pars, firstEdbInfo.Source, firstEdbInfo.SubSource)
 			if tmpErr != nil {
 				return edbInfoId, tmpErr
 			}
@@ -129,7 +129,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 			condition += " AND data_time <= ? AND edb_info_id=? "
 			pars = append(pars, lastEdbData.DataTime, firstEdbInfo.EdbInfoId)
 
-			firstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, 0)
+			firstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, firstEdbInfo.SubSource, 0)
 			if tmpErr != nil {
 				return edbInfoId, tmpErr
 			}
@@ -148,7 +148,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 			condition += " AND edb_info_id=? and data_time <= ?"
 			pars = append(pars, nowEdbInfo.EdbInfoId, nowEdbInfo.CalculateFormula)
 
-			nowEdbDataList, tmpErr := GetEdbDataListAll(condition, pars, nowEdbInfo.Source, 0)
+			nowEdbDataList, tmpErr := GetEdbDataListAll(condition, pars, nowEdbInfo.Source, nowEdbInfo.SubSource, 0)
 			if tmpErr != nil {
 				return edbInfoId, tmpErr
 			}
@@ -180,7 +180,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 				}
 
 				//如果同比值指标变更了,那么需要删除所有计算出来的指标数据
-				tableName := GetEdbDataTableName(nowEdbInfo.Source)
+				tableName := GetEdbDataTableName(nowEdbInfo.Source, nowEdbInfo.SubSource)
 				sql = fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time > ? `, tableName)
 
 				_, err = to.Raw(sql, edbInfoId, nowEdbInfo.CalculateFormula).Exec()
@@ -220,7 +220,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 		pars = append(pars, lastDateTime, secondEdbInfo.EdbInfoId)
 
 		//同比值指标的数据列表
-		secondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, 0)
+		secondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, secondEdbInfo.SubSource, 0)
 		if tmpErr != nil {
 			return edbInfoId, tmpErr
 		}
@@ -343,7 +343,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 			removeDateStr := strings.Join(removeDateList, `","`)
 			removeDateStr = `"` + removeDateStr + `"`
 			//如果拼接指标变更了,那么需要删除所有的指标数据
-			tableName := GetEdbDataTableName(nowEdbInfo.Source)
+			tableName := GetEdbDataTableName(nowEdbInfo.Source, nowEdbInfo.SubSource)
 			sql = fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
 			_, err = to.Raw(sql, edbInfoId).Exec()
@@ -356,7 +356,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEd
 
 	//修改现有的数据中对应的值
 	{
-		tableName := GetEdbDataTableName(nowEdbInfo.Source)
+		tableName := GetEdbDataTableName(nowEdbInfo.Source, nowEdbInfo.SubSource)
 		for edbDate, edbDataValue := range updateEdbDataMap {
 			sql = fmt.Sprintf(` UPDATE  %s set value = %f,modify_time=now() WHERE edb_info_id = ? and data_time = %s `, tableName, edbDataValue, edbDate)
 

+ 2 - 2
models/data_manage/edb_info_calculate_ljzzy.go

@@ -86,7 +86,7 @@ func AddCalculateLjzzy(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo,
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_LJZZY)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_LJZZY, utils.DATA_SUB_SOURCE_EDB)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
 		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
@@ -102,7 +102,7 @@ func AddCalculateLjzzy(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo,
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
 	fmt.Println("EdbInfoId:", req.FromEdbInfoId)
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 1)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 1)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 2 - 2
models/data_manage/edb_info_calculate_nszydpjjs.go

@@ -87,7 +87,7 @@ func AddCalculateNszydpjjs(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_NSZYDPJJS)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_NSZYDPJJS, utils.DATA_SUB_SOURCE_EDB)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
 		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
@@ -103,7 +103,7 @@ func AddCalculateNszydpjjs(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 	} else {
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 4 - 259
models/data_manage/edb_info_calculate_tbz.go

@@ -105,7 +105,7 @@ func AddCalculateTbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_TBZ)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_TBZ, utils.DATA_SUB_SOURCE_EDB)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
 		_, err = to.Raw(deleteSql, req.EdbInfoId).Exec()
@@ -122,7 +122,7 @@ func AddCalculateTbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 	} else {
 		pars = append(pars, fromEdbInfo.EdbInfoId)
 	}
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}
@@ -391,7 +391,7 @@ func EditCalculateTbz(req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo, e
 		condition += " AND edb_info_id=? "
 		pars = append(pars, req.FromEdbInfoId)
 		fmt.Println("EdbInfoId:", req.FromEdbInfoId)
-		dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+		dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 		if err != nil {
 			return edbInfoId, err
 		}
@@ -558,7 +558,7 @@ func RefreshCalculateTbz(edbInfoId int, fromEdbInfo *EdbInfo, edbCode, startDate
 		pars = append(pars, endDate)
 	}
 
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return err
 	}
@@ -785,258 +785,3 @@ func ModifyEdbDataCalculateTbz(edbInfoId int64, dataTime, value string) (err err
 	_, err = o.Raw(sql, value, edbInfoId, dataTime).Exec()
 	return
 }
-
-// 刷新所有同比值数据
-func RefreshAllCalculateTbz(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	if err != nil {
-		return
-	}
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
-
-	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, fromEdbInfo.EdbInfoId)
-
-	if startDate != "" {
-		condition += " AND data_time>=? "
-		pars = append(pars, startDate)
-	}
-	if endDate != "" {
-		condition += " AND data_time<=? "
-		pars = append(pars, endDate)
-	}
-
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
-	if err != nil {
-		return err
-	}
-	var dateArr []string
-	dataMap := make(map[string]*EdbInfoSearchData)
-	for _, v := range dataList {
-		dateArr = append(dateArr, v.DataTime)
-		dataMap[v.DataTime] = v
-	}
-	fmt.Println("source:", source)
-	//获取指标所有数据
-	existDataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
-	fmt.Println("dataTableName:", dataTableName)
-	sql := `SELECT * FROM %s WHERE edb_info_id=? `
-	sql = fmt.Sprintf(sql, dataTableName)
-	_, err = to.Raw(sql, edbInfoId).QueryRows(&existDataList)
-	if err != nil {
-		return err
-	}
-	existDataMap := make(map[string]string)
-	for _, v := range existDataList {
-		existDataMap[v.DataTime] = v.Value
-	}
-	fmt.Println("existDataMap:", existDataMap)
-	addSql := ` INSERT INTO edb_data_calculate_tbz(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	existAddDataMap := make(map[string]string)
-	for _, av := range dateArr {
-		currentItem := dataMap[av]
-		if currentItem != nil {
-			//当前日期
-			currentDate, err := time.Parse(utils.FormatDate, av)
-			if err != nil {
-				return err
-			}
-			//上一年的日期
-			preDate := currentDate.AddDate(-1, 0, 0)
-			preDateStr := preDate.Format(utils.FormatDate)
-			if findItem, ok := dataMap[preDateStr]; ok { //上一年同期找到
-				//dataTime, _ := time.Parse(utils.FormatDate, date)
-				timestamp := currentDate.UnixNano() / 1e6
-				timestampStr := fmt.Sprintf("%d", timestamp)
-				val := TbzDiv(currentItem.Value, findItem.Value)
-				if existVal, ok := existDataMap[av]; !ok {
-					if _, existOk := existAddDataMap[av]; !existOk {
-						addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-						isAdd = true
-					}
-					existAddDataMap[av] = av
-				} else {
-					if existVal != val {
-						sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-						sql = fmt.Sprintf(sql, dataTableName)
-						_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-						if err != nil {
-							return err
-						}
-					}
-				}
-				continue
-			} else {
-				if fromEdbInfo.Frequency == "月度" { //向上和向下,各找一个月
-					for i := 0; i <= 35; i++ {
-						nextDateDay := preDate.AddDate(0, 0, i)
-						nextDateDayStr := nextDateDay.Format(utils.FormatDate)
-						if findItem, ok := dataMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-							timestamp := currentDate.UnixNano() / 1e6
-							timestampStr := fmt.Sprintf("%d", timestamp)
-							val := TbzDiv(currentItem.Value, findItem.Value)
-
-							if existVal, ok := existDataMap[av]; !ok {
-								if _, existOk := existAddDataMap[av]; !existOk {
-									addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-									isAdd = true
-								}
-								existAddDataMap[av] = av
-							} else {
-								if existVal != val {
-									sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-									sql = fmt.Sprintf(sql, dataTableName)
-									_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-									if err != nil {
-										return err
-									}
-								}
-							}
-							break
-						} else {
-							preDateDay := preDate.AddDate(0, 0, -i)
-							preDateDayStr := preDateDay.Format(utils.FormatDate)
-							if findItem, ok := dataMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-								timestamp := currentDate.UnixNano() / 1e6
-								timestampStr := fmt.Sprintf("%d", timestamp)
-								val := TbzDiv(currentItem.Value, findItem.Value)
-
-								if existVal, ok := existDataMap[av]; !ok {
-									if _, existOk := existAddDataMap[av]; !existOk {
-										addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-										isAdd = true
-									}
-									existAddDataMap[av] = av
-								} else {
-									if existVal != val {
-										sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-										sql = fmt.Sprintf(sql, dataTableName)
-										_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-										if err != nil {
-											return err
-										}
-									}
-								}
-								break
-							}
-						}
-					}
-				} else if fromEdbInfo.Frequency == "季度" || fromEdbInfo.Frequency == "年度" {
-					if findItem, ok := dataMap[preDateStr]; ok { //上一年同期->下一个月找到
-						timestamp := currentDate.UnixNano() / 1e6
-						timestampStr := fmt.Sprintf("%d", timestamp)
-						val := TbzDiv(currentItem.Value, findItem.Value)
-
-						if existVal, ok := existDataMap[av]; !ok {
-							if _, existOk := existAddDataMap[av]; !existOk {
-								addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-								isAdd = true
-							}
-							existAddDataMap[av] = av
-						} else {
-							if existVal != val {
-								sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-								sql = fmt.Sprintf(sql, dataTableName)
-								_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-								if err != nil {
-									return err
-								}
-							}
-						}
-						break
-					}
-				} else {
-					nextDateDay := preDate.AddDate(0, 0, 1)
-					nextDateDayStr := nextDateDay.Format(utils.FormatDate)
-
-					preDateDay := preDate.AddDate(0, 0, -1)
-					preDateDayStr := preDateDay.Format(utils.FormatDate)
-
-					for i := 0; i < 35; i++ {
-						if i >= 1 {
-							nextDateDay = nextDateDay.AddDate(0, 0, i)
-							nextDateDayStr = nextDateDay.Format(utils.FormatDate)
-						}
-						if findItem, ok := dataMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-							timestamp := currentDate.UnixNano() / 1e6
-							timestampStr := fmt.Sprintf("%d", timestamp)
-							val := TbzDiv(currentItem.Value, findItem.Value)
-
-							if existVal, ok := existDataMap[av]; !ok {
-								if _, existOk := existAddDataMap[av]; !existOk {
-									addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-									isAdd = true
-								}
-								existAddDataMap[av] = av
-							} else {
-								if existVal != val {
-									sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-									sql = fmt.Sprintf(sql, dataTableName)
-									_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-									if err != nil {
-										return err
-									}
-								}
-							}
-							break
-						} else {
-							if i >= 1 {
-								preDateDay = preDate.AddDate(0, 0, -i)
-								preDateDayStr = nextDateDay.Format(utils.FormatDate)
-							}
-							if findItem, ok := dataMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-								timestamp := currentDate.UnixNano() / 1e6
-								timestampStr := fmt.Sprintf("%d", timestamp)
-								val := TbzDiv(currentItem.Value, findItem.Value)
-
-								if existVal, ok := existDataMap[av]; !ok {
-									if _, existOk := existAddDataMap[av]; !existOk {
-										addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, val)
-										isAdd = true
-									}
-									existAddDataMap[av] = av
-								} else {
-									if existVal != val {
-										sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-										sql = fmt.Sprintf(sql, dataTableName)
-										_, err = to.Raw(sql, val, edbInfoId, av).Exec()
-										if err != nil {
-											return err
-										}
-									}
-								}
-								break
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return err
-		}
-	}
-	return
-}

+ 2 - 2
models/data_manage/edb_info_calculate_tcz.go

@@ -89,7 +89,7 @@ func AddCalculateTcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	} else {
 		edbInfoId = req.EdbInfoId
-		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_TCZ)
+		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_TCZ, utils.DATA_SUB_SOURCE_EDB)
 		fmt.Println("dataTableName:", dataTableName)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
@@ -112,7 +112,7 @@ func AddCalculateTcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 	}
 
 	fmt.Println("EdbInfoId:", req.FromEdbInfoId)
-	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, 0)
+	dataList, err := GetEdbDataListAll(condition, pars, fromEdbInfo.Source, fromEdbInfo.SubSource, 0)
 	if err != nil {
 		return edbInfoId, err
 	}

+ 4 - 4
models/data_manage/edb_info_calculate_zjpj.go

@@ -111,7 +111,7 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEdbIn
 			condition += " AND data_time < ? AND edb_info_id=? "
 			pars = append(pars, req.Formula, firstEdbInfo.EdbInfoId)
 
-			tmpFirstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, 0)
+			tmpFirstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, firstEdbInfo.SubSource, 0)
 			if tmpErr != nil {
 				return edbInfoId, tmpErr
 			}
@@ -144,7 +144,7 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEdbIn
 				condition += " AND data_time >= ?  AND data_time < ? AND edb_info_id=? "
 				pars = append(pars, nowFormulaDate, reqFormulaDate, firstEdbInfo.EdbInfoId)
 
-				tmpFirstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, 0)
+				tmpFirstDataList, tmpErr := GetEdbDataListAll(condition, pars, firstEdbInfo.Source, firstEdbInfo.SubSource, 0)
 				if tmpErr != nil {
 					return edbInfoId, tmpErr
 				}
@@ -197,7 +197,7 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEdbIn
 			//第二个指标的数据列表
 			condition = " AND data_time >= ?  AND edb_info_id=? "
 			pars = append(pars, reqFormulaDate, secondEdbInfo.EdbInfoId)
-			tmpSecondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, 0)
+			tmpSecondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, secondEdbInfo.SubSource, 0)
 			if tmpErr != nil {
 				return edbInfoId, tmpErr
 			}
@@ -230,7 +230,7 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, nowEdbInfo, firstEdbIn
 				condition += " AND data_time >= ?  AND data_time < ? AND edb_info_id=? "
 				pars = append(pars, reqFormulaDate, nowFormulaDate, secondEdbInfo.EdbInfoId)
 
-				tmpSecondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, 0)
+				tmpSecondDataList, tmpErr := GetEdbDataListAll(condition, pars, secondEdbInfo.Source, secondEdbInfo.SubSource, 0)
 				if tmpErr != nil {
 					return edbInfoId, tmpErr
 				}

+ 1 - 1
services/data/chart_info.go

@@ -273,7 +273,7 @@ func getEdbDataMapList(chartInfoId, chartType int, calendar, startDate, endDate
 		//var newEdbInfo *data_manage.EdbInfo
 		switch v.EdbInfoCategoryType {
 		case 0:
-			dataList, err = data_manage.GetEdbDataList(v.Source, v.EdbInfoId, startDateReal, endDate)
+			dataList, err = data_manage.GetEdbDataList(v.Source, v.SubSource, v.EdbInfoId, startDateReal, endDate)
 		case 1:
 			_, dataList, _, _, err, _ = GetPredictDataListByPredictEdbInfoId(v.EdbInfoId, startDateReal, endDate, false)
 		default:

+ 4 - 4
services/data/correlation/chart_info.go

@@ -256,7 +256,7 @@ func GetChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *data_manage.ChartEd
 	aDataList := make([]*data_manage.EdbDataList, 0)
 	switch baseEdbInfo.EdbInfoCategoryType {
 	case 0:
-		aDataList, err = data_manage.GetEdbDataList(baseEdbInfo.Source, baseEdbInfo.EdbInfoId, startDate, endDate)
+		aDataList, err = data_manage.GetEdbDataList(baseEdbInfo.Source, baseEdbInfo.SubSource, baseEdbInfo.EdbInfoId, startDate, endDate)
 	case 1:
 		_, aDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(baseEdbInfo.EdbInfoId, startDate, endDate, false)
 	default:
@@ -268,7 +268,7 @@ func GetChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *data_manage.ChartEd
 	bDataList := make([]*data_manage.EdbDataList, 0)
 	switch changeEdbInfo.EdbInfoCategoryType {
 	case 0:
-		bDataList, err = data_manage.GetEdbDataList(changeEdbInfo.Source, changeEdbInfo.EdbInfoId, "", "")
+		bDataList, err = data_manage.GetEdbDataList(changeEdbInfo.Source, changeEdbInfo.SubSource, changeEdbInfo.EdbInfoId, "", "")
 	case 1:
 		_, bDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(changeEdbInfo.EdbInfoId, "", "", false)
 	default:
@@ -459,7 +459,7 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *d
 	aDataList := make([]*data_manage.EdbDataList, 0)
 	switch baseEdbInfo.EdbInfoCategoryType {
 	case 0:
-		aDataList, err = data_manage.GetEdbDataList(baseEdbInfo.Source, baseEdbInfo.EdbInfoId, startDate, endDate)
+		aDataList, err = data_manage.GetEdbDataList(baseEdbInfo.Source, baseEdbInfo.SubSource, baseEdbInfo.EdbInfoId, startDate, endDate)
 	case 1:
 		_, aDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(baseEdbInfo.EdbInfoId, startDate, endDate, true)
 	default:
@@ -471,7 +471,7 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *d
 	bDataList := make([]*data_manage.EdbDataList, 0)
 	switch changeEdbInfo.EdbInfoCategoryType {
 	case 0:
-		bDataList, err = data_manage.GetEdbDataList(changeEdbInfo.Source, changeEdbInfo.EdbInfoId, "", "")
+		bDataList, err = data_manage.GetEdbDataList(changeEdbInfo.Source, changeEdbInfo.SubSource, changeEdbInfo.EdbInfoId, "", "")
 	case 1:
 		_, bDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(changeEdbInfo.EdbInfoId, "", "", false)
 	default:

+ 1 - 1
services/data/edb_classify.go

@@ -445,7 +445,7 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 		}
 
 		//真实删除
-		tmpErr = data_manage.DeleteEdbInfoAndData(edbInfo.EdbInfoId, edbInfo.Source)
+		tmpErr = data_manage.DeleteEdbInfoAndData(edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource)
 		if tmpErr != nil {
 			errMsg = "删除失败"
 			err = errors.New("删除失败,Err:" + tmpErr.Error())

+ 2 - 2
services/data/edb_data.go

@@ -135,7 +135,7 @@ func GetChartEdbSeasonalData(calendar, startDate, endDate string, edbInfo *data_
 
 	switch edbInfo.EdbInfoType {
 	case 0:
-		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.EdbInfoId, startDateReal, endDate)
+		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startDateReal, endDate)
 	case 1:
 		_, dataList, _, _, err, _ = GetPredictDataListByPredictEdbInfoId(edbInfo.EdbInfoId, startDateReal, endDate, false)
 	default:
@@ -272,7 +272,7 @@ func GetDateData(edbInfo *data_manage.EdbInfo, startDate, endDate string) (item
 	var dataList []*data_manage.EdbDataList
 	switch edbInfo.EdbInfoType {
 	case 0:
-		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.EdbInfoId, startDate, endDate)
+		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startDate, endDate)
 	case 1:
 		_, dataList, _, _, err, _ = GetPredictDataListByPredictEdbInfoId(edbInfo.EdbInfoId, startDate, endDate, false)
 	default:

+ 4 - 4
services/data/edb_info.go

@@ -990,7 +990,7 @@ func DeleteEdbInfoToEs(edbInfoId int) {
 }
 
 // EdbInfoAdd 添加指标到指标库
-func EdbInfoAdd(source, classifyId int, edbCode, edbName, frequency, unit, startDate, endDate string, sysUserId int, sysUserRealName string) (edbInfo *data_manage.EdbInfo, err error, errMsg string, isSendEmail bool) {
+func EdbInfoAdd(source, subSource, classifyId int, edbCode, edbName, frequency, unit, startDate, endDate string, sysUserId int, sysUserRealName string) (edbInfo *data_manage.EdbInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 	//判断指标名称是否存在
 	var condition string
@@ -1098,7 +1098,7 @@ func EdbInfoAdd(source, classifyId int, edbCode, edbName, frequency, unit, start
 	edbInfo.DataDateType = `交易日`
 	timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
 	edbInfo.UniqueCode = utils.MD5(utils.DATA_PREFIX + "_" + timestamp)
-	itemVal, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+	itemVal, err := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 	if itemVal != nil && err == nil {
 		edbInfo.MaxValue = itemVal.MaxValue
 		edbInfo.MinValue = itemVal.MinValue
@@ -1112,7 +1112,7 @@ func EdbInfoAdd(source, classifyId int, edbCode, edbName, frequency, unit, start
 	}
 	edbInfo.EdbInfoId = int(edbInfoId)
 	//保存数据
-	data_manage.ModifyEdbInfoDataStatus(edbInfoId, source, edbCode)
+	data_manage.ModifyEdbInfoDataStatus(edbInfoId, source, subSource, edbCode)
 
 	//处理同名指标
 	//{
@@ -1141,7 +1141,7 @@ func EdbInfoAdd(source, classifyId int, edbCode, edbName, frequency, unit, start
 	//
 	//go data.EsAddOrEditEdbInfo(indexName, docId, edbInfo)
 
-	maxAndMinItem, _ := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+	maxAndMinItem, _ := data_manage.GetEdbInfoMaxAndMinInfo(source, subSource, edbCode)
 	if maxAndMinItem != nil {
 		err = data_manage.ModifyEdbInfoMaxAndMinInfo(int(edbInfoId), maxAndMinItem)
 	}

+ 2 - 2
services/data/edb_info_calculate.go

@@ -73,7 +73,7 @@ func Calculate(edbInfoIdArr []*data_manage.EdbInfo, edbInfoId int, edbCode, form
 		var pars []interface{}
 		condition += " AND edb_info_id=? "
 		pars = append(pars, v.EdbInfoId)
-		dataList, err := data_manage.GetEdbDataListAll(condition, pars, v.Source, 1)
+		dataList, err := data_manage.GetEdbDataListAll(condition, pars, v.Source, v.SubSource, 1)
 		if err != nil {
 			return err
 		}
@@ -467,7 +467,7 @@ func RefreshCalculate(edbInfoIdArr []*data_manage.EdbInfo, edbInfoId int, edbCod
 			condition += " AND data_time<=? "
 			pars = append(pars, endDate)
 		}
-		dataList, err := data_manage.GetEdbDataListAll(condition, pars, v.Source, 1)
+		dataList, err := data_manage.GetEdbDataListAll(condition, pars, v.Source, v.SubSource, 1)
 		if err != nil {
 			return err
 		}

+ 1 - 1
services/data/future_good/chart_info.go

@@ -70,7 +70,7 @@ func GetChartEdbData(chartInfoId int, startDate, endDate string, edbInfoMapping,
 	{
 		dataList := make([]*data_manage.EdbDataList, 0)
 
-		dataList, err = data_manage.GetEdbDataList(edbInfoMapping.Source, edbInfoMapping.EdbInfoId, startDate, endDate)
+		dataList, err = data_manage.GetEdbDataList(edbInfoMapping.Source, edbInfoMapping.SubSource, edbInfoMapping.EdbInfoId, startDate, endDate)
 		edbDataListMap[edbInfoMapping.EdbInfoId] = dataList
 		item.DataList = dataList
 

+ 3 - 3
services/data/predict_edb_info.go

@@ -415,13 +415,13 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate,
 
 	allDataList := make([]*data_manage.EdbDataList, 0)
 	//获取指标数据(实际已生成)
-	dataList, err = data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.EdbInfoId, startDate, endDate)
+	dataList, err = data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, sourceEdbInfoItem.EdbInfoId, startDate, endDate)
 	if err != nil {
 		return
 	}
 	// 如果选择了日期,那么需要筛选所有的数据,用于未来指标的生成
 	if startDate != `` {
-		allDataList, err = data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.EdbInfoId, "", "")
+		allDataList, err = data_manage.GetEdbDataList(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, sourceEdbInfoItem.EdbInfoId, "", "")
 		if err != nil {
 			return
 		}
@@ -606,7 +606,7 @@ func GetChartDataList(dataList []*data_manage.EdbDataList, chartType int, calend
 
 // GetPredictCalculateDataListByPredictEdbInfo 根据预测运算指标信息获取预测指标的数据
 func GetPredictCalculateDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate, endDate string) (dataList []*data_manage.EdbDataList, sourceEdbInfoItem *data_manage.EdbInfo, predictEdbConf *data_manage.PredictEdbConf, err error, errMsg string) {
-	dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.EdbInfoId, startDate, endDate)
+	dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startDate, endDate)
 	return
 }
 

+ 1 - 1
services/data/predict_edb_info_rule.go

@@ -1339,7 +1339,7 @@ func getCalculateNhccData(secondDataList []*data_manage.EdbDataList, ruleConf Ru
 		var firstDataList []*data_manage.EdbDataList
 		switch edbInfo.EdbInfoType {
 		case 0:
-			firstDataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.EdbInfoId, ``, ``)
+			firstDataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, ``, ``)
 		case 1:
 			_, firstDataList, _, _, err, _ = GetPredictDataListByPredictEdbInfoId(edbInfo.EdbInfoId, ``, ``, false)
 		default:

+ 6 - 0
utils/constants.go

@@ -377,3 +377,9 @@ const (
 	STORAGESOURCE_OSS   = 1 //阿里云OSS
 	STORAGESOURCE_MINIO = 2 //MinIo
 )
+
+// 子数据来源渠道
+const (
+	DATA_SUB_SOURCE_EDB  = iota //经济数据库
+	DATA_SUB_SOURCE_DATE        //日期序列
+)