referenced_excel_config.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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 GetReferencedExcelConfigByUniqueCode(uniqueCode string) (item ReferencedExcelConfig, err error) {
  37. o := orm.NewOrmUsingDB("data")
  38. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_excel_unique_code = ? `
  39. err = o.Raw(sql, uniqueCode).QueryRow(&item)
  40. return
  41. }
  42. // getByCode
  43. func GetReferencedExcelConfig(referencedId, fromScene int, uniqueCode, uuid string) (item ReferencedExcelConfig, err error) {
  44. o := orm.NewOrmUsingDB("data")
  45. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? AND unique_code = ? AND uuid= ? `
  46. err = o.Raw(sql, referencedId, fromScene, uniqueCode, uuid).QueryRow(&item)
  47. return
  48. }
  49. // update
  50. func UpdateReferencedExcelConfig(item *ReferencedExcelConfig) (err error) {
  51. o := orm.NewOrmUsingDB("data")
  52. _, err = o.Update(item, "WidthList", "HeightList", "OpUserId", "OpUserName", "ModifyTime")
  53. return
  54. }
  55. // delete
  56. func DeleteReferencedExcelConfig(uniqueCode string) (err error) {
  57. o := orm.NewOrmUsingDB("data")
  58. sql := `DELETE FROM referenced_excel_config WHERE unique_code=? `
  59. _, err = o.Raw(sql, uniqueCode).Exec()
  60. return
  61. }
  62. // GetReferencedExcelConfigList
  63. // @Description: 根据来源类型和来源id获取所有配置列表
  64. // @author: Roc
  65. // @datetime 2025-01-09 14:31:20
  66. // @param referencedId int
  67. // @param fromScene int
  68. // @return items []ReferencedExcelConfig
  69. // @return err error
  70. func GetReferencedExcelConfigList(referencedId, fromScene int) (items []ReferencedExcelConfig, err error) {
  71. o := orm.NewOrmUsingDB("data")
  72. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  73. _, err = o.Raw(sql, referencedId, fromScene).QueryRows(&items)
  74. return
  75. }
  76. // CopyReferencedExcelConfigByReferencedIdAndFromScene
  77. // @Description: 根据原引用Id和引用类型创建新的表格关系
  78. // @author: Roc
  79. // @datetime 2025-01-09 15:02:43
  80. // @param oldReferencedId int
  81. // @param oldFromScene int
  82. // @param newReferencedId int
  83. // @param newFromScene int
  84. // @param sysUserId int
  85. // @param sysUserName string
  86. // @return err error
  87. func CopyReferencedExcelConfigByReferencedIdAndFromScene(oldReferencedId, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) {
  88. o := orm.NewOrmUsingDB("data")
  89. var items []ReferencedExcelConfig
  90. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  91. _, err = o.Raw(sql, oldReferencedId, oldFromScene).QueryRows(&items)
  92. if err != nil {
  93. return
  94. }
  95. addList = make([]*ReferencedExcelConfig, 0)
  96. for _, v := range items {
  97. addList = append(addList, &ReferencedExcelConfig{
  98. ReferencedExcelConfigId: 0,
  99. UniqueCode: v.UniqueCode,
  100. ReferencedId: newReferencedId,
  101. FromScene: newFromScene,
  102. Uuid: v.Uuid,
  103. WidthList: v.WidthList,
  104. HeightList: v.HeightList,
  105. OpUserId: sysUserId,
  106. OpUserName: sysUserName,
  107. CreateTime: time.Now(),
  108. Content: v.Content,
  109. ModifyTime: time.Now(),
  110. })
  111. }
  112. // 批量复制表格关系
  113. _, err = o.InsertMulti(utils.MultiAddNum, addList)
  114. return
  115. }
  116. // CopyReferencedExcelConfigByReferencedIdListAndFromScene
  117. // @Description: 根据原引用Id列表和引用类型创建新的表格关系
  118. // @author: Roc
  119. // @datetime 2025-01-09 17:37:47
  120. // @param oldReferencedIdList []int
  121. // @param oldFromScene int
  122. // @param newReferencedId int
  123. // @param newFromScene int
  124. // @param sysUserId int
  125. // @param sysUserName string
  126. // @return addList []*ReferencedExcelConfig
  127. // @return err error
  128. func CopyReferencedExcelConfigByReferencedIdListAndFromScene(oldReferencedIdList []int, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) {
  129. num := len(oldReferencedIdList)
  130. if num <= 0 {
  131. return
  132. }
  133. o := orm.NewOrmUsingDB("data")
  134. var items []ReferencedExcelConfig
  135. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id in (` + utils.GetOrmInReplace(num) + `) AND from_scene = ? group by unique_code,uuid `
  136. _, err = o.Raw(sql, oldReferencedIdList, oldFromScene).QueryRows(&items)
  137. if err != nil {
  138. return
  139. }
  140. addList = make([]*ReferencedExcelConfig, 0)
  141. for _, v := range items {
  142. addList = append(addList, &ReferencedExcelConfig{
  143. ReferencedExcelConfigId: 0,
  144. UniqueCode: v.UniqueCode,
  145. ReferencedId: newReferencedId,
  146. FromScene: newFromScene,
  147. Uuid: v.Uuid,
  148. WidthList: v.WidthList,
  149. HeightList: v.HeightList,
  150. OpUserId: sysUserId,
  151. OpUserName: sysUserName,
  152. CreateTime: time.Now(),
  153. Content: v.Content,
  154. ModifyTime: time.Now(),
  155. })
  156. }
  157. // 批量复制表格关系
  158. _, err = o.InsertMulti(utils.MultiAddNum, addList)
  159. return
  160. }