referenced_excel_config.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package excel
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "time"
  6. )
  7. type ReferencedExcelConfig struct {
  8. ReferencedExcelConfigId int `gorm:"column:referenced_excel_config_id;primaryKey;" ` // 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. err = global.DmSQL["data"].CreateInBatches(items, utils.MultiAddNum).Error
  32. return
  33. }
  34. // getByCode
  35. func GetReferencedExcelConfigByUniqueCode(uniqueCode string) (item ReferencedExcelConfig, err error) {
  36. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_excel_unique_code = ? `
  37. err = global.DmSQL["data"].Raw(sql, uniqueCode).First(&item).Error
  38. return
  39. }
  40. // getByCode
  41. func GetReferencedExcelConfig(referencedId, fromScene int, uniqueCode, uuid string) (item ReferencedExcelConfig, err error) {
  42. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? AND unique_code = ? AND uuid= ? `
  43. err = global.DmSQL["data"].Raw(sql, referencedId, fromScene, uniqueCode, uuid).First(&item).Error
  44. return
  45. }
  46. // update
  47. func UpdateReferencedExcelConfig(item *ReferencedExcelConfig) (err error) {
  48. err = global.DmSQL["data"].Select([]string{"width_list", "height_list", "op_user_id", "op_user_name", "modify_time"}).Updates(item).Error
  49. return
  50. }
  51. // delete
  52. func DeleteReferencedExcelConfig(uniqueCode string) (err error) {
  53. sql := `DELETE FROM referenced_excel_config WHERE unique_code=? `
  54. err = global.DmSQL["data"].Exec(sql, uniqueCode).Error
  55. return
  56. }
  57. // GetReferencedExcelConfigList
  58. // @Description: 根据来源类型和来源id获取所有配置列表
  59. // @author: Roc
  60. // @datetime 2025-01-09 14:31:20
  61. // @param referencedId int
  62. // @param fromScene int
  63. // @return items []ReferencedExcelConfig
  64. // @return err error
  65. func GetReferencedExcelConfigList(referencedId, fromScene int) (items []ReferencedExcelConfig, err error) {
  66. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  67. err = global.DmSQL["data"].Raw(sql, referencedId, fromScene).Find(&items).Error
  68. return
  69. }
  70. // CopyReferencedExcelConfigByReferencedIdAndFromScene
  71. // @Description: 根据原引用Id和引用类型创建新的表格关系
  72. // @author: Roc
  73. // @datetime 2025-01-09 15:02:43
  74. // @param oldReferencedId int
  75. // @param oldFromScene int
  76. // @param newReferencedId int
  77. // @param newFromScene int
  78. // @param sysUserId int
  79. // @param sysUserName string
  80. // @return err error
  81. func CopyReferencedExcelConfigByReferencedIdAndFromScene(oldReferencedId, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) {
  82. var items []ReferencedExcelConfig
  83. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? `
  84. err = global.DmSQL["data"].Raw(sql, oldReferencedId, oldFromScene).Find(&items).Error
  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 = global.DmSQL["data"].CreateInBatches(addList, utils.MultiAddNum).Error
  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. var items []ReferencedExcelConfig
  127. sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id in (` + utils.GetOrmInReplace(num) + `) AND from_scene = ? group by unique_code,uuid `
  128. err = global.DmSQL["data"].Raw(sql, oldReferencedIdList, oldFromScene).Find(&items).Error
  129. if err != nil {
  130. return
  131. }
  132. addList = make([]*ReferencedExcelConfig, 0)
  133. for _, v := range items {
  134. addList = append(addList, &ReferencedExcelConfig{
  135. ReferencedExcelConfigId: 0,
  136. UniqueCode: v.UniqueCode,
  137. ReferencedId: newReferencedId,
  138. FromScene: newFromScene,
  139. Uuid: v.Uuid,
  140. WidthList: v.WidthList,
  141. HeightList: v.HeightList,
  142. OpUserId: sysUserId,
  143. OpUserName: sysUserName,
  144. CreateTime: time.Now(),
  145. Content: v.Content,
  146. ModifyTime: time.Now(),
  147. })
  148. }
  149. // 批量复制表格关系
  150. err = global.DmSQL["data"].CreateInBatches(addList, utils.MultiAddNum).Error
  151. return
  152. }