Browse Source

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

Roc 3 months ago
parent
commit
438cd57689

+ 2 - 2
controllers/data_manage/data_approve/data_approve_flow.go

@@ -80,11 +80,11 @@ func (c *DataApproveFlowController) Save() {
 			ignoreApproveUserIdStr = utils.Implode(req.IgnoreApproveUserIdList)
 		}
 		switch req.DataType {
-		case DataApprove.DataTypeEdb:
+		case utils.DataApproveTypeEdb:
 			err = models.UpdateBusinessConfMulti([]models.BusinessConfUpdate{
 				{ConfKey: models.IgnoreEdbApproveUserId, ConfVal: ignoreApproveUserIdStr},
 			})
-		case DataApprove.DataTypeChart:
+		case utils.DataApproveTypeChart:
 			err = models.UpdateBusinessConfMulti([]models.BusinessConfUpdate{
 				{ConfKey: models.IgnoreChartApproveUserId, ConfVal: ignoreApproveUserIdStr},
 			})

+ 35 - 11
controllers/data_manage/edb_info.go

@@ -4631,23 +4631,47 @@ func (this *EdbInfoController) BatchMoveEdb() {
 	}
 
 	edbInfoIdList := make([]int, 0)
-	// 如果有过滤指标,那么就过滤吧
-	if len(req.NoEdbIdList) > 0 {
-		noEdbIdMap := make(map[int]bool)
-		for _, v := range req.NoEdbIdList {
-			noEdbIdMap[v] = true
-		}
+	if req.IsSelectAll {
+		// 如果有过滤指标,那么就过滤吧
+		if len(req.NoEdbIdList) > 0 {
+			noEdbIdMap := make(map[int]bool)
+			for _, v := range req.NoEdbIdList {
+				noEdbIdMap[v] = true
+			}
 
-		for _, edbInfo := range edbInfoList {
-			if _, ok := noEdbIdMap[edbInfo.EdbInfoId]; !ok {
-				// 如果不在未选中的指标id列表中,那么就加入到选中的指标id列表
+			for _, edbInfo := range edbInfoList {
+				if _, ok := noEdbIdMap[edbInfo.EdbInfoId]; !ok {
+					// 如果不在未选中的指标id列表中,那么就加入到选中的指标id列表
+					edbInfoIdList = append(edbInfoIdList, edbInfo.EdbInfoId)
+				}
+			}
+		} else {
+			for _, edbInfo := range edbInfoList {
 				edbInfoIdList = append(edbInfoIdList, edbInfo.EdbInfoId)
+				for _, v := range edbInfoList {
+					if v.SysUserId != this.SysUser.AdminId {
+						br.Msg = `您没有权限移动该指标!`
+						br.IsSendEmail = false
+						return
+					}
+				}
 			}
 		}
 	} else {
-		for _, edbInfo := range edbInfoList {
-			edbInfoIdList = append(edbInfoIdList, edbInfo.EdbInfoId)
+		edbInfoList, err = data_manage.GetEdbInfoListByCond(` AND edb_info_id in (?) `, []interface{}{req.EdbIdList})
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
+			return
+		}
+		for _, v := range edbInfoList {
+			if v.SysUserId != this.SysUser.AdminId {
+				br.Msg = `您没有权限移动该指标!`
+				br.IsSendEmail = false
+				return
+			}
 		}
+		edbInfoIdList = req.EdbIdList
 	}
 
 	num := len(edbInfoIdList)

+ 4 - 4
controllers/data_manage/edb_info_share.go

@@ -381,12 +381,12 @@ func (c *EdbInfoShareController) ListByEs() {
 	edbInfoType := 0        // 普通指标
 	edbTypeList := []int{2} // 普通指标中的计算指标
 
-	// 指标分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未共享
+	// 指标分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未全部
 	edbShareList := req.EdbShareList
 	if len(edbShareList) <= 0 {
-		edbShareList = []int{1}
+		edbShareList = []int{}
 	}
-	edbShare := 1 // 0:全部,1:未共享,2:已共享
+	edbShare := 0 // 0:全部,1:未共享,2:已共享
 	lenEdbShareList := len(edbShareList)
 	if len(edbShareList) > 0 {
 		if lenEdbShareList > 1 {
@@ -396,7 +396,7 @@ func (c *EdbInfoShareController) ListByEs() {
 		}
 	}
 
-	// 指标分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未共享
+	// 直指标所属分类id
 	edbClassifyIdList := req.ClassifyIdList
 
 	edbAuth := 1 // 选择范围是:只有我的指标

+ 8 - 58
controllers/data_manage/edb_public.go

@@ -257,7 +257,7 @@ func (c *EdbPublicController) Save() {
 	}
 
 	// 校验是否开启了审批流
-	opening, e := dataApproveSerice.CheckOpenApprove(dataApproveSerice.DataTypeEdb)
+	opening, e := dataApproveSerice.CheckOpenApprove(utils.DataApproveTypeEdb)
 	if e != nil {
 		br.Msg = "操作失败"
 		br.ErrMsg = "校验指标公开是否开启审批流失败, Err: " + e.Error()
@@ -293,15 +293,19 @@ func (c *EdbPublicController) Save() {
 
 	// 没开启审批流、或者无需审批
 	if !opening || isIgnoreApprove {
-		err = dataApproveSerice.UpdatePublicByDataList(dataApproveSerice.DataTypeEdb, dataApproveSerice.DataApproveStatePass, dataPublicItemList)
+		err = dataApproveSerice.UpdatePublicByDataList(utils.DataApproveTypeEdb, dataApproveSerice.DataApproveStatePass, dataPublicItemList)
 	} else {
-
-		_, err = dataApproveSerice.SubmitDataApprove(dataApproveSerice.DataTypeEdb, dataPublicItemList, title, strings.TrimSpace(req.Description), c.SysUser.AdminId, c.SysUser.RealName)
+		_, err = dataApproveSerice.SubmitDataApprove(utils.DataApproveTypeEdb, dataPublicItemList, title, strings.TrimSpace(req.Description), c.SysUser.AdminId, c.SysUser.RealName)
 		if err != nil {
 			br.Msg = "提交审批失败"
 			br.ErrMsg = "提交审批失败, Err: " + err.Error()
 			return
 		}
+
+		// 更新ES
+		for _, dataPublicItem := range dataPublicItemList {
+			data.AddOrEditEdbInfoToEs(dataPublicItem.DataId)
+		}
 	}
 
 	if err != nil {
@@ -385,60 +389,6 @@ func (c *EdbPublicController) Cancel() {
 			}
 		}
 	}
-
-	// 校验是否开启了审批流
-	opening, e := dataApproveSerice.CheckOpenApprove(dataApproveSerice.DataTypeEdb)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验指标公开是否开启审批流失败, Err: " + e.Error()
-		return
-	}
-
-	// 是否忽略审批
-	var isIgnoreApprove bool
-	{
-		businessConf, e := models.GetBusinessConfByKey(models.IgnoreEdbApproveUserId)
-		if e != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
-			return
-		}
-		ignoreEdbApproveUserIdList := strings.Split(businessConf.ConfVal, `,`)
-		if utils.InArrayByStr(ignoreEdbApproveUserIdList, strconv.Itoa(c.SysUser.AdminId)) {
-			isIgnoreApprove = true
-		}
-	}
-
-	edbInfo, err := data_manage.GetEdbInfoById(req.EdbInfoList[0].EdbInfoId)
-	if err != nil {
-		br.Msg = "获取指标失败"
-		br.ErrMsg = "获取指标失败:" + err.Error()
-		return
-	}
-	title := edbInfo.EdbName
-	if len(req.EdbInfoList) > 1 {
-		title += `等指标`
-	}
-	title += `公开审批`
-
-	// 没开启审批流、或者无需审批
-	if !opening || isIgnoreApprove {
-		err = dataApproveSerice.UpdatePublicByDataList(dataApproveSerice.DataTypeEdb, dataApproveSerice.DataApproveStatePass, dataPublicItemList)
-	} else {
-
-		_, err = dataApproveSerice.SubmitDataApprove(dataApproveSerice.DataTypeEdb, dataPublicItemList, title, strings.TrimSpace(req.Description), c.SysUser.AdminId, c.SysUser.RealName)
-		if err != nil {
-			br.Msg = "提交审批失败"
-			br.ErrMsg = "提交审批失败, Err: " + err.Error()
-			return
-		}
-	}
-
-	if err != nil {
-		br.Msg = "编辑失败"
-		br.ErrMsg = "编辑失败,Err:" + err.Error()
-		return
-	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "保存成功"

+ 16 - 0
models/data_manage/data_approve/data_approve.go

@@ -116,9 +116,13 @@ func AddDataApprove(dataApprove *DataApprove, relationList []*DataApproveRelatio
 		return
 	}
 
+	relationIdList := make([]int, 0)
+	// 关联指标
 	if len(relationList) > 0 {
 		for _, v := range relationList {
 			v.DataApproveId = dataApprove.DataApproveId
+
+			relationIdList = append(relationIdList, v.DataId)
 		}
 		err = db.CreateInBatches(relationList, utils.MultiAddNum).Error
 		if err != nil {
@@ -126,6 +130,18 @@ func AddDataApprove(dataApprove *DataApprove, relationList []*DataApproveRelatio
 		}
 	}
 
+	// 更新资产公开状态
+	switch dataApprove.DataType {
+	case utils.DataApproveTypeEdb:
+		sql := `UPDATE edb_info set public_status = ?,modify_time=now()  WHERE edb_info_id in (?) `
+		err = global.DmSQL["data"].Exec(sql, utils.EdbPublicCommit, relationIdList).Error
+
+	case utils.DataApproveTypeChart:
+		sql := `UPDATE chart_info set public_status = ?,modify_time=now()  WHERE chart_info_id in (?) `
+		err = global.DmSQL["data"].Exec(sql, utils.EdbPublicCommit, relationIdList).Error
+
+	}
+
 	return
 }
 

+ 4 - 4
services/data/data_approve/approve.go

@@ -402,7 +402,7 @@ func UpdatePublicByDataList(dataType, dataApproveState int, dataList []SetDataPu
 		dataIdList = append(dataIdList, v.DataId)
 	}
 	switch dataType {
-	case DataTypeEdb:
+	case utils.DataApproveTypeEdb:
 		switch dataApproveState {
 		case DataApproveStateApproving:
 			err = data_manage.UpdatePublicEdb(dataIdList, utils.EdbPublicSuccess)
@@ -421,7 +421,7 @@ func UpdatePublicByDataList(dataType, dataApproveState int, dataList []SetDataPu
 			data.AddOrEditEdbInfoToEs(dataId)
 		}
 	// 指标库
-	case DataTypeChart:
+	case utils.DataApproveTypeChart:
 		// 图库
 		// TODO
 	}
@@ -761,7 +761,7 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 		}
 
 		switch approveItem.DataType {
-		case DataTypeEdb: // 指标库
+		case utils.DataApproveTypeEdb: // 指标库
 			tmpList, tmpErr := data_manage.GetEdbInfoByIdList(dataIdList)
 			if tmpErr != nil {
 				err = tmpErr
@@ -776,7 +776,7 @@ func GetApproveDetail(approveId int) (resp *response.DataApproveDetail, msg stri
 				}
 				dataList = append(dataList, item)
 			}
-		case DataTypeChart: // 图库
+		case utils.DataApproveTypeChart: // 图库
 			tmpList, tmpErr := data_manage.GetChartInfoByIdList(dataIdList)
 			if tmpErr != nil {
 				err = tmpErr

+ 2 - 2
services/data/data_approve/approve_flow.go

@@ -25,9 +25,9 @@ func SaveDataApproveFlow(flow *request.DataApproveFlowSaveReq) (ok bool, msg str
 		// 之前没有过记录,所以走新增
 		var remark string
 		switch flow.DataType {
-		case DataTypeEdb:
+		case utils.DataApproveTypeEdb:
 			remark = `指标审批`
-		case DataTypeChart:
+		case utils.DataApproveTypeChart:
 			remark = `图表审批`
 		}
 		t := &DataApprove.DataApproveFlow{

+ 0 - 5
services/data/data_approve/constant.go

@@ -10,11 +10,6 @@ const (
 	BiStatePass        = 6 // 已通过
 )
 
-const (
-	DataTypeEdb   = 1 // 指标审批
-	DataTypeChart = 2 // 图库审批
-)
-
 // 节点审批方式
 const (
 	NodeApproveTypeRoll = 1 // 依次审批

+ 6 - 0
utils/constants.go

@@ -306,6 +306,12 @@ const (
 	PREDICT_EDB_INFO_TYPE = 1 //指标类型 1:预测指标
 )
 
+// 资产审批类型
+const (
+	DataApproveTypeEdb   = 1 // 指标审批
+	DataApproveTypeChart = 2 // 图库审批
+)
+
 // FrequencyDaysMap 频度日期的map关系
 var FrequencyDaysMap = map[string]int{
 	"天": 1, "周": 7, "月": 30, "季": 90, "年": 365,