mysteel_chemical_index.go 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. package data_manage
  2. import (
  3. "eta/eta_api/utils"
  4. "fmt"
  5. "strings"
  6. "time"
  7. "github.com/beego/beego/v2/client/orm"
  8. "github.com/rdlucklib/rdluck_tools/paging"
  9. )
  10. // BaseFromMysteelChemicalIndex 钢联化工指标表
  11. type BaseFromMysteelChemicalIndex struct {
  12. BaseFromMysteelChemicalIndexId int `orm:"column(base_from_mysteel_chemical_index_id);pk"`
  13. BaseFromMysteelChemicalClassifyId int `orm:"column(base_from_mysteel_chemical_classify_id)" description:"钢联化工指标分类id"`
  14. IndexCode string `description:"指标编码"`
  15. IndexName string `description:"指标名称"`
  16. Unit string `description:"单位"`
  17. Source string `description:"数据来源"`
  18. Frequency string `description:"频度"`
  19. StartDate string `description:"开始日期"`
  20. EndDate string `description:"结束日期"`
  21. Describe string `description:"指标描述"`
  22. UpdateWeek string `description:"更新周期"`
  23. UpdateTime string `description:"更新时间1"`
  24. UpdateTime2 string `description:"更新时间2"`
  25. SysUserId int `description:"创建人id"`
  26. SysUserRealName string `description:"创建人姓名"`
  27. ModifyTime time.Time `description:"修改时间"`
  28. CreateTime time.Time `description:"创建时间"`
  29. Sort int `description:"排序字段"`
  30. MergeFilePath string `description:"合并文件"`
  31. TerminalCode string `description:"终端编码"`
  32. IsStop int `description:"是否停更:1:停更,0:未停更"`
  33. EndValue float64 `description:"指标的最新值"`
  34. }
  35. // Update 更新钢联化工指标基础信息
  36. func (item *BaseFromMysteelChemicalIndex) Update(cols []string) (err error) {
  37. o := orm.NewOrmUsingDB("data")
  38. _, err = o.Update(item, cols...)
  39. return
  40. }
  41. // AddBaseFromMysteelChemicalIndex 添加钢联化工指标
  42. func AddBaseFromMysteelChemicalIndex(item *BaseFromMysteelChemicalIndex) (lastId int64, err error) {
  43. o := orm.NewOrmUsingDB("data")
  44. lastId, err = o.Insert(item)
  45. if err != nil {
  46. return
  47. }
  48. item.BaseFromMysteelChemicalIndexId = int(lastId)
  49. return
  50. }
  51. // AddBaseFromMysteelChemicalIndex 添加钢联化工指标
  52. func BatchAddBaseFromMysteelChemicalIndex(items []*BaseFromMysteelChemicalIndex) (lastId int64, err error) {
  53. o := orm.NewOrmUsingDB("data")
  54. _, err = o.InsertMulti(len(items), items)
  55. return
  56. }
  57. // BaseFromMysteelChemicalData 钢联化工指标数据表
  58. type BaseFromMysteelChemicalData struct {
  59. BaseFromMysteelChemicalDataId int `orm:"column(base_from_mysteel_chemical_data_id);pk"`
  60. BaseFromMysteelChemicalIndexId int `orm:"column(base_from_mysteel_chemical_index_id)" description:"钢联化工指标id"`
  61. IndexCode string `description:"指标编码"`
  62. DataTime time.Time `description:"数据日期"`
  63. Value float64 `description:"数据值"`
  64. ModifyTime time.Time `description:"修改时间"`
  65. CreateTime time.Time `description:"创建时间"`
  66. }
  67. // MysteelChemicalFrequency 钢联化工频度
  68. type MysteelChemicalFrequency struct {
  69. Frequency string `description:"频度:1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率"`
  70. }
  71. // GetMysteelChemicalIndexByClassifyId 用于分类展示
  72. func GetMysteelChemicalIndexByClassifyId(classifyId int) (items []*BaseFromMysteelChemicalClassifyItems, err error) {
  73. o := orm.NewOrmUsingDB("data")
  74. sql := ` SELECT base_from_mysteel_chemical_index_id,base_from_mysteel_chemical_classify_id,index_name AS classify_name,
  75. sys_user_id,sys_user_real_name,sort,index_code
  76. FROM base_from_mysteel_chemical_index where base_from_mysteel_chemical_classify_id=? ORDER BY sort asc, create_time ASC `
  77. _, err = o.Raw(sql, classifyId).QueryRows(&items)
  78. return
  79. }
  80. // MysteelChemicalFrequencyByClassifyId 根据分类id获取钢联化工频度数据列表
  81. func MysteelChemicalFrequencyByClassifyId(classifyId int) (items []*MysteelChemicalFrequency, err error) {
  82. o := orm.NewOrmUsingDB("data")
  83. if classifyId == 0 {
  84. sql := ` SELECT frequency FROM base_from_mysteel_chemical_index WHERE frequency != "" GROUP BY frequency ORDER BY frequency ASC `
  85. _, err = o.Raw(sql).QueryRows(&items)
  86. return
  87. } else {
  88. sql := ` SELECT frequency FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id = ? AND frequency != "" GROUP BY frequency ORDER BY frequency ASC `
  89. _, err = o.Raw(sql, classifyId).QueryRows(&items)
  90. return
  91. }
  92. }
  93. // GetMysteelChemicalFrequency 获取钢联化工频度数据列表
  94. func GetMysteelChemicalFrequency(condition string, pars []interface{}) (items []*MysteelChemicalFrequency, err error) {
  95. o := orm.NewOrmUsingDB("data")
  96. sql := ` SELECT frequency FROM base_from_mysteel_chemical_index WHERE 1=1 AND frequency != "" `
  97. if condition != "" {
  98. sql += condition
  99. }
  100. sql += ` GROUP BY frequency ORDER BY frequency ASC `
  101. _, err = o.Raw(sql, pars).QueryRows(&items)
  102. return
  103. }
  104. // MysteelChemicalList 钢联化工指标列表
  105. type MysteelChemicalList struct {
  106. Id int `orm:"column(base_from_mysteel_chemical_index_id)"`
  107. BaseFromMysteelChemicalClassifyId int `orm:"column(base_from_mysteel_chemical_classify_id)" description:"钢联化工指标分类id"`
  108. ParentClassifyId int `description:"钢联化工指标父级分类id"`
  109. IndexCode string `description:"指标编码"`
  110. IndexName string `description:"指标名称"`
  111. UnitName string `orm:"column(unit)"`
  112. UniqueCode string `description:"唯一编码"`
  113. FrequencyName string `orm:"column(frequency)"`
  114. UpdateTime string `orm:"column(modify_time)"`
  115. Paging *paging.PagingItem `description:"分页数据"`
  116. DataList []*MysteelChemicalData
  117. }
  118. // MysteelChemicalData 钢联化工数据列表
  119. type MysteelChemicalData struct {
  120. InputValue string `orm:"column(value)" description:"值"`
  121. DataTime string `orm:"column(data_time)" description:"日期"`
  122. }
  123. // GetMysteelChemicalIndex 根据分类id获取钢联化工频度数据列表
  124. func GetMysteelChemicalIndex(condition string, pars []interface{}) (items []*MysteelChemicalList, err error) {
  125. o := orm.NewOrmUsingDB("data")
  126. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE 1=1 `
  127. if condition != "" {
  128. sql += condition
  129. }
  130. sql += ` ORDER BY base_from_mysteel_chemical_index_id ASC `
  131. _, err = o.Raw(sql, pars).QueryRows(&items)
  132. return
  133. }
  134. // GetMysteelChemicalIndexData 根据指标code获取钢联化工数据列表
  135. func GetMysteelChemicalIndexData(indexCode string, startSize, pageSize int) (items []*MysteelChemicalData, err error) {
  136. sql := ` SELECT * FROM (
  137. SELECT DISTINCT a.index_code,a.value,a.data_time FROM base_from_mysteel_chemical_data AS a WHERE index_code=?
  138. ORDER BY data_time DESC
  139. )AS t
  140. GROUP BY t.data_time
  141. ORDER BY t.data_time DESC LIMIT ?,? `
  142. o := orm.NewOrmUsingDB("data")
  143. _, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
  144. return
  145. }
  146. // GetMysteelChemicalIndexDataCount 根据指标code获取钢联化工数据列表 获取钢联数据总数
  147. func GetMysteelChemicalIndexDataCount(indexCode string) (count int, err error) {
  148. sql := `SELECT COUNT(1) AS count FROM (
  149. SELECT * FROM (
  150. SELECT DISTINCT a.index_code,a.value,a.data_time FROM base_from_mysteel_chemical_data AS a WHERE index_code=?
  151. ORDER BY data_time DESC
  152. )AS t
  153. GROUP BY t.data_time
  154. ORDER BY t.data_time DESC
  155. )AS n `
  156. o := orm.NewOrmUsingDB("data")
  157. err = o.Raw(sql, indexCode).QueryRow(&count)
  158. return
  159. }
  160. // GetBaseFromMysteelChemicalIndexByIndexId 根据指标id获取指标信息
  161. func GetBaseFromMysteelChemicalIndexByIndexId(indexId int) (item *BaseFromMysteelChemicalIndex, err error) {
  162. o := orm.NewOrmUsingDB("data")
  163. sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_index_id=? `
  164. err = o.Raw(sql, indexId).QueryRow(&item)
  165. return
  166. }
  167. // GetBaseFromMysteelChemicalIndexByCode 根据指标code获取指标信息
  168. func GetBaseFromMysteelChemicalIndexByCode(indexCode string) (item *BaseFromMysteelChemicalIndex, err error) {
  169. o := orm.NewOrmUsingDB("data")
  170. sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE index_code=? `
  171. err = o.Raw(sql, indexCode).QueryRow(&item)
  172. return
  173. }
  174. // GetBaseFromMysteelChemicalIndexByCodeList 根据指标code获取指标信息
  175. func GetBaseFromMysteelChemicalIndexByCodeList(indexCodeList []string) (items []*BaseFromMysteelChemicalIndex, err error) {
  176. if len(indexCodeList) <= 0 {
  177. return
  178. }
  179. o := orm.NewOrmUsingDB("data")
  180. sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE index_code IN (%s) `
  181. holder := make([]string, 0)
  182. for range indexCodeList {
  183. holder = append(holder, "?")
  184. }
  185. sql = fmt.Sprintf(sql, strings.Join(holder, ","))
  186. _, err = o.Raw(sql, indexCodeList).QueryRows(&items)
  187. return
  188. }
  189. // GetBaseFromMysteelChemicalIndexByClassifyIdAndName 根据分类id和指标名名获取指标信息
  190. func GetBaseFromMysteelChemicalIndexByClassifyIdAndName(classifyId int, chartName string) (item *BaseFromMysteelChemicalIndex, err error) {
  191. o := orm.NewOrmUsingDB("data")
  192. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id = ? and index_name = ? `
  193. err = o.Raw(sql, classifyId, chartName).QueryRow(&item)
  194. return
  195. }
  196. // GetBaseFromMysteelChemicalIndexListByClassifyId 根据指标分类id获取指标列表信息
  197. func GetBaseFromMysteelChemicalIndexListByClassifyId(classifyId int) (items []*BaseFromMysteelChemicalIndex, err error) {
  198. o := orm.NewOrmUsingDB("data")
  199. sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id=? `
  200. _, err = o.Raw(sql, classifyId).QueryRows(&items)
  201. return
  202. }
  203. // GetBaseFromMysteelChemicalIndexListByClassifyIdList 根据指标分类id集合获取指标列表信息
  204. func GetBaseFromMysteelChemicalIndexListByClassifyIdList(classifyIdList []int) (items []*BaseFromMysteelChemicalIndex, err error) {
  205. num := len(classifyIdList)
  206. if num <= 0 {
  207. return
  208. }
  209. o := orm.NewOrmUsingDB("data")
  210. sql := `SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(num) + `) `
  211. _, err = o.Raw(sql, classifyIdList).QueryRows(&items)
  212. return
  213. }
  214. // GetBaseFromMysteelChemicalDataMaxCount 获取分类下指标的最大数量
  215. func GetBaseFromMysteelChemicalDataMaxCount(classifyId int) (count int, err error) {
  216. o := orm.NewOrmUsingDB("data")
  217. sql := `SELECT MAX(t.num) AS count FROM (
  218. SELECT COUNT(1) AS num FROM base_from_mysteel_chemical_index AS a
  219. INNER JOIN base_from_mysteel_chemical_data AS b ON a.base_from_mysteel_chemical_index_id=b.base_from_mysteel_chemical_index_id
  220. WHERE a.base_from_mysteel_chemical_classify_id=?
  221. GROUP BY a.base_from_mysteel_chemical_index_id
  222. )AS t `
  223. err = o.Raw(sql, classifyId).QueryRow(&count)
  224. return
  225. }
  226. // GetMysteelChemicalIndexDataByCode 通过钢联化工指标code获取所有数据列表
  227. func GetMysteelChemicalIndexDataByCode(indexCode string) (items []*MysteelChemicalData, err error) {
  228. sql := ` SELECT * FROM (
  229. SELECT DISTINCT a.index_code,a.value,a.data_time FROM base_from_mysteel_chemical_data AS a WHERE index_code=?
  230. ORDER BY data_time DESC
  231. )AS t
  232. GROUP BY t.data_time
  233. ORDER BY t.data_time DESC `
  234. o := orm.NewOrmUsingDB("data")
  235. _, err = o.Raw(sql, indexCode).QueryRows(&items)
  236. return
  237. }
  238. // MoveBaseFromMysteelChemicalIndex 移动钢联化工指标分类
  239. func MoveBaseFromMysteelChemicalIndex(chartInfoId, classifyId int) (err error) {
  240. o := orm.NewOrmUsingDB("data")
  241. sql := ` UPDATE base_from_mysteel_chemical_index
  242. SET
  243. base_from_mysteel_chemical_classify_id = ?
  244. WHERE base_from_mysteel_chemical_index_id = ?`
  245. _, err = o.Raw(sql, classifyId, chartInfoId).Exec()
  246. return
  247. }
  248. // UpdateBaseFromMysteelChemicalIndexByClassifyId 根据指标id更新排序
  249. func UpdateBaseFromMysteelChemicalIndexByClassifyId(classifyId, nowSort, prevIndexInfoId int, updateSort string) (err error) {
  250. o := orm.NewOrmUsingDB("data")
  251. sql := ` update base_from_mysteel_chemical_index set sort = ` + updateSort + ` WHERE base_from_mysteel_chemical_classify_id=? AND `
  252. if prevIndexInfoId > 0 {
  253. sql += ` ( sort > ? or (base_from_mysteel_chemical_index_id > ` + fmt.Sprint(prevIndexInfoId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
  254. }
  255. _, err = o.Raw(sql, classifyId, nowSort).Exec()
  256. return
  257. }
  258. // GetFirstBaseFromMysteelChemicalIndexByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
  259. func GetFirstBaseFromMysteelChemicalIndexByClassifyId(classifyId int) (item *BaseFromMysteelChemicalIndex, err error) {
  260. o := orm.NewOrmUsingDB("data")
  261. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_classify_id=? order by sort asc,base_from_mysteel_chemical_index_id asc limit 1`
  262. err = o.Raw(sql, classifyId).QueryRow(&item)
  263. return
  264. }
  265. // GetMysteelChemicalIndexCount 根据条件获取钢联化工数据
  266. func GetMysteelChemicalIndexCount(condition string, pars []interface{}) (count int, err error) {
  267. o := orm.NewOrmUsingDB("data")
  268. sql := ` SELECT COUNT(1) AS count FROM base_from_mysteel_chemical_index WHERE 1=1 `
  269. if condition != "" {
  270. sql += condition
  271. }
  272. sql += ` ORDER BY base_from_mysteel_chemical_index_id ASC `
  273. err = o.Raw(sql, pars).QueryRow(&count)
  274. return
  275. }
  276. // GetMysteelChemicalIndexList 根据分类id获取钢联化工频度数据列表
  277. func GetMysteelChemicalIndexList(condition string, pars []interface{}, startSize, pageSize int, orderDesc string) (items []*BaseFromMysteelChemicalIndex, err error) {
  278. o := orm.NewOrmUsingDB("data")
  279. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE 1=1 `
  280. if condition != "" {
  281. sql += condition
  282. }
  283. if orderDesc == `` {
  284. orderDesc = ` ASC `
  285. }
  286. sql += ` ORDER BY base_from_mysteel_chemical_index_id `
  287. sql += orderDesc
  288. sql += ` LIMIT ?,? `
  289. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  290. return
  291. }
  292. // GetMysteelChemicalIndexListGroupByUserId 根据指标id列表、用户分组获取指标信息
  293. func GetMysteelChemicalIndexListGroupByUserId(edbIdList []string) (items []*BaseFromMysteelChemicalIndex, err error) {
  294. num := len(edbIdList)
  295. if num <= 0 {
  296. return
  297. }
  298. o := orm.NewOrmUsingDB("data")
  299. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_index_id in (` + utils.GetOrmInReplace(num) + `) GROUP BY sys_user_id `
  300. _, err = o.Raw(sql, edbIdList).QueryRows(&items)
  301. return
  302. }
  303. // GetMysteelChemicalIndexListByIndexId
  304. // @Description: 根据指标id列表获取列表信息
  305. // @param edbIdList
  306. // @return items
  307. // @return err
  308. func GetMysteelChemicalIndexListByIndexId(edbIdList []string) (items []*BaseFromMysteelChemicalIndex, err error) {
  309. num := len(edbIdList)
  310. if num <= 0 {
  311. return
  312. }
  313. o := orm.NewOrmUsingDB("data")
  314. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_index_id in (` + utils.GetOrmInReplace(num) + `) `
  315. _, err = o.Raw(sql, edbIdList).QueryRows(&items)
  316. return
  317. }
  318. // GetMysteelChemicalIndexListByUserId
  319. // @Description: 根据用户id列表获取列表信息
  320. // @param userIdList
  321. // @return items
  322. // @return err
  323. func GetMysteelChemicalIndexListByUserId(userIdList []int) (items []*BaseFromMysteelChemicalIndex, err error) {
  324. num := len(userIdList)
  325. if num <= 0 {
  326. return
  327. }
  328. o := orm.NewOrmUsingDB("data")
  329. sql := ` SELECT * FROM base_from_mysteel_chemical_index WHERE sys_user_id in (` + utils.GetOrmInReplace(num) + `) `
  330. _, err = o.Raw(sql, userIdList).QueryRows(&items)
  331. return
  332. }
  333. // ModifyMysteelChemicalIndexUserIdByCodeList 根据指标code列表修改创建人
  334. func ModifyMysteelChemicalIndexUserIdByCodeList(edbIdList []string, userId int, userName string) (err error) {
  335. num := len(edbIdList)
  336. if num <= 0 {
  337. return
  338. }
  339. o := orm.NewOrmUsingDB("data")
  340. sql := `UPDATE base_from_mysteel_chemical_index SET sys_user_id=?,sys_user_real_name=? WHERE base_from_mysteel_chemical_index_id in (` + utils.GetOrmInReplace(num) + `) `
  341. _, err = o.Raw(sql, userId, userName, edbIdList).Exec()
  342. return
  343. }
  344. // ModifyMysteelChemicalIndexUserIdByOldUserId
  345. // @Description: 根据旧用户id修改新用户id
  346. // @author: Roc
  347. // @datetime 2024-03-25 17:59:08
  348. // @param oldUserId int
  349. // @param userId int
  350. // @param userName string
  351. // @return err error
  352. func ModifyMysteelChemicalIndexUserIdByOldUserId(oldUserIdList []int, userId int, userName string) (err error) {
  353. num := len(oldUserIdList)
  354. if num <= 0 {
  355. return
  356. }
  357. o := orm.NewOrmUsingDB("data")
  358. sql := `UPDATE base_from_mysteel_chemical_index SET sys_user_id=?,sys_user_real_name=? WHERE sys_user_id in (` + utils.GetOrmInReplace(num) + `) `
  359. _, err = o.Raw(sql, userId, userName, oldUserIdList).Exec()
  360. return
  361. }
  362. // GetMysteelChemicalIndexAdminList 获取所有指标创建人
  363. func GetMysteelChemicalIndexAdminList() (list []int, err error) {
  364. o := orm.NewOrmUsingDB("data")
  365. sql := ` SELECT sys_user_id FROM base_from_mysteel_chemical_index GROUP BY sys_user_id `
  366. _, err = o.Raw(sql).QueryRows(&list)
  367. return
  368. }
  369. type TerminalNum struct {
  370. TerminalCode string `description:"terminal_code"`
  371. Num int `description:"num"`
  372. }
  373. // GetMysteelChemicalGroupTerminalNum 获取钢联化工指标的终端分布
  374. func GetMysteelChemicalGroupTerminalNum() (items []*TerminalNum, err error) {
  375. o := orm.NewOrmUsingDB("data")
  376. sql := ` SELECT terminal_code,count(1) num FROM base_from_mysteel_chemical_index GROUP BY terminal_code ORDER BY num ASC `
  377. _, err = o.Raw(sql).QueryRows(&items)
  378. return
  379. }
  380. // BaseRefreshEdbInfo
  381. // @Description: 刷新配置的基础指标信息结构体
  382. type BaseRefreshEdbInfo struct {
  383. EdbInfoId int
  384. ClassifyId int `description:"钢联化工指标分类id"`
  385. IndexCode string `description:"指标编码"`
  386. IndexName string `description:"指标名称"`
  387. EndDate string `description:"最新日期"`
  388. EndValue string `description:"最新值"`
  389. SysUserId int `description:"创建人id"`
  390. SysUserRealName string `description:"创建人姓名"`
  391. Frequency string `description:"频度"`
  392. IsStop int `description:"是否停更:1:停更,0:未停更"`
  393. TerminalCode string `description:"终端编码"`
  394. RefreshTime string `description:"刷新时间"`
  395. }
  396. // RefreshBaseEdbInfoResp
  397. // @Description: 刷新数据源的数据返回
  398. type RefreshBaseEdbInfoResp struct {
  399. Paging *paging.PagingItem
  400. List []*BaseRefreshEdbInfo
  401. }
  402. // GetMysteelChemicalBaseInfoList
  403. // @Description: 获取钢联化工数据列表
  404. // @author: Roc
  405. // @datetime 2024-01-10 14:28:35
  406. // @param condition string
  407. // @param pars []interface{}
  408. // @param orderBy string
  409. // @param startSize int
  410. // @param pageSize int
  411. // @return total int
  412. // @return items []*BaseRefreshEdbInfo
  413. // @return err error
  414. func GetMysteelChemicalBaseInfoList(condition string, pars []interface{}, orderBy string, startSize, pageSize int) (total int, items []*BaseRefreshEdbInfo, err error) {
  415. o := orm.NewOrmUsingDB("data")
  416. // 数量汇总
  417. totalSql := ` SELECT count(1) FROM base_from_mysteel_chemical_index WHERE 1=1 `
  418. if condition != "" {
  419. totalSql += condition
  420. }
  421. err = o.Raw(totalSql, pars).QueryRow(&total)
  422. if err != nil {
  423. return
  424. }
  425. // 列表数据
  426. sql := ` SELECT base_from_mysteel_chemical_index_id as edb_info_id, base_from_mysteel_chemical_classify_id as classify_id,index_code,index_name,end_date,end_value,sys_user_id,sys_user_real_name,frequency,is_stop,terminal_code FROM base_from_mysteel_chemical_index WHERE 1=1 `
  427. if condition != "" {
  428. sql += condition
  429. }
  430. if orderBy != "" {
  431. sql += ` ORDER BY ` + orderBy
  432. } else {
  433. sql += ` ORDER BY base_from_mysteel_chemical_index_id ASC `
  434. }
  435. sql += ` LIMIT ?,? `
  436. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  437. return
  438. }
  439. // ModifyMysteelChemicalUpdateStatus
  440. // @Description: 修改钢联化工数据停更状态
  441. // @author: Roc
  442. // @datetime 2024-01-08 16:23:31
  443. // @param edbIdList []int
  444. // @param indexCodeList []string
  445. // @param isStop int
  446. // @return err error
  447. func ModifyMysteelChemicalUpdateStatus(edbIdList []int, indexCodeList []string, isStop int) (err error) {
  448. idNum := len(edbIdList)
  449. if idNum <= 0 {
  450. return
  451. }
  452. o, err := orm.NewOrmUsingDB("data").Begin()
  453. if err != nil {
  454. return
  455. }
  456. defer func() {
  457. if err != nil {
  458. _ = o.Rollback()
  459. return
  460. }
  461. _ = o.Commit()
  462. }()
  463. // 更改数据源的更新状态
  464. sql := ` UPDATE base_from_mysteel_chemical_index SET is_stop = ? WHERE base_from_mysteel_chemical_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
  465. _, err = o.Raw(sql, isStop, edbIdList).Exec()
  466. if err != nil {
  467. return
  468. }
  469. codeNum := len(indexCodeList)
  470. if codeNum <= 0 {
  471. // 需要通过指标id列表查找code列表
  472. sql := ` SELECT index_code FROM base_from_mysteel_chemical_index WHERE base_from_mysteel_chemical_index_id IN (` + utils.GetOrmInReplace(idNum) + `) `
  473. _, err = o.Raw(sql, edbIdList).QueryRows(&indexCodeList)
  474. if err != nil {
  475. return
  476. }
  477. }
  478. codeNum = len(indexCodeList)
  479. // 查出来的编码是空的话,那么就直接返回了
  480. if codeNum <= 0 {
  481. return
  482. }
  483. // 更改指标的更新状态
  484. sql = ` UPDATE edb_info SET no_update = ? WHERE source = ? AND sub_source= ? AND edb_code IN (` + utils.GetOrmInReplace(codeNum) + `) `
  485. _, err = o.Raw(sql, isStop, utils.DATA_SOURCE_MYSTEEL_CHEMICAL, 0, indexCodeList).Exec()
  486. if err != nil {
  487. return
  488. }
  489. return
  490. }