فهرست منبع

add:时间序列表格批量设置

zqbao 6 ماه پیش
والد
کامیت
42571b1f8a
3فایلهای تغییر یافته به همراه55 افزوده شده و 18 حذف شده
  1. 19 17
      controllers/data_manage/excel/excel_info.go
  2. 1 1
      models/data_manage/excel/request/excel_info.go
  3. 35 0
      services/data/excel/excel_info.go

+ 19 - 17
controllers/data_manage/excel/excel_info.go

@@ -1969,37 +1969,38 @@ func (c *ExcelInfoController) GetBatchEdbData() {
 		return
 	}
 
-	var req []*request.GetBatchEdbDateDataReq
+	var req request.GetBatchEdbDateDataReq
 	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
+	if len(req.EdbInfoId) == 0 {
+		br.Msg = "请选择指标"
+		br.IsSendEmail = false
+		return
+	}
 	tableList := make([]*response.TableDataItem, 0)
 	var firstDataList []string
-	for i, v := range req {
-		if v.EdbInfoId <= 0 {
-			br.Msg = "请选择指标"
-			br.IsSendEmail = false
-			return
-		}
-		if v.Num <= 0 {
+	for i, v := range req.EdbInfoId {
+		if req.Num <= 0 {
 			br.Msg = "期数必须大于0"
 			br.IsSendEmail = false
 			return
 		}
-		edbInfo, err := data_manage.GetEdbInfoById(v.EdbInfoId)
+		edbInfo, err := data_manage.GetEdbInfoById(v)
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = fmt.Sprint("获取指标信息失败,Err:", err.Error())
 			return
 		}
 		if len(firstDataList) == 0 {
-			firstDataList = v.DateList
+			firstDataList = req.DateList
 		}
+		req.Num = len(firstDataList)
 		if i == 0 {
-			dataList, err := excel2.GetFirstEdbDataList(edbInfo, v.Num, firstDataList)
+			dataList, err := excel2.GetFirstEdbDataList(edbInfo, req.Num, firstDataList)
 			if err != nil {
 				br.Msg = "获取失败"
 				br.ErrMsg = fmt.Sprint("获取失败,Err:", err.Error())
@@ -2007,13 +2008,14 @@ func (c *ExcelInfoController) GetBatchEdbData() {
 			}
 
 			// 默认是倒序返回的数据,如果要正序的话,那么翻转下就好了
-			if v.SortType == "asc" {
+			if req.SortType == "asc" {
 				for i, j := 0, len(dataList)-1; i < j; i, j = i+1, j-1 {
 					dataList[i], dataList[j] = dataList[j], dataList[i]
 				}
 			}
+			dataList = excel2.PadFirstEdbDataList(dataList, req.DateList, req.SortType)
 
-			sourceNameList, sourceNameEnList, err := excel2.GetEdbSourceByEdbInfoIdList([]int{v.EdbInfoId})
+			sourceNameList, sourceNameEnList, err := excel2.GetEdbSourceByEdbInfoIdList([]int{v})
 			if err != nil {
 				br.Msg = "自定义表格数据获取失败"
 				br.ErrMsg = "自定义表格数据获取失败,Err:" + err.Error()
@@ -2022,7 +2024,7 @@ func (c *ExcelInfoController) GetBatchEdbData() {
 			excelSource := strings.Join(sourceNameList, ",")
 			excelSourceEn := strings.Join(sourceNameEnList, ",")
 			tableList = append(tableList, &response.TableDataItem{
-				EdbInfoId:     v.EdbInfoId,
+				EdbInfoId:     v,
 				Data:          dataList,
 				ExcelSource:   excelSource,
 				ExcelSourceEn: excelSourceEn,
@@ -2043,13 +2045,13 @@ func (c *ExcelInfoController) GetBatchEdbData() {
 			}
 
 			// 默认是倒序返回的数据,如果要正序的话,那么翻转下就好了
-			if v.SortType == "asc" {
+			if req.SortType == "asc" {
 				for i, j := 0, len(dataList)-1; i < j; i, j = i+1, j-1 {
 					dataList[i], dataList[j] = dataList[j], dataList[i]
 				}
 			}
 
-			sourceNameList, sourceNameEnList, err := excel2.GetEdbSourceByEdbInfoIdList([]int{v.EdbInfoId})
+			sourceNameList, sourceNameEnList, err := excel2.GetEdbSourceByEdbInfoIdList([]int{v})
 			if err != nil {
 				br.Msg = "自定义表格数据获取失败"
 				br.ErrMsg = "自定义表格数据获取失败,Err:" + err.Error()
@@ -2058,7 +2060,7 @@ func (c *ExcelInfoController) GetBatchEdbData() {
 			excelSource := strings.Join(sourceNameList, ",")
 			excelSourceEn := strings.Join(sourceNameEnList, ",")
 			tableList = append(tableList, &response.TableDataItem{
-				EdbInfoId:     v.EdbInfoId,
+				EdbInfoId:     v,
 				Data:          dataList,
 				ExcelSource:   excelSource,
 				ExcelSourceEn: excelSourceEn,

+ 1 - 1
models/data_manage/excel/request/excel_info.go

@@ -67,7 +67,7 @@ type GetOtherEdbDateDataReq struct {
 }
 
 type GetBatchEdbDateDataReq struct {
-	EdbInfoId int      `description:"指标id"`
+	EdbInfoId []int    `description:"指标id"`
 	Num       int      `description:"默认期数"`
 	SortType  string   `description:"如何排序,是正序还是倒序,枚举值:asc 正序,desc 倒序,不传默认倒序"`
 	DateList  []string `description:"日期列表,从小到大"`

+ 35 - 0
services/data/excel/excel_info.go

@@ -293,6 +293,41 @@ func GetFirstEdbDataList(edbInfo *data_manage.EdbInfo, num int, manualDateList [
 	return
 }
 
+// PadFirstEdbDataList 补齐第一列的数据
+func PadFirstEdbDataList(resultDataList []request.ManualDataReq, dateList []string, sortType string) []request.ManualDataReq {
+	originDataNum := len(resultDataList)
+	requsetDateNum := len(dateList)
+	if originDataNum >= requsetDateNum {
+		return resultDataList
+	}
+	padNum := requsetDateNum - originDataNum
+	if sortType == "asc" {
+		for i := 0; i < padNum; i++ {
+			resultDataList = append(resultDataList, request.ManualDataReq{
+				DataType:     0,
+				DataTime:     dateList[originDataNum+i],
+				ShowValue:    ``,
+				Value:        ``,
+				DataTimeType: 1,
+			})
+		}
+	} else {
+		var tmpDateList []request.ManualDataReq
+		for i := padNum - 1; i <= 0; i-- {
+			tmpDateList = append(tmpDateList, request.ManualDataReq{
+				DataType:     0,
+				DataTime:     dateList[originDataNum+i],
+				ShowValue:    ``,
+				Value:        ``,
+				DataTimeType: 1,
+			})
+			resultDataList = append(tmpDateList, resultDataList...)
+		}
+
+	}
+	return resultDataList
+}
+
 // GetOtherEdbDataList 获取其他列的数据
 func GetOtherEdbDataList(edbInfo *data_manage.EdbInfo, dateList []string) (resultDataList []request.ManualDataReq, err error) {
 	lenDate := len(dateList)