|
@@ -0,0 +1,176 @@
|
|
|
+package excel
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "eta/eta_api/models"
|
|
|
+ "eta/eta_api/models/data_manage/excel"
|
|
|
+ "eta/eta_api/models/data_manage/excel/request"
|
|
|
+ "eta/eta_api/models/data_manage/excel/response"
|
|
|
+ "eta/eta_api/services/data/data_manage_permission"
|
|
|
+ excel2 "eta/eta_api/services/data/excel"
|
|
|
+ "eta/eta_api/utils"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// GetChildTable
|
|
|
+// @Title 获取子表
|
|
|
+// @Description 获取子表
|
|
|
+// @Param request body request.MixedTableCellDataReq true "type json string"
|
|
|
+// @router /excel_info/child_table [get]
|
|
|
+func (c *ExcelInfoController) GetChildTable() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := c.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ parentId, _ := c.GetInt("ParentId")
|
|
|
+ if parentId <= 0 {
|
|
|
+ br.Msg = "请选择父表"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list := make([]*excel.ExcelInfo, 0)
|
|
|
+ // 查询所有子表
|
|
|
+ childList, err := excel.GetChildExcelInfoByParentId(parentId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查询子表失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(childList) > 0 {
|
|
|
+ list = childList
|
|
|
+ }
|
|
|
+
|
|
|
+ data := &response.BalanceChildTableResp{List: list}
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "查询成功"
|
|
|
+ br.Data = data
|
|
|
+}
|
|
|
+
|
|
|
+// Rename
|
|
|
+// @Title 表格重命名接口
|
|
|
+// @Description 表格重命名接口
|
|
|
+// @Param request body request.EditExcelInfoReq true "type json string"
|
|
|
+// @Success 200 {object} response.AddExcelInfoResp
|
|
|
+// @router /excel_info/rename [post]
|
|
|
+func (c *ExcelInfoController) Rename() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := c.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var req request.RenameExcelInfoReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ExcelInfoId <= 0 {
|
|
|
+ br.Msg = "请传入ETA表格标识!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req.ExcelName = strings.Trim(req.ExcelName, " ")
|
|
|
+ if req.ExcelName == "" {
|
|
|
+ br.Msg = "请填写表格名称!"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取ETA表格失败"
|
|
|
+ br.ErrMsg = "获取ETA表格失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //判断表格是否存在
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += " AND excel_info_id != ? "
|
|
|
+ pars = append(pars, req.ExcelInfoId)
|
|
|
+
|
|
|
+ condition += " AND excel_classify_id=? "
|
|
|
+ pars = append(pars, excelInfo.ExcelClassifyId)
|
|
|
+
|
|
|
+ condition += " AND excel_name=? "
|
|
|
+ pars = append(pars, req.ExcelName)
|
|
|
+
|
|
|
+ // 获取分类下是否存在该表格名称
|
|
|
+ count, err := excel.GetExcelInfoCountByCondition(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "ETA判断表格名称是否存在失败"
|
|
|
+ br.ErrMsg = "判断ETA表格名称是否存在失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 {
|
|
|
+ br.Msg = "ETA表格名称已存在,请重新填写"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 操作权限校验, 增加协作人判断
|
|
|
+ {
|
|
|
+ // 数据权限
|
|
|
+ haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取ETA表格失败"
|
|
|
+ br.ErrMsg = "获取ETA表格权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ button := excel2.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
|
|
|
+ if !button.OpButton {
|
|
|
+ br.Msg = "无操作权限"
|
|
|
+ br.Msg = "无操作权限"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ excelInfo.ModifyTime = time.Now()
|
|
|
+ excelInfo.ExcelName = req.ExcelName
|
|
|
+ excelInfo.UpdateUserId = sysUser.AdminId
|
|
|
+ excelInfo.UpdateUserRealName = sysUser.RealName
|
|
|
+ // 自动保存时不会传缩略图,也就不更新这个字段
|
|
|
+ updateExcelInfoParams := []string{"ModifyTime", "ExcelName", "UpdateUserId", "UpdateUserRealName"}
|
|
|
+
|
|
|
+ err = excelInfo.Update(updateExcelInfoParams)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "保存失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := response.AddExcelInfoResp{
|
|
|
+ ExcelInfoId: excelInfo.ExcelInfoId,
|
|
|
+ UniqueCode: excelInfo.UniqueCode,
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除公共图库那边的缓存
|
|
|
+ _ = utils.Rc.Delete(utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + excelInfo.UniqueCode)
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "修改成功"
|
|
|
+ br.Data = resp
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|