Browse Source

手工数据录入优化-最新日期-详情结构调整

gmy 6 months ago
parent
commit
eb5cb6e6a2
3 changed files with 51 additions and 71 deletions
  1. 30 40
      controllers/data_manage/manual_edb.go
  2. 1 1
      go.mod
  3. 20 30
      models/target.go

+ 30 - 40
controllers/data_manage/manual_edb.go

@@ -108,7 +108,7 @@ func (c *ManualEdbController) EdbDetail() {
 			return
 		}
 
-		manualEdbInfo.NextDataTimeList = dataNextDateTime
+		manualEdbInfo.DataList = dataNextDateTime
 	}
 
 	resp := models.TargetDetailResp{
@@ -123,50 +123,40 @@ func (c *ManualEdbController) EdbDetail() {
 }
 
 // 封装指标数据下期时间
-func fillDataNextDateTime(list []*models.Edbdata) ([]*models.EdbDataNextDateTime, error) {
-	var nextDataDateTimeList []*models.EdbDataNextDateTime
-	var indexCodes []string
-	for _, item := range list {
-		indexCodes = append(indexCodes, item.TradeCode)
+func fillDataNextDateTime(list []*models.Edbdata) ([]*models.Edbdata, error) {
+	if len(list) == 0 {
+		return nil, nil
 	}
+	nextDataDateTime := models.Edbdata{}
+	indexCodes := []string{list[0].TradeCode}
 	edbinfoList, err := models.GetEdbinfoListByCodeListByCodeIdList(indexCodes)
 	if err != nil {
 		return nil, err
 	}
-	edbinfoMap := make(map[string]*models.Edbinfo)
-	for _, item := range edbinfoList {
-		edbinfoMap[item.TradeCode] = item
-	}
-
-	for _, item := range list {
-		nextDataDateTime := &models.EdbDataNextDateTime{
-			TradeCode:  item.TradeCode,
-			Dt:         item.Dt,
-			Close:      item.Close,
-			ModifyTime: item.ModifyTime,
-		}
-
-		date := utils.StrDateToDate(item.Dt)
-		frequency := edbinfoMap[item.TradeCode].Frequency
-		switch frequency {
-		case "日度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 1).Format(utils.FormatDate)
-		case "周度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 7).Format(utils.FormatDate)
-		case "旬度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 10).Format(utils.FormatDate)
-		case "月度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 1, 0).Format(utils.FormatDate)
-		case "季度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 3, 0).Format(utils.FormatDate)
-		case "半年度":
-			nextDataDateTime.NextDateTime = date.AddDate(0, 6, 0).Format(utils.FormatDate)
-		case "年度":
-			nextDataDateTime.NextDateTime = date.AddDate(1, 0, 0).Format(utils.FormatDate)
-		}
-		nextDataDateTimeList = append(nextDataDateTimeList, nextDataDateTime)
-	}
-	return nextDataDateTimeList, nil
+	if len(edbinfoList) == 0 {
+		return list, nil
+	}
+
+	date := utils.StrDateToDate(list[0].Dt)
+	frequency := edbinfoList[0].Frequency
+	switch frequency {
+	case "日度":
+		nextDataDateTime.Dt = date.AddDate(0, 0, 1).Format(utils.FormatDate)
+	case "周度":
+		nextDataDateTime.Dt = date.AddDate(0, 0, 7).Format(utils.FormatDate)
+	case "旬度":
+		nextDataDateTime.Dt = date.AddDate(0, 0, 10).Format(utils.FormatDate)
+	case "月度":
+		nextDataDateTime.Dt = date.AddDate(0, 1, 0).Format(utils.FormatDate)
+	case "季度":
+		nextDataDateTime.Dt = date.AddDate(0, 3, 0).Format(utils.FormatDate)
+	case "半年度":
+		nextDataDateTime.Dt = date.AddDate(0, 6, 0).Format(utils.FormatDate)
+	case "年度":
+		nextDataDateTime.Dt = date.AddDate(1, 0, 0).Format(utils.FormatDate)
+	}
+	list = append(list, &nextDataDateTime)
+	return list, nil
 }
 
 // ClassifyEdbList

+ 1 - 1
go.mod

@@ -33,6 +33,7 @@ require (
 	github.com/mojocn/base64Captcha v1.3.6
 	github.com/nosixtools/solarlunar v0.0.0-20211112060703-1b6dea7b4a19
 	github.com/olivere/elastic/v7 v7.0.32
+	github.com/pdfcpu/pdfcpu v0.8.0
 	github.com/qiniu/qmgo v1.1.8
 	github.com/rdlucklib/rdluck_tools v1.0.3
 	github.com/shopspring/decimal v1.3.1
@@ -108,7 +109,6 @@ require (
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
 	github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
-	github.com/pdfcpu/pdfcpu v0.8.0 // indirect
 	github.com/pelletier/go-toml v1.9.2 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/prometheus/client_golang v1.16.0 // indirect

+ 20 - 30
models/target.go

@@ -72,15 +72,6 @@ type Edbdata struct {
 	ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
 }
 
-type EdbDataNextDateTime struct {
-	TradeCode  string    `orm:"column(TRADE_CODE);pk" description:"指标编码"`
-	Dt         string    `orm:"column(DT)" description:"日期"`
-	Close      string    `orm:"column(CLOSE)" description:"值"`
-	ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
-
-	NextDateTime string `description:"下期日期"`
-}
-
 func GetDataInfo(tradeCode, creteDate string) (item *Edbdata, err error) {
 	sql := " SELECT * FROM edbdata WHERE TRADE_CODE=? AND DT=? "
 	o := orm.NewOrmUsingDB("edb")
@@ -1274,27 +1265,26 @@ func GetLzFrequency(productName string) (items []*int, err error) {
 
 // EdbInfoItem
 type EdbInfoItem struct {
-	TradeCode        string                 `orm:"column(TRADE_CODE);pk" description:"指标code"`
-	SecName          string                 `orm:"column(SEC_NAME);" description:"指标名称"`
-	Unit             string                 `orm:"column(UNIT);" description:"单位"`
-	Remark           string                 `orm:"column(REMARK);" description:"备注"`
-	Frequency        string                 `description:"频度"`
-	ClassifyId       int                    `description:"分类id"`
-	ClassifyName     string                 `description:"分类名称"`
-	CreateDate       string                 `description:"创建时间"`
-	UserId           int                    `description:"录入用户id"`
-	UserName         string                 `description:"录入用户名称"`
-	NoticeTime       string                 `description:"通知时间"`
-	Mobile           string                 `description:"录入者手机号"`
-	ModifyDate       string                 `description:"待更新日期"`
-	ModifyTime       string                 `description:"最近一次更新时间"`
-	Status           string                 `description:"状态:未完成/完成"`
-	IsJoinEdb        int8                   `description:"指标库是否已添加:0-否;1-是"`
-	StartDate        string                 `description:"数据开始日期"`
-	EndDate          string                 `description:"数据结束日期"`
-	LatestValue      float64                `description:"指标最新值"`
-	DataList         []*Edbdata             `description:"指标数据列表"`
-	NextDataTimeList []*EdbDataNextDateTime `description:"下期数据时间列表"`
+	TradeCode    string     `orm:"column(TRADE_CODE);pk" description:"指标code"`
+	SecName      string     `orm:"column(SEC_NAME);" description:"指标名称"`
+	Unit         string     `orm:"column(UNIT);" description:"单位"`
+	Remark       string     `orm:"column(REMARK);" description:"备注"`
+	Frequency    string     `description:"频度"`
+	ClassifyId   int        `description:"分类id"`
+	ClassifyName string     `description:"分类名称"`
+	CreateDate   string     `description:"创建时间"`
+	UserId       int        `description:"录入用户id"`
+	UserName     string     `description:"录入用户名称"`
+	NoticeTime   string     `description:"通知时间"`
+	Mobile       string     `description:"录入者手机号"`
+	ModifyDate   string     `description:"待更新日期"`
+	ModifyTime   string     `description:"最近一次更新时间"`
+	Status       string     `description:"状态:未完成/完成"`
+	IsJoinEdb    int8       `description:"指标库是否已添加:0-否;1-是"`
+	StartDate    string     `description:"数据开始日期"`
+	EndDate      string     `description:"数据结束日期"`
+	LatestValue  float64    `description:"指标最新值"`
+	DataList     []*Edbdata `description:"指标数据列表"`
 }
 
 // GetTargetItemList 获取指标列表数据