chart_info_range_analysis.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package models
  2. import (
  3. "time"
  4. )
  5. type ChartRangeAnalysisExtraConf struct {
  6. EdbInfoMode int `description:"指标模式 0: 单指标,1: 多指标"`
  7. DateRangeType int `description:"区间划分类型 0:智能划分,1:手工划分,2:跨年划分"`
  8. AutoDateConf ChartRangeAnalysisAutoDateConf `description:"智能划分时间区间配置"`
  9. ManualDateConf []ChartRangeAnalysisManualDateConf `description:"手工划分时间区间配置"`
  10. YearDateConf ChartRangeAnalysisYearDateConf `description:"跨年划分时间区间配置"`
  11. CalculateType int `description:"计算类型 0: 区间均值,1: 区间累计值,2:区间涨幅,3:区间年化增长率,4:区间最大值,5:区间最小值"`
  12. UnNormalDataDealType int `description:"异常值处理配置 0:不处理,1:剔除,2替换"`
  13. UnNormalDataConf ChartRangeAnalysisDeleteDataConf
  14. DataConvertType int `description:"数据转换类型 0不转, 1乘 2除 3对数"`
  15. DataConvertConf ChartRangeAnalysisDataConvertConf `description:"数据转换详情"`
  16. SeriesName string `description:"指标系列名称"`
  17. EdbInfoType int `description:"指标类型:0普通指标,1预测指标"`
  18. MultipleGraphConfigId int `description:"配置ID"`
  19. }
  20. type ChartRangeAnalysisAutoDateChangeConf struct {
  21. BaseDateType int `description:"基准日期类型:0指标日期,1系统日期"`
  22. MoveForward int `description:"前移的期数"`
  23. DateChange []*EdbDateConfDateChange
  24. }
  25. type ChartRangeAnalysisDeleteDataConf struct {
  26. Formula string `description:"比较符号:=、>、<、>=、<="`
  27. Value float64 `description:"比较的值"`
  28. ReplaceValue float64 `description:"替换的值"`
  29. }
  30. type ChartRangeAnalysisDataConvertConf struct {
  31. Value float64 `description:"数据转换值"`
  32. Unit string `description:"数据转换单位"`
  33. EnUnit string `description:"数据转换单位"`
  34. }
  35. type ChartRangeAnalysisManualDateConf struct { //手工划分
  36. StartDate string `description:"开始日期"`
  37. EndDate string `description:"结束日期"`
  38. }
  39. type ChartRangeAnalysisAutoDateConf struct { //智能划分
  40. IsAutoStartDate int `description:"起始日期是否是动态设置:0固定,1动态"`
  41. StartDate string `description:"固定模式下的起始日期"`
  42. EndDate string `description:"固定模式下的截止日期"`
  43. IsAutoEndDate int `description:"截止日期是否是动态设置:0固定,1动态"`
  44. StartDateConf ChartRangeAnalysisAutoDateChangeConf `description:"动态起始日期配置"`
  45. EndDateConf ChartRangeAnalysisAutoDateChangeConf `description:"动态截止日期配置"`
  46. }
  47. type ChartRangeAnalysisYearDateConf struct {
  48. StartDay string `description:"开始日"`
  49. EndDay string `description:"结束日"`
  50. }
  51. type ChartRangeAnalysisManualDateConfList []ChartRangeAnalysisManualDateConf
  52. func (a ChartRangeAnalysisManualDateConfList) Len() int { return len(a) }
  53. func (a ChartRangeAnalysisManualDateConfList) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
  54. func (a ChartRangeAnalysisManualDateConfList) Less(i, j int) bool {
  55. return a[i].StartDate < a[j].StartDate
  56. }
  57. type ChartRangeAnalysisDataResp struct { //图表详情返回值
  58. *ChartRangeAnalysisExtraConf
  59. SeriesId int `description:"指标系列ID"`
  60. ConfigEdbNum int `description:"生成的指标数"`
  61. }
  62. type ChartRangeAnalysisDateDataItem struct {
  63. StartDate time.Time
  64. EndDate time.Time
  65. DataList []*EdbDataList
  66. }
  67. // ChartRangeAnalysisConfigEdbResp 指标列表
  68. type ChartRangeAnalysisConfigEdbResp struct {
  69. EdbInfoList []*ChartRangeAnalysisConfigEdbItem `description:"指标列表"`
  70. }
  71. type ChartRangeAnalysisConfigEdbItem struct {
  72. EdbInfoId int `description:"指标id"`
  73. EdbName string `description:"指标名称"`
  74. EdbNameEn string `description:"指标名称"`
  75. Frequency string `description:"频度"`
  76. Unit string `description:"单位"`
  77. UnitEn string `description:"单位"`
  78. ClassifyId int `description:"分类id"`
  79. FromEdbInfoId int `description:"计算来源指标id"`
  80. EdbTypeInfo int `description:"指标类型,0普通指标,1预测指标"`
  81. }
  82. type SortEdbDataList []*EdbDataList
  83. func (m SortEdbDataList) Len() int {
  84. return len(m)
  85. }
  86. func (m SortEdbDataList) Less(i, j int) bool {
  87. return m[i].DataTime > m[j].DataTime
  88. }
  89. func (m SortEdbDataList) Swap(i, j int) {
  90. m[i], m[j] = m[j], m[i]
  91. }