Browse Source

表格增加平衡表

xyxie 10 months ago
parent
commit
e22ea5b170

+ 21 - 14
controllers/data_manage/excel/excel_info.go

@@ -167,7 +167,7 @@ func (c *ExcelInfoController) Add() {
 	}
 
 	// 混合表格
-	if req.Source == 3 {
+	if req.Source == 3 || req.Source == 5 {
 		contentByte, err := json.Marshal(req.TableData)
 		if err != nil {
 			br.Msg = "自定义表格数据获取失败"
@@ -216,19 +216,23 @@ func (c *ExcelInfoController) Add() {
 	timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
 	excelInfo := &excel3.ExcelInfo{
 		//ExcelInfoId:     0,
-		ExcelName:       req.ExcelName,
-		Source:          req.Source,
-		ExcelType:       req.ExcelType,
-		UniqueCode:      utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
-		ExcelClassifyId: req.ExcelClassifyId,
-		SysUserId:       sysUser.AdminId,
-		SysUserRealName: sysUser.RealName,
-		Content:         content,
-		ExcelImage:      req.ExcelImage,
-		Sort:            maxSort + 1,
-		IsDelete:        0,
-		ModifyTime:      time.Now(),
-		CreateTime:      time.Now(),
+		ExcelName:          req.ExcelName,
+		Source:             req.Source,
+		ExcelType:          req.ExcelType,
+		UniqueCode:         utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
+		ExcelClassifyId:    req.ExcelClassifyId,
+		SysUserId:          sysUser.AdminId,
+		SysUserRealName:    sysUser.RealName,
+		Content:            content,
+		ExcelImage:         req.ExcelImage,
+		Sort:               maxSort + 1,
+		IsDelete:           0,
+		ModifyTime:         time.Now(),
+		CreateTime:         time.Now(),
+		ParentId:           req.ParentId,
+		BalanceType:        req.BalanceType,
+		UpdateUserId:       sysUser.AdminId,
+		UpdateUserRealName: sysUser.RealName,
 	}
 
 	excelEdbMappingList := make([]*excel3.ExcelEdbMapping, 0)
@@ -346,6 +350,9 @@ func (c *ExcelInfoController) List() {
 	} else {
 		condition += " AND source = ? "
 		pars = append(pars, source)
+		if source == utils.BALANCE_TABLE { //平衡表的列表只显示动态表的一级表(不显示子表和静态表)
+			condition += " AND parent_id = 0 AND balance_type=0 "
+		}
 	}
 
 	// 筛选分类

+ 45 - 35
models/data_manage/excel/excel_info.go

@@ -9,22 +9,26 @@ import (
 
 // ExcelInfo excel表格详情表
 type ExcelInfo struct {
-	ExcelInfoId      int       `orm:"column(excel_info_id);pk"`
-	Source           int       `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
-	ExcelType        int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
-	ExcelName        string    `description:"表格名称"`
-	UniqueCode       string    `description:"表格唯一编码"`
-	ExcelClassifyId  int       `description:"表格分类id"`
-	SysUserId        int       `description:"操作人id"`
-	SysUserRealName  string    `description:"操作人真实姓名"`
-	Content          string    `description:"表格内容"`
-	ExcelImage       string    `description:"表格图片"`
-	FileUrl          string    `description:"表格下载地址"`
-	Sort             int       `description:"排序字段,数字越小越排前面"`
-	IsDelete         int       `description:"是否删除,0:未删除,1:已删除"`
-	ModifyTime       time.Time `description:"最近修改日期"`
-	CreateTime       time.Time `description:"创建日期"`
-	IsJoinPermission int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	ExcelInfoId        int       `orm:"column(excel_info_id);pk"`
+	Source             int       `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
+	ExcelType          int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
+	ExcelName          string    `description:"表格名称"`
+	UniqueCode         string    `description:"表格唯一编码"`
+	ExcelClassifyId    int       `description:"表格分类id"`
+	SysUserId          int       `description:"操作人id"`
+	SysUserRealName    string    `description:"操作人真实姓名"`
+	Content            string    `description:"表格内容"`
+	ExcelImage         string    `description:"表格图片"`
+	FileUrl            string    `description:"表格下载地址"`
+	Sort               int       `description:"排序字段,数字越小越排前面"`
+	IsDelete           int       `description:"是否删除,0:未删除,1:已删除"`
+	ModifyTime         time.Time `description:"最近修改日期"`
+	CreateTime         time.Time `description:"创建日期"`
+	IsJoinPermission   int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	ParentId           int       `description:"表格的父级id"`
+	BalanceType        int       `description:"平衡表类型:0 动态表,1静态表"`
+	UpdateUserId       int       `description:"更新人id"`
+	UpdateUserRealName string    `description:"更新人真实姓名"`
 }
 
 // Update 更新 excel表格基础信息
@@ -35,21 +39,23 @@ func (excelInfo *ExcelInfo) Update(cols []string) (err error) {
 }
 
 type MyExcelInfoList struct {
-	ExcelInfoId      int       `orm:"column(excel_info_id);pk"`
-	Source           int       `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
-	ExcelType        int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
-	ExcelName        string    `description:"表格名称"`
-	UniqueCode       string    `description:"表格唯一编码"`
-	ExcelClassifyId  int       `description:"表格分类id"`
-	SysUserId        int       `description:"操作人id"`
-	SysUserRealName  string    `description:"操作人真实姓名"`
-	ExcelImage       string    `description:"表格图片"`
-	FileUrl          string    `description:"表格下载地址"`
-	Sort             int       `description:"排序字段,数字越小越排前面"`
-	ModifyTime       time.Time `description:"最近修改日期"`
-	CreateTime       time.Time `description:"创建日期"`
-	IsJoinPermission int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	HaveOperaAuth    bool      `description:"是否有数据权限"`
+	ExcelInfoId        int       `orm:"column(excel_info_id);pk"`
+	Source             int       `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
+	ExcelType          int       `description:"表格类型,1:指标列,2:日期列,默认:1"`
+	ExcelName          string    `description:"表格名称"`
+	UniqueCode         string    `description:"表格唯一编码"`
+	ExcelClassifyId    int       `description:"表格分类id"`
+	SysUserId          int       `description:"操作人id"`
+	SysUserRealName    string    `description:"操作人真实姓名"`
+	ExcelImage         string    `description:"表格图片"`
+	FileUrl            string    `description:"表格下载地址"`
+	Sort               int       `description:"排序字段,数字越小越排前面"`
+	ModifyTime         time.Time `description:"最近修改日期"`
+	CreateTime         time.Time `description:"创建日期"`
+	IsJoinPermission   int       `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	HaveOperaAuth      bool      `description:"是否有数据权限"`
+	UpdateUserId       int       `description:"更新人id"`
+	UpdateUserRealName string    `description:"更新人真实姓名"`
 }
 
 // AddExcelInfo 新增表格
@@ -145,6 +151,10 @@ func GetNoContentExcelInfoAll(source, userId int) (items []*ExcelClassifyItems,
 		sql += ` AND sys_user_id = ? `
 		pars = append(pars, userId)
 	}
+
+	if source == utils.BALANCE_TABLE { //平衡表的列表只显示动态表的一级表(不显示子表和静态表)
+		sql += " AND parent_id = 0 AND balance_type=0 "
+	}
 	sql += `  ORDER BY sort asc,excel_info_id desc `
 	_, err = o.Raw(sql, pars...).QueryRows(&items)
 	return
@@ -325,7 +335,7 @@ func GetExcelInfoByClassifyIdAndName(classifyId int, excelName string) (item *Ex
 // GetNoContentExcelListByCondition 获取没有content的excel表格列表数据
 func GetNoContentExcelListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MyExcelInfoList, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission
+	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission,update_user_id,update_user_real_name
 FROM excel_info WHERE 1=1 AND is_delete=0 `
 	if condition != "" {
 		sql += condition
@@ -374,7 +384,7 @@ func UpdateExcelInfoClassifyId(classifyId, excelInfoId int) (err error) {
 // GetNoContentExcelInfoByName 根据名称 获取eta表格详情
 func GetNoContentExcelInfoByName(excelName string, source int) (item *MyExcelInfoList, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
+	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission,update_user_id,update_user_real_name 
  FROM excel_info WHERE excel_name = ? AND source = ? AND is_delete=0 `
 	err = o.Raw(sql, excelName, source).QueryRow(&item)
 
@@ -384,7 +394,7 @@ func GetNoContentExcelInfoByName(excelName string, source int) (item *MyExcelInf
 // GetNoContentExcelInfoByUniqueCode 根据unique_code来获取excel表格详情
 func GetNoContentExcelInfoByUniqueCode(uniqueCode string) (item *MyExcelInfoList, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
+	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission,update_user_id,update_user_real_name 
  FROM excel_info WHERE unique_code=? AND is_delete=0 `
 	err = o.Raw(sql, uniqueCode).QueryRow(&item)
 	return
@@ -393,7 +403,7 @@ func GetNoContentExcelInfoByUniqueCode(uniqueCode string) (item *MyExcelInfoList
 // GetNoContentExcelInfoByExcelId 根据表格id来获取excel表格详情
 func GetNoContentExcelInfoByExcelId(excelInfoId int) (item *MyExcelInfoList, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission 
+	sql := ` SELECT excel_info_id,source,excel_type,excel_name,unique_code,excel_classify_id,sys_user_id,sys_user_real_name,excel_image,file_url,sort,create_time,modify_time,is_join_permission,update_user_id,update_user_real_name 
  FROM excel_info WHERE excel_info_id=? AND is_delete=0 `
 	err = o.Raw(sql, excelInfoId).QueryRow(&item)
 	return

+ 3 - 1
models/data_manage/excel/request/excel_info.go

@@ -17,12 +17,14 @@ type DeleteExcelInfoReq struct {
 type AddExcelInfoReq struct {
 	ExcelInfoId     int         `description:"表格ID"`
 	ExcelName       string      `description:"表格名称"`
-	Source          int         `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
+	Source          int         `description:"表格来源,1:excel插件的表格,2:自定义表格,5平衡表,默认:1"`
 	ExcelType       int         `description:"表格类型,1:指标列,2:日期列,默认:1"`
 	ExcelImage      string      `description:"表格截图"`
 	ExcelClassifyId int         `description:"分类id"`
 	Content         string      `description:"Excel表格内容"`
 	TableData       interface{} `description:"自定义表格的数据内容"`
+	ParentId        int         `description:"表格的父级id"`
+	BalanceType     int         `description:"平衡表类型:0 动态表,1静态表"`
 }
 
 // EditExcelInfoReq 编辑表格请求

+ 25 - 21
models/data_manage/excel/response/excel_info.go

@@ -56,27 +56,31 @@ type TableDetailResp struct {
 
 // ExcelInfoDetail excel表格详情(前端使用)
 type ExcelInfoDetail struct {
-	ExcelInfoId      int                   `orm:"column(excel_info_id);pk"`
-	Source           int                   `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
-	ExcelType        int                   `description:"表格类型,1:指标列,2:日期列,默认:1"`
-	ExcelName        string                `description:"表格名称"`
-	UniqueCode       string                `description:"表格唯一编码"`
-	ExcelClassifyId  int                   `description:"表格分类id"`
-	SysUserId        int                   `description:"操作人id"`
-	SysUserRealName  string                `description:"操作人真实姓名"`
-	Content          string                `description:"表格内容"`
-	ExcelImage       string                `description:"表格图片"`
-	FileUrl          string                `description:"表格下载地址"`
-	Sort             int                   `description:"排序字段,数字越小越排前面"`
-	IsDelete         int                   `description:"是否删除,0:未删除,1:已删除"`
-	ModifyTime       time.Time             `description:"最近修改日期"`
-	CreateTime       time.Time             `description:"创建日期"`
-	TableData        interface{}           `description:"表格内容"`
-	Button           ExcelInfoDetailButton `description:"操作权限"`
-	CanEdit          bool                  `description:"是否可编辑"`
-	Editor           string                `description:"编辑人"`
-	IsJoinPermission int                   `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	HaveOperaAuth    bool                  `description:"是否有数据权限"`
+	ExcelInfoId        int                   `orm:"column(excel_info_id);pk"`
+	Source             int                   `description:"表格来源,1:excel插件的表格,2:自定义表格,默认:1"`
+	ExcelType          int                   `description:"表格类型,1:指标列,2:日期列,默认:1"`
+	ExcelName          string                `description:"表格名称"`
+	UniqueCode         string                `description:"表格唯一编码"`
+	ExcelClassifyId    int                   `description:"表格分类id"`
+	SysUserId          int                   `description:"操作人id"`
+	SysUserRealName    string                `description:"操作人真实姓名"`
+	Content            string                `description:"表格内容"`
+	ExcelImage         string                `description:"表格图片"`
+	FileUrl            string                `description:"表格下载地址"`
+	Sort               int                   `description:"排序字段,数字越小越排前面"`
+	IsDelete           int                   `description:"是否删除,0:未删除,1:已删除"`
+	ModifyTime         time.Time             `description:"最近修改日期"`
+	CreateTime         time.Time             `description:"创建日期"`
+	TableData          interface{}           `description:"表格内容"`
+	Button             ExcelInfoDetailButton `description:"操作权限"`
+	CanEdit            bool                  `description:"是否可编辑"`
+	Editor             string                `description:"编辑人"`
+	IsJoinPermission   int                   `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+	HaveOperaAuth      bool                  `description:"是否有数据权限"`
+	ParentId           int                   `description:"表格的父级id"`
+	BalanceType        int                   `description:"平衡表类型:0 动态表,1静态表"`
+	UpdateUserId       int                   `description:"更新人id"`
+	UpdateUserRealName string                `description:"更新人真实姓名"`
 }
 
 // ExcelInfoDetailButton 操作按钮

+ 24 - 18
services/data/excel/excel_info.go

@@ -63,23 +63,27 @@ func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDet
 	}
 
 	excelDetail = response.ExcelInfoDetail{
-		ExcelInfoId:     excelInfo.ExcelInfoId,
-		Source:          excelInfo.Source,
-		ExcelType:       excelInfo.ExcelType,
-		ExcelName:       excelInfo.ExcelName,
-		UniqueCode:      excelInfo.UniqueCode,
-		ExcelClassifyId: excelInfo.ExcelClassifyId,
-		SysUserId:       excelInfo.SysUserId,
-		SysUserRealName: excelInfo.SysUserRealName,
-		Content:         excelInfo.Content,
-		ExcelImage:      excelInfo.ExcelImage,
-		FileUrl:         excelInfo.FileUrl,
-		Sort:            excelInfo.Sort,
-		IsDelete:        excelInfo.IsDelete,
-		ModifyTime:      excelInfo.ModifyTime,
-		CreateTime:      excelInfo.CreateTime,
-		TableData:       nil,
-		HaveOperaAuth:   haveOperaAuth,
+		ExcelInfoId:        excelInfo.ExcelInfoId,
+		Source:             excelInfo.Source,
+		ExcelType:          excelInfo.ExcelType,
+		ExcelName:          excelInfo.ExcelName,
+		UniqueCode:         excelInfo.UniqueCode,
+		ExcelClassifyId:    excelInfo.ExcelClassifyId,
+		SysUserId:          excelInfo.SysUserId,
+		SysUserRealName:    excelInfo.SysUserRealName,
+		Content:            excelInfo.Content,
+		ExcelImage:         excelInfo.ExcelImage,
+		FileUrl:            excelInfo.FileUrl,
+		Sort:               excelInfo.Sort,
+		IsDelete:           excelInfo.IsDelete,
+		ModifyTime:         excelInfo.ModifyTime,
+		CreateTime:         excelInfo.CreateTime,
+		TableData:          nil,
+		HaveOperaAuth:      haveOperaAuth,
+		ParentId:           excelInfo.ParentId,
+		BalanceType:        excelInfo.BalanceType,
+		UpdateUserId:       excelInfo.UpdateUserId,
+		UpdateUserRealName: excelInfo.UpdateUserRealName,
 	}
 
 	// 无权限,不需要返回数据
@@ -134,7 +138,7 @@ func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDet
 		}
 
 		excelDetail.TableData = result
-	case utils.MIXED_TABLE: // 混合表格
+	case utils.MIXED_TABLE, utils.BALANCE_TABLE: // 混合表格
 		var result request.MixedTableReq
 		err = json.Unmarshal([]byte(excelDetail.Content), &result)
 		if err != nil {
@@ -183,6 +187,8 @@ func GetExcelInfoOpButton(sysUser *system.Admin, belongUserId, source int, haveO
 		}
 	}
 
+	// todo 如果是平衡表,判断是否是协作人
+
 	return
 }
 

+ 1 - 0
utils/constants.go

@@ -298,6 +298,7 @@ const (
 	TIME_TABLE            = 2 // 时间序列表格
 	MIXED_TABLE           = 3 // 混合表格
 	CUSTOM_ANALYSIS_TABLE = 4 // 自定义分析表格
+	BALANCE_TABLE         = 5 // 平衡表
 )
 
 // 图表样式类型