excel_chart_data.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package excel
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/models/data_manage"
  5. "eta_gn/eta_api/utils"
  6. "fmt"
  7. "time"
  8. )
  9. type ExcelChartData struct {
  10. ExcelChartDataId int `orm:"column(excel_chart_data_id);pk" gorm:"primaryKey" `
  11. ExcelInfoId int `description:"表格id"`
  12. ExcelChartEdbId int `description:"指标ID"`
  13. ChartInfoId int `description:"图表id"`
  14. DataTime string
  15. Value float64
  16. ModifyTime time.Time `description:"修改时间"`
  17. CreateTime time.Time `description:"创建时间"`
  18. DataTimestamp int64
  19. }
  20. func (e *ExcelChartData) TableName() string {
  21. return "excel_chart_data"
  22. }
  23. // 新增
  24. func (e *ExcelChartData) Add() (err error) {
  25. //o := orm.NewOrmUsingDB("data")
  26. //_, err = o.Insert(e)
  27. //return
  28. err = global.DmSQL["data"].Create(e).Error
  29. return
  30. }
  31. // 修改
  32. func (e *ExcelChartData) Update(cols []string) (err error) {
  33. //o := orm.NewOrmUsingDB("data")
  34. //_, err = o.Update(e, cols...)
  35. err = global.DmSQL["data"].Select(cols).Updates(e).Error
  36. return
  37. }
  38. // 删除
  39. func (e *ExcelChartData) Delete() (err error) {
  40. //o := orm.NewOrmUsingDB("data")
  41. //_, err = o.Delete(e)
  42. sql := ` DELETE FROM excel_chart_data WHERE excel_chart_data_id=? `
  43. err = global.DmSQL["data"].Exec(sql, e.ExcelChartDataId).Error
  44. return
  45. }
  46. // 查询
  47. func GetExcelChartDataByExcelInfoId(excelInfoId int) (list []*ExcelChartData, err error) {
  48. //o := orm.NewOrmUsingDB("data")
  49. //sql := ` SELECT *
  50. // FROM excel_chart_data
  51. // WHERE excel_info_id=?
  52. // ORDER BY excel_chart_edb_id ASC, data_time desc, excel_chart_data_id ASC `
  53. //_, err = o.Raw(sql, excelInfoId).QueryRows(&list)
  54. sql := ` SELECT *
  55. FROM excel_chart_data
  56. WHERE excel_info_id=?
  57. ORDER BY excel_chart_edb_id ASC, data_time desc, excel_chart_data_id ASC `
  58. err = global.DmSQL["data"].Raw(sql, excelInfoId).Find(&list).Error
  59. return
  60. }
  61. func BatchUpdateChartEdbData(excelInfoId int, excelEdbMap map[int]*ExcelChartEdb, excelDataMap map[int][]*data_manage.EdbDataList) (err error) {
  62. //o, err := orm.NewOrmUsingDB("data").Begin()
  63. //if err != nil {
  64. // return
  65. //}
  66. //defer func() {
  67. // if err != nil {
  68. // _ = o.Rollback()
  69. // } else {
  70. // _ = o.Commit()
  71. // }
  72. //}()
  73. to := global.DmSQL["data"].Begin()
  74. defer func() {
  75. if err != nil {
  76. _ = to.Rollback()
  77. } else {
  78. _ = to.Commit()
  79. }
  80. }()
  81. //如果有数据则删除所有的数据
  82. //sql := `delete from excel_chart_data where excel_info_id = ?`
  83. //_, err = o.Raw(sql, excelInfoId).Exec()
  84. //if err != nil {
  85. // return
  86. //}
  87. sql := `delete from excel_chart_data where excel_info_id = ?`
  88. err = to.Exec(sql, excelInfoId).Error
  89. if err != nil {
  90. return
  91. }
  92. // 图表指标数据入库
  93. addList := make([]*ExcelChartData, 0)
  94. for chartEdbId, dataList := range excelDataMap {
  95. chartEdb, ok := excelEdbMap[chartEdbId]
  96. if !ok {
  97. err = fmt.Errorf("chartEdbId:%d not exist", chartEdbId)
  98. return
  99. }
  100. for _, v := range dataList {
  101. chartData := &ExcelChartData{
  102. ExcelInfoId: chartEdb.ExcelInfoId,
  103. ExcelChartEdbId: chartEdb.ExcelChartEdbId,
  104. ChartInfoId: chartEdb.ChartInfoId,
  105. DataTime: v.DataTime,
  106. Value: v.Value,
  107. DataTimestamp: v.DataTimestamp,
  108. ModifyTime: time.Now(),
  109. CreateTime: time.Now(),
  110. }
  111. addList = append(addList, chartData)
  112. // data信息入库
  113. if len(addList) > 1000 {
  114. //_, err = o.InsertMulti(len(addList), addList)
  115. //if err != nil {
  116. // return
  117. //}
  118. //addList = addList[:0]
  119. err = to.CreateInBatches(addList, utils.MultiAddNum).Error
  120. if err != nil {
  121. return
  122. }
  123. addList = addList[:0]
  124. }
  125. }
  126. }
  127. // data信息入库
  128. if len(addList) > 0 {
  129. //_, err = o.InsertMulti(len(addList), addList)
  130. //if err != nil {
  131. // return
  132. //}
  133. err = to.CreateInBatches(addList, utils.MultiAddNum).Error
  134. if err != nil {
  135. return
  136. }
  137. }
  138. return
  139. }
  140. func GetExcelChartDataByChartInfoId(chartInfoId int) (list []*ExcelChartData, err error) {
  141. //o := orm.NewOrmUsingDB("data")
  142. //sql := ` SELECT *
  143. // FROM excel_chart_Data
  144. // WHERE chart_info_id=?
  145. // ORDER BY excel_chart_edb_id ASC `
  146. //_, err = o.Raw(sql, chartInfoId).QueryRows(&list)
  147. sql := ` SELECT *
  148. FROM excel_chart_Data
  149. WHERE chart_info_id=?
  150. ORDER BY excel_chart_edb_id ASC `
  151. err = global.DmSQL["data"].Raw(sql, chartInfoId).Find(&list).Error
  152. return
  153. }