|
@@ -7,6 +7,7 @@ import (
|
|
|
"eta/eta_api/models/data_manage/excel/request"
|
|
|
"eta/eta_api/services/data"
|
|
|
excel2 "eta/eta_api/services/data/excel"
|
|
|
+ "eta/eta_api/utils"
|
|
|
"strconv"
|
|
|
)
|
|
|
|
|
@@ -78,7 +79,7 @@ func (c *ExcelInfoController) CalculateData() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+ requestBody := string(c.Ctx.Input.RequestBody)
|
|
|
var req request.CalculateConf
|
|
|
err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -155,26 +156,45 @@ func (c *ExcelInfoController) CalculateData() {
|
|
|
num = lenDate
|
|
|
}
|
|
|
|
|
|
- var currDate string // 当前日期
|
|
|
dataListResp := make([]*data_manage.EdbDataList, 0)
|
|
|
|
|
|
+ var newDate string
|
|
|
+ if req.DataTime == `` { //选择前移几期数
|
|
|
+ newDate, err = excel2.GetEdbDateByMoveForwardByDateList(requestBody, respItem.Data.DateList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ newDate = req.DataTime //选择表格中的日期
|
|
|
+ }
|
|
|
+ // 开始做日期变换
|
|
|
+ newDate, err = excel2.HandleMixTableDateChange(newDate, requestBody)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var finalVal float64
|
|
|
if req.DataTime == `` {
|
|
|
for i := 1; i <= num; i++ {
|
|
|
date := respItem.Data.DateList[lenDate-i]
|
|
|
+
|
|
|
val, ok := respItem.Data.DataMap[date]
|
|
|
if !ok {
|
|
|
continue
|
|
|
}
|
|
|
-
|
|
|
+ if date == newDate {
|
|
|
+ finalVal = val
|
|
|
+ }
|
|
|
dataListResp = append(dataListResp, &data_manage.EdbDataList{
|
|
|
Value: val,
|
|
|
DataTime: date,
|
|
|
})
|
|
|
}
|
|
|
} else {
|
|
|
- if val, ok := respItem.Data.DataMap[req.DataTime]; ok {
|
|
|
+ // todo 如果选择了表格中的日期应该如何处理
|
|
|
+ if val, ok := respItem.Data.DataMap[newDate]; ok {
|
|
|
+ finalVal = val
|
|
|
for i, tmpDate := range respItem.Data.DateList {
|
|
|
- if tmpDate == req.DataTime {
|
|
|
+ if tmpDate == newDate {
|
|
|
if i+3 <= lenDate {
|
|
|
t1Date := respItem.Data.DateList[i+2]
|
|
|
if tmpVal, ok2 := respItem.Data.DataMap[t1Date]; ok2 {
|
|
@@ -200,7 +220,7 @@ func (c *ExcelInfoController) CalculateData() {
|
|
|
// 当前日期
|
|
|
dataListResp = append(dataListResp, &data_manage.EdbDataList{
|
|
|
Value: val,
|
|
|
- DataTime: req.DataTime,
|
|
|
+ DataTime: newDate,
|
|
|
})
|
|
|
if i >= 1 {
|
|
|
t1Date := respItem.Data.DateList[i-1]
|
|
@@ -227,8 +247,9 @@ func (c *ExcelInfoController) CalculateData() {
|
|
|
}
|
|
|
}
|
|
|
resp := data_manage.BeforeAndAfterDateDataResp{
|
|
|
- List: dataListResp,
|
|
|
- Date: currDate,
|
|
|
+ List: dataListResp,
|
|
|
+ Date: newDate,
|
|
|
+ ShowValue: utils.FormatTableDataShowValue(finalVal),
|
|
|
}
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|