base_from_mysteel_chemical.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_index_lib/logic"
  5. "eta/eta_index_lib/models"
  6. "eta/eta_index_lib/services"
  7. "eta/eta_index_lib/utils"
  8. "fmt"
  9. "strconv"
  10. "time"
  11. )
  12. // MySteelChemicalController 钢联化工
  13. type MySteelChemicalController struct {
  14. BaseAuthController
  15. }
  16. // Add
  17. // @Title 新增钢联化工指标接口
  18. // @Description 新增钢联化工指标接口
  19. // @Success 200 {object} models.AddEdbInfoReq
  20. // @router /add [post]
  21. func (this *MySteelChemicalController) Add() {
  22. br := new(models.BaseResponse).Init()
  23. var cacheKey string
  24. defer func() {
  25. utils.Rc.Delete(cacheKey)
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. source := utils.DATA_SOURCE_MYSTEEL_CHEMICAL
  30. var req models.AddEdbInfoReq
  31. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  32. if err != nil {
  33. br.Msg = "参数解析异常!"
  34. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  35. return
  36. }
  37. if req.EdbCode == "" {
  38. br.Msg = "请输入指标编码!"
  39. br.ErrMsg = "请输入指标编码,指标编码为空"
  40. return
  41. }
  42. cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
  43. if !utils.Rc.IsExist(cacheKey) {
  44. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  45. err = models.AddEdbDataFromMysteelChemical(req.EdbCode)
  46. if err != nil {
  47. br.Msg = "获取指标信息失败!"
  48. br.ErrMsg = "获取指标信息失败 AddEdbDataFromMysteelChemical,Err:" + err.Error()
  49. return
  50. }
  51. br.Ret = 200
  52. br.Success = true
  53. br.Msg = "获取成功"
  54. } else {
  55. br.Ret = 501
  56. br.Success = true
  57. br.Msg = "系统处理中,请稍后重试"
  58. }
  59. }
  60. // Refresh
  61. // @Title 刷新钢联化工指标接口
  62. // @Description 刷新钢联化工指标接口
  63. // @Success 200 {object} models.RefreshEdbInfoReq
  64. // @router /refresh [post]
  65. func (this *MySteelChemicalController) Refresh() {
  66. br := new(models.BaseResponse).Init()
  67. var cacheKey string
  68. defer func() {
  69. utils.Rc.Delete(cacheKey)
  70. this.Data["json"] = br
  71. this.ServeJSON()
  72. }()
  73. source := utils.DATA_SOURCE_MYSTEEL_CHEMICAL
  74. var req models.RefreshEdbInfoReq
  75. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  76. if err != nil {
  77. br.Msg = "参数解析异常!"
  78. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  79. return
  80. }
  81. if req.EdbCode == "" {
  82. br.Msg = "请输入指标编码!"
  83. br.ErrMsg = "请输入指标编码,指标编码为空"
  84. return
  85. }
  86. if req.EdbInfoId <= 0 {
  87. br.Msg = "请输入指标ID!"
  88. br.ErrMsg = "请输入指标ID"
  89. return
  90. }
  91. // 获取指标详情
  92. edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
  93. if err != nil {
  94. br.Msg = "指标不存在!"
  95. br.ErrMsg = "指标不存在"
  96. return
  97. }
  98. cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
  99. if utils.Rc.IsExist(cacheKey) {
  100. br.Ret = 501
  101. br.Success = true
  102. br.Msg = "系统处理中,请稍后重试"
  103. return
  104. }
  105. dataUpdateTime := time.Now().Format(utils.FormatDateTime)
  106. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  107. err = models.RefreshEdbDataFromMysteelChemical(req.EdbInfoId, req.EdbCode, req.StartDate)
  108. if err != nil && err.Error() != utils.ErrNoRow() {
  109. br.Msg = "刷新指标信息失败!"
  110. br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromMysteel,Err:" + err.Error()
  111. return
  112. }
  113. // 更新指标最大最小值
  114. err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate(edbInfo, dataUpdateTime)
  115. if err != nil {
  116. br.Msg = errMsg
  117. br.ErrMsg = err.Error()
  118. return
  119. }
  120. // 更新ES
  121. go logic.UpdateEs(edbInfo.EdbInfoId)
  122. // 添加指标刷新成功日志
  123. _ = services.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "", 0, "", "")
  124. br.Ret = 200
  125. br.Success = true
  126. br.Msg = "获取成功"
  127. }
  128. // @Title 查询刷新钢联指标的接口
  129. // @Description 查询刷新钢联指标的接口
  130. // @Success 200 {object} models.CheckDeleteClassifyResp
  131. // @router /query/refresh [post]
  132. func (this *MySteelChemicalController) QueryRefresh() {
  133. br := new(models.BaseResponse).Init()
  134. defer func() {
  135. this.Data["json"] = br
  136. this.ServeJSON()
  137. }()
  138. mysteelIndex := new(models.BaseFromMysteelChemicalIndex)
  139. list, err := mysteelIndex.GetIndexRefreshAllByMergeFile()
  140. if err != nil && err.Error() != utils.ErrNoRow() {
  141. br.Msg = "获取失败!"
  142. br.ErrMsg = "获取失败,Err:" + err.Error()
  143. return
  144. }
  145. if list == nil {
  146. list = make([]*models.BaseFromMysteelChemicalIndex, 0)
  147. }
  148. br.Ret = 200
  149. br.Data = list
  150. br.Success = true
  151. br.Msg = "获取成功"
  152. }
  153. // @Title 处理钢联指标的接口
  154. // @Description 处理钢联指标的接口
  155. // @Success 200 {object} models.HandleMysteelIndexResp
  156. // @router /handle/mysteel/index [post]
  157. func (this *MySteelChemicalController) HandleMysteelIndex() {
  158. br := new(models.BaseResponse).Init()
  159. defer func() {
  160. this.Data["json"] = br
  161. this.ServeJSON()
  162. }()
  163. body := this.Ctx.Input.RequestBody
  164. var req models.HandleMysteelIndexResp
  165. err := json.Unmarshal(body, &req)
  166. if err != nil {
  167. br.Msg = "参数解析异常!"
  168. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  169. return
  170. }
  171. err = services.HandleMysteelIndex(&req)
  172. if err != nil {
  173. fmt.Println("HandleMysteelIndex Err:" + err.Error())
  174. br.Msg = "处理失败"
  175. br.ErrMsg = "处理失败,Err:" + err.Error()
  176. return
  177. }
  178. br.Ret = 200
  179. br.Success = true
  180. br.Msg = "处理成功"
  181. }
  182. // GetMaxFileIndex
  183. // @Title 获取最大的文件编号下标
  184. // @Description 获取最大的文件编号下标
  185. // @Success 200 {object} models.HandleMysteelIndexResp
  186. // @router /getMaxFileIndex [post]
  187. func (this *MySteelChemicalController) GetMaxFileIndex() {
  188. br := new(models.BaseResponse).Init()
  189. defer func() {
  190. this.Data["json"] = br
  191. this.ServeJSON()
  192. }()
  193. var req models.GetMaxFileIndexReq
  194. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  195. if err != nil {
  196. br.Msg = "参数解析异常!"
  197. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  198. return
  199. }
  200. indexObj := new(models.BaseFromMysteelChemicalIndex)
  201. // 获取最大的文件编号下标
  202. item, err := indexObj.GetMaxFileIndex(req.Frequency)
  203. if err != nil {
  204. return
  205. }
  206. br.Data = item
  207. br.Ret = 200
  208. br.Success = true
  209. br.Msg = "处理成功"
  210. }
  211. // GetNoMergeIndexByFrequencyCount
  212. // @Title 获取未合并的指标总数量
  213. // @Description 获取未合并的指标总数量
  214. // @Success 200 {object} models.HandleMysteelIndexResp
  215. // @router /getNoMergeIndexByFrequencyCount [post]
  216. func (this *MySteelChemicalController) GetNoMergeIndexByFrequencyCount() {
  217. br := new(models.BaseResponse).Init()
  218. defer func() {
  219. this.Data["json"] = br
  220. this.ServeJSON()
  221. }()
  222. var req models.GetMaxFileIndexReq
  223. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  224. if err != nil {
  225. br.Msg = "参数解析异常!"
  226. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  227. return
  228. }
  229. indexObj := new(models.BaseFromMysteelChemicalIndex)
  230. // 获取未合并的指标总数量
  231. indexTotal, err := indexObj.GetNoMergeIndexByFrequencyCount(req.Frequency)
  232. if err != nil {
  233. return
  234. }
  235. br.Data = indexTotal
  236. br.Ret = 200
  237. br.Success = true
  238. br.Msg = "处理成功"
  239. }
  240. // GetNoMergeIndexByFrequencyPage
  241. // @Title 获取未合并的指标列表
  242. // @Description 获取未合并的指标列表
  243. // @Success 200 {object} models.HandleMysteelIndexResp
  244. // @router /getNoMergeIndexByFrequencyPage [post]
  245. func (this *MySteelChemicalController) GetNoMergeIndexByFrequencyPage() {
  246. br := new(models.BaseResponse).Init()
  247. defer func() {
  248. this.Data["json"] = br
  249. this.ServeJSON()
  250. }()
  251. var req models.GetNoMergeIndexByFrequencyPageReq
  252. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  253. if err != nil {
  254. br.Msg = "参数解析异常!"
  255. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  256. return
  257. }
  258. indexObj := new(models.BaseFromMysteelChemicalIndex)
  259. // 获取未合并的指标总数量
  260. indexTotal, err := indexObj.GetNoMergeIndexByFrequencyPage(req.Frequency, req.Limit)
  261. if err != nil {
  262. return
  263. }
  264. br.Data = indexTotal
  265. br.Ret = 200
  266. br.Success = true
  267. br.Msg = "处理成功"
  268. }
  269. // GetIndexCountByMergeFilePath
  270. // @Title 获取该文件下标已经存在多少的指标
  271. // @Description 获取该文件下标已经存在多少的指标
  272. // @Success 200 {object} models.HandleMysteelIndexResp
  273. // @router /getIndexCountByMergeFilePath [post]
  274. func (this *MySteelChemicalController) GetIndexCountByMergeFilePath() {
  275. br := new(models.BaseResponse).Init()
  276. defer func() {
  277. this.Data["json"] = br
  278. this.ServeJSON()
  279. }()
  280. var req models.GetIndexCountByMergeFilePathReq
  281. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  282. if err != nil {
  283. br.Msg = "参数解析异常!"
  284. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  285. return
  286. }
  287. if req.MergeFilePath == "" {
  288. br.Msg = "参数有误"
  289. br.ErrMsg = "参数有误, 文件路径有误"
  290. return
  291. }
  292. indexObj := new(models.BaseFromMysteelChemicalIndex)
  293. indexTotal, err := indexObj.GetIndexCountByMergeFilePath(req.MergeFilePath)
  294. if err != nil {
  295. return
  296. }
  297. br.Data = indexTotal
  298. br.Ret = 200
  299. br.Success = true
  300. br.Msg = "获取成功"
  301. }
  302. // GetIndexCreate
  303. // @Title 获取两分钟前新增的指标
  304. // @Description 获取两分钟前新增的指标
  305. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  306. // @router /getIndexCreate [post]
  307. func (this *MySteelChemicalController) GetIndexCreate() {
  308. br := new(models.BaseResponse).Init()
  309. defer func() {
  310. this.Data["json"] = br
  311. this.ServeJSON()
  312. }()
  313. // 终端编码
  314. terminalCode := this.GetString("TerminalCode")
  315. indexObj := new(models.BaseFromMysteelChemicalIndex)
  316. items, err := indexObj.GetIndexCreate(terminalCode)
  317. if err != nil {
  318. br.Msg = "获取失败"
  319. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  320. return
  321. }
  322. if items == nil {
  323. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  324. }
  325. br.Data = items
  326. br.Ret = 200
  327. br.Success = true
  328. br.Msg = "获取成功"
  329. }
  330. // GetIndexRefreshMethanolByMergeFile
  331. // @Title 获取需要刷新的甲醇文件
  332. // @Description 获取需要刷新的甲醇文件
  333. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  334. // @router /getIndexRefreshMethanolByMergeFile [post]
  335. func (this *MySteelChemicalController) GetIndexRefreshMethanolByMergeFile() {
  336. br := new(models.BaseResponse).Init()
  337. defer func() {
  338. this.Data["json"] = br
  339. this.ServeJSON()
  340. }()
  341. indexObj := new(models.BaseFromMysteelChemicalIndex)
  342. items, err := indexObj.GetIndexRefreshMethanolByMergeFile()
  343. if err != nil {
  344. br.Msg = "获取失败"
  345. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  346. return
  347. }
  348. if items == nil {
  349. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  350. }
  351. br.Data = items
  352. br.Ret = 200
  353. br.Success = true
  354. br.Msg = "获取成功"
  355. }
  356. // GetIndexRefreshMethanolByTimely
  357. // @Title 获取需要及时刷新的文件
  358. // @Description 获取需要及时刷新的文件
  359. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  360. // @router /getIndexRefreshMethanolByTimely [post]
  361. func (this *MySteelChemicalController) GetIndexRefreshMethanolByTimely() {
  362. br := new(models.BaseResponse).Init()
  363. defer func() {
  364. this.Data["json"] = br
  365. this.ServeJSON()
  366. }()
  367. indexObj := new(models.BaseFromMysteelChemicalIndex)
  368. items, err := indexObj.GetIndexRefreshMethanolByTimely()
  369. if err != nil {
  370. br.Msg = "获取失败"
  371. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  372. return
  373. }
  374. if items == nil {
  375. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  376. }
  377. br.Data = items
  378. br.Ret = 200
  379. br.Success = true
  380. br.Msg = "获取成功"
  381. }
  382. // GetIndexByFrequency
  383. // @Title 根据频率获取指标
  384. // @Description 根据频率获取指标
  385. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  386. // @router /getIndexByFrequency [post]
  387. func (this *MySteelChemicalController) GetIndexByFrequency() {
  388. br := new(models.BaseResponse).Init()
  389. defer func() {
  390. this.Data["json"] = br
  391. this.ServeJSON()
  392. }()
  393. var req models.GetIndexByFrequencyReq
  394. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  395. if err != nil {
  396. br.Msg = "参数解析异常!"
  397. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  398. return
  399. }
  400. if req.Frequency == "" {
  401. br.Msg = "参数有误"
  402. br.ErrMsg = "参数有误"
  403. return
  404. }
  405. indexObj := new(models.BaseFromMysteelChemicalIndex)
  406. items, err := indexObj.GetIndexByFrequency(req.Frequency)
  407. if err != nil {
  408. br.Msg = "获取失败"
  409. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  410. return
  411. }
  412. if items == nil {
  413. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  414. }
  415. br.Data = items
  416. br.Ret = 200
  417. br.Success = true
  418. br.Msg = "获取成功"
  419. }
  420. // GetIndexRefreshWeek
  421. // @Title 根据周获取指标
  422. // @Description 根据周获取指标
  423. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  424. // @router /getIndexRefreshWeek [post]
  425. func (this *MySteelChemicalController) GetIndexRefreshWeek() {
  426. br := new(models.BaseResponse).Init()
  427. defer func() {
  428. this.Data["json"] = br
  429. this.ServeJSON()
  430. }()
  431. var req models.GetIndexRefreshWeekReq
  432. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  433. if err != nil {
  434. br.Msg = "参数解析异常!"
  435. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  436. return
  437. }
  438. if req.NowWeekZn == "" || req.StartTime == "" || req.EndTime == "" {
  439. br.Msg = "参数有误"
  440. br.ErrMsg = "参数有误"
  441. return
  442. }
  443. indexObj := new(models.BaseFromMysteelChemicalIndex)
  444. items, err := indexObj.GetIndexRefreshWeek(req.NowWeekZn, req.StartTime, req.EndTime)
  445. if err != nil {
  446. br.Msg = "获取失败"
  447. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  448. return
  449. }
  450. if items == nil {
  451. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  452. }
  453. br.Data = items
  454. br.Ret = 200
  455. br.Success = true
  456. br.Msg = "获取成功"
  457. }
  458. // UpdateIndex
  459. // @Title 更新指标
  460. // @Description 更新指标
  461. // @Success 200 string "操作成功"
  462. // @router /updateIndex [post]
  463. //func (this *MySteelChemicalController) UpdateIndex() {
  464. // br := new(models.BaseResponse).Init()
  465. // defer func() {
  466. // this.Data["json"] = br
  467. // this.ServeJSON()
  468. // }()
  469. // var req models.UpdateIndexReq
  470. // err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  471. // if err != nil {
  472. // br.Msg = "参数解析异常!"
  473. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  474. // return
  475. // }
  476. // if req.Item == nil {
  477. // br.Msg = "参数有误"
  478. // br.ErrMsg = "参数有误, 指标信息有误"
  479. // return
  480. // }
  481. // if len(req.UpdateCols) == 0 {
  482. // br.Msg = "参数有误"
  483. // br.ErrMsg = "参数有误, 无更新字段"
  484. // return
  485. // }
  486. //
  487. // // 更新指标
  488. // indexObj := new(models.BaseFromMysteelChemicalIndex)
  489. // err = indexObj.UpdateIndex(req.Item, req.UpdateCols)
  490. // if err != nil {
  491. // br.Msg = "操作失败"
  492. // br.ErrMsg = "批量更新指标失败, MultiUpdateIndexByIndexCode err: " + err.Error()
  493. // return
  494. // }
  495. //
  496. // br.Ret = 200
  497. // br.Success = true
  498. // br.Msg = "操作成功"
  499. //}
  500. // MultiUpdateIndex
  501. // @Title 批量更新指标
  502. // @Description 批量更新指标
  503. // @Success 200 string "操作成功"
  504. // @router /multiUpdateIndex [post]
  505. func (this *MySteelChemicalController) MultiUpdateIndex() {
  506. br := new(models.BaseResponse).Init()
  507. defer func() {
  508. this.Data["json"] = br
  509. this.ServeJSON()
  510. }()
  511. var req []models.UpdateIndexReq
  512. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  513. if err != nil {
  514. br.Msg = "参数解析异常!"
  515. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  516. return
  517. }
  518. if len(req) == 0 {
  519. br.Msg = "参数有误"
  520. br.ErrMsg = "参数有误, 无指标需要更新"
  521. return
  522. }
  523. // 批量更新指标
  524. indexObj := new(models.BaseFromMysteelChemicalIndex)
  525. err = indexObj.MultiUpdateIndex(req)
  526. if err != nil {
  527. br.Msg = "操作失败"
  528. br.ErrMsg = "批量更新指标失败, MultiUpdateIndex err: " + err.Error()
  529. return
  530. }
  531. br.Ret = 200
  532. br.Success = true
  533. br.Msg = "操作成功"
  534. }
  535. // AddMysteelIndex
  536. // @Title 处理钢联指标的接口
  537. // @Description 处理钢联指标的接口
  538. // @Success 200 {object} models.AddMysteelIndexResp
  539. // @router /add/mysteel/index [post]
  540. func (this *MySteelChemicalController) AddMysteelIndex() {
  541. br := new(models.BaseResponse).Init()
  542. defer func() {
  543. this.Data["json"] = br
  544. this.ServeJSON()
  545. }()
  546. var req models.AddMysteelIndexResp
  547. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  548. if err != nil {
  549. br.Msg = "参数解析异常!"
  550. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  551. return
  552. }
  553. mysteelIndexObj := new(models.BaseFromMysteelChemicalIndex)
  554. indexItem, err := mysteelIndexObj.GetIndexItem(req.EdbCode)
  555. var isAdd bool
  556. if err != nil {
  557. if err.Error() == utils.ErrNoRow() {
  558. isAdd = true
  559. } else {
  560. br.Msg = "判断指标是否存在失败"
  561. br.ErrMsg = "判断指标是否存在失败,Err:" + err.Error()
  562. return
  563. }
  564. }
  565. if indexItem == nil {
  566. isAdd = true
  567. }
  568. if isAdd {
  569. mysteelIndexObj.IndexCode = req.EdbCode
  570. mysteelIndexObj.TerminalCode = req.TerminalCode
  571. mysteelIndexObj.BaseFromMysteelChemicalClassifyId = req.BaseFromMysteelChemicalClassifyId
  572. mysteelIndexObj.SysUserId = req.SysUserId
  573. mysteelIndexObj.SysUserRealName = req.SysUserRealName
  574. mysteelIndexObj.CreateTime = time.Now()
  575. mysteelIndexObj.ModifyTime = time.Now()
  576. err = mysteelIndexObj.Add()
  577. if err != nil {
  578. br.Msg = "新增指标失败"
  579. br.ErrMsg = "新增指标失败,Err:" + err.Error()
  580. return
  581. }
  582. }
  583. br.Ret = 200
  584. br.Success = true
  585. br.Msg = "新增成功"
  586. }
  587. // GetIndexDetailByCode
  588. // @Title 获取指标详情
  589. // @Description 获取指标详情
  590. // @Success 200 {object} models.GetIndexDetailReq
  591. // @router /index_detail [post]
  592. func (this *MySteelChemicalController) GetIndexDetailByCode() {
  593. br := new(models.BaseResponse).Init()
  594. defer func() {
  595. this.Data["json"] = br
  596. this.ServeJSON()
  597. }()
  598. var req models.GetIndexDetailReq
  599. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  600. if err != nil {
  601. br.Msg = "参数解析异常!"
  602. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  603. return
  604. }
  605. if req.IndexCode == "" {
  606. br.Msg = "参数有误"
  607. br.ErrMsg = "参数有误"
  608. return
  609. }
  610. indexObj := new(models.BaseFromMysteelChemicalIndex)
  611. item, err := indexObj.GetIndexItem(req.IndexCode)
  612. if err != nil {
  613. br.Msg = "获取失败"
  614. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  615. return
  616. }
  617. br.Data = item
  618. br.Ret = 200
  619. br.Success = true
  620. br.Msg = "获取成功"
  621. }
  622. // GetIndexCountByFrequency
  623. // @Title 根据频度获取指标总数量
  624. // @Description 根据频度获取指标总数量
  625. // @Success 200 {object} models.HandleMysteelIndexResp
  626. // @router /getIndexCountByFrequency [post]
  627. func (this *MySteelChemicalController) GetIndexCountByFrequency() {
  628. br := new(models.BaseResponse).Init()
  629. defer func() {
  630. this.Data["json"] = br
  631. this.ServeJSON()
  632. }()
  633. var req models.GetMaxFileIndexReq
  634. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  635. if err != nil {
  636. br.Msg = "参数解析异常!"
  637. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  638. return
  639. }
  640. var condition string
  641. var pars []interface{}
  642. if req.Frequency != "" {
  643. condition += ` AND frequency = ? `
  644. pars = append(pars, req.Frequency)
  645. }
  646. if req.EndDate != "" {
  647. condition += ` AND end_date < ? `
  648. pars = append(pars, req.EndDate)
  649. }
  650. // 终端编码
  651. condition += ` AND terminal_code = ? `
  652. pars = append(pars, req.TerminalCode)
  653. condition += ` AND is_stop = 0 `
  654. indexObj := new(models.BaseFromMysteelChemicalIndex)
  655. // 获取未合并的指标总数量
  656. indexTotal, err := indexObj.GetIndexCountByFrequency(condition, pars)
  657. if err != nil {
  658. return
  659. }
  660. br.Data = indexTotal
  661. br.Ret = 200
  662. br.Success = true
  663. br.Msg = "处理成功"
  664. }
  665. // GetIndexLimitByFrequency
  666. // @Title 获取未合并的指标列表
  667. // @Description 获取未合并的指标列表
  668. // @Success 200 {object} models.HandleMysteelIndexResp
  669. // @router /getIndexLimitByFrequency [post]
  670. func (this *MySteelChemicalController) GetIndexLimitByFrequency() {
  671. br := new(models.BaseResponse).Init()
  672. defer func() {
  673. this.Data["json"] = br
  674. this.ServeJSON()
  675. }()
  676. var req models.GetNoMergeIndexByFrequencyPageReq
  677. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  678. if err != nil {
  679. br.Msg = "参数解析异常!"
  680. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  681. return
  682. }
  683. indexObj := new(models.BaseFromMysteelChemicalIndex)
  684. // 获取未合并的指标总数量
  685. indexTotal, err := indexObj.GetIndexLimitByFrequency(req.Frequency, req.Limit)
  686. if err != nil {
  687. return
  688. }
  689. br.Data = indexTotal
  690. br.Ret = 200
  691. br.Success = true
  692. br.Msg = "处理成功"
  693. }
  694. // GetIndexPageByFrequency
  695. // @Title 获取钢联指标分页数据
  696. // @Description 获取钢联指标分页数据
  697. // @Success 200 {object} models.HandleMysteelIndexResp
  698. // @router /getIndexPageByFrequency [post]
  699. func (this *MySteelChemicalController) GetIndexPageByFrequency() {
  700. br := new(models.BaseResponse).Init()
  701. defer func() {
  702. this.Data["json"] = br
  703. this.ServeJSON()
  704. }()
  705. var req models.GetIndexPageByFrequencyPageReq
  706. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  707. if err != nil {
  708. br.Msg = "参数解析异常!"
  709. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  710. return
  711. }
  712. var condition string
  713. var pars []interface{}
  714. if req.Frequency != "" {
  715. condition += ` AND frequency = ? `
  716. pars = append(pars, req.Frequency)
  717. }
  718. if req.EndDate != "" {
  719. condition += ` AND end_date < ? `
  720. pars = append(pars, req.EndDate)
  721. }
  722. // 终端编码
  723. condition += ` AND terminal_code = ? `
  724. pars = append(pars, req.TerminalCode)
  725. condition += ` AND is_stop = 0 `
  726. indexObj := new(models.BaseFromMysteelChemicalIndex)
  727. // 获取未合并的指标总数量
  728. indexTotal, err := indexObj.GetIndexPageByFrequency(condition, pars, req.StartSize, req.PageSize)
  729. if err != nil {
  730. return
  731. }
  732. br.Data = indexTotal
  733. br.Ret = 200
  734. br.Success = true
  735. br.Msg = "处理成功"
  736. }