Browse Source

Merge remote-tracking branch 'origin/eta/2.3' into debug

Roc 3 months ago
parent
commit
1ec81ade82

+ 18 - 16
controllers/data_manage/chart_info_share.go

@@ -313,15 +313,8 @@ func (c *ChartInfoShareController) List() {
 	// 基础图表
 	var condition string
 	var pars []interface{}
-	condition += ` AND chart_info_type = ? `
-	pars = append(pars, 0)
-
-	// 图表类型
-	chartType, _ := c.GetInt("ChartType", 0)
-	if chartType > 0 {
-		condition += ` AND chart_type = ? `
-		pars = append(pars, chartType)
-	}
+	condition += ` AND source = ? `
+	pars = append(pars, utils.CHART_TYPE_CURVE)
 
 	// 分类筛选
 	classifyId, _ := c.GetInt("ClassifyId")
@@ -410,6 +403,7 @@ func (c *ChartInfoShareController) ListByEs() {
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 
 	sourceList := []int{utils.CHART_TYPE_CURVE}
+
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未全部
 	chartShareList := req.ChartShareList
 	if len(chartShareList) <= 0 {
@@ -425,6 +419,9 @@ func (c *ChartInfoShareController) ListByEs() {
 		}
 	}
 
+	// 图表类型
+	chartTypeList := req.ChartTypeList
+
 	// 直图表所属分类id
 	chartClassifyIdList := req.ClassifyIdList
 
@@ -437,7 +434,7 @@ func (c *ChartInfoShareController) ListByEs() {
 	if keyword == `` {
 		sortMap["ChartInfoId"] = `desc`
 	}
-	total, chartInfoList, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
+	total, chartInfoList, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartTypeList, chartClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
 	if err != nil {
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 	}
@@ -579,14 +576,16 @@ func (c *ChartInfoShareController) BatchSave() {
 		selectChartInfoIdList = req.ChartIdList
 	}
 
-	if len(selectChartInfoIdList) > 30 {
+	num := len(selectChartInfoIdList)
+
+	if num > 30 {
 		br.Msg = `图表数量不能超过30个`
 		br.IsSendEmail = false
 		return
 	}
 
 	// 设置
-	{
+	if num > 0 {
 
 		obj := data_manage.ChartInfoShare{}
 		err = obj.SaveChartInfoShare(selectChartInfoIdList, req.UserIdList, req.ShareType)
@@ -637,6 +636,9 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 		}
 	}
 
+	// 图表类型
+	chartTypeList := req.ChartTypeList
+
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未共享
 	chartClassifyIdList := req.ClassifyIdList
 
@@ -647,7 +649,7 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 	if keyword == `` {
 		sortMap["ChartInfoId"] = `desc`
 	}
-	_, chartInfoList, err := getAllChartInfoDataByShared(keyword, 1, chartShare, sourceList, chartClassifyIdList, chartAuth, userId, sortMap)
+	_, chartInfoList, err := getAllChartInfoDataByShared(keyword, 1, chartShare, sourceList, chartTypeList, chartClassifyIdList, chartAuth, userId, sortMap)
 	if err != nil {
 		return
 	}
@@ -675,7 +677,7 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 // @return total int64
 // @return list []*data_manage.ChartInfoView
 // @return err error
-func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourceList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourceList, chartTypeList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	// 每页获取数据的数量
 	pageSize := 5000
 	var startSize int
@@ -684,14 +686,14 @@ func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourc
 	}
 	startSize = paging.StartIndex(currPage, pageSize)
 
-	total, list, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, classifyIdList, chartAuth, sysUserId, sortMap)
+	total, list, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartTypeList, classifyIdList, chartAuth, sysUserId, sortMap)
 	if err != nil {
 		return
 	}
 
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	if !page.IsEnd {
-		_, nextList, tmpErr := getAllChartInfoDataByShared(keyword, page.NextIndex, chartShare, sourceList, classifyIdList, chartAuth, sysUserId, sortMap)
+		_, nextList, tmpErr := getAllChartInfoDataByShared(keyword, page.NextIndex, chartShare, sourceList, chartTypeList, classifyIdList, chartAuth, sysUserId, sortMap)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 54 - 54
controllers/data_manage/chart_public.go

@@ -15,14 +15,14 @@ import (
 	"strings"
 )
 
-// ChartPublicController 公共指标
+// ChartPublicController 公共图表
 type ChartPublicController struct {
 	controllers.BaseAuthController
 }
 
 // Save
-// @Title 单个指标设置公开
-// @Description 单个指标设置公开
+// @Title 单个图表设置公开
+// @Description 单个图表设置公开
 // @Param	request	body request.SetChartInfoShareReq true "type json string"
 // @Success 200 {object} data_manage.ChartInfo
 // @router /chart_info/public/save [post]
@@ -49,7 +49,7 @@ func (c *ChartPublicController) Save() {
 	}
 
 	if len(req.ChartInfoList) <= 0 {
-		br.Msg = `请选择指标`
+		br.Msg = `请选择图表`
 		br.IsSendEmail = false
 		return
 	}
@@ -57,7 +57,7 @@ func (c *ChartPublicController) Save() {
 	// 待处理的资产
 	dataPublicItemList := make([]dataApproveSerice.SetDataPublicItem, 0)
 
-	// 校验是否重复存在已公开、已提交的指标
+	// 校验是否重复存在已公开、已提交的图表
 	{
 		chartInfoIdList := make([]int, 0)
 		for _, item := range req.ChartInfoList {
@@ -72,12 +72,12 @@ func (c *ChartPublicController) Save() {
 		list, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
 		if err != nil {
 			br.Msg = "保存失败!"
-			br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+			br.ErrMsg = "获取图表数据失败,Err:" + err.Error()
 			return
 		}
 		for _, v := range list {
 			if v.PublicStatus != utils.DataPublicDefault {
-				br.Msg = `选择指标中存在已经公开/提交审批的指标,请仅选择未公开指标!`
+				br.Msg = `选择图表中存在已经公开/提交审批的图表,请仅选择未公开图表!`
 				br.IsSendEmail = false
 				return
 			}
@@ -88,7 +88,7 @@ func (c *ChartPublicController) Save() {
 	opening, e := dataApproveSerice.CheckOpenApprove(utils.DataApproveTypeChart)
 	if e != nil {
 		br.Msg = "操作失败"
-		br.ErrMsg = "校验指标公开是否开启审批流失败, Err: " + e.Error()
+		br.ErrMsg = "校验图表公开是否开启审批流失败, Err: " + e.Error()
 		return
 	}
 
@@ -109,13 +109,13 @@ func (c *ChartPublicController) Save() {
 
 	chartInfo, err := data_manage.GetChartInfoById(req.ChartInfoList[0].ChartInfoId)
 	if err != nil {
-		br.Msg = "获取指标失败"
-		br.ErrMsg = "获取指标失败:" + err.Error()
+		br.Msg = "获取图表失败"
+		br.ErrMsg = "获取图表失败:" + err.Error()
 		return
 	}
 	title := chartInfo.ChartName
 	if len(req.ChartInfoList) > 1 {
-		title += `等指标`
+		title += `等图表`
 	}
 	title += `公开审批`
 
@@ -147,9 +147,9 @@ func (c *ChartPublicController) Save() {
 }
 
 // Cancel
-// @Title 撤销指标公开
-// @Description 撤销指标公开
-// @Param   ChartInfoId   query   int  true       "指标id"
+// @Title 撤销图表公开
+// @Description 撤销图表公开
+// @Param   ChartInfoId   query   int  true       "图表id"
 // @Success 200 {object} data_manage.ChartInfo
 // @router /chart_info/public/cancel [post]
 func (c *ChartPublicController) Cancel() {
@@ -159,7 +159,7 @@ func (c *ChartPublicController) Cancel() {
 		c.ServeJSON()
 	}()
 
-	// TODO 单个指标撤销的时候,需要校验状态,然后撤销
+	// TODO 单个图表撤销的时候,需要校验状态,然后撤销
 	sysUser := c.SysUser
 	if sysUser == nil {
 		br.Msg = "请登录"
@@ -184,7 +184,7 @@ func (c *ChartPublicController) Cancel() {
 	}
 
 	if len(req.ChartInfoList) <= 0 {
-		br.Msg = `请选择指标`
+		br.Msg = `请选择图表`
 		br.IsSendEmail = false
 		return
 	}
@@ -192,7 +192,7 @@ func (c *ChartPublicController) Cancel() {
 	// 待处理的资产
 	dataPublicItemList := make([]dataApproveSerice.SetDataPublicItem, 0)
 
-	// 校验是否重复存在已公开、已提交的指标
+	// 校验是否重复存在已公开、已提交的图表
 	{
 		chartInfoIdList := make([]int, 0)
 		for _, item := range req.ChartInfoList {
@@ -207,12 +207,12 @@ func (c *ChartPublicController) Cancel() {
 		list, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
 		if err != nil {
 			br.Msg = "保存失败!"
-			br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+			br.ErrMsg = "获取图表数据失败,Err:" + err.Error()
 			return
 		}
 		for _, v := range list {
 			if v.PublicStatus != utils.DataPublicDefault {
-				br.Msg = `选择指标中存在已经公开/提交审批的指标,请仅选择未公开指标!`
+				br.Msg = `选择图表中存在已经公开/提交审批的图表,请仅选择未公开图表!`
 				br.IsSendEmail = false
 				return
 			}
@@ -224,8 +224,8 @@ func (c *ChartPublicController) Cancel() {
 }
 
 // ListByEs
-// @Title 指标筛选接口
-// @Description 指标筛选接口
+// @Title 图表筛选接口
+// @Description 图表筛选接口
 // @Success 200 {object} data_manage.ChartInfoList
 // @Param	request	body request.SearchPublicChartReq true "type json string"
 // @Success 200 {object} data_manage.ChartInfoFilterDataResp
@@ -260,16 +260,16 @@ func (c *ChartPublicController) ListByEs() {
 	startSize = paging.StartIndex(currentIndex, pageSize)
 
 	// 获取查询参数
-	keyword, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := data.GetChartSearchPar(req)
+	keyword, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := data.GetChartSearchPar(req)
 
-	total, chartInfoList, err := elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
+	total, chartInfoList, err := elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
 	if err != nil {
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 	}
 
 	page := paging.GetPaging(currentIndex, pageSize, int(total))
 
-	// 因为是ES查找的,所以需要重新查一下指标的信息,主要是为了把是否授权字段找出来
+	// 因为是ES查找的,所以需要重新查一下图表的信息,主要是为了把是否授权字段找出来
 	if len(chartInfoList) > 0 {
 		chartInfoIdList := make([]int, 0)
 		for _, v := range chartInfoList {
@@ -281,7 +281,7 @@ func (c *ChartPublicController) ListByEs() {
 		tmpChartList, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
 		if err != nil {
 			br.Msg = "获取失败"
-			br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
+			br.ErrMsg = "获取所有有权限的图表失败,Err:" + err.Error()
 			return
 		}
 		chartInfoMap := make(map[int]*data_manage.ChartInfo)
@@ -309,8 +309,8 @@ func (c *ChartPublicController) ListByEs() {
 }
 
 // AllListByEs
-// @Title 指标筛选接口
-// @Description 指标筛选接口
+// @Title 图表筛选接口
+// @Description 图表筛选接口
 // @Success 200 {object} data_manage.ChartInfoList
 // @Param	request	body request.SearchChartInfoShareReq true "type json string"
 // @Success 200 {object} data_manage.ChartInfoFilterDataResp
@@ -329,21 +329,21 @@ func (c *ChartPublicController) AllListByEs() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	// 选择所有指标,所以需要通过es获取数据
+	// 选择所有图表,所以需要通过es获取数据
 
-	// 选中的指标id列表
+	// 选中的图表id列表
 	chartInfoList := make([]*data_manage.ChartInfoView, 0)
 
-	// 选择所有指标,所以需要通过es获取数据
+	// 选择所有图表,所以需要通过es获取数据
 	if req.IsSelectAll {
 		tmpChartInfoList, err := data.GetAllChartInfoListBySearchPublicChartReq(req.SearchPublicChartReq, c.SysUser.AdminId)
 		if err != nil {
-			br.Msg = "获取指标列表失败!"
-			br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
+			br.Msg = "获取图表列表失败!"
+			br.ErrMsg = "获取图表列表失败,Err:" + err.Error()
 			return
 		}
 
-		// 如果有过滤指标,那么就过滤吧
+		// 如果有过滤图表,那么就过滤吧
 		if len(req.NoChartIdList) > 0 {
 			noChartIdMap := make(map[int]bool)
 			for _, v := range req.NoChartIdList {
@@ -352,7 +352,7 @@ func (c *ChartPublicController) AllListByEs() {
 
 			for _, v := range tmpChartInfoList {
 				if _, ok := noChartIdMap[v.ChartInfoId]; !ok {
-					// 如果不在未选中的指标id列表中,那么就加入到选中的指标id列表
+					// 如果不在未选中的图表id列表中,那么就加入到选中的图表id列表
 					chartInfoList = append(chartInfoList, v)
 				}
 			}
@@ -360,7 +360,7 @@ func (c *ChartPublicController) AllListByEs() {
 			chartInfoList = tmpChartInfoList
 		}
 
-		// 因为是ES查找的,所以需要重新查一下指标的信息,主要是为了把是否授权字段找出来
+		// 因为是ES查找的,所以需要重新查一下图表的信息,主要是为了把是否授权字段找出来
 		if len(chartInfoList) > 0 {
 
 			chartInfoIdList := make([]int, 0)
@@ -373,7 +373,7 @@ func (c *ChartPublicController) AllListByEs() {
 			tmpChartList, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
 			if err != nil {
 				br.Msg = "获取失败"
-				br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
+				br.ErrMsg = "获取所有有权限的图表失败,Err:" + err.Error()
 				return
 			}
 			chartInfoMap := make(map[int]*data_manage.ChartInfo)
@@ -390,12 +390,12 @@ func (c *ChartPublicController) AllListByEs() {
 			}
 		}
 	} else {
-		// 因为是ES查找的,所以需要重新查一下指标的信息,主要是为了把是否授权字段找出来
+		// 因为是ES查找的,所以需要重新查一下图表的信息,主要是为了把是否授权字段找出来
 		if len(req.ChartIdList) > 0 {
 			chartInfoList, err = data_manage.GetChartInfoViewByIdList(req.ChartIdList)
 			if err != nil {
 				br.Msg = "获取失败"
-				br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
+				br.ErrMsg = "获取所有有权限的图表失败,Err:" + err.Error()
 				return
 			}
 		}
@@ -411,8 +411,8 @@ func (c *ChartPublicController) AllListByEs() {
 }
 
 // BatchMoveChart
-// @Title 指标批量移动接口
-// @Description 指标批量移动接口
+// @Title 图表批量移动接口
+// @Description 图表批量移动接口
 // @Param	request	body request.MoveChartClassifyReq true "type json string"
 // @Success Ret=200 移动成功
 // @router /chart_info/public/batch_move [post]
@@ -453,14 +453,14 @@ func (c *ChartPublicController) BatchMoveChart() {
 
 	chartInfoIdList := make([]int, 0)
 	if req.IsSelectAll {
-		// 获取指标
+		// 获取图表
 		chartInfoList, err := data.GetAllChartInfoListBySearchPublicChartReq(req.SearchPublicChartReq, c.SysUser.AdminId)
 		if err != nil {
-			br.Msg = "获取指标列表失败!"
-			br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
+			br.Msg = "获取图表列表失败!"
+			br.ErrMsg = "获取图表列表失败,Err:" + err.Error()
 			return
 		}
-		// 如果有过滤指标,那么就过滤吧
+		// 如果有过滤图表,那么就过滤吧
 		if len(req.NoChartIdList) > 0 {
 			noChartIdMap := make(map[int]bool)
 			for _, v := range req.NoChartIdList {
@@ -470,19 +470,19 @@ func (c *ChartPublicController) BatchMoveChart() {
 			for _, chartInfo := range chartInfoList {
 				if _, ok := noChartIdMap[chartInfo.ChartInfoId]; !ok {
 					if chartInfo.PublicStatus != utils.DataPublicSuccess {
-						br.Msg = `存在未公开的指标:` + chartInfo.ChartName
+						br.Msg = `存在未公开的图表:` + chartInfo.ChartName
 						br.IsSendEmail = false
 						return
 					}
 
-					// 如果不在未选中的指标id列表中,那么就加入到选中的指标id列表
+					// 如果不在未选中的图表id列表中,那么就加入到选中的图表id列表
 					chartInfoIdList = append(chartInfoIdList, chartInfo.ChartInfoId)
 				}
 			}
 		} else {
 			for _, chartInfo := range chartInfoList {
 				if chartInfo.PublicStatus != utils.DataPublicSuccess {
-					br.Msg = `存在未公开的指标:` + chartInfo.ChartName
+					br.Msg = `存在未公开的图表:` + chartInfo.ChartName
 					br.IsSendEmail = false
 					return
 				}
@@ -493,12 +493,12 @@ func (c *ChartPublicController) BatchMoveChart() {
 		chartInfoList, err := data_manage.GetChartInfoViewByIdList(req.ChartIdList)
 		if err != nil {
 			br.Msg = "获取失败"
-			br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
+			br.ErrMsg = "获取所有有权限的图表失败,Err:" + err.Error()
 			return
 		}
 		for _, v := range chartInfoList {
 			if v.PublicStatus != utils.DataPublicSuccess {
-				br.Msg = `存在未公开的指标:` + v.ChartName
+				br.Msg = `存在未公开的图表:` + v.ChartName
 				br.IsSendEmail = false
 				return
 			}
@@ -508,22 +508,22 @@ func (c *ChartPublicController) BatchMoveChart() {
 
 	num := len(chartInfoIdList)
 	if num <= 0 {
-		br.Msg = `请选择要移动的指标!`
+		br.Msg = `请选择要移动的图表!`
 		br.IsSendEmail = false
 		return
 	}
 	if num > 100 {
-		br.Msg = `最多只能选择100条指标!`
+		br.Msg = `最多只能选择100条图表!`
 		br.IsSendEmail = false
 		return
 	}
 
-	// 开始批量修改指标分类
+	// 开始批量修改图表分类
 	if len(chartInfoIdList) > 0 {
 		err = data_manage.UpdatePublicClassifyIdByChartInfoIdList(chartInfoIdList, req.NewClassifyId)
 		if err != nil {
-			br.Msg = `指标移动失败!`
-			br.ErrMsg = `指标移动失败,ERR:` + err.Error()
+			br.Msg = `图表移动失败!`
+			br.ErrMsg = `图表移动失败,ERR:` + err.Error()
 			return
 		}
 	}

+ 4 - 1
controllers/data_manage/data_approve/data_approve.go

@@ -312,6 +312,7 @@ func (this *DataApproveController) Cancel() {
 // @Description 审批消息列表
 // @Param   PageSize			query	int		true	"每页数据条数"
 // @Param   CurrentIndex		query	int		true	"当前页页码"
+// @Param   DataType			query   int     true	"审批类型;1:指标审批;2:图表审批"
 // @Success 200 {object} report_approve.DataApproveMessageListResp
 // @router /message/list [get]
 func (this *DataApproveController) MessageList() {
@@ -332,6 +333,8 @@ func (this *DataApproveController) MessageList() {
 	}
 	currentIndex, _ := this.GetInt("currentIndex")
 	pageSize, _ := this.GetInt("pageSize")
+	dataType, _ := this.GetInt("DataType", utils.DataApproveTypeEdb)
+
 	// 分页
 	var startSize int
 	if pageSize <= 0 {
@@ -344,7 +347,7 @@ func (this *DataApproveController) MessageList() {
 
 	resp := new(response.DataApproveMessageListResp)
 	resp.List = make([]*response.DataApproveMessageItem, 0)
-	list, total, unRead, msg, err := dataApproveServ.GetDataApproveMessage(sysUser.AdminId, startSize, pageSize)
+	list, total, unRead, msg, err := dataApproveServ.GetDataApproveMessage(sysUser.AdminId, dataType, startSize, pageSize)
 	if err != nil {
 		if msg != "" {
 			br.Msg = msg

+ 64 - 16
controllers/data_manage/edb_info.go

@@ -1785,10 +1785,17 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 	edbTypeList := make([]int, 0)
 	edbInfoType := -1                            // 指标范围
 	edbTypeStr := this.GetString("EdbType", "0") // 指标类型:0-基础和计算;1-基础指标;2-计算指标;3-预测指标
+
+	// 搜索用户id
+	searchUserId := this.SysUser.AdminId
 	{
 		if edbTypeStr == `` || edbTypeStr == `0` {
 			edbTypeList = []int{1, 2}
 			edbInfoType = 0
+		} else if edbTypeStr == `1` { // 数据加工(基础指标),不应该固定创建人的
+			edbTypeList = []int{1}
+			edbInfoType = 0
+			searchUserId = 0
 		} else {
 			var hasEdb, hasPredictEdb bool
 			tmpEdbTypeList := strings.Split(edbTypeStr, `,`)
@@ -1860,7 +1867,7 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 	}
 
 	// 普通的搜索
-	total, edbInfoList, err = elastic.SearchEdbInfoData(keyWord, startSize, pageSize, filterSource, source, frequency, noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, collectEdbInfoIdList, edbTypeList, edbInfoType, edbAuth, this.SysUser.AdminId, sortMap)
+	total, edbInfoList, err = elastic.SearchEdbInfoData(keyWord, startSize, pageSize, filterSource, source, frequency, noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, collectEdbInfoIdList, edbTypeList, edbInfoType, edbAuth, searchUserId, sortMap)
 
 	if err != nil {
 		edbInfoList = make([]*data_manage.EdbInfoList, 0)
@@ -1871,15 +1878,15 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 	edbInfoListLen := len(edbInfoList)
 
 	classifyIdList := make([]int, 0)
-	for i := 0; i < edbInfoListLen; i++ {
-		edbInfoList[i].ConvertToResp()
-		edbInfoList[i].EdbNameAlias = edbInfoList[i].EdbName
-		classifyIdList = append(classifyIdList, edbInfoList[i].ClassifyId)
+	for _, v := range edbInfoList {
+		v.ConvertToResp()
+		v.EdbNameAlias = v.EdbName
+		classifyIdList = append(classifyIdList, v.ClassifyId)
 	}
 
 	// 当前列表中的分类map
 	classifyMap := make(map[int]*data_manage.EdbClassify)
-	if edbInfoListLen > 0 {
+	if len(classifyIdList) > 0 {
 		classifyList, err := data_manage.GetEdbClassifyByIdList(classifyIdList)
 		if err != nil {
 			br.Msg = "获取失败"
@@ -1902,11 +1909,10 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 		// 因为是ES查找的,所以需要重新查一下指标的信息,主要是为了把是否授权字段找出来
 		{
 			edbInfoIdList := make([]int, 0)
-			for i := 0; i < edbInfoListLen; i++ {
-				edbInfoIdList = append(edbInfoIdList, edbInfoList[i].EdbInfoId)
-				tmpEdbInfo := edbInfoList[i]
+			for _, tmpEdbInfo := range edbInfoList {
+				edbInfoIdList = append(edbInfoIdList, tmpEdbInfo.EdbInfoId)
 				if currClassify, ok := classifyMap[tmpEdbInfo.ClassifyId]; ok {
-					edbInfoList[i].HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(tmpEdbInfo.IsJoinPermission, currClassify.IsJoinPermission, tmpEdbInfo.EdbInfoId, tmpEdbInfo.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
+					tmpEdbInfo.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(tmpEdbInfo.IsJoinPermission, currClassify.IsJoinPermission, tmpEdbInfo.EdbInfoId, tmpEdbInfo.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 				}
 			}
 
@@ -1921,20 +1927,57 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 				edbInfoMap[v.EdbInfoId] = v
 			}
 
-			for i := 0; i < edbInfoListLen; i++ {
-				tmpEdbInfo, ok := edbInfoMap[edbInfoList[i].EdbInfoId]
+			// 查询收藏
+			collectEdbMap := make(map[int][]int)
+			collectNameEdbMap := make(map[int][]string)
+			{
+				obj := data_manage.EdbCollect{}
+				collectList, err := obj.GetItemsByUserIdAndEdbInfoIdList(this.SysUser.AdminId, edbInfoIdList)
+				if err != nil {
+					br.Msg = "获取指标信息失败"
+					br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+					return
+				}
+				for _, v := range collectList {
+					collectIdList, ok := collectEdbMap[v.EdbInfoId]
+					if !ok {
+						collectIdList = make([]int, 0)
+					}
+					collectEdbMap[v.EdbInfoId] = append(collectIdList, v.EdbCollectClassifyId)
+
+					collectNameList, ok := collectNameEdbMap[v.EdbInfoId]
+					if !ok {
+						collectNameList = make([]string, 0)
+					}
+					collectNameEdbMap[v.EdbInfoId] = append(collectNameList, v.ClassifyName)
+				}
+
+			}
+
+			for _, v := range edbInfoList {
+				if collectIdList, ok := collectEdbMap[v.EdbInfoId]; ok {
+					v.CollectClassifyIdList = collectIdList
+				} else {
+					v.CollectClassifyIdList = []int{}
+				}
+
+				if collectNameList, ok := collectNameEdbMap[v.EdbInfoId]; ok {
+					v.CollectClassifyNameList = collectNameList
+				} else {
+					v.CollectClassifyNameList = []string{}
+				}
+				tmpEdbInfo, ok := edbInfoMap[v.EdbInfoId]
 				if !ok {
 					continue
 				}
-				edbInfoList[i].IsJoinPermission = tmpEdbInfo.IsJoinPermission
+				v.IsJoinPermission = tmpEdbInfo.IsJoinPermission
 			}
 		}
 
 		// 权限校验
-		for i := 0; i < edbInfoListLen; i++ {
-			tmpEdbInfoItem := edbInfoList[i]
+		for _, tmpEdbInfoItem := range edbInfoList {
 			if currClassify, ok := classifyMap[tmpEdbInfoItem.ClassifyId]; ok {
-				edbInfoList[i].HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(tmpEdbInfoItem.IsJoinPermission, currClassify.IsJoinPermission, tmpEdbInfoItem.EdbInfoId, tmpEdbInfoItem.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
+				tmpEdbInfoItem.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(tmpEdbInfoItem.IsJoinPermission, currClassify.IsJoinPermission, tmpEdbInfoItem.EdbInfoId, tmpEdbInfoItem.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
 			}
 		}
 	}
@@ -4712,6 +4755,11 @@ func (this *EdbInfoController) BatchMoveEdb() {
 			br.ErrMsg = `指标移动失败,ERR:` + err.Error()
 			return
 		}
+
+		// 还得修改ES呢
+		for _, v := range edbInfoIdList {
+			data.AddOrEditEdbInfoToEs(v)
+		}
 	}
 
 	br.Ret = 200

+ 3 - 2
controllers/data_manage/edb_info_share.go

@@ -588,14 +588,15 @@ func (c *EdbInfoShareController) BatchSave() {
 		selectEdbInfoIdList = req.EdbIdList
 	}
 
-	if len(selectEdbInfoIdList) > 30 {
+	num := len(selectEdbInfoIdList)
+	if num > 30 {
 		br.Msg = `指标数量不能超过30个`
 		br.IsSendEmail = false
 		return
 	}
 
 	// 设置
-	{
+	if num > 0 {
 
 		obj := data_manage.EdbInfoShare{}
 		err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)

+ 4 - 0
controllers/data_manage/edb_public.go

@@ -725,6 +725,10 @@ func (c *EdbPublicController) BatchMoveEdb() {
 			br.ErrMsg = `指标移动失败,ERR:` + err.Error()
 			return
 		}
+		// 还得修改ES呢
+		for _, v := range edbInfoIdList {
+			data.AddOrEditEdbInfoToEs(v)
+		}
 	}
 
 	br.Ret = 200

+ 2 - 2
models/data_manage/chart_info.go

@@ -444,8 +444,8 @@ type ChartInfoList struct {
 	UniqueCode           string `description:"图表唯一编码"`
 	CreateTime           time.Time
 	ModifyTime           time.Time
-	EdbInfoList          []*EdbInfoList
-	ChartAlias           string `description:"图表别名"`
+	EdbInfoList          []*EdbInfoList `gorm:"-" description:"实际指标数据"`
+	ChartAlias           string         `description:"图表别名"`
 }
 
 type ChartInfoListResp struct {

+ 19 - 28
models/data_manage/chart_info_share.go

@@ -114,20 +114,17 @@ func (m ChartInfoShare) GetAllSharedChartInfoListByFromUserId(sysUserId int) (li
 	sql := `SELECT b."chart_info_id",
        MAX(a.share_type) AS share_type,
 MAX(a.create_time) as share_time,
-MAX(b."chart_code") AS "chart_code",
 MAX(b."chart_name") "chart_name",
-MAX(b."chart_info_type") "chart_info_type",
-MAX(b."chart_type") "chart_type",
 MAX(b."source") "source",
-MAX(b."source_name") "source_name",
-MAX(b."frequency") "frequency",
-MAX(b."unit") "unit",
-MAX(b."classify_id") "classify_id",
-MAX(b."create_time") "create_time",
+MAX(b."chart_type") "chart_type",
+MAX(b."chart_classify_id") "chart_classify_id",
+MAX(b."chart_public_classify_id") "chart_public_classify_id",
 MAX(b."unique_code") "unique_code",
 MAX(b."chart_image") "chart_image",
+MAX(b."sys_user_id") "sys_user_id",
+MAX(b."sys_user_real_name") "sys_user_real_name",
+MAX(b."create_time") "create_time",
 MAX(b."modify_time") "modify_time",
-MAX(b."start_date") "start_date",
 MAX(b."sort") AS "sort"
  FROM chart_info_share AS a 
      JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id
@@ -150,20 +147,17 @@ func (m ChartInfoShare) GetAllSharedChartInfoListByReceivedUserId(sysUserId int)
 	sql := `SELECT b."chart_info_id",
        MAX(a.share_type) AS share_type,
 MAX(a.create_time) as share_time,
-MAX(b."chart_code") AS "chart_code",
 MAX(b."chart_name") "chart_name",
-MAX(b."chart_info_type") "chart_info_type",
-MAX(b."chart_type") "chart_type",
 MAX(b."source") "source",
-MAX(b."source_name") "source_name",
-MAX(b."frequency") "frequency",
-MAX(b."unit") "unit",
-MAX(b."classify_id") "classify_id",
-MAX(b."create_time") "create_time",
+MAX(b."chart_type") "chart_type",
+MAX(b."chart_classify_id") "chart_classify_id",
+MAX(b."chart_public_classify_id") "chart_public_classify_id",
 MAX(b."unique_code") "unique_code",
 MAX(b."chart_image") "chart_image",
+MAX(b."sys_user_id") "sys_user_id",
+MAX(b."sys_user_real_name") "sys_user_real_name",
+MAX(b."create_time") "create_time",
 MAX(b."modify_time") "modify_time",
-MAX(b."start_date") "start_date",
 MAX(b."sort") AS "sort"
  FROM chart_info_share AS a 
      JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id
@@ -186,24 +180,21 @@ ORDER BY share_time DESC`
 // @return total int32
 // @return list []*ChartInfoList
 // @return err error
-func (m ChartInfoShare) GetShareChartInfoListPageList(condition string, pars []interface{}, startSize, pageSize int) (total int32, list []*ChartInfoList, err error) {
+func (m ChartInfoShare) GetShareChartInfoListPageList(condition string, pars []interface{}, startSize, pageSize int) (total int32, list []*ChartInfoView, err error) {
 	baseSql := `SELECT b."chart_info_id",
        MAX(a.share_type) AS share_type,
 MAX(a.create_time) as share_time,
-MAX(b."chart_code") AS "chart_code",
 MAX(b."chart_name") "chart_name",
-MAX(b."chart_info_type") "chart_info_type",
-MAX(b."chart_type") "chart_type",
 MAX(b."source") "source",
-MAX(b."source_name") "source_name",
-MAX(b."frequency") "frequency",
-MAX(b."unit") "unit",
-MAX(b."classify_id") "classify_id",
-MAX(b."create_time") "create_time",
+MAX(b."chart_type") "chart_type",
+MAX(b."chart_classify_id") "chart_classify_id",
+MAX(b."chart_public_classify_id") "chart_public_classify_id",
 MAX(b."unique_code") "unique_code",
 MAX(b."chart_image") "chart_image",
+MAX(b."sys_user_id") "sys_user_id",
+MAX(b."sys_user_real_name") "sys_user_real_name",
+MAX(b."create_time") "create_time",
 MAX(b."modify_time") "modify_time",
-MAX(b."start_date") "start_date",
 MAX(b."sort") AS "sort"
   FROM chart_info_share AS a 
      JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id

+ 3 - 0
models/data_manage/data_approve/data_approve_message.go

@@ -12,6 +12,7 @@ type DataApproveMessage struct {
 	Id            int       `gorm:"primaryKey;column:id"`
 	SendUserId    int       `gorm:"column:send_user_id"`    // 发送人Id
 	ReceiveUserId int       `gorm:"column:receive_user_id"` // 接收者Id
+	DataType      int       `gorm:"column:data_type"`       // 资产类型
 	Content       string    `gorm:"column:content"`         // 消息内容
 	Remark        string    `gorm:"column:remark"`          // 备注信息
 	DataApproveId int       `gorm:"column:data_approve_id"` // 审批Id
@@ -25,6 +26,7 @@ var DataApproveMessageCols = struct {
 	Id            string
 	SendUserId    string
 	ReceiveUserId string
+	DataType      string
 	Content       string
 	Remark        string
 	DataApproveId string
@@ -36,6 +38,7 @@ var DataApproveMessageCols = struct {
 	Id:            "id",
 	SendUserId:    "send_user_id",
 	ReceiveUserId: "receive_user_id",
+	DataType:      "data_type",
 	Content:       "content",
 	Remark:        "remark",
 	DataApproveId: "data_approve_id",

+ 6 - 4
models/data_manage/data_approve/response/approve.go

@@ -9,10 +9,11 @@ type DataApproveDetail struct {
 
 // DataApproveDetailData 审批详情-报告信息
 type DataApproveDetailData struct {
-	DataId       int    `description:"数据ID"`
-	DataName     string `description:"数据名称"`
-	DataCode     string `description:"数据code"`
-	DataClassify int    `description:"数据所属分类"`
+	DataId           int    `description:"数据ID"`
+	DataName         string `description:"数据名称"`
+	DataCode         string `description:"数据code"`
+	DataClassifyId   int    `description:"数据所属分类id"`
+	DataClassifyName string `description:"数据所属分类名称"`
 }
 
 // DataApproveDetailItem 审批详情-审批信息
@@ -25,6 +26,7 @@ type DataApproveDetailItem struct {
 	CurrNodeId    int    `description:"当前节点ID"`
 	ApplyUserId   int    `description:"申请人ID"`
 	ApplyUserName string `description:"申请人姓名"`
+	ApproveRemark string `description:"申请理由"`
 	ApproveTime   string `description:"审批时间"`
 	CreateTime    string `description:"创建时间"`
 	ModifyTime    string `description:"修改时间"`

+ 1 - 0
models/data_manage/data_approve/response/approve_message.go

@@ -14,6 +14,7 @@ type DataApproveMessageItem struct {
 	Id            int
 	SendUserId    int    `description:"发送人ID"`
 	ReceiveUserId int    `description:"接收者ID"`
+	DataType      int    `description:"资产类型"`
 	Content       string `description:"消息内容"`
 	Remark        string `description:"备注信息"`
 	DataApproveId int    `description:"审批ID"`

+ 26 - 0
models/data_manage/edb_collect.go

@@ -351,3 +351,29 @@ func UpdateEdbCollectMove(sort, adminId, edbInfoId, myChartClassifyId int) (err
 	err = global.DmSQL["data"].Exec(sql, sort, adminId, edbInfoId, myChartClassifyId).Error
 	return
 }
+
+// EdbCollectItem 指标收藏信息
+type EdbCollectItem struct {
+	EdbCollectId         int       `gorm:"primaryKey;autoIncrement;column:edb_collect_id;type:int(10) unsigned;not null"`
+	EdbCollectClassifyId int       `gorm:"index:idx_classify_id;column:edb_collect_classify_id;type:int(10) unsigned;not null;default:0"` // 指标收藏分类ID
+	EdbInfoId            int       `gorm:"column:edb_info_id;type:int(10) unsigned;not null;default:0"`                                   // 指标ID
+	EdbCode              string    `gorm:"column:edb_code;type:varchar(255);not null;default:''"`                                         // 指标编码
+	SysUserId            int       `gorm:"column:sys_user_id;type:int(10) unsigned;not null;default:0"`                                   // 创建人ID
+	SysRealName          string    `gorm:"column:sys_real_name;type:int(10) unsigned;not null;default:0"`                                 // 创建人姓名
+	ClassifyName         string    `gorm:"column:classify_name;type:varchar(255);not null;default:''"`                                    // 分类名称
+	Sort                 int       `gorm:"column:sort;type:int(10);default:0"`                                                            // 排序
+	CreateTime           time.Time `gorm:"column:create_time;type:datetime"`                                                              // 创建时间
+	ModifyTime           time.Time `gorm:"column:modify_time;type:datetime"`                                                              // 更新时间
+}
+
+func (m *EdbCollect) GetItemsByUserIdAndEdbInfoIdList(userId int, edbInfoIdList []int) (items []*EdbCollectItem, err error) {
+	if len(edbInfoIdList) <= 0 {
+		return
+	}
+	sql := `SELECT a.*,b.classify_name FROM edb_collect  AS a
+    JOIN edb_collect_classify b on a.edb_collect_classify_id = b.edb_collect_classify_id
+    WHERE a.sys_user_id = ? AND a.edb_info_id in (?)  ORDER BY a.edb_collect_id DESC `
+	err = global.DmSQL["data"].Raw(sql, userId, edbInfoIdList).Find(&items).Error
+
+	return
+}

+ 50 - 49
models/data_manage/edb_info.go

@@ -367,55 +367,56 @@ func ModifyEdbEnInfo(item *EditEdbEnInfoReq) (err error) {
 }
 
 type EdbInfoList struct {
-	EdbInfoId             int                     `orm:"column(edb_info_id);pk" gorm:"primaryKey" `
-	EdbInfoType           int                     `description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName            string                  `description:"来源名称"`
-	Source                int                     `description:"来源id"`
-	EdbCode               string                  `description:"指标编码"`
-	EdbNameEn             string                  `description:"英文指标名称"`
-	EdbName               string                  `description:"指标名称"`
-	Frequency             string                  `description:"频率"`
-	FrequencyEn           string                  `description:"英文频率"`
-	Unit                  string                  `description:"单位"`
-	UnitEn                string                  `description:"英文单位"`
-	StartDate             string                  `description:"起始日期"`
-	EndDate               string                  `description:"终止日期"`
-	LatestDate            string                  `description:"数据最新日期(实际日期)"`
-	LatestValue           float64                 `description:"数据最新值(实际值)"`
-	EndValue              float64                 `description:"数据的最新值(预测日期的最新值)"`
-	ClassifyId            int                     `description:"分类id"`
-	UniqueCode            string                  `description:"指标唯一编码"`
-	SysUserId             int                     `description:"创建人id"`
-	SysUserRealName       string                  `description:"创建人姓名"`
-	ModifyTime            string                  `description:"最新修改时间"`
-	CreateTime            string                  `description:"创建时间"`
-	EdbNameAlias          string                  `json:"-" description:"指标名称,别名"`
-	EdbType               int                     `description:"指标类型:1:基础指标,2:计算指标"`
-	ChartImage            string                  `description:"图表图片"`
-	RuleType              int                     `description:"预测规则,1:最新,2:固定值"`
-	FixedValue            float64                 `description:"固定值"`
-	DataList              []*EdbData              `gorm:"-" description:"实际指标数据"`
-	PredictDataList       []*EdbData              `gorm:"-" description:"预测指标数据"`
-	Button                EdbClassifyItemsButton  `gorm:"-" description:"操作权限"`
-	IsEnEdb               bool                    `description:"是否展示英文标识"`
-	DataInsertConfig      EdbDataInsertConfigItem `gorm:"-" description:"指标数据插入配置"`
-	DataDateType          string                  `description:"数据日期类型,枚举值:交易日、自然日"`
-	EmptyType             int                     `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
-	MaxEmptyType          int                     `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
-	SubSource             int                     `description:"子数据来源:0:经济数据库,1:日期序列"`
-	SubSourceName         string                  `description:"子数据来源名称"`
-	IndicatorCode         string                  `description:"指标代码"`
-	StockCode             string                  `description:"证券代码"`
-	NoUpdate              int8                    `description:"是否停止更新,0:继续更新;1:停止更新"`
-	IsJoinPermission      int                     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	HaveOperaAuth         bool                    `description:"是否有数据权限,默认:false"`
-	IsSupplierStop        int                     `description:"是否供应商停更:1:停更,0:未停更"`
-	CollectClassifyIdList []int                   `description:"所属收藏分类id列表" gorm:"-"`
-	SharedUserIdList      []int                   `description:"共享用户id列表" gorm:"-"`
-	SharedUserName        string                  `description:"共享用户姓名,多个用英文,隔开" gorm:"-"`
-	PublicStatus          int                     `description:"公开状态;0:未公开;1:审批中;2:已驳回;3:已公开"`
-	EdbPublicClassifyId   int                     `description:"指标公开分类id"`
-	PublicTime            time.Time               `description:"设置公开的时间"`
+	EdbInfoId               int                     `orm:"column(edb_info_id);pk" gorm:"primaryKey" `
+	EdbInfoType             int                     `description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName              string                  `description:"来源名称"`
+	Source                  int                     `description:"来源id"`
+	EdbCode                 string                  `description:"指标编码"`
+	EdbNameEn               string                  `description:"英文指标名称"`
+	EdbName                 string                  `description:"指标名称"`
+	Frequency               string                  `description:"频率"`
+	FrequencyEn             string                  `description:"英文频率"`
+	Unit                    string                  `description:"单位"`
+	UnitEn                  string                  `description:"英文单位"`
+	StartDate               string                  `description:"起始日期"`
+	EndDate                 string                  `description:"终止日期"`
+	LatestDate              string                  `description:"数据最新日期(实际日期)"`
+	LatestValue             float64                 `description:"数据最新值(实际值)"`
+	EndValue                float64                 `description:"数据的最新值(预测日期的最新值)"`
+	ClassifyId              int                     `description:"分类id"`
+	UniqueCode              string                  `description:"指标唯一编码"`
+	SysUserId               int                     `description:"创建人id"`
+	SysUserRealName         string                  `description:"创建人姓名"`
+	ModifyTime              string                  `description:"最新修改时间"`
+	CreateTime              string                  `description:"创建时间"`
+	EdbNameAlias            string                  `json:"-" description:"指标名称,别名"`
+	EdbType                 int                     `description:"指标类型:1:基础指标,2:计算指标"`
+	ChartImage              string                  `description:"图表图片"`
+	RuleType                int                     `description:"预测规则,1:最新,2:固定值"`
+	FixedValue              float64                 `description:"固定值"`
+	DataList                []*EdbData              `gorm:"-" description:"实际指标数据"`
+	PredictDataList         []*EdbData              `gorm:"-" description:"预测指标数据"`
+	Button                  EdbClassifyItemsButton  `gorm:"-" description:"操作权限"`
+	IsEnEdb                 bool                    `description:"是否展示英文标识"`
+	DataInsertConfig        EdbDataInsertConfigItem `gorm:"-" description:"指标数据插入配置"`
+	DataDateType            string                  `description:"数据日期类型,枚举值:交易日、自然日"`
+	EmptyType               int                     `description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	MaxEmptyType            int                     `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
+	SubSource               int                     `description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName           string                  `description:"子数据来源名称"`
+	IndicatorCode           string                  `description:"指标代码"`
+	StockCode               string                  `description:"证券代码"`
+	NoUpdate                int8                    `description:"是否停止更新,0:继续更新;1:停止更新"`
+	IsJoinPermission        int                     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	HaveOperaAuth           bool                    `description:"是否有数据权限,默认:false"`
+	IsSupplierStop          int                     `description:"是否供应商停更:1:停更,0:未停更"`
+	CollectClassifyIdList   []int                   `description:"所属收藏分类id列表" gorm:"-"`
+	CollectClassifyNameList []string                `description:"所属收藏分类名称列表" gorm:"-"`
+	SharedUserIdList        []int                   `description:"共享用户id列表" gorm:"-"`
+	SharedUserName          string                  `description:"共享用户姓名,多个用英文,隔开" gorm:"-"`
+	PublicStatus            int                     `description:"公开状态;0:未公开;1:审批中;2:已驳回;3:已公开"`
+	EdbPublicClassifyId     int                     `description:"指标公开分类id"`
+	PublicTime              time.Time               `description:"设置公开的时间"`
 }
 
 type EdbDataInsertConfigItem struct {

+ 18 - 0
models/data_manage/public_chart_classify.go

@@ -97,6 +97,24 @@ func (m ChartPublicClassify) GetChartClassifyById(classifyId int) (item *ChartPu
 	return
 }
 
+// GetEdbClassifyByIdList
+// @Description: 根据id列表获取分类列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-04 16:56:15
+// @param classifyIdList []int
+// @return items []*ChartPublicClassify
+// @return err error
+func (m ChartPublicClassify) GetEdbClassifyByIdList(classifyIdList []int) (items []*ChartPublicClassify, err error) {
+	if len(classifyIdList) <= 0 {
+		return
+	}
+	sql := `SELECT * FROM chart_public_classify WHERE chart_public_classify_id in (?) `
+	err = global.DmSQL["data"].Raw(sql, classifyIdList).Find(&items).Error
+
+	return
+}
+
 // GetChartClassifyListByParentId
 // @Description: 根据父级id获取下级分类列表
 // @author: Roc

+ 18 - 0
models/data_manage/public_edb_classify.go

@@ -95,6 +95,24 @@ func (m EdbPublicClassify) GetEdbClassifyById(classifyId int) (item *EdbPublicCl
 	return
 }
 
+// GetEdbClassifyByIdList
+// @Description: 根据id列表获取分类列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-04 16:56:15
+// @param classifyIdList []int
+// @return items []*EdbPublicClassify
+// @return err error
+func (m EdbPublicClassify) GetEdbClassifyByIdList(classifyIdList []int) (items []*EdbPublicClassify, err error) {
+	if len(classifyIdList) <= 0 {
+		return
+	}
+	sql := `SELECT * FROM edb_public_classify WHERE edb_public_classify_id in (?) `
+	err = global.DmSQL["data"].Raw(sql, classifyIdList).Find(&items).Error
+
+	return
+}
+
 // GetEdbClassifyListByParentId
 // @Description: 根据父级id获取下级分类列表
 // @author: Roc

+ 1 - 1
models/data_manage/request/chart_info_share.go

@@ -12,7 +12,7 @@ type SetChartInfoShareReq struct {
 // @Description: 获取指标列表(设置共享的时候)请求结构体
 type SearchChartInfoShareReq struct {
 	ChartShareList []int  `description:"指标分享状态:1-未共享;2-已共享。可多选,默认是未共享"`
-	SourceList     []int  `description:"来源id"`
+	ChartTypeList  []int  `description:"图表类型id列表"`
 	Keyword        string `description:"关键字"`
 	ClassifyIdList []int  `description:"分类选择,如果不指定分类,那么就是所有分类"`
 	CurrentIndex   int    `description:"当前页页码,从1开始"`

+ 1 - 0
models/data_manage/request/public_chart.go

@@ -29,6 +29,7 @@ type SetChartPublicChartReq struct {
 // @Description: 获取图表列表(设置公开的时候)请求结构体
 type SearchPublicChartReq struct {
 	ChartPublicList      []int  `description:"图表公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开"`
+	ChartTypeList        []int  `description:"图表类型id列表"`
 	Keyword              string `description:"关键字"`
 	ClassifyIdList       []int  `description:"图表分类选择,如果不指定分类,那么就是所有分类"`
 	PublicClassifyIdList []int  `description:"图表所属公共分类id,如果不指定分类,那么就是所有分类"`

+ 1 - 1
models/data_manage/response/chart.go

@@ -14,5 +14,5 @@ type ChartRefreshResp struct {
 // ChartInfoChartListResp ETA图库列表返回数据
 type ChartInfoChartListResp struct {
 	Paging *paging.PagingItem
-	List   []*data_manage.ChartInfoList
+	List   []*data_manage.ChartInfoView
 }

+ 6 - 1
services/data/chart_classify.go

@@ -1403,7 +1403,12 @@ func GetChartClassifyTreeRecursive(list []*data_manage.ChartClassifyItems, paren
 	res := make([]*data_manage.ChartClassifyItems, 0)
 	for _, v := range list {
 		if v.ParentId == parentId {
-			v.Children = GetChartClassifyTreeRecursive(list, v.ChartClassifyId)
+			tmpChildrenList := GetChartClassifyTreeRecursive(list, v.ChartClassifyId)
+			if v.Children != nil {
+				v.Children = append(v.Children, tmpChildrenList...)
+			} else {
+				v.Children = GetChartClassifyTreeRecursive(list, v.ChartClassifyId)
+			}
 			res = append(res, v)
 		}
 	}

+ 1 - 2
services/data/chart_info_share.go

@@ -81,8 +81,7 @@ func GetChartClassifyItemListByShareChartInfoQueryList(items []*data_manage.Shar
 		}
 		chartClassifyItemList, ok := chartClassifyItemListMap[v.ChartClassifyId]
 		if !ok {
-			chartClassifyItemListMap[v.ChartClassifyId] = []*data_manage.ChartClassifyItems{chartClassifyItem}
-			continue
+			chartClassifyItemList = make([]*data_manage.ChartClassifyItems, 0)
 		}
 		chartClassifyItemListMap[v.ChartClassifyId] = append(chartClassifyItemList, chartClassifyItem)
 		classifyIdList = append(classifyIdList, v.ChartClassifyId)

+ 10 - 6
services/data/chart_public.go

@@ -62,15 +62,19 @@ func DeleteChartPublicCheck(chartInfoId int, sysUser *system.Admin) (deleteStatu
 // @return chartInfoType int
 // @return chartAuth int
 // @return sortMap map[string]string
-func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth int, sortMap map[string]string) {
+func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth int, sortMap map[string]string) {
 	keyword = req.Keyword
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 
 	//指标来源
 	sourceList = []int{utils.CHART_TYPE_CURVE}
 
+	chartTypeList = req.ChartTypeList
+
 	// 选择的分类
 	classifyIdList = req.ClassifyIdList
+
+	// 公开分类
 	publicClassifyIdList = req.PublicClassifyIdList
 
 	// 指标公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开
@@ -119,9 +123,9 @@ func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, search
 // @return err error
 func GetAllChartInfoListBySearchPublicChartReq(req request.SearchPublicChartReq, userId int) (chartInfoList []*data_manage.ChartInfoView, err error) {
 	// 获取查询参数
-	keyword, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := GetChartSearchPar(req)
+	keyword, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := GetChartSearchPar(req)
 
-	_, chartInfoList, err = getAllChartInfoDataByPublic(keyword, 1, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, userId, sortMap)
+	_, chartInfoList, err = getAllChartInfoDataByPublic(keyword, 1, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, userId, sortMap)
 	if err != nil {
 		return
 	}
@@ -146,7 +150,7 @@ func GetAllChartInfoListBySearchPublicChartReq(req request.SearchPublicChartReq,
 // @return total int64
 // @return list []*data_manage.ChartInfoList
 // @return err error
-func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	// 每页获取数据的数量
 	pageSize := 5000
 	var startSize int
@@ -155,14 +159,14 @@ func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublic
 	}
 	startSize = paging.StartIndex(currPage, pageSize)
 
-	total, list, err = elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
+	total, list, err = elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
 	if err != nil {
 		return
 	}
 
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	if !page.IsEnd {
-		_, nextList, tmpErr := getAllChartInfoDataByPublic(keyword, page.NextIndex, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
+		_, nextList, tmpErr := getAllChartInfoDataByPublic(keyword, page.NextIndex, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 57 - 15
services/data/data_approve/approve.go

@@ -145,6 +145,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 				messageItem := new(dataApproveModel.DataApproveMessage)
 				messageItem.SendUserId = approveItem.ApplyUserId
 				messageItem.ReceiveUserId = nextUser.UserId
+				messageItem.DataType = approveItem.DataType
 				messageItem.Content = "您有新的待办任务"
 				messageItem.Remark = fmt.Sprintf("%s提交的【%s】需要您审批,请及时处理", approveItem.ApplyUserName, approveItem.Title)
 				messageItem.DataApproveId = approveItem.DataApproveId
@@ -168,7 +169,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataType, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
 			return
 		} else {
 			// 最后一个节点
@@ -214,7 +215,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataType, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
 			return
 		}
 	}
@@ -250,7 +251,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 				err = fmt.Errorf("更新审批当前节点失败, Err: %s", e.Error())
 				return
 			}
-			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
+			err = BuildNextNodeRecordAndMsg(nextNode, approveItem.DataType, approveItem.DataApproveId, approveItem.ApplyUserId, approveItem.ApplyUserName, approveItem.Title)
 			return
 		}
 	}
@@ -278,6 +279,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 			messageItem := new(dataApproveModel.DataApproveMessage)
 			messageItem.SendUserId = adminId
 			messageItem.ReceiveUserId = approveItem.ApplyUserId
+			messageItem.DataType = approveItem.DataType
 			messageItem.Content = "您提交的审批已通过"
 			messageItem.Remark = fmt.Sprintf("您提交的【%s】已通过", approveItem.Title)
 			messageItem.DataApproveId = approveItem.DataApproveId
@@ -295,7 +297,7 @@ func PassDataApprove(approveId int, adminId int) (msg string, err error) {
 }
 
 // BuildNextNodeRecordAndMsg 生成下一个节点的审批记录并推送消息
-func BuildNextNodeRecordAndMsg(approveNodeItem *dataApproveModel.DataApproveNode, approveId, sysAdminId int, sysAdminName, title string) (err error) {
+func BuildNextNodeRecordAndMsg(approveNodeItem *dataApproveModel.DataApproveNode, dataType, approveId, sysAdminId int, sysAdminName, title string) (err error) {
 	if approveNodeItem == nil {
 		err = fmt.Errorf("approve node nil")
 		return
@@ -350,6 +352,7 @@ func BuildNextNodeRecordAndMsg(approveNodeItem *dataApproveModel.DataApproveNode
 		for _, v := range newRecords {
 			m := new(dataApproveModel.DataApproveMessage)
 			m.SendUserId = sysAdminId
+			m.DataType = dataType
 			m.ReceiveUserId = v.ApproveUserId
 			m.Content = "您有新的待办任务"
 			m.Remark = fmt.Sprintf("%s提交的【%s】需要您审批,请及时处理", sysAdminName, title)
@@ -677,6 +680,7 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 	detail.Approve.CurrNodeId = approveItem.CurrNodeId
 	detail.Approve.ApplyUserId = approveItem.ApplyUserId
 	detail.Approve.ApplyUserName = approveItem.ApplyUserName
+	detail.Approve.ApproveRemark = approveItem.ApproveRemark
 	detail.Approve.ApproveTime = utils.TimeTransferString(utils.FormatDateTime, approveItem.ApproveTime)
 	detail.Approve.CreateTime = utils.TimeTransferString(utils.FormatDateTime, approveItem.CreateTime)
 	detail.Approve.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, approveItem.ModifyTime)
@@ -767,9 +771,11 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 		}
 
 		dataIdList := make([]int, 0)
+		dataClassifyIdList := make([]int, 0)
 		dataIdClassifyIdMap := make(map[int]int)
 		for _, v := range dataItemList {
 			dataIdList = append(dataIdList, v.DataId)
+			dataClassifyIdList = append(dataClassifyIdList, v.ClassifyId)
 			dataIdClassifyIdMap[v.DataId] = v.ClassifyId
 		}
 
@@ -780,12 +786,29 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 				err = tmpErr
 				return
 			}
+
+			publicClassifyMap := make(map[int]string)
+			// 获取分类信息
+			{
+				publicClassifyObj := data_manage.EdbPublicClassify{}
+				publicClassifyList, tmpErr := publicClassifyObj.GetEdbClassifyByIdList(dataClassifyIdList)
+				if tmpErr != nil {
+					err = tmpErr
+					return
+				}
+				for _, v := range publicClassifyList {
+					publicClassifyMap[v.EdbPublicClassifyId] = v.EdbPublicClassifyNamePath
+				}
+			}
+
 			for _, v := range tmpList {
+				classifyId := dataIdClassifyIdMap[v.EdbInfoId]
 				item := response.DataApproveDetailData{
-					DataId:       v.EdbInfoId,
-					DataName:     v.EdbName,
-					DataCode:     v.UniqueCode,
-					DataClassify: dataIdClassifyIdMap[v.EdbInfoId],
+					DataId:           v.EdbInfoId,
+					DataName:         v.EdbName,
+					DataCode:         v.UniqueCode,
+					DataClassifyId:   classifyId,
+					DataClassifyName: publicClassifyMap[classifyId],
 				}
 				dataList = append(dataList, item)
 			}
@@ -795,12 +818,29 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 				err = tmpErr
 				return
 			}
+
+			publicClassifyMap := make(map[int]string)
+			// 获取分类信息
+			{
+				publicClassifyObj := data_manage.ChartPublicClassify{}
+				publicClassifyList, tmpErr := publicClassifyObj.GetEdbClassifyByIdList(dataClassifyIdList)
+				if tmpErr != nil {
+					err = tmpErr
+					return
+				}
+				for _, v := range publicClassifyList {
+					publicClassifyMap[v.ChartPublicClassifyId] = v.ChartPublicClassifyNamePath
+				}
+			}
+
 			for _, v := range tmpList {
+				classifyId := dataIdClassifyIdMap[v.ChartInfoId]
 				item := response.DataApproveDetailData{
-					DataId:       v.ChartInfoId,
-					DataName:     v.ChartName,
-					DataCode:     v.UniqueCode,
-					DataClassify: dataIdClassifyIdMap[v.ChartInfoId],
+					DataId:           v.ChartInfoId,
+					DataName:         v.ChartName,
+					DataCode:         v.UniqueCode,
+					DataClassifyId:   classifyId,
+					DataClassifyName: publicClassifyMap[classifyId],
 				}
 				dataList = append(dataList, item)
 			}
@@ -912,6 +952,7 @@ func refuseDataApprove(approveItem *dataApproveModel.DataApprove, recordItem *da
 		messageItem := new(dataApproveModel.DataApproveMessage)
 		messageItem.SendUserId = sysAdminId
 		messageItem.ReceiveUserId = approveItem.ApplyUserId
+		messageItem.DataType = approveItem.DataType
 		messageItem.Content = "您提交的审批被驳回"
 		messageItem.Remark = fmt.Sprintf("您提交的【%s】已被驳回", approveItem.Title)
 		messageItem.DataApproveId = approveItem.DataApproveId
@@ -945,7 +986,7 @@ func DataApproveCancel(DataApproveId, adminId int, adminName string) (msg string
 	}
 
 	// 撤销审批
-	e = cancelDataApprove(approveItem, approveItem.DataApproveId, adminId, adminName)
+	e = cancelDataApprove(approveItem, approveItem.DataType, approveItem.DataApproveId, adminId, adminName)
 	if e != nil {
 		msg = "操作失败"
 		err = fmt.Errorf("cancelDataApprove err: %s", e.Error())
@@ -955,7 +996,7 @@ func DataApproveCancel(DataApproveId, adminId int, adminName string) (msg string
 }
 
 // cancelDataApprove 撤回审批
-func cancelDataApprove(item *dataApproveModel.DataApprove, approveId, sysAdminId int, sysAdminName string) (err error) {
+func cancelDataApprove(item *dataApproveModel.DataApprove, dataType, approveId, sysAdminId int, sysAdminName string) (err error) {
 	// todo
 	//// 默认内部审批, 如果是走的第三方审批, 那么仅修改状态
 	//confMap, e := models.GetBusinessConf()
@@ -1016,6 +1057,7 @@ func cancelDataApprove(item *dataApproveModel.DataApprove, approveId, sysAdminId
 			m := new(dataApproveModel.DataApproveMessage)
 			m.SendUserId = sysAdminId
 			m.ReceiveUserId = v.ApproveUserId
+			m.DataType = dataType
 			m.Content = fmt.Sprintf("%s提交的【%s】已撤回", sysAdminName, approveItem.Title)
 			m.DataApproveId = approveId
 			m.ApproveState = DataApproveStateCancel
@@ -1163,7 +1205,7 @@ func SubmitDataApprove(dataType int, dataList []SetDataPublicItem, title, descri
 	approveId = newApprove.DataApproveId
 
 	// 生成节点审批记录
-	err = BuildNextNodeRecordAndMsg(firstNodeItem, newApprove.DataApproveId, sysAdminId, sysAdminName, newApprove.Title)
+	err = BuildNextNodeRecordAndMsg(firstNodeItem, newApprove.DataType, newApprove.DataApproveId, sysAdminId, sysAdminName, newApprove.Title)
 
 	return
 }

+ 4 - 3
services/data/data_approve/approve_message.go

@@ -8,10 +8,10 @@ import (
 	"time"
 )
 
-func GetDataApproveMessage(adminId, startSize, pageSize int) (list []*response.DataApproveMessageItem, total, unread int, msg string, err error) {
-	cond := fmt.Sprintf(` AND %s = ?`, DataApprove.DataApproveMessageCols.ReceiveUserId)
+func GetDataApproveMessage(adminId, dataType, startSize, pageSize int) (list []*response.DataApproveMessageItem, total, unread int, msg string, err error) {
+	cond := fmt.Sprintf(` AND %s = ? AND %s = ? `, DataApprove.DataApproveMessageCols.ReceiveUserId, DataApprove.DataApproveMessageCols.DataType)
 	pars := make([]interface{}, 0)
-	pars = append(pars, adminId)
+	pars = append(pars, adminId, dataType)
 	order := fmt.Sprintf(`%s ASC, %s DESC`, DataApprove.DataApproveMessageCols.IsRead, DataApprove.DataApproveMessageCols.CreateTime)
 
 	messageOb := new(DataApprove.DataApproveMessage)
@@ -78,6 +78,7 @@ func FormatDataApproveMessage2Item(origin *DataApprove.DataApproveMessage) (item
 	item.Id = origin.Id
 	item.SendUserId = origin.SendUserId
 	item.ReceiveUserId = origin.ReceiveUserId
+	item.DataType = origin.DataType
 	item.Content = origin.Content
 	item.Remark = origin.Remark
 	item.DataApproveId = origin.DataApproveId

+ 1 - 2
services/data/edb_info_share.go

@@ -79,8 +79,7 @@ func GetEdbClassifyItemListByShareEdbInfoQueryList(items []*data_manage.ShareEdb
 		}
 		edbClassifyItemList, ok := edbClassifyItemListMap[v.ClassifyId]
 		if !ok {
-			edbClassifyItemListMap[v.ClassifyId] = []*data_manage.EdbClassifyItems{edbClassifyItem}
-			continue
+			edbClassifyItemList = make([]*data_manage.EdbClassifyItems, 0)
 		}
 		edbClassifyItemListMap[v.ClassifyId] = append(edbClassifyItemList, edbClassifyItem)
 		classifyIdList = append(classifyIdList, v.ClassifyId)

+ 20 - 2
services/elastic/chart.go

@@ -225,7 +225,7 @@ func SearchChartInfoData(indexName, keywordStr string, showSysId int, sourceList
 	return
 }
 
-func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int, sourceList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int, sourceList, chartTypeList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	indexName := utils.CHART_INDEX_NAME
 	list = make([]*data_manage.ChartInfoView, 0)
 	defer func() {
@@ -245,6 +245,15 @@ func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int,
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 	}
 
+	//图表类型
+	if len(chartTypeList) > 0 {
+		termsList := make([]interface{}, 0)
+		for _, v := range chartTypeList {
+			termsList = append(termsList, v)
+		}
+		query = query.Must(elastic.NewTermsQuery("ChartType", termsList...))
+	}
+
 	// classifyIdList 指定分类下的图表
 	if len(classifyIdList) > 0 {
 		termsList := make([]interface{}, 0)
@@ -313,7 +322,7 @@ func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int,
 	return searchChartInfoData(indexName, query, sortList, from, size)
 }
 
-func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	indexName := utils.CHART_INDEX_NAME
 	list = make([]*data_manage.ChartInfoView, 0)
 	defer func() {
@@ -333,6 +342,15 @@ func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicL
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 	}
 
+	// 图表类型
+	if len(chartTypeList) > 0 {
+		termsList := make([]interface{}, 0)
+		for _, v := range chartTypeList {
+			termsList = append(termsList, v)
+		}
+		query = query.Must(elastic.NewTermsQuery("ChartType", termsList...))
+	}
+
 	// classifyIdList 指定分类下的图表
 	if len(classifyIdList) > 0 {
 		termsList := make([]interface{}, 0)

+ 11 - 0
services/elastic/edb_info.go

@@ -341,6 +341,17 @@ func SearchEdbInfoData(keywordStr string, from, size, filterSource, source int,
 
 		}
 
+		// 基础指标(数据加工)
+		shouldTermList = append(shouldTermList, map[string]interface{}{
+			"term": map[string]interface{}{
+				"EdbType": 1,
+			},
+		}, map[string]interface{}{
+			"term": map[string]interface{}{
+				"EdbInfoType": 0,
+			},
+		})
+
 		shouldMap := map[string]interface{}{
 			"should": shouldTermList,
 		}