瀏覽代碼

转移自定义分析默认分类

hsun 7 月之前
父節點
當前提交
dc21a535f1
共有 2 個文件被更改,包括 89 次插入1 次删除
  1. 11 1
      models/data_manage/excel/excel_info.go
  2. 78 0
      services/data/data_manage_permission/data_move.go

+ 11 - 1
models/data_manage/excel/excel_info.go

@@ -672,7 +672,7 @@ func GetNoContentExcelListByUserId(userIdList []int) (items []*MyExcelInfoList,
 		return
 	}
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM excel_info WHERE excel_info_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
+	sql := ` SELECT * FROM excel_info WHERE sys_user_id in (` + utils.GetOrmInReplace(num) + `) order by excel_info_id DESC `
 	_, err = o.Raw(sql, userIdList).QueryRows(&items)
 
 	return
@@ -803,3 +803,13 @@ type ExcelInfoDetailButton struct {
 	RefreshEdbButton bool `description:"是否可刷新指标"`
 	OpWorkerButton   bool `description:"是否修改协作人"`
 }
+
+func UpdateExcelInfoClassifyIdByIds(classifyId int, excelIds []int) (err error) {
+	if len(excelIds) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("data")
+	sql := fmt.Sprintf(`UPDATE excel_info SET excel_classify_id = ? WHERE excel_info_id IN (%s)`, utils.GetOrmInReplace(len(excelIds)))
+	_, err = o.Raw(sql, classifyId, excelIds).Exec()
+	return
+}

+ 78 - 0
services/data/data_manage_permission/data_move.go

@@ -682,6 +682,7 @@ func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool,
 			err = tmpErr
 			return
 		}
+		var customAnalysisIds []int
 		if len(tmpList) > 0 {
 			for _, v := range tmpList {
 				//if v.SysUserId == newUserId {
@@ -704,9 +705,21 @@ func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool,
 					NewUserName:                adminInfo.RealName,
 					CreateTime:                 time.Now(),
 				})
+
+				if v.Source == utils.CUSTOM_ANALYSIS_TABLE {
+					customAnalysisIds = append(customAnalysisIds, v.ExcelInfoId)
+				}
 			}
 			// 修改创建人
 			err = excel.ModifyExcelInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
+			if err != nil {
+				return
+			}
+
+			// 由于自定义分析表分类私有化, 如果转移的是自定义分析表, 那么需要将excel转移至未分类下
+			if len(customAnalysisIds) > 0 {
+				err = MoveCustomAnalysisExcel2DefaultClassify(customAnalysisIds, adminInfo.AdminId, adminInfo.RealName)
+			}
 		}
 	default:
 		return
@@ -1029,6 +1042,7 @@ func MoveAllEdbChart(sourceList, oldUserIdList []int, userId, opUserId int) (err
 	sourceStrList := make([]string, 0)
 
 	var isMoveManual, isMoveMysteelChemical, isMoveEdb, isMovePredictEdb, isMoveChart, isMoveExcel bool
+	var customAnalysisIds []int
 
 	// 遍历需要转移的模块,1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格,并找出当前需要转移的资产
 	for _, source := range sourceList {
@@ -1206,6 +1220,10 @@ func MoveAllEdbChart(sourceList, oldUserIdList []int, userId, opUserId int) (err
 						NewUserName:                adminInfo.RealName,
 						CreateTime:                 time.Now(),
 					})
+
+					if v.Source == utils.CUSTOM_ANALYSIS_TABLE {
+						customAnalysisIds = append(customAnalysisIds, v.ExcelInfoId)
+					}
 				}
 				isMoveExcel = true
 			}
@@ -1220,6 +1238,15 @@ func MoveAllEdbChart(sourceList, oldUserIdList []int, userId, opUserId int) (err
 		return
 	}
 
+	// 由于自定义分析表分类私有化, 如果转移的含自定义分析表, 那么需要将excel转移至未分类下
+	if len(customAnalysisIds) > 0 {
+		err = MoveCustomAnalysisExcel2DefaultClassify(customAnalysisIds, adminInfo.AdminId, adminInfo.RealName)
+		if err != nil {
+			err = fmt.Errorf("MoveCustomAnalysisExcel2DefaultClassify, err: %v", err)
+			return
+		}
+	}
+
 	// 添加资产转移的记录
 	content += fmt.Sprintf("(%s)", strings.Join(sourceStrList, ","))
 	dataPermissionMessage := &data_manage_permission.DataPermissionMessage{
@@ -1383,3 +1410,54 @@ func GetMoveEdbChartCount(userId, countType int) (sourceMap map[int]int, err err
 
 	return
 }
+
+// MoveCustomAnalysisExcel2DefaultClassify 移动表格至用户未分类目录下
+func MoveCustomAnalysisExcel2DefaultClassify(excelIds []int, adminId int, realName string) (err error) {
+	if len(excelIds) == 0 {
+		return
+	}
+	var moveClassifyId int
+	// 查询默认分类
+	cond := ` AND excel_classify_name = ? AND sys_user_id = ?`
+	pars := make([]interface{}, 0)
+	pars = append(pars, "未分类", adminId)
+	classify, e := excel.GetExcelClassifyByCondition(cond, pars)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = fmt.Errorf("获取默认分类失败, %v", e)
+		return
+	}
+	if classify != nil {
+		moveClassifyId = classify.ExcelClassifyId
+	}
+
+	// 新增一个新的分类
+	if classify == nil {
+		classifyNew := &excel.ExcelClassify{
+			ExcelClassifyName: "未分类",
+			Source:            utils.CUSTOM_ANALYSIS_TABLE,
+			SysUserId:         adminId,
+			SysUserRealName:   realName,
+			Level:             1,
+			UniqueCode:        utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + strconv.FormatInt(time.Now().UnixNano(), 10)),
+			Sort:              9999,
+			CreateTime:        time.Now(),
+			ModifyTime:        time.Now(),
+		}
+		if _, e = excel.AddExcelClassify(classifyNew); e != nil {
+			err = fmt.Errorf("新增默认分类失败, %v", e)
+			return
+		}
+		moveClassifyId = classifyNew.ExcelClassifyId
+	}
+	if moveClassifyId <= 0 {
+		err = fmt.Errorf("移动分类ID有误")
+		return
+	}
+
+	// 更新表格分类ID
+	if e = excel.UpdateExcelInfoClassifyIdByIds(moveClassifyId, excelIds); e != nil {
+		err = fmt.Errorf("移动多表格分类失败, %v", e)
+		return
+	}
+	return
+}