浏览代码

fix:bug修复

Roc 3 月之前
父节点
当前提交
291f1ab788

+ 21 - 0
controllers/data_manage/public_chart.go

@@ -348,11 +348,13 @@ func (c *ChartPublicController) ListByEs() {
 		chartInfoMap := make(map[int]*data_manage.ChartInfo)
 		classifyMap := make(map[int]*data_manage.ChartClassify)
 		publicClassifyMap := make(map[int]*data_manage.ChartPublicClassify)
+		chartTypeMap := make(map[int]*data_manage.ChartType)
 
 		// 图表id,分类id,公共分类id
 		chartInfoIdList := make([]int, 0)
 		tmpClassifyIdList := make([]int, 0)
 		tmpPublicClassifyIdList := make([]int, 0)
+		currChartTypeList := make([]int, 0)
 
 		for _, v := range chartInfoList {
 			v.ConvertToResp()
@@ -360,6 +362,7 @@ func (c *ChartPublicController) ListByEs() {
 			chartInfoIdList = append(chartInfoIdList, v.ChartInfoId)
 			tmpClassifyIdList = append(tmpClassifyIdList, v.ChartClassifyId)
 			tmpPublicClassifyIdList = append(tmpPublicClassifyIdList, v.ChartPublicClassifyId)
+			currChartTypeList = append(currChartTypeList, v.ChartType)
 		}
 
 		// 获取所有有权限的图表
@@ -402,6 +405,19 @@ func (c *ChartPublicController) ListByEs() {
 			}
 		}
 
+		// 图表类型
+		{
+			tmpChartTypeList, err := data_manage.GetChartTypeListByIdList(currChartTypeList)
+			if err != nil {
+				br.Msg = "获取图表类型失败"
+				br.ErrMsg = "获取图表类型失败,Err:" + err.Error()
+				return
+			}
+			for _, v := range tmpChartTypeList {
+				chartTypeMap[v.ChartTypeId] = v
+			}
+		}
+
 		// 数据重新赋值
 		for _, v := range chartInfoList {
 			if tmpChartInfo, ok := chartInfoMap[v.ChartInfoId]; ok {
@@ -418,6 +434,11 @@ func (c *ChartPublicController) ListByEs() {
 				v.PublicClassifyNamePath = classifyItem.ChartPublicClassifyNamePath
 			}
 
+			// 图表类型名称
+			if chartType, ok := chartTypeMap[v.ChartType]; ok {
+				v.ChartTypeName = chartType.ChartTypeName
+			}
+
 		}
 	}
 

+ 1 - 0
models/data_manage/chart_info.go

@@ -1973,6 +1973,7 @@ type ChartInfoView struct {
 	IsSetName         int    `description:"设置名称"`
 	EdbInfoIds        string `description:"指标id"`
 	ChartType         int    `description:"生成样式:1:曲线图,2:季节性图"`
+	ChartTypeName     string `description:"生成样式的名称,如:曲线图,2:季节性图"`
 	Calendar          string `description:"公历/农历"`
 	SeasonStartDate   string `description:"季节性图开始日期"`
 	SeasonEndDate     string `description:"季节性图开始日期"`

+ 18 - 0
models/data_manage/chart_type.go

@@ -35,3 +35,21 @@ func GetChartTypeList() (items []ChartType, err error) {
 
 	return
 }
+
+// GetChartTypeListByIdList
+// @Description: 根据类型id列表获取所有图表类型
+// @author: Roc
+// @datetime 2024-12-31 13:49:20
+// @param idList []int
+// @return items []ChartType
+// @return err error
+func GetChartTypeListByIdList(idList []int) (items []*ChartType, err error) {
+	if len(idList) <= 0 {
+		return
+	}
+	o := global.DmSQL["data"]
+	sql := `SELECT * FROM chart_type WHERE chart_type_id IN (?) `
+	err = o.Raw(sql).Scan(&items).Error
+
+	return
+}

+ 17 - 0
models/data_manage/edb_classify.go

@@ -154,6 +154,23 @@ WHERE a.classify_id IN (SELECT classify_id FROM classify_cte);`
 	return
 }
 
+// GetEdbInfoCountByClassifyIdList
+// @Description: 根据分类id列表获取指标数量
+// @author: Roc
+// @datetime 2024-12-31 14:49:15
+// @param classifyIdList []int
+// @return count int
+// @return err error
+func GetEdbInfoCountByClassifyIdList(classifyIdList []int) (count int, err error) {
+	if len(classifyIdList) <= 0 {
+		return
+	}
+	sql := `SELECT COUNT(1) AS COUNT FROM edb_info AS a WHERE a.classify_id IN (?);`
+	err = global.DmSQL["data"].Raw(sql, classifyIdList).Scan(&count).Error
+
+	return
+}
+
 func DeleteEdbClassify(classifyId int) (err error) {
 	sql := `WITH RECURSIVE ClassifyHierarchy ( classify_id, parent_id ) AS 
      (

+ 3 - 2
services/data/data_approve/approve.go

@@ -797,7 +797,8 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 					return
 				}
 				for _, v := range publicClassifyList {
-					publicClassifyMap[v.EdbPublicClassifyId] = v.EdbPublicClassifyNamePath
+
+					publicClassifyMap[v.EdbPublicClassifyId] = strings.Replace(v.EdbPublicClassifyNamePath, "|", "/", -1)
 				}
 			}
 
@@ -829,7 +830,7 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 					return
 				}
 				for _, v := range publicClassifyList {
-					publicClassifyMap[v.ChartPublicClassifyId] = v.ChartPublicClassifyNamePath
+					publicClassifyMap[v.ChartPublicClassifyId] = strings.Replace(v.ChartPublicClassifyNamePath, "|", "/", -1)
 				}
 			}
 

+ 27 - 5
services/data/edb_classify.go

@@ -528,6 +528,8 @@ func EditEdbClassify(classifyId int, classifyName, lang string, sysUser *system.
 
 // DeleteCheck 删除检测
 func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus int, tipsMsg string, tableList []*data_manage.ExcelBaseInfo, err error, errMsg string) {
+	// 自己以及子级的分类id列表
+	selfAndSelfClassifyIdList := make([]int, 0)
 	//删除分类
 	if classifyId > 0 && edbInfoId == 0 {
 		// 查找分类
@@ -567,8 +569,18 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 
 		}
 
+		// 获取所有的分类(自己+所有子分类)
+		allChildClassifyItemList, tmpErr, _ := GetAllChildClassifyByParentId(classifyId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		selfAndSelfClassifyIdList = append(selfAndSelfClassifyIdList, classifyId)
+		for _, v := range allChildClassifyItemList {
+			selfAndSelfClassifyIdList = append(selfAndSelfClassifyIdList, v.ClassifyId)
+		}
 		//判断分类下,是否含有指标
-		count, tmpErr := data_manage.GetEdbInfoCountByClassifyId(classifyId)
+		count, tmpErr := data_manage.GetEdbInfoCountByClassifyIdList(selfAndSelfClassifyIdList)
 		if tmpErr != nil {
 			errMsg = "删除失败"
 			err = errors.New("分类下是否含有指标失败,Err:" + tmpErr.Error())
@@ -765,6 +777,8 @@ func DeleteCheck(classifyId, edbInfoId int, sysUser *system.Admin) (deleteStatus
 
 // Delete 删除分类/指标
 func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, requestUrl string) (nextItem *data_manage.EdbInfo, tableList []*data_manage.ExcelBaseInfo, err error, errMsg string) {
+	// 自己以及子级的分类id列表
+	selfAndSelfClassifyIdList := make([]int, 0)
 	//删除分类
 	if classifyId > 0 && edbInfoId == 0 {
 		// 查找分类
@@ -801,11 +815,19 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 					return
 				}
 			}
-
 		}
-
-		//判断是否含有指标
-		count, tmpErr := data_manage.GetEdbInfoCountByClassifyId(classifyId)
+		// 获取所有的分类(自己+所有子分类)
+		allChildClassifyItemList, tmpErr, _ := GetAllChildClassifyByParentId(classifyId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		selfAndSelfClassifyIdList = append(selfAndSelfClassifyIdList, classifyId)
+		for _, v := range allChildClassifyItemList {
+			selfAndSelfClassifyIdList = append(selfAndSelfClassifyIdList, v.ClassifyId)
+		}
+		//判断分类下,是否含有指标
+		count, tmpErr := data_manage.GetEdbInfoCountByClassifyIdList(selfAndSelfClassifyIdList)
 		if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
 			errMsg = "删除失败"
 			err = errors.New("分类下是否含有指标失败,Err:" + tmpErr.Error())