Bläddra i källkod

fix:修复数据筛选的问题

Roc 1 år sedan
förälder
incheckning
e8dc5c7ad1
2 ändrade filer med 33 tillägg och 8 borttagningar
  1. 31 6
      controllers/data_manage/edb_info.go
  2. 2 2
      services/data/edb_data.go

+ 31 - 6
controllers/data_manage/edb_info.go

@@ -4026,17 +4026,33 @@ func (this *EdbInfoController) GetEdbDateData() {
 	}
 	startDate := date
 	endDate := date
+
+	dateType := "day"
 	//如果填写的是月度日期
 	if strings.Count(date, "-") == 1 {
 		startDate = date + "-01"
 		endDate = ``
+		dateType = "month"
 	}
-	val, err := data.GetDateData(edbInfo, startDate, endDate)
+	dataItem, err := data.GetDateData(edbInfo, startDate, endDate)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = fmt.Sprint("获取指数据失败,Err:", err.Error())
 		return
 	}
+	val := ``
+	if dataItem != nil {
+		switch dateType {
+		case "month":
+			dateTime, _ := time.ParseInLocation(utils.FormatDate, dataItem.DataTime, time.Local)
+			dateTimeStr := dateTime.Format(utils.FormatYearMonthDate)
+			if dateTimeStr != date {
+				val = ``
+			}
+		}
+		val = fmt.Sprint(dataItem.Value)
+	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -4086,12 +4102,12 @@ func (this *EdbInfoController) GetEdbBeforeAndAfterDateData() {
 	dataList := make([]*data_manage.EdbDataList, 0)
 
 	startDate := date
-	// 是否指定到日的日期
-	isDayDate := true
+	// 指定日期的类型
+	dateType := "day"
 	//如果填写的是月度日期
 	if strings.Count(date, "-") == 1 {
 		startDate = date + "-01"
-		isDayDate = false
+		dateType = "month"
 	}
 	// 前面的数据
 	beforeList, err := data.GetEdbBeforeAndAfterDateData(edbInfo, "", startDate, 1, num)
@@ -4102,8 +4118,17 @@ func (this *EdbInfoController) GetEdbBeforeAndAfterDateData() {
 	}
 
 	lenBeforeList := len(beforeList)
-	if isDayDate {
-		if lenBeforeList <= 0 || beforeList[lenBeforeList-1].DataTime != startDate {
+	if lenBeforeList <= 0 || beforeList[lenBeforeList-1].DataTime != startDate {
+		var dateTimeStr string
+		switch dateType {
+		case "month":
+			dateTime, _ := time.ParseInLocation(utils.FormatDate, beforeList[lenBeforeList-1].DataTime, time.Local)
+			dateTimeStr = dateTime.Format(utils.FormatYearMonthDate)
+		case "day":
+			dateTimeStr = beforeList[lenBeforeList-1].DataTime
+		}
+		// 如果对应日期找不到,那么就直接返回吧
+		if dateTimeStr != date {
 			br.Ret = 200
 			br.Success = true
 			br.Msg = "所选指标所选日期无值"

+ 2 - 2
services/data/edb_data.go

@@ -334,7 +334,7 @@ func TbzDiv(a, b float64) float64 {
 }
 
 // GetDateData 获取指标的单个日期的值
-func GetDateData(edbInfo *data_manage.EdbInfo, startDate, endDate string) (val string, err error) {
+func GetDateData(edbInfo *data_manage.EdbInfo, startDate, endDate string) (item *data_manage.EdbDataList, err error) {
 	var dataList []*data_manage.EdbDataList
 	switch edbInfo.EdbInfoType {
 	case 0:
@@ -353,7 +353,7 @@ func GetDateData(edbInfo *data_manage.EdbInfo, startDate, endDate string) (val s
 		return
 	}
 
-	val = fmt.Sprint(dataList[0].Value)
+	item = dataList[0]
 
 	return
 }