excel_info.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package excel
  2. import (
  3. "eta/eta_index_lib/global"
  4. "time"
  5. )
  6. // ExcelInfo excel表格详情表
  7. type ExcelInfo struct {
  8. ExcelInfoId int `gorm:"column:excel_info_id;primaryKey"`
  9. Source int `description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
  10. ExcelType int `description:"表格类型,1:指标列,2:日期列,默认:1"`
  11. ExcelName string `description:"表格名称"`
  12. UniqueCode string `description:"表格唯一编码"`
  13. ExcelClassifyId int `description:"表格分类id"`
  14. SysUserId int `description:"操作人id"`
  15. SysUserRealName string `description:"操作人真实姓名"`
  16. Content string `description:"表格内容"`
  17. ExcelImage string `description:"表格图片"`
  18. FileUrl string `description:"表格下载地址"`
  19. Sort int `description:"排序字段,数字越小越排前面"`
  20. IsDelete int `description:"是否删除,0:未删除,1:已删除"`
  21. ModifyTime time.Time `description:"最近修改日期"`
  22. CreateTime time.Time `description:"创建日期"`
  23. IsJoinPermission int `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
  24. ParentId int `description:"表格的父级id"`
  25. BalanceType int `description:"平衡表类型:0 动态表,1静态表"`
  26. UpdateUserId int `description:"更新人id"`
  27. UpdateUserRealName string `description:"更新人真实姓名"`
  28. RelExcelInfoId int `description:"平衡表里静态表关联的动态表excel id"`
  29. VersionName string `description:"静态表版本名称"`
  30. SourcesFrom string `description:"图表来源"`
  31. ExtraConfig string `description:"额外配置:如多空分析、相关性表格参数"`
  32. }
  33. // GetNoContentExcelInfoAll 获取不含content的表格列表 用于分类展示
  34. func GetNoContentExcelInfoAll(source, userId int) (items []*ExcelClassifyItems, err error) {
  35. sql := ` SELECT excel_info_id,excel_classify_id,excel_name AS excel_classify_name,
  36. unique_code,sys_user_id,sys_user_real_name
  37. FROM excel_info where is_delete=0 AND source = ? `
  38. pars := []interface{}{source}
  39. if userId > 0 {
  40. sql += ` AND sys_user_id = ? `
  41. pars = append(pars, userId)
  42. }
  43. sql += ` ORDER BY sort asc,create_time desc `
  44. err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
  45. return
  46. }
  47. // UpdateExcelInfoClassifyId 更改表格分类
  48. func UpdateExcelInfoClassifyId(classifyId, excelInfoId int) (err error) {
  49. sql := ` update excel_info set excel_classify_id = ? WHERE excel_info_id=? `
  50. err = global.DEFAULT_DB.Exec(sql, classifyId, excelInfoId).Error
  51. return
  52. }
  53. // GetAllExcelInfoBySource 根据来源获取包含content的表格列表
  54. func GetAllExcelInfoBySource(source int) (items []*ExcelInfo, err error) {
  55. sql := ` SELECT * FROM excel_info where is_delete=0 AND source = ? ORDER BY sort asc,create_time desc `
  56. err = global.DEFAULT_DB.Raw(sql, source).Find(&items).Error
  57. return
  58. }
  59. // TableDataReq 自定义表格请求参数
  60. type TableDataReq struct {
  61. EdbInfoIdList []int `description:"指标id列表,从左至右,从上到下的顺序"`
  62. Sort int `description:"日期排序,1:倒序,2:正序"`
  63. Data []EdbInfoData `description:"数据列表"`
  64. TextRowData [][]ManualDataReq `description:"文本列表"`
  65. }
  66. // EdbInfoData 自定义表格的数据
  67. type EdbInfoData struct {
  68. EdbInfoId int `description:"指标ID"`
  69. Tag string `description:"标签"`
  70. EdbName string `description:"指标名称"`
  71. EdbAliasName string `description:"指标别名"`
  72. Frequency string `description:"频度"`
  73. Unit string `description:"单位"`
  74. Data []ManualDataReq `description:"单元格数据列表"`
  75. }
  76. // ManualDataReq 自定义表格的单元格数据
  77. type ManualDataReq struct {
  78. DataType int `description:"数据类型,1:普通的,2:插值法,3:手动输入,4:公式计算,5:预测值"`
  79. DataTime string `description:"所属日期"`
  80. DataTimeType int `description:"日期类型,1:实际日期;2:未来日期"`
  81. ShowValue string `description:"展示值"`
  82. Value string `description:"实际值(计算公式)"`
  83. RelationEdbInfoList []RelationEdbInfo `description:"关联指标(计算公式中关联的指标,用于计算的时候去匹配)"`
  84. }
  85. // RelationEdbInfo 自定义表格中单元格的关联指标
  86. type RelationEdbInfo struct {
  87. Tag string `description:"指标标签"`
  88. Row string `description:"第几行"`
  89. }
  90. // MixedTableReq 混合表格保存请求参数
  91. type MixedTableReq struct {
  92. CellRelation string `description:"单元格关系"`
  93. Data [][]MixedTableCellDataReq `description:"混合表格单元格参数"`
  94. }
  95. // MixedTableCellDataReq 混合表格单元格参数
  96. type MixedTableCellDataReq struct {
  97. Uid string `description:"单元格唯一标识"`
  98. DataType int `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值"`
  99. DataTime string `description:"所属日期"`
  100. DataTimeType int `description:"日期类型:0:手动输入日期;1:导入系统日期;;3:导入指标日期(指标库的最新日期);"`
  101. EdbInfoId int `description:"指标id"`
  102. ShowValue string `description:"展示值"`
  103. Value string `description:"实际值"`
  104. }
  105. func (m *ExcelInfo) Update(cols []string) (err error) {
  106. err = global.DEFAULT_DB.Select(cols).Updates(m).Error
  107. return
  108. }
  109. func (m *ExcelInfo) GetItemById(id int) (item *ExcelInfo, err error) {
  110. sql := `SELECT * FROM excel_info WHERE excel_info_id = ? LIMIT 1`
  111. err = global.DEFAULT_DB.Raw(sql, id).First(&item).Error
  112. return
  113. }