referenced_excel_config.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package excel
  2. import (
  3. "eta/eta_api/utils"
  4. "github.com/beego/beego/v2/client/orm"
  5. "time"
  6. )
  7. type ReferencedExcelConfig struct {
  8. ReferencedExcelConfigId int `orm:"column(referenced_excel_config_id);pk;auto" ` // excel表格配置id
  9. UniqueCode string // 表格唯一编码
  10. ReferencedId int // 被引用的id,报告就是报告id,pptId
  11. FromScene int // 引用类型 1智能研报 2研报列表 3英文研报 4PPT 5英文ppt
  12. Uuid string // 引用唯一标识
  13. WidthList string // 宽度数组
  14. HeightList string // 高度数组
  15. OpUserId int // 当前编辑操作的用户id
  16. OpUserName string // 当前编辑的用户名称(冗余字段,避免查表)
  17. CreateTime time.Time // 创建时间
  18. Content string // 内容
  19. ModifyTime time.Time // 修改时间
  20. }
  21. type ExcelReferencesReq struct {
  22. UniqueCode string `description:"表格唯一编码"`
  23. ReferencedId int `description:"被引用的ID"`
  24. FromScene int `description:"引用类型 1智能研报 2研报列表 3英文研报 4PPT 5英文PPT"`
  25. Uuid string `description:"引用唯一标识"`
  26. WidthList string `description:"宽度数组"`
  27. HeightList string `description:"高度数组"`
  28. }
  29. // add
  30. func AddReferencedExcelConfig(items []*ReferencedExcelConfig) (err error) {
  31. o := orm.NewOrmUsingDB("data")
  32. _, err = o.InsertMulti(len(items), items)
  33. return
  34. }
  35. // getByCode
  36. func GetReferencedExcelConfig(referencedId, fromScene int, uniqueCode, uuid string) (item ReferencedExcelConfig, err error) {
  37. o := orm.NewOrmUsingDB("data")
  38. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? AND unique_code = ? AND uuid= ? `
  39. err = o.Raw(sql, referencedId, fromScene, uniqueCode, uuid).QueryRow(&item)
  40. return
  41. }
  42. // update
  43. func UpdateReferencedExcelConfig(item *ReferencedExcelConfig) (err error) {
  44. o := orm.NewOrmUsingDB("data")
  45. _, err = o.Update(item, "WidthList", "HeightList", "OpUserId", "OpUserName", "ModifyTime")
  46. return
  47. }
  48. // delete
  49. func DeleteReferencedExcelConfig(uniqueCode string) (err error) {
  50. o := orm.NewOrmUsingDB("data")
  51. sql := `DELETE FROM referenced_excel_config WHERE unique_code=? `
  52. _, err = o.Raw(sql, uniqueCode).Exec()
  53. return
  54. }
  55. // GetReferencedExcelConfigList
  56. // @Description: 根据来源类型和来源id获取所有配置列表
  57. // @author: Roc
  58. // @datetime 2025-01-09 14:31:20
  59. // @param referencedId int
  60. // @param fromScene int
  61. // @return items []ReferencedExcelConfig
  62. // @return err error
  63. func GetReferencedExcelConfigList(referencedId, fromScene int) (items []ReferencedExcelConfig, err error) {
  64. o := orm.NewOrmUsingDB("data")
  65. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  66. _, err = o.Raw(sql, referencedId, fromScene).QueryRows(&items)
  67. return
  68. }
  69. // CopyReferencedExcelConfigByReferencedIdAndFromScene
  70. // @Description: 根据原引用Id和引用类型创建新的表格关系
  71. // @author: Roc
  72. // @datetime 2025-01-09 15:02:43
  73. // @param oldReferencedId int
  74. // @param oldFromScene int
  75. // @param newReferencedId int
  76. // @param newFromScene int
  77. // @param sysUserId int
  78. // @param sysUserName string
  79. // @return err error
  80. func CopyReferencedExcelConfigByReferencedIdAndFromScene(oldReferencedId, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) {
  81. o := orm.NewOrmUsingDB("data")
  82. var items []ReferencedExcelConfig
  83. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  84. _, err = o.Raw(sql, oldReferencedId, oldFromScene).QueryRows(&items)
  85. if err != nil {
  86. return
  87. }
  88. addList = make([]*ReferencedExcelConfig, 0)
  89. for _, v := range items {
  90. addList = append(addList, &ReferencedExcelConfig{
  91. ReferencedExcelConfigId: 0,
  92. UniqueCode: v.UniqueCode,
  93. ReferencedId: newReferencedId,
  94. FromScene: newFromScene,
  95. Uuid: v.Uuid,
  96. WidthList: v.WidthList,
  97. HeightList: v.HeightList,
  98. OpUserId: sysUserId,
  99. OpUserName: sysUserName,
  100. CreateTime: time.Now(),
  101. Content: v.Content,
  102. ModifyTime: time.Now(),
  103. })
  104. }
  105. // 批量复制表格关系
  106. _, err = o.InsertMulti(utils.MultiAddNum, addList)
  107. return
  108. }
  109. // CopyReferencedExcelConfigByReferencedIdListAndFromScene
  110. // @Description: 根据原引用Id列表和引用类型创建新的表格关系
  111. // @author: Roc
  112. // @datetime 2025-01-09 17:37:47
  113. // @param oldReferencedIdList []int
  114. // @param oldFromScene int
  115. // @param newReferencedId int
  116. // @param newFromScene int
  117. // @param sysUserId int
  118. // @param sysUserName string
  119. // @return addList []*ReferencedExcelConfig
  120. // @return err error
  121. func CopyReferencedExcelConfigByReferencedIdListAndFromScene(oldReferencedIdList []int, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) {
  122. num := len(oldReferencedIdList)
  123. if num <= 0 {
  124. return
  125. }
  126. o := orm.NewOrmUsingDB("data")
  127. var items []ReferencedExcelConfig
  128. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id in (` + utils.GetOrmInReplace(num) + `) AND from_scene = ? group by unique_code,uuid `
  129. _, err = o.Raw(sql, oldReferencedIdList, oldFromScene).QueryRows(&items)
  130. if err != nil {
  131. return
  132. }
  133. addList = make([]*ReferencedExcelConfig, 0)
  134. for _, v := range items {
  135. addList = append(addList, &ReferencedExcelConfig{
  136. ReferencedExcelConfigId: 0,
  137. UniqueCode: v.UniqueCode,
  138. ReferencedId: newReferencedId,
  139. FromScene: newFromScene,
  140. Uuid: v.Uuid,
  141. WidthList: v.WidthList,
  142. HeightList: v.HeightList,
  143. OpUserId: sysUserId,
  144. OpUserName: sysUserName,
  145. CreateTime: time.Now(),
  146. Content: v.Content,
  147. ModifyTime: time.Now(),
  148. })
  149. }
  150. // 批量复制表格关系
  151. _, err = o.InsertMulti(utils.MultiAddNum, addList)
  152. return
  153. }