|
@@ -2,10 +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"
|
|
|
)
|
|
|
|
|
@@ -107,7 +110,11 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
|
|
|
}
|
|
|
chartInfo.ChartType = chartType
|
|
|
mappingList, err := data_manage.GetChartEdbMappingListByEdbInfoIdList(edbInfoIdArr)
|
|
|
-
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取图表,指标信息失败"
|
|
|
+ br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
edbList, xEdbIdValue, yDataList, dataResp, err, errMsg := data.GetChartEdbData(0, chartType, "", "", "", mappingList, req.ExtraConfig, "")
|
|
|
if err != nil {
|
|
@@ -118,11 +125,48 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
|
|
|
br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ {
|
|
|
+
|
|
|
+ classifyMap := make(map[int]*data_manage.EdbClassify)
|
|
|
+
|
|
|
+
|
|
|
+ {
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
+ for _, v := range edbList {
|
|
|
+ classifyIdList = append(classifyIdList, v.ClassifyId)
|
|
|
+ }
|
|
|
+ classifyList, tmpErr := data_manage.GetEdbClassifyByIdList(classifyIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取分类列表失败,Err:" + tmpErr.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range classifyList {
|
|
|
+ classifyMap[v.ClassifyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(sysUser.AdminId, 0, 0)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, item := range edbList {
|
|
|
+
|
|
|
+ if currClassify, ok := classifyMap[item.ClassifyId]; ok {
|
|
|
+ item.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(item.IsJoinPermission, currClassify.IsJoinPermission, item.EdbInfoId, item.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
warnEdbList := make([]string, 0)
|
|
|
for _, v := range edbList {
|
|
|
if v.IsNullData {
|
|
|
warnEdbList = append(warnEdbList, v.EdbName+"("+v.EdbCode+")")
|
|
|
}
|
|
|
+ v.HaveOperaAuth = true
|
|
|
}
|
|
|
if len(warnEdbList) > 0 {
|
|
|
chartInfo.WarnMsg = `图表引用指标异常,异常指标:` + strings.Join(warnEdbList, ",")
|
|
@@ -140,7 +184,7 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
|
|
|
chartInfo.Button = data_manage.ChartViewButton{
|
|
|
IsEdit: chartInfo.IsEdit,
|
|
|
IsEnChart: chartInfo.IsEnChart,
|
|
|
- IsAdd: chartInfo.IsAdd,
|
|
|
+ IsAdd: chartInfo.IsEdit,
|
|
|
IsCopy: true,
|
|
|
IsSetName: chartInfo.IsSetName,
|
|
|
}
|
|
@@ -156,3 +200,127 @@ func (this *ChartInfoController) PreviewSectionCombineChartInfo() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+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
|
|
|
+ }
|
|
|
+
|
|
|
+ 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
|
|
|
+}
|