mixed_table.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package request
  2. // 单元格的数据类型
  3. const (
  4. DateDT = iota + 1 //日期
  5. EdbDT // 2 指标类型
  6. CustomTextDT // 3 自定义文本
  7. InsertDataDT // 4 插值(插入指标值,表格上,自动判断日期和指标的交集位置,插入值)
  8. PopInsertDataDT // 5 弹框插值(在表格上选择日期,然后空白单元格选择弹框并选择指标,插入该指标与该日期的值)
  9. FormulateCalculateDataDT // 6 公式计算(A+B这种)
  10. InsertEdbCalculateDataDT // 7 插入指标系统计算公式生成的值
  11. DateCalculateDataDT // 8 日期计算
  12. )
  13. // 单元格的日期类型类型
  14. const (
  15. CustomDateT = iota //手动输入日期
  16. SystemDateT // 系统日期
  17. EdbDateDT // 导入指标日期(指标库的最新日期)
  18. )
  19. // 单元格的日期类型类型
  20. const (
  21. SystemCurrDateT = iota + 1 //系统当前日期
  22. SystemCalculateDateT // 系统日期计算后的日期
  23. SystemFrequencyDateT // 导入系统日期相关的指定频率(所在周/旬/月/季/半年/年的最后/最早一天)
  24. )
  25. // MixedTableReq 混合表格保存请求参数
  26. type MixedTableReq struct {
  27. CellRelation string `description:"单元格关系"`
  28. Data [][]MixedTableCellDataReq `description:"混合表格单元格参数"`
  29. }
  30. // MixedTableCellDataReq 混合表格单元格参数
  31. type MixedTableCellDataReq struct {
  32. Uid string `description:"单元格唯一标识"`
  33. DataType int `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值"`
  34. DataTime string `description:"所属日期"`
  35. DataTimeType int `description:"日期类型:0:手动输入日期(固定日期);1:导入系统日期;;3:导入指标日期(指标库的最新日期);"`
  36. EdbInfoId int `description:"指标id"`
  37. ShowValue string `description:"展示值"`
  38. Value string `description:"实际值和配置"`
  39. Extra string `description:"额外参数"`
  40. ShowStyle string `description:"展示的样式配置"`
  41. RealValue string `description:"实际的值"`
  42. }
  43. // CellRelationConf
  44. // @Description: 单元格的关系配置结构体
  45. type CellRelationConf struct {
  46. CellRelation
  47. //Type int `json:"type" description:"数据类型,跟MixedTableCellDataReq的DataType保持一致"`
  48. //Key string `json:"key" description:"单元格的唯一标识"`
  49. RelationDate CellRelation `json:"relation_date"`
  50. RelationEdb CellRelation `json:"relation_edb"`
  51. }
  52. // CellRelation
  53. // @Description: 单元格的关系结构体
  54. type CellRelation struct {
  55. Type int `json:"type" description:"数据类型,跟MixedTableCellDataReq的DataType保持一致"`
  56. Key string `json:"key" description:"单元格的唯一标识"`
  57. }
  58. // SystemDateConf
  59. // @Description: 系统导入日期配置
  60. type SystemDateConf struct {
  61. Source int `description:"类型,1:导入系统日期;2:导入系统日期计算后的日期;3:导入系统日期相关的指定频率"`
  62. CalculateNum int `description:"计算频度的数量"`
  63. CalculateFrequency string `description:"计算频度"`
  64. Frequency string `description:"指定频度"`
  65. Day string `description:"指定日期"`
  66. }
  67. // EdbDateConf
  68. // @Description: 导入指标日期配置
  69. type EdbDateConf struct {
  70. EdbInfoId int `description:"指标id"`
  71. EdbDateChangeConf
  72. CustomerDate string `description:"自定义日期"`
  73. }
  74. // EdbDateExtraConf
  75. // @Description: 导入指标日期前移和日期变换
  76. type EdbDateChangeConf struct {
  77. MoveForward int `description:"前移的期数"`
  78. DateChange []*EdbDateConfDateChange
  79. }
  80. type EdbDateConfDateChange struct {
  81. Year int
  82. Month int
  83. Day int
  84. Frequency string `description:"频度变换"`
  85. FrequencyDay string `description:"频度的固定日期"`
  86. ChangeType int `description:"日期变换类型1日期位移,2指定频率"`
  87. }
  88. // MixedDateCalculateReq 混合表格日期计算
  89. type MixedDateCalculateReq struct {
  90. Formula string `description:"计算公式"`
  91. DateList []MixDateCalculateTagReq `description:"表格中的单元格"`
  92. }
  93. // MixDateCalculateConf 混合表格中的日期计算
  94. type MixDateCalculateConf struct {
  95. Formula string `description:"计算公式"`
  96. RelationCellList []MixDateCalculateTag `description:"表格中的单元格"`
  97. }
  98. // MixDateCalculateTag 混合表格中的日期计算的关联单元格
  99. type MixDateCalculateTag struct {
  100. Uid string `description:"单元格唯一值"`
  101. Tag string `description:"指标对应标签"`
  102. }
  103. // MixDateCalculateTagReq 混合表格中的日期计算的关联单元格
  104. type MixDateCalculateTagReq struct {
  105. Date string `description:"日期"`
  106. Tag string `description:"指标对应标签"`
  107. }
  108. // MixCellShowStyle 混合表格 单元格样式展示计算
  109. type MixCellShowStyle struct {
  110. NumberStyle MixNumberShowStyle `description:"小数点位数增加或减少,百分比"`
  111. }
  112. type MixNumberShowStyle struct {
  113. AddPointNum int `description:"显示的计算类型:小数点位数增加或减少,正数表述增加,负数表示减少"`
  114. IsPercent int `description:"是否是百分比1 是,0否, 将选中的单元格的样式设置成百分比"`
  115. }
  116. // CalculateConf
  117. // @Description: 计算公式
  118. type CalculateConf struct {
  119. EdbInfoId int `description:"指标id"`
  120. DataTime string `description:"所属日期,这个日期有传递的话,那么就取上下两期+自己的数据;没有传就默认最近5期的数据"`
  121. Frequency string `description:"需要转换的频度"`
  122. Formula interface{} `description:"计算公式,默认是string,实际上还需要转成其他样式"`
  123. Calendar string `description:"公历/农历"`
  124. MoveType int `description:"移动方式:1:领先(默认),2:滞后"`
  125. MoveFrequency string `description:"移动频度"`
  126. Source int `description:"1:累计值转月;2:累计值转季;3:同比值;4:同差值;5:N数值移动平均数计算;6:环比值;7:环差值;8:升频;9:降频;10:时间移位;11:超季节性;12:年化;13:累计值;14:累计值年初至今;15:指数修匀;16:日均值"`
  127. EdbDateChangeConf
  128. }
  129. // BaseCalculateConf
  130. // @Description: 基础计算公式(A+B)
  131. type BaseCalculateConf struct {
  132. Formula string `description:"计算公式,默认是string,实际上还需要转成其他样式"`
  133. RelationEdbInfoList []RelationCell `description:"关联单元格(计算公式中关联的单元格,用于计算的时候去匹配)"`
  134. }
  135. // RelationCell
  136. // @Description: 关联单元格的信息
  137. type RelationCell struct {
  138. Tag string `description:"指标标签"`
  139. Row string `description:"第几行"`
  140. Key string `json:"key" description:"单元格的唯一标识"`
  141. }