|
@@ -139,7 +139,7 @@ func (this *EdbInfoController) CCFIndexData() {
|
|
|
for _, v := range indexes {
|
|
|
indexCodes = append(indexCodes, v.IndexCode)
|
|
|
}
|
|
|
- indexCounts, e := data_manage.GetCCFIndexDataCountGroup(indexCodes)
|
|
|
+ /*indexCounts, e := data_manage.GetCCFIndexDataCountGroup(indexCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取指标数据总量失败, Err:" + err.Error()
|
|
@@ -148,7 +148,53 @@ func (this *EdbInfoController) CCFIndexData() {
|
|
|
countMap := make(map[string]int)
|
|
|
for _, v := range indexCounts {
|
|
|
countMap[v.IndexCode] = v.Count
|
|
|
+ }*/
|
|
|
+ edbInfoMap := make(map[string]*data_manage.EdbInfo)
|
|
|
+ dataMap := make(map[string][]*data_manage.BaseFromCCFData)
|
|
|
+ total := 0
|
|
|
+ if len(indexCodes) > 0 {
|
|
|
+ edbInfoList, err := data_manage.GetEdbInfoByEdbCodeList(utils.DATA_SOURCE_CCF, indexCodes)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据源失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range edbInfoList {
|
|
|
+ edbInfoMap[v.EdbCode] = v
|
|
|
+ }
|
|
|
+ // 首先对分类下的指标按照日期进行分页,再针对日期,进行排序
|
|
|
+ dataTimes, err := data_manage.GetCCFIndexDataTimePageByCodes(indexCodes, startSize, pageSize)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取指标数据日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(dataTimes) > 0 {
|
|
|
+ startDate := dataTimes[len(dataTimes)-1]
|
|
|
+ endDate := dataTimes[0]
|
|
|
+ // 把截止日往后加1天
|
|
|
+ endDateT, _ := time.ParseInLocation(utils.FormatDate, endDate, time.Local)
|
|
|
+ endDate = endDateT.AddDate(0, 0, 1).Format(utils.FormatDate)
|
|
|
+ dataList, e := data_manage.GetCCFIndexDataByDataTime(indexCodes, startDate, endDate)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //将数据按照指标进行分类
|
|
|
+ for _, v := range dataList {
|
|
|
+ dataMap[v.IndexCode] = append(dataMap[v.IndexCode], v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ total, err = data_manage.GetCCFIndexDataTimePageCount(indexCodes)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
|
|
|
resultList := make([]*data_manage.BaseFromCCFIndexList, 0)
|
|
|
for _, v := range indexes {
|
|
@@ -161,19 +207,24 @@ func (this *EdbInfoController) CCFIndexData() {
|
|
|
product.Frequency = v.Frequency
|
|
|
product.CreateTime = v.CreateTime
|
|
|
product.ModifyTime = v.ModifyTime
|
|
|
-
|
|
|
- total := countMap[v.IndexCode]
|
|
|
+ if edb, ok := edbInfoMap[v.IndexCode]; ok {
|
|
|
+ product.EdbInfoId = edb.EdbInfoId
|
|
|
+ product.EdbExist = 1
|
|
|
+ }
|
|
|
+ /*total := countMap[v.IndexCode]
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
dataList, e := data_manage.GetCCFIndexData(v.IndexCode, startSize, pageSize)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取数据失败"
|
|
|
br.ErrMsg = "获取指标数据失败,Err:" + e.Error()
|
|
|
return
|
|
|
+ }*/
|
|
|
+
|
|
|
+ dataListTmp, ok := dataMap[v.IndexCode]
|
|
|
+ if !ok {
|
|
|
+ dataListTmp = make([]*data_manage.BaseFromCCFData, 0)
|
|
|
}
|
|
|
- if dataList == nil {
|
|
|
- dataList = make([]*data_manage.BaseFromCCFData, 0)
|
|
|
- }
|
|
|
- product.DataList = dataList
|
|
|
+ product.DataList = dataListTmp
|
|
|
product.Paging = page
|
|
|
resultList = append(resultList, product)
|
|
|
}
|
|
@@ -359,27 +410,29 @@ func (this *EdbInfoController) ExportCCFList() {
|
|
|
br.Msg = "success"
|
|
|
return
|
|
|
}
|
|
|
- sheetNew := new(xlsx.Sheet)
|
|
|
- sheetNew, err = xlsxFile.AddSheet("CCF化纤")
|
|
|
+ //sheetNew := new(xlsx.Sheet)
|
|
|
+ //sheetNew, err = xlsxFile.AddSheet("CCF化纤")
|
|
|
|
|
|
//sheetNew.SetColWidth()
|
|
|
//获取指标数据
|
|
|
- windRow := sheetNew.AddRow()
|
|
|
+ /*windRow := sheetNew.AddRow()
|
|
|
secNameRow := sheetNew.AddRow()
|
|
|
indexCodeRow := sheetNew.AddRow()
|
|
|
frequencyRow := sheetNew.AddRow()
|
|
|
unitRow := sheetNew.AddRow()
|
|
|
- lastModifyDateRow := sheetNew.AddRow()
|
|
|
+ lastModifyDateRow := sheetNew.AddRow()*/
|
|
|
//获取分类下指标最大数据量
|
|
|
var dataMax int
|
|
|
- setRowIndex := 6
|
|
|
- indexCodeList := make([]string, 0)
|
|
|
+ //setRowIndex := 6
|
|
|
+ codeList := make([]string, 0)
|
|
|
+ frequenciesMap := make(map[string][]*data_manage.BaseFromCCFIndexList)
|
|
|
for _, v := range indexList {
|
|
|
- indexCodeList = append(indexCodeList, v.IndexCode)
|
|
|
+ codeList = append(codeList, v.IndexCode)
|
|
|
+ frequenciesMap[v.Frequency] = append(frequenciesMap[v.Frequency], v)
|
|
|
}
|
|
|
dataListMap := make(map[string][]*data_manage.BaseFromCCFData)
|
|
|
if len(indexList) > 0 {
|
|
|
- allDataList, e := data_manage.GetCCFIndexDataByCodes(indexCodeList)
|
|
|
+ allDataList, e := data_manage.GetCCFIndexDataByCodes(codeList)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取数据失败"
|
|
|
br.ErrMsg = "获取数据失败,Err:" + e.Error()
|
|
@@ -394,8 +447,118 @@ func (this *EdbInfoController) ExportCCFList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 按照频率分组排序
|
|
|
+ frequencies := []string{
|
|
|
+ "日度", "周度", "旬度", "月度", "季度", "半年度", "年度",
|
|
|
+ }
|
|
|
+ for _, frequency := range frequencies {
|
|
|
+ //获取指标
|
|
|
+ indexCodeList, ok := frequenciesMap[frequency]
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if len(indexCodeList) <= 0 {
|
|
|
+ fmt.Printf("sheet:%s, 不存在指标", frequency)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var sheetName string
|
|
|
+ switch frequency {
|
|
|
+ case "日度":
|
|
|
+ sheetName = "日度(Daily)"
|
|
|
+ case "周度":
|
|
|
+ sheetName = "周度(Weekly)"
|
|
|
+ case "旬度":
|
|
|
+ sheetName = "旬度(ten-day)"
|
|
|
+ case "月度":
|
|
|
+ sheetName = "月度(Monthly)"
|
|
|
+ case "季度":
|
|
|
+ sheetName = "季度(Quarterly)"
|
|
|
+ case "半年度":
|
|
|
+ sheetName = "半年度(Semi-annual)"
|
|
|
+ case "年度":
|
|
|
+ sheetName = "年度(Annual)"
|
|
|
+ default:
|
|
|
+ sheetName = "其他数据"
|
|
|
+ }
|
|
|
+ sheetNew, err := xlsxFile.AddSheet(sheetName)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("新增Sheet失败", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ secNameRow := sheetNew.AddRow()
|
|
|
+ frequencyRow := sheetNew.AddRow()
|
|
|
+ unitRow := sheetNew.AddRow()
|
|
|
+ lastModifyDateRow := sheetNew.AddRow()
|
|
|
+
|
|
|
+ var indexIdList []int
|
|
|
+ for _, idx := range frequenciesMap[frequency] {
|
|
|
+ indexIdList = append(indexIdList, idx.BaseFromCcfIndexId)
|
|
|
+ }
|
|
|
+ dataTimeList, err := data_manage.GetCCFDataDataTimeByIndexId(indexIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "下载失败"
|
|
|
+ br.ErrMsg = "获取数据时间失败,Err:" + err.Error()
|
|
|
+ fmt.Println("获取数据时间失败", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加excel左侧指标日期
|
|
|
+ setRowIndex := 4
|
|
|
+ for rk, dv := range dataTimeList {
|
|
|
+ rowIndex := setRowIndex + rk
|
|
|
+ row := sheetNew.Row(rowIndex)
|
|
|
+ displayDate, _ := time.Parse(utils.FormatDate, dv)
|
|
|
+ displayDateCell := row.AddCell()
|
|
|
+ style := new(xlsx.Style)
|
|
|
+ style.ApplyAlignment = true
|
|
|
+ style.Alignment.WrapText = true
|
|
|
+ displayDateCell.SetStyle(style)
|
|
|
+ displayDateCell.SetDate(displayDate)
|
|
|
|
|
|
- for k, sv := range indexList {
|
|
|
+ }
|
|
|
+ for k, icl := range indexCodeList {
|
|
|
+ // 获取数据
|
|
|
+ dataList, ok := dataListMap[icl.IndexCode]
|
|
|
+ if !ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if k == 0 {
|
|
|
+ secNameRow.AddCell().SetValue("指标名称/Metric Name")
|
|
|
+ frequencyRow.AddCell().SetValue("频度/Frequency")
|
|
|
+ unitRow.AddCell().SetValue("单位/Unit")
|
|
|
+ lastModifyDateRow.AddCell().SetValue("更新时间/Update Time")
|
|
|
+ min := k * 3
|
|
|
+ sheetNew.SetColWidth(min, min, 15)
|
|
|
+ }
|
|
|
+ if len(dataList) == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ secNameRow.AddCell().SetValue(icl.IndexName)
|
|
|
+ frequencyRow.AddCell().SetValue(icl.Frequency)
|
|
|
+ unitRow.AddCell().SetValue(icl.Unit)
|
|
|
+
|
|
|
+ timeDate, err := time.Parse(utils.FormatDateTime, dataList[0].ModifyTime)
|
|
|
+ if err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ lastModifyDateRow.AddCell().SetValue(timeDate.Format(utils.FormatDate))
|
|
|
+ dataInfoMap := make(map[string]*data_manage.BaseFromCCFData)
|
|
|
+ for _, v := range dataList {
|
|
|
+ dataInfoMap[v.DataTime] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ for rk, dtv := range dataTimeList {
|
|
|
+ rowIndex := setRowIndex + rk
|
|
|
+ row := sheetNew.Row(rowIndex)
|
|
|
+ displayDateCell := row.AddCell()
|
|
|
+ tmpData, ok := dataInfoMap[dtv]
|
|
|
+ if ok {
|
|
|
+ displayDateCell.SetValue(tmpData.Value)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*for k, sv := range indexList {
|
|
|
//获取数据
|
|
|
dataList, ok := dataListMap[sv.IndexCode]
|
|
|
if !ok {
|
|
@@ -463,7 +626,7 @@ func (this *EdbInfoController) ExportCCFList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
err = xlsxFile.Save(downFile)
|
|
|
if err != nil {
|
|
@@ -668,6 +831,31 @@ func (this *EdbInfoController) CCFIndexBatchSearch() {
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ // 获取最新值
|
|
|
+ endTimeList := make([]string, 0)
|
|
|
+ endValMap := make(map[int]string)
|
|
|
+ indexIds := make([]int, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ endTimeList = append(endTimeList, v.EndDate)
|
|
|
+ indexIds = append(indexIds, v.BaseFromCcfIndexId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(indexIds) > 0 {
|
|
|
+ dataTmpList, e := data_manage.GetCCFIndexDataByIndexIdAndDataTime(indexIds, endTimeList)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取指标最新值失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range dataTmpList {
|
|
|
+ endValMap[v.BaseFromCcfIndexId] = v.Value
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range list {
|
|
|
+ if val, ok := endValMap[v.BaseFromCcfIndexId]; ok {
|
|
|
+ v.EndValue = val
|
|
|
+ }
|
|
|
+ }
|
|
|
total, err = data_manage.GetCCFIndexPageCount(condition, pars)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取数据失败"
|
|
@@ -1004,7 +1192,7 @@ func (c *EdbInfoController) CCFAddCheck() {
|
|
|
// todo 验证下面三个字段的用处
|
|
|
//v.EdbClassifyId = edb.ClassifyId
|
|
|
//v.EdbUniqueCode = edb.UniqueCode
|
|
|
- //v.EdbExist = 1
|
|
|
+ v.EdbExist = 1
|
|
|
}
|
|
|
resp = append(resp, v)
|
|
|
}
|