Roc 1 rok pred
rodič
commit
816be5bc80
2 zmenil súbory, kde vykonal 29 pridanie a 5 odobranie
  1. 1 1
      models/request/excel_info.go
  2. 28 4
      services/data/excel_info.go

+ 1 - 1
models/request/excel_info.go

@@ -18,7 +18,7 @@ type EdbInfoData struct {
 }
 
 type ManualDataReq struct {
-	DataType            int               `description:"数据类型,1:普通的,2:插值法,3:手动输入,4:公式计算"`
+	DataType            int               `description:"数据类型,1:普通的,2:插值法,3:手动输入,4:公式计算,5:预测值"`
 	DataTime            string            `description:"所属日期"`
 	DataTimeType        int               `description:"日期类型,1:实际日期;2:未来日期"`
 	ShowValue           string            `description:"展示值"`

+ 28 - 4
services/data/excel_info.go

@@ -74,9 +74,17 @@ func GetFirstEdbDataList(edbInfo *data_manage.EdbInfo, num int, manualDateList [
 		num = lenData
 	}
 
+	latestDateTime, _ := time.ParseInLocation(utils.FormatDate, edbInfo.LatestDate, time.Local)
 	for i := 1; i <= num; i++ {
+		dataTime, _ := time.ParseInLocation(utils.FormatDate, dataList[lenData-i].DataTime, time.Local)
+		dataType := 1
+		// 如果是预测指标,且当前值的日期,晚于实际日期,那么是预测值
+		if edbInfo.EdbInfoType == 1 && dataTime.After(latestDateTime) {
+			dataType = 5
+		}
+
 		resultDataList = append(resultDataList, request.ManualDataReq{
-			DataType:     1,
+			DataType:     dataType,
 			DataTime:     dataList[lenData-i].DataTime,
 			ShowValue:    fmt.Sprint(dataList[lenData-i].Value),
 			Value:        fmt.Sprint(dataList[lenData-i].Value),
@@ -162,11 +170,19 @@ func GetOtherEdbDataList(edbInfo *data_manage.EdbInfo, dateList []string) (resul
 	if err != nil {
 		return
 	}
+
+	latestDateTime, _ := time.ParseInLocation(utils.FormatDate, edbInfo.LatestDate, time.Local)
 	// 对于不存在的数据做补充
 	for _, date := range sortDateList {
 		dataType := 1
 		if _, ok := realValMap[date]; !ok {
 			dataType = 2
+		} else {
+			dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
+			// 如果是预测指标,且当前值的日期,晚于实际日期,那么是预测值
+			if edbInfo.EdbInfoType == 1 && dataTime.After(latestDateTime) {
+				dataType = 5
+			}
 		}
 		var value, showValue string
 		if tmpVal, ok := handleDataMap[date]; ok {
@@ -223,9 +239,17 @@ func GetFirstHistoryEdbDataList(edbInfo *data_manage.EdbInfo, num int, endDate s
 		num = lenData
 	}
 
+	latestDateTime, _ := time.ParseInLocation(utils.FormatDate, edbInfo.LatestDate, time.Local)
 	for i := 1; i <= num; i++ {
+		dataTime, _ := time.ParseInLocation(utils.FormatDate, dataList[lenData-i].DataTime, time.Local)
+		dataType := 1
+		// 如果是预测指标,且当前值的日期,晚于实际日期,那么是预测值
+		if edbInfo.EdbInfoType == 1 && dataTime.After(latestDateTime) {
+			dataType = 5
+		}
+
 		resultDataList = append(resultDataList, request.ManualDataReq{
-			DataType:  1,
+			DataType:  dataType,
 			DataTime:  dataList[lenData-i].DataTime,
 			ShowValue: fmt.Sprint(dataList[lenData-i].Value),
 			Value:     fmt.Sprint(dataList[lenData-i].Value),
@@ -743,8 +767,8 @@ func handleTable(tagEdbInfoIdMap map[string]int, lastRealDateTime time.Time, sor
 			continue
 		}
 
-		// 如果该单元格实际有数据,或者插值法补充了数据的话,那么就不用手动填入的数据
-		if tmpData.DataType == 1 || tmpData.DataType == 2 {
+		// 如果该单元格实际有数据(包含预测值),或者插值法补充了数据的话,那么就不用手动填入的数据
+		if utils.InArrayByInt([]int{1, 2, 5}, tmpData.DataType) {
 			continue
 		}