variety_edb_info.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package supply_analysis
  2. import (
  3. "eta_gn/eta_index_lib/global"
  4. "time"
  5. )
  6. // VarietyEdbInfo variety_edb_info 品种指标表
  7. type VarietyEdbInfo struct {
  8. VarietyEdbId int `gorm:"primaryKey;autoIncrement;column:variety_edb_id" description:"品种指标ID"`
  9. VarietyId int `gorm:"column:variety_id" description:"品种id"`
  10. EdbName string `gorm:"column:edb_name" description:"品种指标名称"`
  11. Frequency string `gorm:"column:frequency" description:"频度"`
  12. StartDate time.Time `gorm:"column:start_date" description:"开始日期"`
  13. EndDate time.Time `gorm:"column:end_date" description:"结束日期"`
  14. LatestValue float64 `gorm:"column:latest_value" description:"最新值"`
  15. EdbInfoId int `gorm:"column:edb_info_id" description:"指标id"`
  16. EdbCode string `gorm:"column:edb_code" description:"品种编码"`
  17. Source int `gorm:"column:source" description:"来源,1:影响周度产量;2:周度产量变动;3:影响月度产量;4:月度产量变动"`
  18. ModifyTime time.Time `gorm:"column:modify_time" description:"更新时间"`
  19. CreateTime time.Time `gorm:"column:create_time" description:"添加时间"`
  20. }
  21. // GetAllVarietyEdbInfoByVarietyId 根据品种id获取所有的指标
  22. func GetAllVarietyEdbInfoByVarietyId(varietyId int) (items []*VarietyEdbInfo, err error) {
  23. sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ? ORDER BY a.variety_edb_id ASC `
  24. err = global.DEFAULT_DmSQL.Raw(sql, varietyId).Scan(&items).Error
  25. return
  26. }
  27. // GetVarietyEdbInfoByEdbInfoId 根据ETA指标库中的指标id获取指标
  28. func GetVarietyEdbInfoByEdbInfoId(varietyId int) (item *VarietyEdbInfo, err error) {
  29. sql := `SELECT * FROM variety_edb_info AS a WHERE a.edb_info_id = ? ORDER BY a.variety_edb_id ASC `
  30. err = global.DEFAULT_DmSQL.Raw(sql, varietyId).First(&item).Error
  31. return
  32. }
  33. // BatchCreateVarietyEdbInfo 批量插入
  34. func BatchCreateVarietyEdbInfo(list []*VarietyEdbInfo) (err error) {
  35. num := len(list)
  36. if num <= 0 {
  37. return
  38. }
  39. err = global.DEFAULT_DmSQL.CreateInBatches(list, 500).Error
  40. return
  41. }
  42. // GetCountVarietyEdbByVarietyId 根据品种id获取添加到已经生成的指标数量(不管是否加入到ETA指标库)
  43. func GetCountVarietyEdbByVarietyId(varietyId int) (total int, err error) {
  44. sql := `SELECT count(1) total FROM variety_edb_info AS a WHERE a.variety_id = ?`
  45. err = global.DEFAULT_DmSQL.Raw(sql, varietyId).Scan(&total).Error
  46. return
  47. }
  48. // GetCountVarietyEdbInfoByVarietyId 根据品种id获取添加到ETA指标库的指标数量
  49. func GetCountVarietyEdbInfoByVarietyId(varietyId int) (total int, err error) {
  50. sql := `SELECT count(1) total FROM variety_edb_info AS a
  51. JOIN edb_info b on a.edb_info_id=b.edb_info_id
  52. WHERE a.variety_id = ? and a.edb_info_id >0`
  53. err = global.DEFAULT_DmSQL.Raw(sql, varietyId).Scan(&total).Error
  54. return
  55. }
  56. // VarietyEdbInfoItem 品种指标表(展示使用)
  57. type VarietyEdbInfoItem struct {
  58. VarietyEdbId int `gorm:"primaryKey;autoIncrement;column:variety_edb_id"`
  59. VarietyId int `description:"品种id"`
  60. EdbName string `description:"品种指标名称"`
  61. Frequency string `description:"频度"`
  62. StartDate string `description:"开始日期"`
  63. EndDate string `description:"结束日期"`
  64. EdbInfoId int `description:"指标id" json:"-"`
  65. EdbCode string `description:"品种编码"`
  66. ClassifyName string `description:"分类名称"`
  67. Source int `description:"来源,1:影响周度产量;2:周度产量变动;3:影响月度产量;4:月度产量变动" json:"-"`
  68. ModifyTime string `description:"最近一次更新时间"`
  69. CreateTime string `description:"添加时间"`
  70. Button VarietyEdbInfoButton `description:"操作按钮权限"`
  71. }
  72. type VarietyEdbInfoButton struct {
  73. Copy bool `description:"复制数据权限"`
  74. Show bool `description:"查看数据权限"`
  75. Add bool `description:"添加到指标库"`
  76. }
  77. // GetAllVarietyEdbInfoItemByVarietyId 根据品种id获取所有的指标
  78. func GetAllVarietyEdbInfoItemByVarietyId(varietyId int) (items []*VarietyEdbInfoItem, err error) {
  79. sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ? ORDER BY a.variety_edb_id ASC `
  80. err = global.DEFAULT_DmSQL.Raw(sql, varietyId).Scan(&items).Error
  81. return
  82. }