mysteel_chemical_classify.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. package data_manage
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. // BaseFromMysteelChemicalClassify 钢联化工分类表
  9. type BaseFromMysteelChemicalClassify struct {
  10. BaseFromMysteelChemicalClassifyId int `orm:"column(base_from_mysteel_chemical_classify_id);pk"`
  11. ClassifyName string `description:"分类名称"`
  12. ParentId int `description:"父级id"`
  13. SysUserId int `description:"创建人id"`
  14. SysUserRealName string `description:"创建人姓名"`
  15. Level int `description:"层级"`
  16. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  17. ModifyTime time.Time `description:"修改时间"`
  18. CreateTime time.Time `description:"创建时间"`
  19. ClassifyNameEn string `description:"英文分类名称"`
  20. }
  21. // AddBaseFromMysteelChemicalClassify 添加钢联化工分类
  22. func AddBaseFromMysteelChemicalClassify(item *BaseFromMysteelChemicalClassify) (lastId int64, err error) {
  23. //o := orm.NewOrmUsingDB("data")
  24. //lastId, err = o.Insert(item)
  25. err = global.DmSQL["data"].Create(item).Error
  26. return
  27. }
  28. // GetBaseFromMysteelChemicalClassifyCount
  29. // @Description: 获取中文分类名称的个数
  30. // @author: Roc
  31. // @datetime 2024-04-16 16:37:43
  32. // @param classifyName string
  33. // @param parentId int
  34. // @return count int
  35. // @return err error
  36. func GetBaseFromMysteelChemicalClassifyCount(classifyName string, parentId int) (count int, err error) {
  37. //o := orm.NewOrmUsingDB("data")
  38. //sql := `SELECT COUNT(1) AS count FROM base_from_mysteel_chemical_classify WHERE classify_name=? AND parent_id=? `
  39. //err = o.Raw(sql, classifyName, parentId).QueryRow(&count)
  40. sql := `SELECT COUNT(1) AS count FROM base_from_mysteel_chemical_classify WHERE classify_name=? AND parent_id=? `
  41. err = global.DmSQL["data"].Raw(sql, classifyName, parentId).Scan(&count).Error
  42. return
  43. }
  44. // GetBaseFromMysteelChemicalClassifyEnCount
  45. // @Description: 获取英文分类名称的个数
  46. // @author: Roc
  47. // @datetime 2024-04-16 16:28:14
  48. // @param classifyNameEn string
  49. // @param parentId int
  50. // @return count int
  51. // @return err error
  52. func GetBaseFromMysteelChemicalClassifyEnCount(classifyNameEn string, parentId int) (count int, err error) {
  53. //o := orm.NewOrmUsingDB("data")
  54. //sql := `SELECT COUNT(1) AS count FROM base_from_mysteel_chemical_classify WHERE classify_name_en = ? AND parent_id=? `
  55. //err = o.Raw(sql, classifyNameEn, parentId).QueryRow(&count)
  56. sql := `SELECT COUNT(1) AS count FROM base_from_mysteel_chemical_classify WHERE classify_name_en = ? AND parent_id=? `
  57. err = global.DmSQL["data"].Raw(sql, classifyNameEn, parentId).Scan(&count).Error
  58. return
  59. }
  60. // GetBaseFromMysteelChemicalClassifyById 通过分类id的获取分类信息
  61. func GetBaseFromMysteelChemicalClassifyById(classifyId int) (item *BaseFromMysteelChemicalClassify, err error) {
  62. //o := orm.NewOrmUsingDB("data")
  63. //sql := `SELECT * FROM base_from_mysteel_chemical_classify WHERE base_from_mysteel_chemical_classify_id=? `
  64. //err = o.Raw(sql, classifyId).QueryRow(&item)
  65. sql := `SELECT * FROM base_from_mysteel_chemical_classify WHERE base_from_mysteel_chemical_classify_id=? `
  66. err = global.DmSQL["data"].Raw(sql, classifyId).First(&item).Error
  67. return
  68. }
  69. // EditBaseFromMysteelChemicalClassify 修改钢联化工分类
  70. func EditBaseFromMysteelChemicalClassify(classifyId int, classifyName string) (err error) {
  71. //o := orm.NewOrmUsingDB("data")
  72. //sql := `UPDATE base_from_mysteel_chemical_classify SET classify_name=?,modify_time=NOW() WHERE base_from_mysteel_chemical_classify_id=? `
  73. //_, err = o.Raw(sql, classifyName, classifyId).Exec()
  74. sql := `UPDATE base_from_mysteel_chemical_classify SET classify_name=?,modify_time=NOW() WHERE base_from_mysteel_chemical_classify_id=? `
  75. err = global.DmSQL["data"].Exec(sql, classifyName, classifyId).Error
  76. return
  77. }
  78. // EditBaseFromMysteelChemicalClassifyEn
  79. // @Description: 修改钢联化工英文分类名称
  80. // @author: Roc
  81. // @datetime 2024-04-16 16:34:53
  82. // @param classifyId int
  83. // @param classifyNameEn string
  84. // @return err error
  85. func EditBaseFromMysteelChemicalClassifyEn(classifyId int, classifyNameEn string) (err error) {
  86. //o := orm.NewOrmUsingDB("data")
  87. //sql := `UPDATE base_from_mysteel_chemical_classify SET classify_name_en = ?,modify_time=NOW() WHERE base_from_mysteel_chemical_classify_id=? `
  88. //_, err = o.Raw(sql, classifyNameEn, classifyId).Exec()
  89. sql := `UPDATE base_from_mysteel_chemical_classify SET classify_name_en = ?,modify_time=NOW() WHERE base_from_mysteel_chemical_classify_id=? `
  90. err = global.DmSQL["data"].Exec(sql, classifyNameEn, classifyId).Error
  91. return
  92. }
  93. type BaseFromMysteelChemicalIndexResp struct {
  94. List []*BaseFromMysteelChemicalClassifyItems
  95. }
  96. type BaseFromMysteelChemicalClassifyItems struct {
  97. BaseFromMysteelChemicalClassifyId int `orm:"column(base_from_mysteel_chemical_classify_id)"`
  98. BaseFromMysteelChemicalIndexId int `orm:"column(base_from_mysteel_chemical_index_id)"`
  99. IndexCode string `description:"指标编码"`
  100. ClassifyName string `description:"分类名称"`
  101. ClassifyNameEn string `description:"英文分类名称"`
  102. ParentId int `description:"父级id"`
  103. SysUserId int `description:"创建人id"`
  104. SysUserRealName string `description:"创建人姓名"`
  105. Level int `description:"层级"`
  106. Sort int `description:"排序字段,越小越靠前,默认值:10"`
  107. UniqueCode string `description:"唯一编码"`
  108. ModifyTime time.Time `description:"修改时间"`
  109. CreateTime time.Time `description:"创建时间"`
  110. Button BaseFromMysteelChemicalClassifyItemsButton `description:"操作权限"`
  111. Children []*BaseFromMysteelChemicalClassifyItems `description:"下级"`
  112. }
  113. type BaseFromMysteelChemicalClassifyItemsButton struct {
  114. AddButton bool `description:"是否可添加"`
  115. OpButton bool `description:"是否可编辑"`
  116. DeleteButton bool `description:"是否可删除"`
  117. MoveButton bool `description:"是否可移动"`
  118. }
  119. // GetBaseFromMysteelChemicalClassifyByParentId 根据上级id获取当下的分类列表数据
  120. func GetBaseFromMysteelChemicalClassifyByParentId(parentId int) (items []*BaseFromMysteelChemicalClassifyItems, err error) {
  121. //o := orm.NewOrmUsingDB("data")
  122. //sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id=? order by sort asc,base_from_mysteel_chemical_classify_id asc`
  123. //_, err = o.Raw(sql, parentId).QueryRows(&items)
  124. sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id=? order by sort asc,base_from_mysteel_chemical_classify_id asc`
  125. err = global.DmSQL["data"].Raw(sql, parentId).Find(&items).Error
  126. return
  127. }
  128. // GetBaseFromMysteelChemicalClassifyByIds 根据id获取当下的分类列表数据
  129. func GetBaseFromMysteelChemicalClassifyByIds(classifyIds []int) (items []*BaseFromMysteelChemicalClassifyItems, err error) {
  130. //o := orm.NewOrmUsingDB("data")
  131. //sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id > 0 and base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by sort asc,base_from_mysteel_chemical_classify_id asc`
  132. //_, err = o.Raw(sql, classifyIds).QueryRows(&items)
  133. sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id > 0 and base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by sort asc,base_from_mysteel_chemical_classify_id asc`
  134. err = global.DmSQL["data"].Raw(sql, classifyIds).Find(&items).Error
  135. return
  136. }
  137. // GetAllBaseFromMysteelChemicalClassify 获取所有的分类列表数据
  138. func GetAllBaseFromMysteelChemicalClassify() (items []*BaseFromMysteelChemicalClassifyItems, err error) {
  139. //o := orm.NewOrmUsingDB("data")
  140. //sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id <> 0 order by sort asc,base_from_mysteel_chemical_classify_id asc`
  141. //_, err = o.Raw(sql).QueryRows(&items)
  142. sql := ` SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id <> 0 order by sort asc,base_from_mysteel_chemical_classify_id asc`
  143. err = global.DmSQL["data"].Raw(sql).Find(&items).Error
  144. return
  145. }
  146. type DeleteBaseFromMysteelChemicalClassifyReq struct {
  147. ClassifyId int `description:"分类id"`
  148. EdbInfoId int `description:"指标id"`
  149. }
  150. type BaseFromMysteelChemicalClassifyListResp struct {
  151. AllNodes []*BaseFromMysteelChemicalClassifyItems
  152. CanOpClassify bool `description:"是否允许操作分类"`
  153. }
  154. type BaseFromMysteelChemicalClassifySimplify struct {
  155. ClassifyId int `description:"分类id"`
  156. ClassifyName string `description:"分类名称"`
  157. ParentId int
  158. }
  159. // GetFirstBaseFromMysteelChemicalClassify 获取当前分类下,且排序数相同 的排序第一条的数据
  160. func GetFirstBaseFromMysteelChemicalClassify() (item *BaseFromMysteelChemicalClassify, err error) {
  161. //o := orm.NewOrmUsingDB("data")
  162. //sql := ` SELECT * FROM base_from_mysteel_chemical_classify order by sort asc,base_from_mysteel_chemical_classify_id asc limit 1`
  163. //err = o.Raw(sql).QueryRow(&item)
  164. sql := ` SELECT * FROM base_from_mysteel_chemical_classify order by sort asc,base_from_mysteel_chemical_classify_id asc limit 1`
  165. err = global.DmSQL["data"].Raw(sql).First(&item).Error
  166. return
  167. }
  168. // UpdateBaseFromMysteelChemicalClassifySortByClassifyId 根据分类id更新排序
  169. func UpdateBaseFromMysteelChemicalClassifySortByClassifyId(parentId, classifyId, nowSort int, updateSort string) (err error) {
  170. //o := orm.NewOrmUsingDB("data")
  171. //sql := ` update base_from_mysteel_chemical_classify set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
  172. //if classifyId > 0 {
  173. // sql += ` or ( base_from_mysteel_chemical_classify_id > ` + fmt.Sprint(classifyId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
  174. //}
  175. //_, err = o.Raw(sql, parentId, nowSort).Exec()
  176. sql := ` update base_from_mysteel_chemical_classify set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
  177. if classifyId > 0 {
  178. sql += ` or ( base_from_mysteel_chemical_classify_id > ` + fmt.Sprint(classifyId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
  179. }
  180. err = global.DmSQL["data"].Exec(sql, parentId, nowSort).Error
  181. return
  182. }
  183. // Update 更新分类基础信息
  184. func (BaseFromMysteelChemicalClassify *BaseFromMysteelChemicalClassify) Update(cols []string) (err error) {
  185. //o := orm.NewOrmUsingDB("data")
  186. //_, err = o.Update(BaseFromMysteelChemicalClassify, cols...)
  187. err = global.DmSQL["data"].Select(cols).Updates(BaseFromMysteelChemicalClassify).Error
  188. return
  189. }
  190. // GetBaseFromMysteelChemicalClassifyMaxSort 获取分类下最大的排序数
  191. func GetBaseFromMysteelChemicalClassifyMaxSort(parentId int) (sort int, err error) {
  192. //o := orm.NewOrmUsingDB("data")
  193. //sql := `SELECT Max(sort) AS sort FROM base_from_mysteel_chemical_classify WHERE parent_id=? `
  194. //err = o.Raw(sql, parentId).QueryRow(&sort)
  195. sql := `SELECT Max(sort) AS sort FROM base_from_mysteel_chemical_classify WHERE parent_id=? `
  196. err = global.DmSQL["data"].Raw(sql, parentId).Scan(&sort).Error
  197. return
  198. }
  199. // DeleteMysteelChemicalByClassifyId 根据分类id删除对应的指标分类、指标、指标数据
  200. func DeleteMysteelChemicalByClassifyId(classifyIdList []int, mysteelChemicalIndexIdList []int) (err error) {
  201. //o := orm.NewOrmUsingDB("data")
  202. //to, err := o.Begin()
  203. //if err != nil {
  204. // return
  205. //}
  206. //defer func() {
  207. // if err != nil {
  208. // _ = to.Rollback()
  209. // } else {
  210. // _ = to.Commit()
  211. // }
  212. //}()
  213. to := global.DmSQL["data"].Begin()
  214. defer func() {
  215. if err != nil {
  216. _ = to.Rollback()
  217. } else {
  218. _ = to.Commit()
  219. }
  220. }()
  221. num := len(classifyIdList)
  222. if num <= 0 {
  223. return
  224. }
  225. //删除分类
  226. //sql := `DELETE FROM base_from_mysteel_chemical_classify WHERE base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  227. //_, err = to.Raw(sql, classifyIdList).Exec()
  228. //if err != nil {
  229. // return
  230. //}
  231. sql := `DELETE FROM base_from_mysteel_chemical_classify WHERE base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  232. err = to.Exec(sql, classifyIdList).Error
  233. if err != nil {
  234. return
  235. }
  236. //删除指标
  237. //sql = `DELETE FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  238. //_, err = to.Raw(sql, classifyIdList).Exec()
  239. //if err != nil {
  240. // return
  241. //}
  242. sql = `DELETE FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  243. err = to.Exec(sql, classifyIdList).Error
  244. if err != nil {
  245. return
  246. }
  247. //删除指标数据
  248. indexNum := len(mysteelChemicalIndexIdList)
  249. if indexNum > 0 {
  250. //sql = `DELETE FROM base_from_mysteel_chemical_data WHERE base_from_mysteel_chemical_index_id in (` + utils.GetOrmInReplace(indexNum) + `) `
  251. //_, err = to.Raw(sql, mysteelChemicalIndexIdList).Exec()
  252. //if err != nil {
  253. // return
  254. //}
  255. sql = `DELETE FROM base_from_mysteel_chemical_data WHERE base_from_mysteel_chemical_index_id in (` + utils.GetOrmInReplace(indexNum) + `) `
  256. err = to.Exec(sql, mysteelChemicalIndexIdList).Error
  257. if err != nil {
  258. return
  259. }
  260. }
  261. return
  262. }
  263. // DeleteMysteelChemical 根据指标id删除对应的指标指标、指标数据
  264. func DeleteMysteelChemical(mysteelChemicalIndexId int) (err error) {
  265. //o := orm.NewOrmUsingDB("data")
  266. //to, err := o.Begin()
  267. //if err != nil {
  268. // return
  269. //}
  270. //defer func() {
  271. // if err != nil {
  272. // _ = to.Rollback()
  273. // } else {
  274. // _ = to.Commit()
  275. // }
  276. //}()
  277. to := global.DmSQL["data"].Begin()
  278. defer func() {
  279. if err != nil {
  280. _ = to.Rollback()
  281. } else {
  282. _ = to.Commit()
  283. }
  284. }()
  285. //删除指标
  286. sql := `DELETE FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_index_id = ? `
  287. err = to.Exec(sql, mysteelChemicalIndexId).Error
  288. if err != nil {
  289. return
  290. }
  291. ////删除指标数据
  292. //sql = `DELETE FROM base_from_mysteel_chemical_data WHERE base_from_mysteel_chemical_index_id = ? `
  293. //_, err = to.Raw(sql, mysteelChemicalIndexId).Exec()
  294. //if err != nil {
  295. // return
  296. //}
  297. sql = `DELETE FROM base_from_mysteel_chemical_data WHERE base_from_mysteel_chemical_index_id = ? `
  298. err = to.Exec(sql, mysteelChemicalIndexId).Error
  299. if err != nil {
  300. return
  301. }
  302. return
  303. }