Ver Fonte

平衡表权限

xyxie há 10 meses atrás
pai
commit
7bf2e5f277

+ 1 - 1
controllers/data_manage/excel/excel_info.go

@@ -1106,7 +1106,7 @@ func (c *ExcelInfoController) Delete() {
 		var nextItem *excel3.ExcelInfo
 		var condition string
 		var pars []interface{}
-		condition += " AND excel_classify_id=? "
+		condition += " AND excel_classify_id=? AND parent_id=0"
 		pars = append(pars, excelInfo.ExcelClassifyId)
 
 		condition += " AND sort>=? "

+ 2 - 0
models/data_manage/excel/excel_info.go

@@ -29,6 +29,8 @@ type ExcelInfo struct {
 	BalanceType        int       `description:"平衡表类型:0 动态表,1静态表"`
 	UpdateUserId       int       `description:"更新人id"`
 	UpdateUserRealName string    `description:"更新人真实姓名"`
+	RelExcelInfoId     int       `description:"平衡表里静态表关联的动态表excel id"`
+	VersionName        string    `description:"静态表版本名称"`
 }
 
 // Update 更新 excel表格基础信息

+ 27 - 0
services/data/data_manage_permission/excel.go

@@ -153,3 +153,30 @@ func CheckExcelPermission(excelIsJoinPermission, excelClassifyIsJoinPermission,
 
 	return
 }
+
+func CheckBalanceExcelPermissionByExcelInfoId(excelInfo *excel.ExcelInfo, excelIsJoinPermission, userId int) (hasAuth bool, err error) {
+	// 查询父级ID
+	if excelInfo.Source != utils.BALANCE_TABLE {
+		return
+	}
+	parentId := excelInfo.ParentId
+	if excelInfo.BalanceType == 1 { //静态表关联的动态表的权限
+		parentId = excelInfo.RelExcelInfoId
+	}
+	parentExcelInfo, err := excel.GetExcelInfoById(parentId)
+	if err != nil {
+		err = fmt.Errorf("查询表格信息出错 err: %v", err)
+		return
+	}
+	excelClassifyId := parentExcelInfo.ExcelClassifyId
+	excelInfoId := parentExcelInfo.ExcelInfoId
+	currClassify, err := excel.GetExcelClassifyById(excelClassifyId)
+	if err != nil {
+		return
+	}
+	if currClassify != nil {
+		return CheckExcelPermission(excelIsJoinPermission, currClassify.IsJoinPermission, userId, excelInfoId, excelClassifyId)
+	}
+
+	return
+}

+ 15 - 35
services/data/excel/balance_table.go

@@ -9,7 +9,6 @@ import (
 	"eta/eta_api/services/data"
 	"eta/eta_api/utils"
 	"fmt"
-	"sort"
 	"strconv"
 	"strings"
 	"time"
@@ -20,18 +19,19 @@ func AddBalanceTableChart(req request.AddBalanceTableChartReq, sysUser *system.A
 	// 获取表格信息
 	excelInfo, err := excelModel.GetExcelInfoById(req.ExcelInfoId)
 	if err != nil {
-		errMsg = "找不到该EXCEL!err:" + err.Error()
-		err = fmt.Errorf("找不到该EXCEL!")
+		errMsg = "找不到该EXCEL"
+		err = fmt.Errorf("找不到该EXCEL!%s", err.Error())
 		return
 	}
 
 	if excelInfo.Source != utils.BALANCE_TABLE {
+		errMsg = "EXCEL类型错误!"
 		err = fmt.Errorf("EXCEL类型错误!")
 		return
 	}
 	if len(req.ChartEdbList) == 0 {
-		errMsg = "图表数据不能为空!" + err.Error()
-		err = fmt.Errorf("图表数据不能为空!")
+		errMsg = "图表数据不能为空!"
+		err = fmt.Errorf("图表数据不能为空!%s", err.Error())
 		return
 	}
 	chartEdbList := make([]*excelModel.AddChartEdbAndDataItem, 0)
@@ -59,8 +59,8 @@ func AddBalanceTableChart(req request.AddBalanceTableChartReq, sysUser *system.A
 			// 如果是静态表,则直接使用前端传输的数据落到数据库里
 			dateList, dataList, err, errMsg = HandleEdbSequenceVal(chartEdb.DateSequenceVal, chartEdb.DataSequenceVal)
 			if err != nil {
-				errMsg = "时间序列或数据序列异常!" + err.Error()
-				err = fmt.Errorf("时间序列或数据序列异常!")
+				errMsg = "时间序列或数据序列异常!"
+				err = fmt.Errorf("时间序列或数据序列异常!%s", err.Error())
 				return
 			}
 		}
@@ -76,15 +76,15 @@ func AddBalanceTableChart(req request.AddBalanceTableChartReq, sysUser *system.A
 	// todo 处理图表
 	chartInfo, err, errMsg, isSendEmail = addBalanceTableChart(req, sysUser.AdminId, sysUser.RealName)
 	if err != nil {
-		errMsg += "新增图表失败!" + err.Error()
-		err = fmt.Errorf("新增图表失败!")
+		errMsg += "新增图表失败!"
+		err = fmt.Errorf("新增图表失败!%s", err.Error())
 		return
 	}
 	obj := new(excelModel.ExcelChartEdb)
 	err = obj.AddChartEdbAndData(chartEdbList, chartInfo)
 	if err != nil {
-		errMsg = err.Error()
-		err = fmt.Errorf("新增图表失败!")
+		errMsg = "新增图表失败!"
+		err = fmt.Errorf("新增图表失败!%s", err.Error())
 		return
 	}
 
@@ -105,8 +105,6 @@ func addBalanceTableChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 	extraConfig := req.ExtraConfig
 	// 季节性图表额外配置信息
 	var seasonExtraConfig string
-	// 关联指标
-	var edbInfoIdArr []int
 
 	if len(req.ChartEdbList) <= 0 {
 		errMsg = "请选择指标!"
@@ -114,16 +112,6 @@ func addBalanceTableChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 		return
 	}
 	if chartType == 2 {
-		/*existCount, tmpErr := data_manage.GetEdbDataQuarterCount(edbInfoId)
-		if tmpErr != nil {
-			errMsg = "保存失败"
-			err = fmt.Errorf("判断季节性图表,指标数据是否存在失败,Err:" + tmpErr.Error())
-			return
-		}
-		if existCount <= 0 {
-			go data_manage.AddCalculateQuarter(edbInfoId, edbInfo.Source, edbInfo.EdbCode)
-		}*/
-
 		// 处理季节性图表横轴配置
 		{
 			if req.SeasonExtraConfig.XEndDate != "" {
@@ -154,23 +142,15 @@ func addBalanceTableChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 		return
 	}
 
-	sort.Ints(edbInfoIdArr)
-	var edbInfoIdArrStr []string
-	for _, v := range edbInfoIdArr {
-		edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
-	}
-	edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
-
 	//判断图表是否存在
 	var condition string
 	var pars []interface{}
 
 	// 图表名称在不同图分类下不允许重复 需求调整时间:2022年11月07日09:47:07
-	//condition += " AND chart_classify_id=? "
-	//pars = append(pars, req.ChartClassifyId)
+	condition += " AND chart_classify_id=0 "
 
 	condition += " AND chart_name=? AND source = ? "
-	pars = append(pars, req.ChartName, utils.CHART_SOURCE_DEFAULT)
+	pars = append(pars, req.ChartName, utils.CHART_SOURCE_BALANCE_EXCEL)
 
 	count, err := data_manage.GetChartInfoCountByCondition(condition, pars)
 	if err != nil {
@@ -190,7 +170,7 @@ func addBalanceTableChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 
 	chartInfo = new(data_manage.ChartInfo)
 	chartInfo.ChartName = req.ChartName
-	chartInfo.EdbInfoIds = edbInfoIdStr
+	//chartInfo.EdbInfoIds = edbInfoIdStr
 	//chartInfo.ChartClassifyId = req.ChartClassifyId
 	chartInfo.SysUserId = sysUserId
 	chartInfo.SysUserRealName = sysUserRealName
@@ -230,7 +210,7 @@ func addBalanceTableChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 	chartInfo.ExtraConfig = extraConfig
 	chartInfo.SeasonExtraConfig = seasonExtraConfig
 	chartInfo.StartYear = req.StartYear
-	chartInfo.Source = utils.CHART_SOURCE_EXCEL_BALANCE
+	chartInfo.Source = utils.CHART_SOURCE_BALANCE_EXCEL
 	//	chartInfo.ChartThemeId = req.ChartThemeId
 	chartInfo.SourcesFrom = req.SourcesFrom
 	/*	chartInfo.Instructions = req.Instructions

+ 2 - 0
services/data/excel/excel_op.go

@@ -55,6 +55,8 @@ func Delete(excelInfo *excelModel.ExcelInfo, sysUser *system.Admin) (err error,
 		}
 	}
 
+	// todo 如果父级删除是否删除子表和静态表,同时删除图表和图表数据
+
 	// 标记删除
 	excelInfo.IsDelete = 1
 	excelInfo.ModifyTime = time.Now()

+ 1 - 1
utils/constants.go

@@ -276,7 +276,7 @@ const (
 	CHART_SOURCE_LINE_FEATURE_PERCENTILE         = 8  // 统计特征-百分位图表
 	CHART_SOURCE_LINE_FEATURE_FREQUENCY          = 9  // 统计特征-频率分布图表
 	CHART_SOURCE_CROSS_HEDGING                   = 10 // 跨品种分析图表
-	CHART_SOURCE_EXCEL_BALANCE                   = 11 // 平衡表图表
+	CHART_SOURCE_BALANCE_EXCEL                   = 11 // 平衡表图表
 )
 
 // 批量配置图表的位置来源