Răsfoiți Sursa

fix:卓创红期

Roc 1 lună în urmă
părinte
comite
57832f127c

+ 8 - 4
controllers/data_manage/sci_hq_data.go

@@ -1430,7 +1430,7 @@ func (this *SciHqDataController) ExportSciHqList() {
 		condition += ` AND classify_id=?`
 		pars = append(pars, classifyId)
 	}
-	if indexCode != "" {
+	if indexCode != "" && indexCode != "0" {
 		condition += ` AND index_code=? `
 		pars = append(pars, indexCode)
 	}
@@ -1470,10 +1470,14 @@ func (this *SciHqDataController) ExportSciHqList() {
 			fmt.Println("获取数据时间失败", err.Error())
 			return
 		}
+		dataTimeStrList := make([]string, 0)
+		for _, v := range dataTimeList {
+			dataTimeStrList = append(dataTimeStrList, v.Format(utils.FormatDate))
+		}
 
 		// 添加excel左侧指标日期
 		setRowIndex := 4
-		for rk, dv := range dataTimeList {
+		for rk, dv := range dataTimeStrList {
 			rowIndex := setRowIndex + rk
 			row := sheetNew.Row(rowIndex)
 			displayDate, _ := time.Parse(utils.FormatDate, dv)
@@ -1509,12 +1513,12 @@ func (this *SciHqDataController) ExportSciHqList() {
 			unitRow.AddCell().SetValue(sv.Unit)
 
 			lastModifyDateRow.AddCell().SetValue(sv.ModifyTime.Format(utils.FormatDate))
-			dataInfoMap := make(map[string]*data_manage.BaseFromSciHqData)
+			dataInfoMap := make(map[string]*data_manage.BaseFromSciHqDataItem)
 			for _, v := range dataList {
 				dataInfoMap[v.DataTime] = v
 			}
 
-			for rk, dtv := range dataTimeList {
+			for rk, dtv := range dataTimeStrList {
 				rowIndex := setRowIndex + rk
 				row := sheetNew.Row(rowIndex)
 				displayDateCell := row.AddCell()

+ 49 - 6
models/data_manage/base_from_sci_hq_data.go

@@ -11,23 +11,57 @@ type BaseFromSciHqData struct {
 	SciHqDataId          int       `orm:"column(sci_hq_data_id);pk;auto"`
 	BaseFromSciHqIndexId int       `description:"指标id"`
 	IndexCode            string    `description:"指标编码"`
-	DataTime             string    `description:"数据日期"`
+	DataTime             time.Time `description:"数据日期"`
 	Value                float64   `description:"数据值"`
 	CreateTime           time.Time `description:"创建时间"`
 	ModifyTime           time.Time `description:"修改时间"`
 	DataTimestamp        int64     `description:"数据时间戳"`
 }
 
+type BaseFromSciHqDataItem struct {
+	SciHqDataId          int     `orm:"column(sci_hq_data_id);pk;auto"`
+	BaseFromSciHqIndexId int     `description:"指标id"`
+	IndexCode            string  `description:"指标编码"`
+	DataTime             string  `description:"数据日期"`
+	Value                float64 `description:"数据值"`
+	CreateTime           string  `description:"创建时间"`
+	ModifyTime           string  `description:"修改时间"`
+	DataTimestamp        int64   `description:"数据时间戳"`
+}
+
+func (m *BaseFromSciHqData) ToItem() (item *BaseFromSciHqDataItem) {
+	return &BaseFromSciHqDataItem{
+		SciHqDataId:          m.SciHqDataId,
+		BaseFromSciHqIndexId: m.BaseFromSciHqIndexId,
+		IndexCode:            m.IndexCode,
+		DataTime:             m.DataTime.Format(utils.FormatDate),
+		Value:                m.Value,
+		CreateTime:           m.CreateTime.Format(utils.FormatDateTime),
+		ModifyTime:           m.ModifyTime.Format(utils.FormatDateTime),
+		DataTimestamp:        m.DataTimestamp,
+	}
+}
+
 // GetSciHqDataByIndexId 根据指标id获取指标数据
-func GetSciHqDataByIndexId(indexId int) (items []*BaseFromSciHqData, err error) {
+func GetSciHqDataByIndexId(indexId int) (items []*BaseFromSciHqDataItem, err error) {
+	var ormList []*BaseFromSciHqData
+	items = make([]*BaseFromSciHqDataItem, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM base_from_sci_hq_data WHERE base_from_sci_hq_index_id=? ORDER BY data_time DESC`
-	_, err = o.Raw(sql, indexId).QueryRows(&items)
+	_, err = o.Raw(sql, indexId).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
+
 	return
 }
 
 // GetSciHqDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
-func GetSciHqDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
+func GetSciHqDataDataTimeByIndexId(indexIdList []int) (items []time.Time, err error) {
 	if len(indexIdList) == 0 {
 		return
 	}
@@ -37,10 +71,19 @@ func GetSciHqDataDataTimeByIndexId(indexIdList []int) (items []string, err error
 	return
 }
 
-func GetSciHqIndexDataByCode(indexCode string) (items []*BaseFromSciHqData, err error) {
+func GetSciHqIndexDataByCode(indexCode string) (items []*BaseFromSciHqDataItem, err error) {
+	var ormList []*BaseFromSciHqData
+	items = make([]*BaseFromSciHqDataItem, 0)
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM base_from_sci_hq_data WHERE index_code=? ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	_, err = o.Raw(sql, indexCode).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToItem())
+	}
+
 	return
 }
 

+ 104 - 6
models/data_manage/base_from_sci_hq_index.go

@@ -8,14 +8,14 @@ import (
 )
 
 type BaseFromSciHqIndex struct {
-	BaseFromSciHqIndexId int       `orm:"column(base_from_sci_index_id);pk;auto"`
+	BaseFromSciHqIndexId int       `orm:"column(base_from_sci_hq_index_id);pk;auto"`
 	ClassifyId           int       `description:"指标分类id"`
 	IndexCode            string    `description:"指标编码"`
 	IndexName            string    `description:"指标名称"`
 	Unit                 string    `description:"单位"`
 	Frequency            string    `description:"频度"`
-	StartDate            string    `description:"开始日期"`
-	EndDate              string    `description:"结束日期"`
+	StartDate            time.Time `description:"开始日期"`
+	EndDate              time.Time `description:"结束日期"`
 	Sort                 int       `description:"排序"`
 	LatestValue          float64   `description:"最新值"`
 	LatestDate           time.Time `description:"最后更新时间"`
@@ -25,6 +25,44 @@ type BaseFromSciHqIndex struct {
 	ModifyTime           time.Time
 }
 
+func (m *BaseFromSciHqIndex) ToView() (item *BaseFromSciHqIndexView) {
+	return &BaseFromSciHqIndexView{
+		BaseFromSciHqIndexId: m.BaseFromSciHqIndexId,
+		//EdbInfoId:            0,
+		//ClassifyId:  0,
+		IndexCode: m.IndexCode,
+		IndexName: m.IndexName,
+		//UniqueCode:  "",
+		Frequency:   m.Frequency,
+		Unit:        m.Unit,
+		StartDate:   m.StartDate.Format(utils.FormatDate),
+		EndDate:     m.EndDate.Format(utils.FormatDate),
+		Sort:        m.Sort,
+		LatestValue: m.LatestValue,
+		LatestDate:  m.LatestDate.Format(utils.FormatDate),
+		EdbExist:    0,
+		ModifyTime:  m.ModifyTime.Format(utils.FormatDateTime),
+	}
+}
+
+type BaseFromSciHqIndexViewOrm struct {
+	BaseFromSciHqIndexId int       `orm:"pk"`
+	EdbInfoId            int       `description:"指标库id"`
+	ClassifyId           int       `description:"指标分类id"`
+	IndexCode            string    `description:"指标编码"`
+	IndexName            string    `description:"指标名称"`
+	UniqueCode           string    `description:"唯一code"`
+	Frequency            string    `description:"频度"`
+	Unit                 string    `description:"单位"`
+	StartDate            time.Time `description:"开始日期"`
+	EndDate              time.Time `description:"结束日期"`
+	Sort                 int       `description:"排序"`
+	LatestValue          float64   `description:"最新值"`
+	LatestDate           time.Time `description:"最后更新时间"`
+	EdbExist             int       `description:"edb是否存在"`
+	ModifyTime           time.Time
+}
+
 type BaseFromSciHqIndexView struct {
 	BaseFromSciHqIndexId int     `orm:"pk"`
 	EdbInfoId            int     `description:"指标库id"`
@@ -43,6 +81,26 @@ type BaseFromSciHqIndexView struct {
 	ModifyTime           string
 }
 
+func (m *BaseFromSciHqIndexViewOrm) ToView() (item *BaseFromSciHqIndexView) {
+	return &BaseFromSciHqIndexView{
+		BaseFromSciHqIndexId: m.BaseFromSciHqIndexId,
+		EdbInfoId:            m.EdbInfoId,
+		ClassifyId:           m.ClassifyId,
+		IndexCode:            m.IndexCode,
+		IndexName:            m.IndexName,
+		UniqueCode:           m.UniqueCode,
+		Frequency:            m.Frequency,
+		Unit:                 m.Unit,
+		StartDate:            m.StartDate.Format(utils.FormatDate),
+		EndDate:              m.EndDate.Format(utils.FormatDate),
+		Sort:                 m.Sort,
+		LatestValue:          m.LatestValue,
+		LatestDate:           m.LatestDate.Format(utils.FormatDate),
+		EdbExist:             m.EdbExist,
+		ModifyTime:           m.ModifyTime.Format(utils.FormatDateTime),
+	}
+}
+
 func (b *BaseFromSciHqIndex) Update(cols []string) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	_, err = o.Update(b, cols...)
@@ -90,6 +148,9 @@ func GetSciHqIndexCountByCondition(condition string, pars []interface{}) (count
 
 // GetSciHqIndexAndEdbInfoByCondition 根据条件获取卓创红期index和指标库的信息
 func GetSciHqIndexAndEdbInfoByCondition(condition string, pars []interface{}) (items []*BaseFromSciHqIndexView, err error) {
+	var ormList []*BaseFromSciHqIndexViewOrm
+	items = make([]*BaseFromSciHqIndexView, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.*, e.edb_info_id FROM base_from_sci_hq_index AS b LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=? WHERE 1=1 `
 
@@ -97,7 +158,14 @@ func GetSciHqIndexAndEdbInfoByCondition(condition string, pars []interface{}) (i
 		sql += condition
 	}
 	sql += ` ORDER BY sort ASC `
-	_, err = o.Raw(sql, utils.DATA_SOURCE_SCI_HQ, pars).QueryRows(&items)
+	_, err = o.Raw(sql, utils.DATA_SOURCE_SCI_HQ, pars).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToView())
+	}
+
 	return
 }
 
@@ -142,13 +210,23 @@ func GetSciHqIndexCountByClassifyIds(classifyIds []int) (count int, err error) {
 
 // GetSciHqIndexByClassifyId 根据分类id获取卓创红期指标列表
 func GetSciHqIndexByClassifyId(classifyIds []int, startSize, pageSize int) (items []*BaseFromSciHqIndexView, err error) {
+	var ormList []*BaseFromSciHqIndexViewOrm
+	items = make([]*BaseFromSciHqIndexView, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.*, e.edb_info_id,
 	CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist
 	FROM base_from_sci_hq_index AS b
 	LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=88
 	WHERE b.classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) ORDER BY b.sort ASC LIMIT ?,? `
-	_, err = o.Raw(sql, classifyIds, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, classifyIds, startSize, pageSize).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToView())
+	}
+
 	return
 }
 
@@ -172,21 +250,41 @@ func GetSciHqIndexCount() (count int, err error) {
 }
 
 func GetSciHqIndexByPage(startSize, pageSize int) (items []*BaseFromSciHqIndexView, err error) {
+	var ormList []*BaseFromSciHqIndexViewOrm
+	items = make([]*BaseFromSciHqIndexView, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT b.*, e.edb_info_id,
 	CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist
 	FROM base_from_sci_hq_index AS b
 	LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=88
 	ORDER BY b.modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&ormList)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToView())
+	}
+
 	return
 }
 
 // GetSciHqIndexBaseInfoByClassifyId 根据分类id获取卓创红期指标列表
 func GetSciHqIndexBaseInfoByClassifyId(classifyId int) (items []*BaseFromSciHqIndexView, err error) {
+	var ormList []*BaseFromSciHqIndexViewOrm
+	items = make([]*BaseFromSciHqIndexView, 0)
+
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT base_from_sci_hq_index_id, classify_id, index_code, index_name, CONCAT(classify_id, '_', base_from_sci_hq_index_id) AS unique_code  FROM base_from_sci_hq_index WHERE classify_id = ? ORDER BY sort ASC `
 	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	if err != nil {
+		return
+	}
+	for _, ormItem := range ormList {
+		items = append(items, ormItem.ToView())
+	}
+
 	return
 }
 

+ 1 - 1
models/data_manage/response/sci_hq_data.go

@@ -31,5 +31,5 @@ type SciHqSingleDataResp struct {
 	FinishTime           string
 	CreateTime           string
 	ModifyTime           string
-	Data                 []*data_manage.BaseFromSciHqData
+	Data                 []*data_manage.BaseFromSciHqDataItem
 }