variety_edb_info.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package supply_analysis
  2. import (
  3. "database/sql"
  4. "eta/eta_api/global"
  5. "eta/eta_api/utils"
  6. "time"
  7. )
  8. // VarietyEdbInfo variety_edb_info 品种指标表
  9. type VarietyEdbInfo struct {
  10. VarietyEdbId int `orm:"column(variety_edb_id);pk" gorm:"primaryKey" `
  11. VarietyId int `description:"品种id"`
  12. EdbName string `description:"品种指标名称"`
  13. Frequency string `description:"频度"`
  14. StartDate time.Time `description:"开始日期"`
  15. EndDate time.Time `description:"结束日期"`
  16. LatestValue float64 `description:"最新值"`
  17. EdbInfoId int `description:"指标id"`
  18. EdbCode string `description:"品种编码"`
  19. Source int `description:"来源,1:影响周度产量;2:周度产量变动;3:影响月度产量;4:月度产量变动"`
  20. ModifyTime time.Time `description:"更新时间"`
  21. CreateTime time.Time `description:"添加时间"`
  22. }
  23. // BatchCreateVarietyEdbInfo 批量插入
  24. func BatchCreateVarietyEdbInfo(list []*VarietyEdbInfo) (err error) {
  25. num := len(list)
  26. if num <= 0 {
  27. return
  28. }
  29. err = global.DbMap[utils.DbNameIndex].CreateInBatches(list, num).Error
  30. return
  31. }
  32. // GetCountVarietyEdbByVarietyId 根据品种id获取添加到已经生成的指标数量(不管是否加入到ETA指标库)
  33. func GetCountVarietyEdbByVarietyId(varietyId int) (total int, err error) {
  34. var totalNull sql.NullInt64
  35. sql := `SELECT count(1) total FROM variety_edb_info AS a WHERE a.variety_id = ?`
  36. err = global.DbMap[utils.DbNameIndex].Raw(sql, varietyId).Scan(&totalNull).Error
  37. if !totalNull.Valid {
  38. total = 0
  39. } else {
  40. total = int(totalNull.Int64)
  41. }
  42. return
  43. }
  44. // GetVarietyEdbListByVarietyId 根据品种id获取添加到已经生成的指标(不管是否加入到ETA指标库)
  45. func GetVarietyEdbListByVarietyId(varietyId int) (items []*VarietyEdbInfo, err error) {
  46. sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ?`
  47. err = global.DbMap[utils.DbNameIndex].Raw(sql, varietyId).Scan(&items).Error
  48. return
  49. }
  50. // GetCountVarietyEdbInfoByVarietyId 根据品种id获取添加到ETA指标库的指标数量
  51. func GetCountVarietyEdbInfoByVarietyId(varietyId int) (total int, err error) {
  52. sql := `SELECT count(1) total FROM variety_edb_info AS a
  53. JOIN edb_info b on a.edb_info_id=b.edb_info_id
  54. WHERE a.variety_id = ? and a.edb_info_id >0`
  55. err = global.DbMap[utils.DbNameIndex].Raw(sql, varietyId).Scan(&total).Error
  56. return
  57. }
  58. // VarietyEdbInfoItem 品种指标表(展示使用)
  59. type VarietyEdbInfoItem struct {
  60. VarietyEdbId int `orm:"column(variety_edb_id);pk" gorm:"primaryKey" `
  61. VarietyId int `description:"品种id"`
  62. EdbName string `description:"品种指标名称"`
  63. Frequency string `description:"频度"`
  64. StartDate string `description:"开始日期"`
  65. EndDate string `description:"结束日期"`
  66. LatestValue float64 `description:"最新值"`
  67. EdbInfoId int `description:"指标id"`
  68. UniqueCode string `description:"唯一code"`
  69. EdbCode string `description:"品种编码"`
  70. ClassifyId int `description:"上级分类id"`
  71. ClassifyName string `description:"分类名称"`
  72. Source int `description:"来源,1:影响周度产量;2:周度产量变动;3:影响月度产量;4:月度产量变动" json:"-"`
  73. ModifyTime string `description:"最近一次更新时间"`
  74. CreateTime string `description:"添加时间"`
  75. Button VarietyEdbInfoButton `description:"操作按钮权限 gorm:"-"`
  76. }
  77. type VarietyEdbInfoButton struct {
  78. Copy bool `description:"复制数据权限"`
  79. Show bool `description:"查看数据权限"`
  80. Add bool `description:"添加到指标库"`
  81. }
  82. // GetAllVarietyEdbInfoByVarietyId 根据品种id获取所有的指标
  83. func GetAllVarietyEdbInfoByVarietyId(varietyId int) (items []*VarietyEdbInfoItem, err error) {
  84. sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ? ORDER BY a.variety_edb_id ASC `
  85. err = global.DbMap[utils.DbNameIndex].Raw(sql, varietyId).Find(&items).Error
  86. return
  87. }
  88. // GetVarietyEdbInfoByVarietyEdbId 根据品种指标id获取的指标
  89. func GetVarietyEdbInfoByVarietyEdbId(varietyId int) (item *VarietyEdbInfo, err error) {
  90. sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_edb_id = ? ORDER BY a.variety_edb_id ASC `
  91. err = global.DbMap[utils.DbNameIndex].Raw(sql, varietyId).First(&item).Error
  92. return
  93. }
  94. // Update 更基础信息
  95. func (varietyEdbInfo *VarietyEdbInfo) Update(cols []string) (err error) {
  96. err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(varietyEdbInfo).Error
  97. return
  98. }