浏览代码

Merge remote-tracking branch 'origin/debug' into debug

Roc 1 年之前
父节点
当前提交
556cefc139

+ 16 - 6
controllers/data_manage/edb_info.go

@@ -3188,14 +3188,24 @@ func (this *ChartInfoController) EdbInfoData() {
 		latestDateT, _ := time.Parse(utils.FormatDate, edbInfo.LatestDate)
 		maxYear = latestDateT.Year()
 	}
-
+	dataList := make([]*data_manage.EdbDataList, 0)
 	startDate, endDate = utils.GetDateByDateTypeV2(dateType, startDate, endDate, startYear, maxYear)
-	dataList, err := data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
+	if edbInfo.SubSource == 0 {
+		dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfoId, startDate, endDate)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
+	} else {
+		dataList, err = data_manage.GetEdbDataWsdList(edbInfoId, startDate, endDate)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
 	}
+
 	fullEdb := new(data_manage.EdbInfoFullClassify)
 	resp := new(data_manage.EdbInfoDataFullClassifyResp)
 	classifyList, err, errMsg := data.GetFullClassifyByClassifyId(edbInfo.ClassifyId)

+ 2 - 0
controllers/data_manage/predict_edb_info.go

@@ -913,6 +913,8 @@ func (this *PredictEdbInfoController) Detail() {
 				RuleType:         v.RuleType,
 				FixedValue:       v.FixedValue,
 				Value:            v.Value,
+				EmptyType:        v.EmptyType,
+				MaxEmptyType:     v.MaxEmptyType,
 				EndDate:          v.EndDate,
 				ModifyTime:       v.ModifyTime,
 				CreateTime:       v.CreateTime,

+ 36 - 0
models/data_manage/edb_data_wind_wsd.go

@@ -0,0 +1,36 @@
+package data_manage
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+)
+
+func ModifyEdbInfoWindWsdDataStatus(edbInfoId int64, edbCode string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	tableName := `edb_data_wind_wsd`
+	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()
+	return
+}
+
+// GetEdbDataList 获取指标的数据(日期正序返回)
+func GetEdbDataWsdList(endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
+	tableName := `edb_data_wind_wsd`
+	var pars []interface{}
+	sql := `SELECT edb_data_id,edb_info_id,data_time,value,data_timestamp FROM %s WHERE edb_info_id=? `
+	if startDate != "" {
+		sql += ` AND data_time>=? `
+		pars = append(pars, startDate)
+	}
+	if endDate != "" {
+		sql += ` AND data_time<=? `
+		pars = append(pars, endDate)
+	}
+
+	sql += ` ORDER BY data_time ASC `
+	sql = fmt.Sprintf(sql, tableName)
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Raw(sql, endInfoId, pars).QueryRows(&list)
+	return
+}

+ 2 - 0
models/data_manage/edb_info.go

@@ -305,6 +305,8 @@ type EdbInfoList struct {
 	IsEnEdb          bool                    `description:"是否展示英文标识"`
 	DataInsertConfig EdbDataInsertConfigItem `description:"指标数据插入配置"`
 	DataDateType     string                  `description:"数据日期类型,枚举值:交易日、自然日"`
+	EmptyType        int                     `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	MaxEmptyType     int                     `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
 }
 
 type EdbDataInsertConfigItem struct {

+ 2 - 0
models/data_manage/predict_edb_conf.go

@@ -29,6 +29,8 @@ type PredictEdbConfDetail struct {
 	RuleType         int                                     `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差"`
 	FixedValue       float64                                 `description:"固定值"`
 	Value            string                                  `description:"配置的值"`
+	EmptyType        int                                     `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	MaxEmptyType     int                                     `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
 	EndDate          time.Time                               `description:"截止日期"`
 	ModifyTime       time.Time                               `description:"修改时间"`
 	CreateTime       time.Time                               `description:"添加时间"`

+ 1 - 1
services/data/edb_info.go

@@ -3036,7 +3036,7 @@ func EdbInfoWsdAdd(item *data_manage.EdbInfo) (edbInfo *data_manage.EdbInfo, err
 	}
 	edbInfo.EdbInfoId = int(edbInfoId)
 	//保存数据
-	err = data_manage.ModifyEdbInfoDataStatus(edbInfoId, source, item.EdbCode)
+	err = data_manage.ModifyEdbInfoWindWsdDataStatus(edbInfoId, item.EdbCode)
 	if err != nil {
 		errMsg = "保存失败"
 		err = errors.New("修改数据对应指标ID失败,Err:" + err.Error())