base_from_mysteel_chemical.go 23 KB

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