浏览代码

子表分类和父级分类始终保持一致

xyxie 11 月之前
父节点
当前提交
b943ce7361
共有 3 个文件被更改,包括 38 次插入20 次删除
  1. 32 6
      controllers/data_manage/excel/excel_info.go
  2. 6 1
      models/data_manage/excel/excel_info.go
  3. 0 13
      services/data/excel/excel_info.go

+ 32 - 6
controllers/data_manage/excel/excel_info.go

@@ -106,6 +106,20 @@ func (c *ExcelInfoController) Add() {
 		}
 	}
 
+	if req.ParentId > 0 {
+		parentExcelInfo, e := excel3.GetExcelInfoById(req.ParentId)
+		if e != nil {
+			if e.Error() == utils.ErrNoRow() {
+				br.Msg = "父级ETA表格被删除,请刷新页面"
+				return
+			}
+			br.Msg = "获取父级ETA表格信息失败"
+			br.ErrMsg = "获取父级ETA表格信息失败,Err:" + e.Error()
+			return
+		}
+		req.ExcelClassifyId = parentExcelInfo.ExcelClassifyId
+	}
+
 	var condition string
 	var pars []interface{}
 	condition += " AND excel_classify_id=? AND parent_id=?"
@@ -254,11 +268,11 @@ func (c *ExcelInfoController) Add() {
 		timestamp = strconv.FormatInt(time.Now().UnixNano(), 10) + "_" + utils.GetRandString(10)
 		childExcel = &excel3.ExcelInfo{
 			//ExcelInfoId:     0,
-			ExcelName:  "平衡表",
-			Source:     excelInfo.Source,
-			ExcelType:  excelInfo.ExcelType,
-			UniqueCode: utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
-			//ExcelClassifyId: req.ExcelClassifyId,
+			ExcelName:       "平衡表",
+			Source:          excelInfo.Source,
+			ExcelType:       excelInfo.ExcelType,
+			UniqueCode:      utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
+			ExcelClassifyId: req.ExcelClassifyId,
 			SysUserId:       sysUser.AdminId,
 			SysUserRealName: sysUser.RealName,
 			Content:         excelInfo.Content,
@@ -645,7 +659,19 @@ func (c *ExcelInfoController) Edit() {
 			return
 		}
 	}
-
+	if excelInfo.ParentId > 0 {
+		parentExcelInfo, e := excel3.GetExcelInfoById(excelInfo.ParentId)
+		if e != nil {
+			if e.Error() == utils.ErrNoRow() {
+				br.Msg = "父级ETA表格被删除,请刷新页面"
+				return
+			}
+			br.Msg = "获取父级ETA表格信息失败"
+			br.ErrMsg = "获取父级ETA表格信息失败,Err:" + e.Error()
+			return
+		}
+		req.ExcelClassifyId = parentExcelInfo.ExcelClassifyId
+	}
 	//判断表格是否存在
 	var condition string
 	var pars []interface{}

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

@@ -119,7 +119,12 @@ func EditExcelInfo(excelInfo *ExcelInfo, updateExcelInfoParams []string, excelEd
 	if err != nil {
 		return
 	}
-
+	//更新父级分类时,同时更新子集分类
+	if excelInfo.Source == utils.BALANCE_TABLE && excelInfo.ParentId == 0 {
+		// 同步更新子表分类
+		sql := `UPDATE FROM excel_info set excel_classify_id = ? WHERE parent_id=? `
+		_, err = o.Raw(sql, excelInfo.ExcelClassifyId, excelInfo.ExcelInfoId).Exec()
+	}
 	// 删除关系表
 	sql := `DELETE FROM excel_edb_mapping WHERE excel_info_id=? `
 	_, err = o.Raw(sql, excelInfo.ExcelInfoId).Exec()

+ 0 - 13
services/data/excel/excel_info.go

@@ -56,19 +56,6 @@ func GetExcelDetailInfoByUnicode(unicode string, sysUserId int) (excelDetail res
 
 func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
 	// 数据权限
-	// 判断是否是子表,如果是子表,则从父级分类中查询权限信息
-	if excelInfo.ParentId > 0 {
-		parentExcelInfo, e := excel.GetExcelInfoById(excelInfo.ParentId)
-		if e != nil {
-			err = errors.New("获取父级ETA表格信息失败,Err:" + err.Error())
-			if err.Error() == utils.ErrNoRow() {
-				errMsg = "父级ETA表格被删除,请刷新页面"
-				err = errors.New("父级ETA表格被删除,请刷新页面,Err:" + err.Error())
-			}
-			return
-		}
-		excelInfo.ExcelClassifyId = parentExcelInfo.ExcelClassifyId
-	}
 	haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, sysUserId)
 	if err != nil {
 		err = errors.New("获取表格权限信息失败,Err" + err.Error())