Procházet zdrojové kódy

fix: 图表刷新指标60%

hsun před 3 roky
rodič
revize
494e2b530e

+ 158 - 0
models/tables/edb_data/query.go

@@ -408,4 +408,162 @@ func GetEdbDataZzByCodeAndDate(edbCode string, startDate string) (count int, err
 	sql := ` SELECT COUNT(1) AS count FROM edb_data_zz WHERE edb_code=? AND data_time=? `
 	sql := ` SELECT COUNT(1) AS count FROM edb_data_zz WHERE edb_code=? AND data_time=? `
 	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
 	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
 	return
 	return
+}
+
+type BaseFromShDataSimple struct {
+	Id        int `orm:"column(base_from_trade_shanghai_index_id);pk"`
+	DealCode  string
+	BuyCode   string
+	SoldCode  string
+	DataTime  string
+	DealValue string
+	BuyValue  string
+	SoldValue string
+}
+
+func GetShDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromShDataSimple, err error) {
+	sql := ` SELECT * FROM base_from_trade_shanghai_index WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY data_time DESC `
+	err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
+
+	return
+}
+
+func GetEdbDataShByCodeAndDate(edbCode string, startDate string) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM edb_data_sh WHERE edb_code=? AND data_time=? `
+	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
+
+	return
+}
+
+type BaseFromCffexDataSimple struct {
+	Id        int `orm:"column(base_from_trade_cffex_index_id);pk"`
+	DealCode  string
+	BuyCode   string
+	SoldCode  string
+	DataTime  string
+	DealValue string
+	BuyValue  string
+	SoldValue string
+}
+
+func GetCffexDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromCffexDataSimple, err error) {
+	sql := ` SELECT * FROM base_from_trade_cffex_index WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY data_time DESC `
+	err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
+
+	return
+}
+
+func GetEdbDataCffexByCodeAndDate(edbCode string, startDate string) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM edb_data_cffex WHERE edb_code=? AND data_time=? `
+	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
+
+	return
+}
+
+type BaseFromShfeDataSimple struct {
+	Id        int `orm:"column(base_from_trade_ine_index_id);pk"`
+	DealCode  string
+	BuyCode   string
+	SoldCode  string
+	DataTime  string
+	DealValue string
+	BuyValue  string
+	SoldValue string
+}
+
+func GetShfeDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromShfeDataSimple, err error) {
+	sql := ` SELECT * FROM base_from_trade_ine_index WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY data_time DESC `
+	err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
+
+	return
+}
+
+func GetEdbDataShfeByCodeAndDate(edbCode string, startDate string) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM edb_data_ine WHERE edb_code=? AND data_time=? `
+	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
+
+	return
+}
+
+type BaseFromTradeEicIndex struct {
+	BaseFromEicIndexId     int `orm:"column(base_from_eic_index_id);pk"`
+	Country                string
+	Type                   string
+	EicCode                string
+	ShortName              string
+	Name                   string
+	Status                 string
+	GasDayStartedOn        string
+	GasInStorage           string
+	GasInStorageCode       string
+	Full                   string
+	FullCode               string
+	Trend                  string
+	TrendCode              string
+	Injection              string
+	InjectionCode          string
+	Withdrawal             string
+	WithdrawalCode         string
+	WorkingGasVolume       string
+	WorkingGasVolumeCode   string
+	InjectionCapacity      string
+	InjectionCapacityCode  string
+	WithdrawalCapacity     string
+	WithdrawalCapacityCode string
+	Info                   string
+	CreateTime             time.Time
+	ModifyTime             time.Time
+}
+
+func GetGieDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromTradeEicIndex, err error) {
+	sql := ` SELECT * FROM base_from_trade_eic_index WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY gas_day_started_on DESC `
+	err = global.MYSQL["data"].Raw(sql, pars).Scan(&item).Error
+
+	return
+}
+
+func GetEdbDataGieByCodeAndDate(edbCode string, startDate string) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count FROM edb_data_gie WHERE edb_code=? AND data_time=? `
+	err = global.MYSQL["data"].Raw(sql, edbCode, startDate).Scan(&count).Error
+
+	return
+}
+
+type EdbInfoMaxAndMinInfo struct {
+	MinDate     string  `description:"最小日期"`
+	MaxDate     string  `description:"最大日期"`
+	MinValue    float64 `description:"最小值"`
+	MaxValue    float64 `description:"最大值"`
+	LatestValue float64 `description:"最新值"`
+}
+
+func GetEdbInfoMaxAndMinInfo(source int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
+	sql := ``
+	tableName := GetEdbDataTableName(source)
+	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 = global.MYSQL["data"].Raw(sql, edbCode).Scan(&item).Error
+
+	var latest_value float64
+	sql = ` SELECT value AS latest_value FROM %s WHERE edb_code=? ORDER BY data_time DESC LIMIT 1 `
+	sql = fmt.Sprintf(sql, tableName)
+	err = global.MYSQL["data"].Raw(sql, edbCode).Scan(&latest_value).Error
+	item.LatestValue = latest_value
+	return
 }
 }

+ 7 - 0
models/tables/edb_data/update.go

@@ -41,5 +41,12 @@ func ModifyEdbDataGl(edbInfoId int64, dataTime, value string) (err error) {
 	sql := ` UPDATE edb_data_gl SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
 	sql := ` UPDATE edb_data_gl SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
 	err = global.MYSQL["data"].Exec(sql, value, edbInfoId, dataTime).Error
 	err = global.MYSQL["data"].Exec(sql, value, edbInfoId, dataTime).Error
 
 
+	return
+}
+
+func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
+	sql := ` UPDATE edb_info SET start_date=?,end_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?,modify_time=NOW() WHERE edb_info_id=? `
+	err = global.MYSQL["data"].Exec(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, edbInfoId).Error
+
 	return
 	return
 }
 }

+ 41 - 33
services/chart/chart_info.go

@@ -5,6 +5,7 @@ import (
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/global"
 	chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
 	chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
 	chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
 	chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
+	edbDataModel "hongze/hongze_yb/models/tables/edb_data"
 	edbInfoModel "hongze/hongze_yb/models/tables/edb_info"
 	edbInfoModel "hongze/hongze_yb/models/tables/edb_info"
 	"hongze/hongze_yb/utils"
 	"hongze/hongze_yb/utils"
 	"sort"
 	"sort"
@@ -258,8 +259,7 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 			if err != nil {
 			if err != nil {
 				errMsg = "RefreshAllEdbDataByDl Err:" + err.Error()
 				errMsg = "RefreshAllEdbDataByDl Err:" + err.Error()
 			}
 			}
-		}
-		/*else if source == utils.DATA_SOURCE_SH {
+		} else if source == utils.DATA_SOURCE_SH {
 			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
 			endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).Format(utils.FormatDate)
 			err = RefreshEdbDataBySh(edbInfoId, edbCode, startDate, endDate)
 			err = RefreshEdbDataBySh(edbInfoId, edbCode, startDate, endDate)
 			if err != nil {
 			if err != nil {
@@ -283,22 +283,22 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 			if err != nil {
 			if err != nil {
 				errMsg = "RefreshEdbDataByGie Err:" + err.Error()
 				errMsg = "RefreshEdbDataByGie Err:" + err.Error()
 			}
 			}
-		}*/
+		}
 
 
-		/*maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
+		maxAndMinItem, err := edbDataModel.GetEdbInfoMaxAndMinInfo(source, edbCode)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
 		if maxAndMinItem != nil {
 		if maxAndMinItem != nil {
-			err = data_manage.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
+			err = edbDataModel.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}
-		}*/
+		}
 	}
 	}
 
 
 	//endDate := "" //计算指标不限制日期
 	//endDate := "" //计算指标不限制日期
-	//刷新相关计算指标
+	////刷新相关计算指标
 	//for _, v := range calculateArr {
 	//for _, v := range calculateArr {
 	//	edbInfo := calculateMap[v]
 	//	edbInfo := calculateMap[v]
 	//	if edbInfo == nil {
 	//	if edbInfo == nil {
@@ -308,6 +308,14 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 	//	source := edbInfo.Source
 	//	source := edbInfo.Source
 	//	edbCode := edbInfo.EdbCode
 	//	edbCode := edbInfo.EdbCode
 	//
 	//
+	//
+	//	/*startDate = bv.StartDate.Format(utils.FormatDate)
+	//	sTime, err := time.Parse(utils.FormatDate, bv.EndDate.Format(utils.FormatDate))
+	//	if err != nil {
+	//		return err
+	//	}
+	//	startDate = sTime.Format(utils.FormatDate)*/
+	//
 	//	if source == utils.DATA_SOURCE_CALCULATE {
 	//	if source == utils.DATA_SOURCE_CALCULATE {
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
 	//		sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
@@ -317,9 +325,9 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 	//		startDate = sTime.Format(utils.FormatDate)
 	//		startDate = sTime.Format(utils.FormatDate)
 	//
 	//
 	//		var edbInfoIdBytes []string
 	//		var edbInfoIdBytes []string
-	//		calculateMap, err := data_manage.GetEdbInfoCalculateDetail(edbInfoId, edbInfo.Source)
+	//		calculateMap, err := edbInfoModel.GetEdbInfoCalculateDetail(edbInfoId, edbInfo.Source)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		var formulaStr string
 	//		var formulaStr string
@@ -333,90 +341,90 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 	//		}
 	//		}
 	//		err = data_manage.RefreshAllCalculate(edbInfoList, int(edbInfoId), source, edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
 	//		err = data_manage.RefreshAllCalculate(edbInfoList, int(edbInfoId), source, edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshCalculate Err:" + err.Error()
+	//			errmsg = "RefreshCalculate Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY { //刷新累计值转月值
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY { //刷新累计值转月值
 	//		calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
 	//		calculateLjzzy, err := data_manage.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		err = data_manage.RefreshAllCalculateLjzzy(edbInfoId, source, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
 	//		err = data_manage.RefreshAllCalculateLjzzy(edbInfoId, source, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateLjzzy Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateLjzzy Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_TBZ { //刷新同比值
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_TBZ { //刷新同比值
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateTbzDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		err = data_manage.RefreshAllCalculateTbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
 	//		err = data_manage.RefreshAllCalculateTbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateTbz Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateTbz Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_TCZ { //同差值
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_TCZ { //同差值
 	//		calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
 	//		calculateTcz, err := data_manage.GetEdbInfoCalculateTczDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTcz.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		err = data_manage.RefreshAllCalculateTcz(edbInfoId, source, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
 	//		err = data_manage.RefreshAllCalculateTcz(edbInfoId, source, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshCalculateTcz Err:" + err.Error()
+	//			errmsg = "RefreshCalculateTcz Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS { //N数值移动平均计算
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS { //N数值移动平均计算
 	//		calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
 	//		calculateNszydpjjs, err := data_manage.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		err = data_manage.RefreshAllCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode, startDate)
 	//		err = data_manage.RefreshAllCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode, startDate)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
+	//			errmsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_HBZ { //刷新环比值
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_HBZ { //刷新环比值
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateHbzDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
@@ -424,18 +432,18 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		err = data_manage.RefreshAllCalculateHbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
 	//		err = data_manage.RefreshAllCalculateHbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateHbz Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateHbz Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_HCZ { //刷新环差值
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_HCZ { //刷新环差值
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateHczDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
@@ -443,37 +451,37 @@ func RefreshChartInfo(chartInfoId int) (err error) {
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
 	//		err = data_manage.RefreshAllCalculateHcz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
 	//		err = data_manage.RefreshAllCalculateHcz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateHcz Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateHcz Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_BP { //刷新变频
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_BP { //刷新变频
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
 	//		calculateTbz, err := data_manage.GetEdbInfoCalculateBpDetail(edbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
+	//			errmsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		fromEdbInfo, err := data_manage.GetEdbInfoById(calculateTbz.FromEdbInfoId)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "GetEdbInfoById Err:" + err.Error()
+	//			errmsg = "GetEdbInfoById Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//		startDate = edbInfo.StartDate
 	//		startDate = edbInfo.StartDate
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		endDate = time.Now().Format(utils.FormatDate)
 	//		err = data_manage.RefreshAllCalculateBp(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
 	//		err = data_manage.RefreshAllCalculateBp(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateBp Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateBp Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_ZJPJ { //刷新直接拼接数据
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_ZJPJ { //刷新直接拼接数据
 	//		err = data_manage.RefreshAllCalculateZjpj(edbInfo)
 	//		err = data_manage.RefreshAllCalculateZjpj(edbInfo)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateZjpj Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateZjpj Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ { //刷新累计值同比拼接数据
 	//	} else if source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ { //刷新累计值同比拼接数据
 	//		err = data_manage.RefreshAllCalculateLjztbpj(edbInfo)
 	//		err = data_manage.RefreshAllCalculateLjztbpj(edbInfo)
 	//		if err != nil {
 	//		if err != nil {
-	//			errMsg = "RefreshAllCalculateLjztbpj Err:" + err.Error()
+	//			errmsg = "RefreshAllCalculateLjztbpj Err:" + err.Error()
 	//			return err
 	//			return err
 	//		}
 	//		}
 	//	}
 	//	}

+ 431 - 0
services/chart/edb_data.go

@@ -1286,5 +1286,436 @@ func RefreshEdbDataByDl(edbInfoId int, edbCode, startDate, endDate string) (err
 		}
 		}
 	}
 	}
 
 
+	return
+}
+
+// RefreshEdbDataBySh 刷新上期所指标数据
+func RefreshEdbDataBySh(edbInfoId int, edbCode, startDate, endDate string) (err error) {
+
+	tx := global.MYSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.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 := edbDataModel.GetShDataByTradeCode(condition, pars)
+
+	addSql := ` INSERT INTO edb_data_sh(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 := edbDataModel.GetEdbDataShByCodeAndDate(edbCode, v.DataTime)
+			if err != nil && err != 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 {
+				updataSql := ` UPDATE edb_data_sh SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
+				err = tx.Exec(updataSql, value, edbInfoId, v.DataTime).Error
+				if err != nil {
+					return err
+				}
+			}
+		}
+		existMap[v.DataTime] = value
+	}
+	if isAdd {
+		addSql = strings.TrimRight(addSql, ",")
+		err = tx.Exec(addSql).Error
+		//_, err = o.Raw(addSql).Exec()
+		if err != nil {
+			return err
+		}
+	}
+
+	return
+}
+
+// RefreshEdbDataByCffex 刷新中金所指标数据
+func RefreshEdbDataByCffex(edbInfoId int, edbCode, startDate, endDate string) (err error) {
+	tx := global.MYSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.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 := edbDataModel.GetCffexDataByTradeCode(condition, pars)
+
+	addSql := ` INSERT INTO edb_data_cffex(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 := edbDataModel.GetEdbDataCffexByCodeAndDate(edbCode, v.DataTime)
+			if err != nil && err != 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 {
+				updateSql := ` UPDATE edb_data_cffex SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
+				err = tx.Exec(updateSql, value, edbInfoId, v.DataTime).Error
+
+				if err != nil {
+					return err
+				}
+			}
+		}
+		existMap[v.DataTime] = value
+	}
+	if isAdd {
+		addSql = strings.TrimRight(addSql, ",")
+		err = tx.Exec(addSql).Error
+		//_, err = o.Raw(addSql).Exec()
+		if err != nil {
+			return err
+		}
+	}
+	return
+}
+
+// RefreshEdbDataByShfe 刷新上期能源指标数据
+func RefreshEdbDataByShfe(edbInfoId int, edbCode, startDate, endDate string) (err error) {
+
+	tx := global.MYSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.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 := edbDataModel.GetShfeDataByTradeCode(condition, pars)
+
+	addSql := ` INSERT INTO edb_data_ine(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 := edbDataModel.GetEdbDataShfeByCodeAndDate(edbCode, v.DataTime)
+			if err != nil && err != 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 {
+				updateSql := ` UPDATE edb_data_ine SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
+				err = tx.Exec(updateSql, value, edbInfoId, v.DataTime).Error
+				if err != nil {
+					return err
+				}
+			}
+		}
+		existMap[v.DataTime] = value
+	}
+	if isAdd {
+		addSql = strings.TrimRight(addSql, ",")
+		err = tx.Exec(addSql).Error
+		if err != nil {
+			return err
+		}
+	}
+	return
+}
+
+// RefreshEdbDataByGie 刷新欧洲天然气指标数据
+func RefreshEdbDataByGie(edbInfoId int, edbCode, startDate, endDate string) (err error) {
+
+	tx := global.MYSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			tx.Rollback()
+		} else {
+			tx.Commit()
+		}
+	}()
+
+	if err != nil {
+		fmt.Println("refresh err:", err)
+		return
+	}
+	var suffix string
+	l := len(edbCode)
+	if strings.Contains(edbCode[l-2:], "GS") {
+		suffix = "GS"
+	} else if strings.Contains(edbCode[l-1:], "F") {
+		suffix = "F"
+	} else if strings.Contains(edbCode[l-1:], "T") {
+		suffix = "T"
+	} else if strings.Contains(edbCode[l-2:], "In") {
+		suffix = "In"
+	} else if strings.Contains(edbCode[l-3:], "Out") {
+		suffix = "Out"
+	} else if strings.Contains(edbCode[l-3:], "WGV") {
+		suffix = "WGV"
+	} else if strings.Contains(edbCode[l-2:], "IC") {
+		suffix = "IC"
+	} else if strings.Contains(edbCode[l-2:], "WC") {
+		suffix = "WC"
+	} else {
+		suffix = ""
+	}
+	edbInfoIdStr := strconv.Itoa(edbInfoId)
+	//计算数据
+	var condition string
+	var pars []interface{}
+
+	if edbCode != "" {
+		condition += " AND eic_code=? "
+		pars = append(pars, edbCode[:l-len(suffix)])
+	}
+
+	if startDate != "" {
+		condition += " AND gas_day_started_on>=? "
+		pars = append(pars, startDate)
+	}
+
+	if endDate != "" {
+		condition += " AND gas_day_started_on<=? "
+		pars = append(pars, endDate)
+	}
+
+	eicDataList, err := edbDataModel.GetGieDataByTradeCode(condition, pars)
+	fmt.Println("eicDataList", len(eicDataList))
+	addSql := ` INSERT INTO edb_data_gie(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 eicDataList {
+		var value string
+		if suffix == "GS" {
+			value = v.GasInStorage
+		} else if suffix == "F" {
+			value = v.Full
+		} else if suffix == "T" {
+			value = v.Trend
+		} else if suffix == "In" {
+			value = v.Injection
+		} else if suffix == "Out" {
+			value = v.Withdrawal
+		} else if suffix == "WGV" {
+			value = v.WorkingGasVolume
+		} else if suffix == "IC" {
+			value = v.InjectionCapacity
+		} else if suffix == "WC" {
+			value = v.WithdrawalCapacity
+		}
+		item := v
+		itemValue := value
+		if _, ok := existMap[v.GasDayStartedOn]; !ok {
+			count, err := edbDataModel.GetEdbDataGieByCodeAndDate(edbCode, v.GasDayStartedOn)
+			if err != nil && err != utils.ErrNoRow {
+				return err
+			}
+			if count <= 0 {
+				eDate := item.GasDayStartedOn
+				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 {
+				updateSql := ` UPDATE edb_data_gie SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
+				err = tx.Exec(updateSql, value, edbInfoId, v.GasDayStartedOn).Error
+				if err != nil {
+					return err
+				}
+			}
+		}
+		existMap[v.GasDayStartedOn] = value
+	}
+	if isAdd {
+		addSql = strings.TrimRight(addSql, ",")
+		err = tx.Exec(addSql).Error
+		if err != nil {
+			return err
+		}
+	}
 	return
 	return
 }
 }