package excel import ( "eta/eta_api/utils" "github.com/beego/beego/v2/client/orm" "time" ) type ReferencedExcelConfig struct { ReferencedExcelConfigId int `orm:"column(referenced_excel_config_id);pk;auto" ` // excel表格配置id UniqueCode string // 表格唯一编码 ReferencedId int // 被引用的id,报告就是报告id,pptId FromScene int // 引用类型 1智能研报 2研报列表 3英文研报 4PPT 5英文ppt Uuid string // 引用唯一标识 WidthList string // 宽度数组 HeightList string // 高度数组 OpUserId int // 当前编辑操作的用户id OpUserName string // 当前编辑的用户名称(冗余字段,避免查表) CreateTime time.Time // 创建时间 Content string // 内容 ModifyTime time.Time // 修改时间 } type ExcelReferencesReq struct { UniqueCode string `description:"表格唯一编码"` ReferencedId int `description:"被引用的ID"` FromScene int `description:"引用类型 1智能研报 2研报列表 3英文研报 4PPT 5英文PPT"` Uuid string `description:"引用唯一标识"` WidthList string `description:"宽度数组"` HeightList string `description:"高度数组"` } // add func AddReferencedExcelConfig(items []*ReferencedExcelConfig) (err error) { o := orm.NewOrmUsingDB("data") _, err = o.InsertMulti(len(items), items) return } // getByCode func GetReferencedExcelConfigByUniqueCode(uniqueCode string) (item ReferencedExcelConfig, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM referenced_excel_config WHERE referenced_excel_unique_code = ? ` err = o.Raw(sql, uniqueCode).QueryRow(&item) return } // getByCode func GetReferencedExcelConfig(referencedId, fromScene int, uniqueCode, uuid string) (item ReferencedExcelConfig, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? AND unique_code = ? AND uuid= ? ` err = o.Raw(sql, referencedId, fromScene, uniqueCode, uuid).QueryRow(&item) return } // update func UpdateReferencedExcelConfig(item *ReferencedExcelConfig) (err error) { o := orm.NewOrmUsingDB("data") _, err = o.Update(item, "WidthList", "HeightList", "OpUserId", "OpUserName", "ModifyTime") return } // delete func DeleteReferencedExcelConfig(uniqueCode string) (err error) { o := orm.NewOrmUsingDB("data") sql := `DELETE FROM referenced_excel_config WHERE unique_code=? ` _, err = o.Raw(sql, uniqueCode).Exec() return } // GetReferencedExcelConfigList // @Description: 根据来源类型和来源id获取所有配置列表 // @author: Roc // @datetime 2025-01-09 14:31:20 // @param referencedId int // @param fromScene int // @return items []ReferencedExcelConfig // @return err error func GetReferencedExcelConfigList(referencedId, fromScene int) (items []ReferencedExcelConfig, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? ` _, err = o.Raw(sql, referencedId, fromScene).QueryRows(&items) return } // CopyReferencedExcelConfigByReferencedIdAndFromScene // @Description: 根据原引用Id和引用类型创建新的表格关系 // @author: Roc // @datetime 2025-01-09 15:02:43 // @param oldReferencedId int // @param oldFromScene int // @param newReferencedId int // @param newFromScene int // @param sysUserId int // @param sysUserName string // @return err error func CopyReferencedExcelConfigByReferencedIdAndFromScene(oldReferencedId, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) { o := orm.NewOrmUsingDB("data") var items []ReferencedExcelConfig sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id = ? AND from_scene = ? ` _, err = o.Raw(sql, oldReferencedId, oldFromScene).QueryRows(&items) if err != nil { return } addList = make([]*ReferencedExcelConfig, 0) for _, v := range items { addList = append(addList, &ReferencedExcelConfig{ ReferencedExcelConfigId: 0, UniqueCode: v.UniqueCode, ReferencedId: newReferencedId, FromScene: newFromScene, Uuid: v.Uuid, WidthList: v.WidthList, HeightList: v.HeightList, OpUserId: sysUserId, OpUserName: sysUserName, CreateTime: time.Now(), Content: v.Content, ModifyTime: time.Now(), }) } // 批量复制表格关系 _, err = o.InsertMulti(utils.MultiAddNum, addList) return } // CopyReferencedExcelConfigByReferencedIdListAndFromScene // @Description: 根据原引用Id列表和引用类型创建新的表格关系 // @author: Roc // @datetime 2025-01-09 17:37:47 // @param oldReferencedIdList []int // @param oldFromScene int // @param newReferencedId int // @param newFromScene int // @param sysUserId int // @param sysUserName string // @return addList []*ReferencedExcelConfig // @return err error func CopyReferencedExcelConfigByReferencedIdListAndFromScene(oldReferencedIdList []int, oldFromScene, newReferencedId, newFromScene, sysUserId int, sysUserName string) (addList []*ReferencedExcelConfig, err error) { num := len(oldReferencedIdList) if num <= 0 { return } o := orm.NewOrmUsingDB("data") var items []ReferencedExcelConfig sql := ` SELECT * FROM referenced_excel_config WHERE referenced_id in (` + utils.GetOrmInReplace(num) + `) AND from_scene = ? group by unique_code,uuid ` _, err = o.Raw(sql, oldReferencedIdList, oldFromScene).QueryRows(&items) if err != nil { return } addList = make([]*ReferencedExcelConfig, 0) for _, v := range items { addList = append(addList, &ReferencedExcelConfig{ ReferencedExcelConfigId: 0, UniqueCode: v.UniqueCode, ReferencedId: newReferencedId, FromScene: newFromScene, Uuid: v.Uuid, WidthList: v.WidthList, HeightList: v.HeightList, OpUserId: sysUserId, OpUserName: sysUserName, CreateTime: time.Now(), Content: v.Content, ModifyTime: time.Now(), }) } // 批量复制表格关系 _, err = o.InsertMulti(utils.MultiAddNum, addList) return }