|
@@ -2,11 +2,13 @@ package data_manage
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "errors"
|
|
|
"eta/eta_api/models"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/services/data"
|
|
|
"eta/eta_api/services/data/data_manage_permission"
|
|
|
"eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
@@ -198,3 +200,127 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// PreviewSectionCombineChartInfo
|
|
|
+// @Title 图表-获取预览的截面组合图数据
|
|
|
+// @Description 图表-获取预览的截面组合图数据
|
|
|
+// @Param request body data_manage.ChartSectionDateConfItem true "type json string"
|
|
|
+// @Success 200 {object} data_manage.PreviewSectionCombineDateCalculateResp
|
|
|
+// @router /chart_info/section_combine/date_calculate [post]
|
|
|
+func (this *ChartInfoController) PreviewSectionCombineDateCalculate() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ var req data_manage.PreviewSectionCombineDateCalculateReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //查询指标细信息
|
|
|
+ dataList := make([]*data_manage.EdbDataList, 0)
|
|
|
+ if req.EdbInfoId > 0 {
|
|
|
+ edbInfo, e := data_manage.GetEdbInfoById(req.EdbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "指标查询失败!"
|
|
|
+ br.ErrMsg = "指标查询失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ startDateReal := ""
|
|
|
+ endDate := ""
|
|
|
+
|
|
|
+ switch edbInfo.EdbInfoType {
|
|
|
+ case 0:
|
|
|
+ dataList, err = data_manage.GetEdbDataList(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbInfoId, startDateReal, endDate)
|
|
|
+ case 1:
|
|
|
+ _, dataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(edbInfo.EdbInfoId, startDateReal, endDate, true)
|
|
|
+ default:
|
|
|
+ err = errors.New(fmt.Sprint("获取失败,指标类型异常", edbInfo.EdbInfoType))
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "指标数据查询失败!"
|
|
|
+ br.ErrMsg = "指标数据查询失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var findDate string
|
|
|
+ if req.DateConfType == 0 {
|
|
|
+ findDate, err = data.GetChartSectionSeriesDateByDateChange(req.EdbInfoId, dataList, req.DateChange, req.MoveForward)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "指标数据查询失败!"
|
|
|
+ br.ErrMsg = "指标数据查询失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 获取日期配置
|
|
|
+ dateConfListMap := make(map[string]*data_manage.ChartSectionDateConfItem)
|
|
|
+ dateConfEdbIds := make([]int, 0)
|
|
|
+ for _, v := range req.DateConfList {
|
|
|
+ if v.EdbInfoId > 0 {
|
|
|
+ dateConfEdbIds = append(dateConfEdbIds, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ dateConfListMap[v.DateConfName] = v
|
|
|
+ }
|
|
|
+ dateConfItem, ok1 := dateConfListMap[req.DateConfName]
|
|
|
+ if !ok1 {
|
|
|
+ br.Msg = "引用日期配置不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // todo 根据日期变换得到最终日期
|
|
|
+ edbDataListTmp := make([]*data_manage.EdbDataList, 0)
|
|
|
+ if dateConfItem.EdbInfoId > 0 {
|
|
|
+ dateConfItemeEdbInfo, e := data_manage.GetEdbInfoById(dateConfItem.EdbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "指标查询失败!"
|
|
|
+ br.ErrMsg = "指标查询失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ startDateReal := ""
|
|
|
+ endDate := ""
|
|
|
+ switch dateConfItemeEdbInfo.EdbInfoType {
|
|
|
+ case 0:
|
|
|
+ edbDataListTmp, err = data_manage.GetEdbDataList(dateConfItemeEdbInfo.Source, dateConfItemeEdbInfo.SubSource, dateConfItemeEdbInfo.EdbInfoId, startDateReal, endDate)
|
|
|
+ case 1:
|
|
|
+ _, edbDataListTmp, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(dateConfItemeEdbInfo.EdbInfoId, startDateReal, endDate, true)
|
|
|
+ default:
|
|
|
+ err = errors.New(fmt.Sprint("获取失败,指标类型异常", dateConfItemeEdbInfo.EdbInfoType))
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "指标数据查询失败!"
|
|
|
+ br.ErrMsg = "指标数据查询失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ findDate, err = data.GetChartSectionSeriesDateByDateChange(dateConfItem.EdbInfoId, edbDataListTmp, dateConfItem.DateChange, dateConfItem.MoveForward)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "指标数据查询失败!"
|
|
|
+ br.ErrMsg = fmt.Sprintf("指标%d的日期变换处理失败", dateConfItem.EdbInfoId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if findDate == "" {
|
|
|
+ br.Msg = "日期为空!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := &data_manage.PreviewSectionCombineDateCalculateResp{
|
|
|
+ Date: findDate,
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|