Browse Source

计算指标

xyxie 1 year ago
parent
commit
f481aff72c
1 changed files with 13 additions and 10 deletions
  1. 13 10
      controllers/data_manage/excel/mixed_table.go

+ 13 - 10
controllers/data_manage/excel/mixed_table.go

@@ -209,6 +209,7 @@ func (c *ExcelInfoController) CalculateData() {
 	dataListResp := make([]*data_manage.EdbDataList, 0)
 
 	var newDate string
+	var showValue string
 	if req.DataTime == `` { //选择前移几期数
 		newDate, err = excel2.GetEdbDateByMoveForwardByDateList(requestBody, respItem.Data.DateList)
 		if err != nil {
@@ -231,27 +232,29 @@ func (c *ExcelInfoController) CalculateData() {
 	if err != nil {
 		return
 	}
-	var finalVal float64
 	if req.DataTime == `` {
-		for i := 1; i <= num; i++ {
+		canAdd := false
+		for i := 1; i <= lenDate; i++ {
 			date := respItem.Data.DateList[lenDate-i]
-
 			val, ok := respItem.Data.DataMap[date]
 			if !ok {
 				continue
 			}
 			if date == newDate {
-				finalVal = val
+				showValue = utils.FormatMixTableDataShowValue(val)
+				canAdd = true
+			}
+			if canAdd && len(dataListResp) <= num {
+				dataListResp = append(dataListResp, &data_manage.EdbDataList{
+					Value:    val,
+					DataTime: date,
+				})
 			}
-			dataListResp = append(dataListResp, &data_manage.EdbDataList{
-				Value:    val,
-				DataTime: date,
-			})
 		}
 	} else {
 		// todo 如果选择了表格中的日期应该如何处理
 		if val, ok := respItem.Data.DataMap[newDate]; ok {
-			finalVal = val
+			showValue = utils.FormatMixTableDataShowValue(val)
 			for i, tmpDate := range respItem.Data.DateList {
 				if tmpDate == newDate {
 					if i+3 <= lenDate {
@@ -308,7 +311,7 @@ func (c *ExcelInfoController) CalculateData() {
 	resp := data_manage.BeforeAndAfterDateDataResp{
 		List:      dataListResp,
 		Date:      newDate,
-		ShowValue: utils.FormatMixTableDataShowValue(finalVal),
+		ShowValue: showValue,
 	}
 	br.Ret = 200
 	br.Success = true