base_from_mysteel_chemical_index.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package data_manage
  2. import (
  3. "eta/eta_task/global"
  4. "eta/eta_task/utils"
  5. "gorm.io/gorm"
  6. )
  7. type BaseFromMysteelChemicalIndexItem struct {
  8. BaseFromMysteelChemicalIndexId int32 `gorm:"column:base_from_mysteel_chemical_index_id;primaryKey;autoIncrement" json:"base_from_mysteel_chemical_index_id"`
  9. BaseFromMysteelChemicalClassifyId int32 `json:"base_from_mysteel_chemical_classify_id"` // 钢联化工指标分类id
  10. IndexCode string `json:"index_code"` // 指标编码
  11. IndexName string `json:"index_name"` // 指标名称
  12. Unit string `json:"unit"` // 单位
  13. Source string `json:"source"` // 数据来源
  14. Frequency string `json:"frequency"` // 频度
  15. StartDate string `json:"start_date"` // 开始日期
  16. EndDate string `json:"end_date"` // 结束日期
  17. Describe string `json:"describe"` // 指标描述
  18. UpdateWeek string `json:"update_week"` // 更新周期
  19. UpdateTime string `json:"update_time"` // 更新时间,多个时间点用英文,隔开
  20. UpdateTime2 string `gorm:"column:update_time2" json:"update_time2"` // 更新时间2
  21. SysUserId int32 `json:"sys_user_id"` // 创建人id
  22. SysUserRealName string `json:"sys_user_real_name"` // 创建人姓名
  23. CreateTime string `json:"create_time"` // 创建时间
  24. ModifyTime string `json:"modify_time"` // 修改时间
  25. FilePath string `json:"file_path"` // 文件存储路径
  26. Sort int32 `json:"sort"` // 排序
  27. MergeFilePath string `json:"merge_file_path"`
  28. FileIndex int32 `json:"file_index"`
  29. MergeUpdateWeek string `json:"merge_update_week"` // 合并文件的更新周
  30. MergeFilePathWeek string `json:"merge_file_path_week"` // 更新文件
  31. UpdateDate string `json:"update_date"` // 更新日期
  32. IsRefresh int32 `json:"is_refresh"` // 0:不需要及时刷新,1:需要及时刷新
  33. IsStop int32 `json:"is_stop"` // 是否停更:1:停更,0:未停更
  34. TerminalCode string `json:"terminal_code"` // 所属终端编码
  35. EndValue float64 `json:"end_value"` // 指标的最新值
  36. EdbInfoId int `json:"edb_info_id"`
  37. }
  38. func (m *BaseFromMysteelChemicalIndexItem) AfterFind(db *gorm.DB) (err error) {
  39. m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
  40. m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
  41. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  42. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  43. return
  44. }
  45. func (m *BaseFromMysteelChemicalIndexItem) ConvertTimeStr() {
  46. m.StartDate = utils.GormDateStrToDateStr(m.StartDate)
  47. m.EndDate = utils.GormDateStrToDateStr(m.EndDate)
  48. m.CreateTime = utils.GormDateStrToDateTimeStr(m.CreateTime)
  49. m.ModifyTime = utils.GormDateStrToDateTimeStr(m.ModifyTime)
  50. return
  51. }
  52. // GetBaseFromMysteelChemicalIndexItemByCode
  53. // @Description: 根据指标编码获取钢联指标详情
  54. // @author: Roc
  55. // @datetime 2024-03-11 16:42:56
  56. // @param edbCode string
  57. // @return item *BaseFromMysteelChemicalIndexItem
  58. // @return err error
  59. func GetBaseFromMysteelChemicalIndexItemByCode(edbCode string) (item *BaseFromMysteelChemicalIndexItem, err error) {
  60. o := global.DbMap[utils.DbNameIndex]
  61. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE index_code = ?`
  62. err = o.Raw(sql, edbCode).First(&item).Error
  63. return
  64. }
  65. func GetBaseFromMysteelChemicalIndexItems(frequencyList []string) (items []*BaseFromMysteelChemicalIndexItem, err error) {
  66. num := len(frequencyList)
  67. if num == 0 {
  68. return
  69. }
  70. o := global.DbMap[utils.DbNameIndex]
  71. sql := ` SELECT b.*, e.edb_info_id FROM base_from_mysteel_chemical_index AS b
  72. LEFT JOIN edb_info AS e
  73. ON b.index_code = e.edb_code
  74. WHERE b.source='api' AND b.frequency IN (` + utils.GetOrmInReplace(len(frequencyList)) + `)`
  75. err = o.Raw(sql, frequencyList).Find(&items).Error
  76. return
  77. }
  78. // GetRefreshBaseFromMysteelChemicalIndexItemByCreateTime 获取正常刷新的钢联化工指标
  79. func GetRefreshBaseFromMysteelChemicalIndexItemByCreateTime(endDate string, startPage, pageSize int) (items []*BaseFromMysteelChemicalIndexItem, err error) {
  80. o := global.DbMap[utils.DbNameIndex]
  81. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE is_stop = 0 and create_time < ? Limit ?,?`
  82. err = o.Raw(sql, endDate, startPage, pageSize).Find(&items).Error
  83. return
  84. }
  85. // GetCountRefreshBaseFromMysteelChemicalIndexItemByCreateTime 获取正常刷新的钢联化工指标
  86. func GetCountRefreshBaseFromMysteelChemicalIndexItemByCreateTime(endDate string) (total int64, err error) {
  87. o := global.DbMap[utils.DbNameIndex]
  88. sql := ` SELECT count(*) FROM base_from_mysteel_chemical_index WHERE is_stop = 0 and create_time < ?`
  89. err = o.Raw(sql, endDate).Scan(&total).Error
  90. return
  91. }
  92. func SetStopRefreshMysteelChemicalIndex(ids []int32) (err error) {
  93. o := global.DbMap[utils.DbNameIndex]
  94. sql := ` UPDATE base_from_mysteel_chemical_index SET is_stop = 1 WHERE base_from_mysteel_chemical_index_id IN (` + utils.GetOrmInReplace(len(ids)) + `) and is_stop=0`
  95. err = o.Exec(sql, ids).Error
  96. return
  97. }