ScreenInterfaceDataController.cs 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155
  1. using log4net;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Ropin.Inspection.Api.Common;
  4. using Ropin.Inspection.Model.ViewModel;
  5. using Ropin.Inspection.Service.LGS.Interface;
  6. using System.Threading.Tasks;
  7. using System;
  8. using Ropin.Inspection.Service;
  9. using Ropin.Inspection.Service.Interface;
  10. using Ropin.Inspection.Model.ViewModel.LGS;
  11. using System.Collections.Generic;
  12. using System.Linq;
  13. using Ropin.Inspection.Model.SearchModel.LGS;
  14. using Castle.Core.Internal;
  15. using Ropin.Inspection.Model.Common;
  16. using NPOI.SS.Formula.Functions;
  17. using Ropin.Inspection.Service.MTN.Interface;
  18. using Microsoft.EntityFrameworkCore.Metadata.Internal;
  19. using NPOI.POIFS.Crypt.Dsig;
  20. using Microsoft.AspNetCore.Authorization;
  21. using Ropin.Inspection.Model;
  22. using System.Data;
  23. using Newtonsoft.Json;
  24. namespace Ropin.Inspection.Api.Controllers.LGS
  25. {
  26. public class ScreenInterfaceDataController : BaseController
  27. {
  28. private readonly ILGSLargeScreenService _lGSLargeScreenService;
  29. private readonly ITmtnDevOpsService _TmtnDevOpsService;
  30. private readonly ITmtnRepairOrderService _TmtnRepairOrderService;
  31. private readonly ITispRecordService _tispRecordService;
  32. private readonly ITmtnAlarmOrderService _tmtnAlarmOrderService;
  33. private readonly ITsysMessageService _TsysMessageService;
  34. private static readonly ILog log = LogManager.GetLogger(typeof(ScreenInterfaceDataController));
  35. /// <summary>
  36. /// 构造函数
  37. /// </summary>
  38. public ScreenInterfaceDataController(ILGSLargeScreenService lGSLargeScreenService, ITmtnDevOpsService TmtnDevOpsService, ITmtnRepairOrderService tmtnRepairOrderService, ITispRecordService tispRecordService, ITmtnAlarmOrderService tmtnAlarmOrderService, ITsysMessageService TsysMessageService)
  39. {
  40. _lGSLargeScreenService = lGSLargeScreenService;
  41. _TmtnDevOpsService = TmtnDevOpsService;
  42. _TmtnRepairOrderService = tmtnRepairOrderService;
  43. _tispRecordService = tispRecordService;
  44. _tmtnAlarmOrderService = tmtnAlarmOrderService;
  45. _TsysMessageService = TsysMessageService;
  46. }
  47. /// <summary>
  48. /// 设备维保-柱状图统计[天]
  49. /// </summary>
  50. /// <param name="search"></param>
  51. /// <returns></returns>
  52. [HttpPost("DevOpsDaysStatisticsBarChart")]
  53. public async Task<ApiResult> DevOpsDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
  54. {
  55. if (search == null || string.IsNullOrEmpty(search.DevCode))
  56. {
  57. return new ApiResult(ReturnCode.GeneralError);
  58. }
  59. try
  60. {
  61. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
  62. if (content != null && content.Count() > 0)
  63. {
  64. List<string> YData= new List<string>();
  65. //normal=4、abnormal=3
  66. //【approval=1;confirm=2;repairOn=3;complete=4;cancel=5;repairRework=6;repairCompleted=7】
  67. switch (search.DataType)
  68. {
  69. case "approval":
  70. case "1":
  71. YData = content.Select(d => d.Status1.ToString()).ToList();break;
  72. case "confirm":
  73. case "2":
  74. YData = content.Select(d => d.Status2.ToString()).ToList(); break;
  75. case "repairOn":
  76. case "abnormal":
  77. case "3":
  78. YData = content.Select(d => d.Status3.ToString()).ToList(); break;
  79. case "complete":
  80. case "normal":
  81. case "4":
  82. YData = content.Select(d => d.Status4.ToString()).ToList(); break;
  83. case "cancel":
  84. case "5":
  85. YData = content.Select(d => d.Status5.ToString()).ToList(); break;
  86. case "repairRework":
  87. case "6":
  88. YData = content.Select(d => d.Status6.ToString()).ToList(); break;
  89. case "repairCompleted":
  90. case "7":
  91. YData = content.Select(d => d.Status7.ToString()).ToList(); break;
  92. default:
  93. YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
  94. }
  95. var data = new
  96. {
  97. y = YData,
  98. x = content.Select(d => d.SpecificDay).ToArray()
  99. };
  100. return new ApiResult<object>(data);
  101. }
  102. else
  103. {
  104. DateTime time = DateTime.Now;
  105. List<string> y = new List<string>();
  106. List<string> x = new List<string>();
  107. for (int i = search.Days; i >= 0; i--)
  108. {
  109. x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  110. y.Add("0");
  111. }
  112. var data = new
  113. {
  114. y = y,
  115. x = x
  116. };
  117. return new ApiResult<object>(data);
  118. }
  119. }
  120. catch (Exception ex)
  121. {
  122. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  123. }
  124. }
  125. /// <summary>
  126. /// 设备维修-柱状图统计[天]
  127. /// </summary>
  128. /// <param name="search"></param>
  129. /// <returns></returns>
  130. [HttpPost("RepairDaysStatisticsBarChart")]
  131. public async Task<ApiResult> RepairDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
  132. {
  133. if (search == null || string.IsNullOrEmpty(search.DevCode))
  134. {
  135. return new ApiResult(ReturnCode.GeneralError);
  136. }
  137. try
  138. {
  139. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days);
  140. if (content != null && content.Count() > 0)
  141. {
  142. List<string> YData = new List<string>();
  143. switch (search.DataType)
  144. {
  145. case "approval":
  146. case "1":
  147. YData = content.Select(d => d.Status1.ToString()).ToList(); break;
  148. case "confirm":
  149. case "2":
  150. YData = content.Select(d => d.Status2.ToString()).ToList(); break;
  151. case "repairOn":
  152. case "abnormal":
  153. case "3":
  154. YData = content.Select(d => d.Status3.ToString()).ToList(); break;
  155. case "complete":
  156. case "normal":
  157. case "4":
  158. YData = content.Select(d => d.Status4.ToString()).ToList(); break;
  159. case "cancel":
  160. case "5":
  161. YData = content.Select(d => d.Status5.ToString()).ToList(); break;
  162. case "repairRework":
  163. case "6":
  164. YData = content.Select(d => d.Status6.ToString()).ToList(); break;
  165. case "repairCompleted":
  166. case "7":
  167. YData = content.Select(d => d.Status7.ToString()).ToList(); break;
  168. default:
  169. YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
  170. }
  171. var data = new
  172. {
  173. y = YData,
  174. x = content.Select(d => d.SpecificDay).ToArray()
  175. };
  176. return new ApiResult<object>(data);
  177. }
  178. else
  179. {
  180. DateTime time = DateTime.Now;
  181. List<string> y = new List<string>();
  182. List<string> x = new List<string>();
  183. for (int i = search.Days; i >= 0; i--)
  184. {
  185. x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  186. y.Add("0");
  187. }
  188. var data = new
  189. {
  190. y = y,
  191. x = x
  192. };
  193. return new ApiResult<object>(data);
  194. }
  195. }
  196. catch (Exception ex)
  197. {
  198. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  199. }
  200. }
  201. /// <summary>
  202. /// 设备点检-柱状图统计[天]
  203. /// </summary>
  204. /// <param name="search"></param>
  205. /// <returns></returns>
  206. [HttpPost("ISPDaysStatisticsBarChart")]
  207. public async Task<ApiResult> ISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
  208. {
  209. if (search == null || string.IsNullOrEmpty(search.DevCode))
  210. {
  211. return new ApiResult(ReturnCode.GeneralError);
  212. }
  213. try
  214. {
  215. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days);
  216. if (content != null && content.Count() > 0)
  217. {
  218. List<string> YData = new List<string>();
  219. switch (search.DataType)
  220. {
  221. case "normal":
  222. case "1":
  223. YData = content.Select(d => d.Status1.ToString()).ToList(); break;
  224. case "abnormal":
  225. case "2":
  226. YData = content.Select(d => d.Status2.ToString()).ToList(); break;
  227. case "3":
  228. YData = content.Select(d => d.Status3.ToString()).ToList(); break;
  229. default:
  230. YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
  231. }
  232. var data = new
  233. {
  234. y = YData,
  235. x = content.Select(d => d.SpecificDay).ToArray()
  236. };
  237. return new ApiResult<object>(data);
  238. }
  239. else
  240. {
  241. DateTime time = DateTime.Now;
  242. List<string> y = new List<string>();
  243. List<string> x = new List<string>();
  244. for (int i = search.Days; i >= 0; i--)
  245. {
  246. x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  247. y.Add("0");
  248. }
  249. var data = new
  250. {
  251. y = y,
  252. x = x
  253. };
  254. return new ApiResult<object>(data);
  255. }
  256. }
  257. catch (Exception ex)
  258. {
  259. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  260. }
  261. }
  262. /// <summary>
  263. /// 设备【维修、维保、点检】条形图统计[天]
  264. /// </summary>
  265. /// <param name="search"></param>
  266. /// <returns></returns>
  267. [HttpPost("DevOpsRepairISPDaysStatisticsBarChart")]
  268. public async Task<ApiResult> DevOpsRepairISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
  269. {
  270. if (search==null || string.IsNullOrEmpty(search.DevCode))
  271. {
  272. return new ApiResult(ReturnCode.GeneralError);
  273. }
  274. try
  275. {
  276. IEnumerable<DevOpsRepairISPDaysStatistics> content =null;
  277. switch (search.Days)
  278. {
  279. case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode);break;
  280. case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
  281. default:
  282. break;
  283. }
  284. if (content!=null&& content.Count()>0)
  285. {
  286. List<LargeScreenInterfaceBar> bar=new List<LargeScreenInterfaceBar>();
  287. bar.Add(new LargeScreenInterfaceBar
  288. {
  289. name = "维保",
  290. type = "bar",
  291. data = GetChartData(search.DataType, "维保", content)
  292. });
  293. bar.Add(new LargeScreenInterfaceBar
  294. {
  295. name = "维修",
  296. type = "bar",
  297. data = GetChartData(search.DataType, "维修", content)
  298. });
  299. bar.Add(new LargeScreenInterfaceBar
  300. {
  301. name = "点检",
  302. type = "bar",
  303. data = GetChartData(search.DataType, "点检", content)
  304. });
  305. var data = new
  306. {
  307. y= content.Select(d => d.SpecificDay).ToArray(),
  308. x = bar
  309. };
  310. return new ApiResult<object>(data);
  311. }
  312. else
  313. {
  314. DateTime time = DateTime.Now;
  315. List<string> y= new List<string>();
  316. List<string> x= new List<string>();
  317. for (int i = search.Days; i >= 0; i --)
  318. {
  319. y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  320. x.Add("0");
  321. }
  322. var data = new
  323. {
  324. y =y,
  325. x = new
  326. {
  327. name="未知",
  328. type="bar",
  329. data=x
  330. }
  331. };
  332. return new ApiResult<object>(data);
  333. }
  334. }
  335. catch (Exception ex)
  336. {
  337. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  338. }
  339. }
  340. /// <summary>
  341. /// 设备维保-各个状态的条形图统计[天]
  342. /// </summary>
  343. /// <param name="search"></param>
  344. /// <returns></returns>
  345. [HttpPost("DevOpsStatusDaysStatisticsBarChart")]
  346. public async Task<ApiResult> DevOpsStatusDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
  347. {
  348. if (search == null || string.IsNullOrEmpty(search.DevCode))
  349. {
  350. return new ApiResult(ReturnCode.GeneralError);
  351. }
  352. try
  353. {
  354. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
  355. if (content != null && content.Count() > 0)
  356. {
  357. List<LargeScreenInterfaceBar> bar = new List<LargeScreenInterfaceBar>();
  358. bar.Add(new LargeScreenInterfaceBar
  359. {
  360. name = "维保上报",//Approval
  361. type = "bar",
  362. data = content.Select(x => x.Status1.ToString()).ToList()
  363. });
  364. bar.Add(new LargeScreenInterfaceBar
  365. {
  366. name = "维保确认",//Confirm
  367. type = "bar",
  368. data = content.Select(x => x.Status2.ToString()).ToList()
  369. });
  370. bar.Add(new LargeScreenInterfaceBar
  371. {
  372. name = "正在维保",//RepairOn
  373. type = "bar",
  374. data = content.Select(x => x.Status3.ToString()).ToList()
  375. });
  376. bar.Add(new LargeScreenInterfaceBar
  377. {
  378. name = "维保完成",//Complete
  379. type = "bar",
  380. data = content.Select(x => x.Status4.ToString()).ToList()
  381. });
  382. bar.Add(new LargeScreenInterfaceBar
  383. {
  384. name = "维保取消",//Cancel
  385. type = "bar",
  386. data = content.Select(x => x.Status5.ToString()).ToList()
  387. });
  388. bar.Add(new LargeScreenInterfaceBar
  389. {
  390. name = "维保返工",//RepairRework
  391. type = "bar",
  392. data = content.Select(x => x.Status6.ToString()).ToList()
  393. });
  394. bar.Add(new LargeScreenInterfaceBar
  395. {
  396. name = "维保完成确认",//RepairCompleted
  397. type = "bar",
  398. data = content.Select(x => x.Status7.ToString()).ToList()
  399. });
  400. bar.Add(new LargeScreenInterfaceBar
  401. {
  402. name = "总数",
  403. type = "bar",
  404. data = content.Select(x => x.StatusTotal.ToString()).ToList()
  405. });
  406. var data = new
  407. {
  408. y = content.Select(d => d.SpecificDay).ToArray(),
  409. x = bar
  410. };
  411. return new ApiResult<object>(data);
  412. }
  413. else
  414. {
  415. DateTime time = DateTime.Now;
  416. List<string> y = new List<string>();
  417. List<string> x = new List<string>();
  418. for (int i = search.Days; i >= 0; i--)
  419. {
  420. y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  421. x.Add("0");
  422. }
  423. var data = new
  424. {
  425. y = y,
  426. x = new
  427. {
  428. name = "未知",
  429. type = "bar",
  430. data = x
  431. }
  432. };
  433. return new ApiResult<object>(data);
  434. }
  435. }
  436. catch (Exception ex)
  437. {
  438. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  439. }
  440. }
  441. /// <summary>
  442. /// 设备【维修、维保、点检】堆叠条形图统计[天]
  443. /// </summary>
  444. /// <param name="search"></param>
  445. /// <returns></returns>
  446. [HttpPost("DevOpsRepairISPDaysStatisticsStackBarChart")]
  447. public async Task<ApiResult> DevOpsRepairISPDaysStatisticsStackBarChart(LargeScreenInterfaceDataSearch search)
  448. {
  449. if (search == null || string.IsNullOrEmpty(search.DevCode))
  450. {
  451. return new ApiResult(ReturnCode.GeneralError);
  452. }
  453. try
  454. {
  455. IEnumerable<DevOpsRepairISPDaysStatistics> content = null;
  456. switch (search.Days)
  457. {
  458. case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode); break;
  459. case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
  460. default:
  461. break;
  462. }
  463. if (content != null && content.Count() > 0)
  464. {
  465. List<LargeScreenInterfaceStackBar> bar = new List<LargeScreenInterfaceStackBar>();
  466. bar.Add(new LargeScreenInterfaceStackBar
  467. {
  468. name = "维保",
  469. type = "bar",
  470. stack= "total",
  471. label=new LabelStackBarModel { show= search.LableIsShow },
  472. data = GetChartData(search.DataType, "维保", content)
  473. });
  474. bar.Add(new LargeScreenInterfaceStackBar
  475. {
  476. name = "维修",
  477. type = "bar",
  478. stack = "total",
  479. label = new LabelStackBarModel { show = search.LableIsShow },
  480. data = GetChartData(search.DataType, "维修", content)
  481. });
  482. bar.Add(new LargeScreenInterfaceStackBar
  483. {
  484. name = "点检",
  485. type = "bar",
  486. stack = "total",
  487. label = new LabelStackBarModel { show = search.LableIsShow },
  488. data = GetChartData(search.DataType, "点检", content)
  489. });
  490. var data = new
  491. {
  492. y = content.Select(d => d.SpecificDay).ToArray(),
  493. x = bar
  494. };
  495. return new ApiResult<object>(data);
  496. }
  497. else
  498. {
  499. DateTime time = DateTime.Now;
  500. List<string> y = new List<string>();
  501. List<string> x = new List<string>();
  502. for (int i = search.Days; i >= 0; i--)
  503. {
  504. y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  505. x.Add("0");
  506. }
  507. var data = new
  508. {
  509. y = y,
  510. x = new
  511. {
  512. name = "未知",
  513. type = "bar",
  514. stack = "total",
  515. label = new LabelStackBarModel { show = true },
  516. data = x
  517. }
  518. };
  519. return new ApiResult<object>(data);
  520. }
  521. }
  522. catch (Exception ex)
  523. {
  524. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  525. }
  526. }
  527. /// <summary>
  528. /// 设备【维修、维保、点检 】折线图统计[天]
  529. /// </summary>
  530. /// <param name="search"></param>
  531. /// <returns></returns>
  532. [HttpPost("DevOpsRepairISPDaysStatisticsLineChart")]
  533. public async Task<ApiResult> DevOpsRepairISPDaysStatisticsLineChart(LargeScreenInterfaceDataSearch search)
  534. {
  535. if (search == null || string.IsNullOrEmpty(search.DevCode))
  536. {
  537. return new ApiResult(ReturnCode.GeneralError);
  538. }
  539. try
  540. {
  541. IEnumerable<DevOpsRepairISPDaysStatistics> content = null;
  542. string type = "line";string stack = "Total";
  543. switch (search.Days)
  544. {
  545. case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode); break;
  546. case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
  547. default:
  548. break;
  549. }
  550. if (content != null && content.Count() > 0)
  551. {
  552. List<LargeScreenInterfaceLine> bar = new List<LargeScreenInterfaceLine>();
  553. bar.Add(new LargeScreenInterfaceLine
  554. {
  555. name = "维保",
  556. type = type,
  557. stack = stack,
  558. data = GetChartData(search.DataType, "维保", content)
  559. });
  560. bar.Add(new LargeScreenInterfaceLine
  561. {
  562. name = "维修",
  563. type = type,
  564. stack = stack,
  565. data = GetChartData(search.DataType, "维修", content)
  566. });
  567. bar.Add(new LargeScreenInterfaceLine
  568. {
  569. name = "点检",
  570. type = type,
  571. stack = stack,
  572. data = GetChartData(search.DataType, "点检", content)
  573. });
  574. var data = new
  575. {
  576. y = bar,
  577. x = content.Select(d => d.SpecificDay).ToArray()
  578. };
  579. return new ApiResult<object>(data);
  580. }
  581. else
  582. {
  583. DateTime time = DateTime.Now;
  584. List<string> y = new List<string>();
  585. List<string> x = new List<string>();
  586. for (int i = search.Days; i >= 0; i--)
  587. {
  588. x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
  589. y.Add("0");
  590. }
  591. var data = new
  592. {
  593. y = new
  594. {
  595. name = "未知",
  596. type = type,
  597. stack = stack,
  598. data = y
  599. },
  600. x = x
  601. };
  602. return new ApiResult<object>(data);
  603. }
  604. }
  605. catch (Exception ex)
  606. {
  607. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  608. }
  609. }
  610. /// <summary>
  611. /// 根据数据源,类型、名称获取的数组形式的数据
  612. /// </summary>
  613. /// <param name="type">数据类型</param>
  614. /// <param name="name">数据名称</param>
  615. /// <param name="content">【点检、维保、维修】根据天获取数据统计的数据源</param>
  616. /// <returns></returns>
  617. private List<string> GetChartData(string type,string name, IEnumerable<DevOpsRepairISPDaysStatistics> content)
  618. {
  619. List<string> arrayStr=new List<string>();
  620. if (name=="维保")
  621. {
  622. switch (type)
  623. {
  624. case "complete":
  625. case "normal":
  626. case "4": arrayStr = content.Select(d => d.DevOpsNormal.ToString()).ToList(); break;
  627. case "repairOn":
  628. case "abnormal":
  629. case "3": arrayStr = content.Select(d => d.DevOpsAbnormal.ToString()).ToList(); break;
  630. default: arrayStr = content.Select(d => d.DevOpsTotal.ToString()).ToList(); break;
  631. }
  632. }
  633. else if (name=="维修")
  634. {
  635. switch (type)
  636. {
  637. case "complete":
  638. case "normal":
  639. case "4": arrayStr = content.Select(d => d.RepairOrderNormal.ToString()).ToList(); break;
  640. case "repairOn":
  641. case "abnormal":
  642. case "3": arrayStr = content.Select(d => d.RepairOrderAbnormal.ToString()).ToList(); break;
  643. default: arrayStr = content.Select(d => d.RepairOrderTotal.ToString()).ToList(); break;
  644. }
  645. }
  646. else if (name == "点检")
  647. {
  648. switch (type)
  649. {
  650. case "complete":
  651. case "normal":
  652. case "4": arrayStr = content.Select(d => d.ISPNormal.ToString()).ToList(); break;
  653. case "repairOn":
  654. case "abnormal":
  655. case "3": arrayStr = content.Select(d => d.ISPAbnormal.ToString()).ToList(); break;
  656. default: arrayStr = content.Select(d => d.ISPTotal.ToString()).ToList(); break;
  657. }
  658. }
  659. return arrayStr;
  660. }
  661. /// <summary>
  662. /// 报警工单状态【1、2、3、4、5、6、7】-饼图统计
  663. /// </summary>
  664. /// <param name="search"></param>
  665. /// <returns></returns>
  666. [HttpPost("AlarmOrderStatusStatisticsMonthPieChart")]
  667. public async Task<ApiResult> AlarmOrderStatusStatisticsMonthPieChart(LargeScreenInterfaceDataSearch search)
  668. {
  669. if (search == null || string.IsNullOrEmpty(search.DevCode))
  670. {
  671. return new ApiResult(ReturnCode.GeneralError);
  672. }
  673. try
  674. {
  675. var content = await _tmtnAlarmOrderService.GetAlarmOrderStatisticsAsync(search.DevCode,search.MonthNum);
  676. List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
  677. if (content != null)
  678. {
  679. if (search.StatusArray!=null&&search.StatusArray.Count>0)
  680. {
  681. foreach (var item in search.StatusArray)
  682. {
  683. switch (item)
  684. {
  685. case 1: data.Add(new LargeScreenInterfacePie { name = "报警上报", value = content.Approval.ToString(), });break;
  686. case 2: data.Add(new LargeScreenInterfacePie { name = "报警确认", value = content.Confirm.ToString(), }); break;
  687. case 3: data.Add(new LargeScreenInterfacePie { name = "报警处理", value = content.RepairOn.ToString(), });break;
  688. case 4: data.Add(new LargeScreenInterfacePie { name = "报警审批", value = content.Complete.ToString(), }); break;
  689. case 5: data.Add(new LargeScreenInterfacePie { name = "报警取消", value = content.Cancel.ToString(), }); break;
  690. case 6: data.Add(new LargeScreenInterfacePie { name = "报警返工", value = content.RepairRework.ToString(), }); break;
  691. case 7: data.Add(new LargeScreenInterfacePie { name = "报警完成审批", value = content.RepairCompleted.ToString(), }); break;
  692. default: data.Add(new LargeScreenInterfacePie { name = "其它"+ item, value = "0", }); break;
  693. }
  694. }
  695. }
  696. else
  697. {
  698. data.Add(new LargeScreenInterfacePie { name = "报警上报", value = content.Approval.ToString(), });//1上报处理报警
  699. data.Add(new LargeScreenInterfacePie { name = "报警确认", value = content.Confirm.ToString(), });//2报警确认
  700. data.Add(new LargeScreenInterfacePie { name = "报警处理", value = content.RepairOn.ToString(), });//3正在处理报警
  701. data.Add(new LargeScreenInterfacePie { name = "报警审批", value = content.Complete.ToString(), });//4报警处理完成
  702. data.Add(new LargeScreenInterfacePie { name = "报警取消", value = content.Cancel.ToString(), });//5报警取消
  703. data.Add(new LargeScreenInterfacePie { name = "报警返工", value = content.RepairRework.ToString(), });//6报警处理返工
  704. data.Add(new LargeScreenInterfacePie { name = "报警完成审批", value = content.RepairCompleted.ToString(), });//7报警处理完成确认
  705. }
  706. }
  707. else
  708. {
  709. data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
  710. }
  711. return new ApiResult<object>(data);
  712. }
  713. catch (Exception ex)
  714. {
  715. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  716. }
  717. }
  718. /// <summary>
  719. /// 维保状态【1、2、3、4、5、6、7】-饼图统计
  720. /// </summary>
  721. /// <param name="search"></param>
  722. /// <returns></returns>
  723. [HttpPost("GeDevOpsStatisticsMonthPieAsync")]
  724. public async Task<ApiResult> GeDevOpsStatisticsMonthPieAsync(LargeScreenInterfaceDataSearch search)
  725. {
  726. if (search == null || string.IsNullOrEmpty(search.DevCode))
  727. {
  728. return new ApiResult(ReturnCode.GeneralError);
  729. }
  730. try
  731. {
  732. var content = await _lGSLargeScreenService.GeDevOpsStatisticsMonthPieAsync(search.DevCode, search.MonthNum);
  733. List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
  734. if (content != null)
  735. {
  736. if (search.StatusArray != null && search.StatusArray.Count > 0)
  737. {
  738. foreach (var item in search.StatusArray)
  739. {
  740. switch (item)
  741. {
  742. case 1: data.Add(new LargeScreenInterfacePie { name = "维保上报", value = content.Approval.ToString(), }); break;
  743. case 2: data.Add(new LargeScreenInterfacePie { name = "维保确认", value = content.Confirm.ToString(), }); break;
  744. case 3: data.Add(new LargeScreenInterfacePie { name = "维保处理", value = content.RepairOn.ToString(), }); break;
  745. case 4: data.Add(new LargeScreenInterfacePie { name = "维保审批", value = content.Complete.ToString(), }); break;
  746. case 5: data.Add(new LargeScreenInterfacePie { name = "维保取消", value = content.Cancel.ToString(), }); break;
  747. case 6: data.Add(new LargeScreenInterfacePie { name = "维保返工", value = content.RepairRework.ToString(), }); break;
  748. case 7: data.Add(new LargeScreenInterfacePie { name = "维保完成审批", value = content.RepairCompleted.ToString(), }); break;
  749. default: data.Add(new LargeScreenInterfacePie { name = "其它" + item, value = "0", }); break;
  750. }
  751. }
  752. }
  753. else
  754. {
  755. data.Add(new LargeScreenInterfacePie { name = "维保上报", value = content.Approval.ToString(), });//上报维保(维保上报)
  756. data.Add(new LargeScreenInterfacePie { name = "维保确认", value = content.Confirm.ToString(), });//维保确认
  757. data.Add(new LargeScreenInterfacePie { name = "维保处理", value = content.RepairOn.ToString(), });//正在维保
  758. data.Add(new LargeScreenInterfacePie { name = "维保审批", value = content.Complete.ToString(), });//维保完成
  759. data.Add(new LargeScreenInterfacePie { name = "维保取消", value = content.Cancel.ToString(), });//维保取消
  760. data.Add(new LargeScreenInterfacePie { name = "维保返工", value = content.RepairRework.ToString(), });//维保修复(维保返工)
  761. data.Add(new LargeScreenInterfacePie { name = "维保完成审批", value = content.RepairCompleted.ToString(), });//维保完成确认
  762. }
  763. }
  764. else
  765. {
  766. data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
  767. }
  768. return new ApiResult<object>(data);
  769. }
  770. catch (Exception ex)
  771. {
  772. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  773. }
  774. }
  775. /// <summary>
  776. /// 维修状态【1、2、3、4、5、6、7】-饼图统计
  777. /// </summary>
  778. /// <param name="search"></param>
  779. /// <returns></returns>
  780. [HttpPost("GeRepairOrderStatisticsMonthPieAsync")]
  781. public async Task<ApiResult> GeRepairOrderStatisticsMonthPieAsync(LargeScreenInterfaceDataSearch search)
  782. {
  783. if (search == null || string.IsNullOrEmpty(search.DevCode))
  784. {
  785. return new ApiResult(ReturnCode.GeneralError);
  786. }
  787. try
  788. {
  789. var content = await _lGSLargeScreenService.GeRepairOrderStatisticsMonthPieAsync(search.DevCode, search.MonthNum);
  790. List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
  791. if (content != null)
  792. {
  793. if (search.StatusArray != null && search.StatusArray.Count > 0)
  794. {
  795. foreach (var item in search.StatusArray)
  796. {
  797. switch (item)
  798. {
  799. case 1: data.Add(new LargeScreenInterfacePie { name = "故障上报", value = content.Approval.ToString(), }); break;
  800. case 2: data.Add(new LargeScreenInterfacePie { name = "维修确认", value = content.Confirm.ToString(), }); break;
  801. case 3: data.Add(new LargeScreenInterfacePie { name = "维修处理", value = content.RepairOn.ToString(), }); break;
  802. case 4: data.Add(new LargeScreenInterfacePie { name = "维修审批", value = content.Complete.ToString(), }); break;
  803. case 5: data.Add(new LargeScreenInterfacePie { name = "维修取消", value = content.Cancel.ToString(), }); break;
  804. case 6: data.Add(new LargeScreenInterfacePie { name = "维修返工", value = content.RepairRework.ToString(), }); break;
  805. case 7: data.Add(new LargeScreenInterfacePie { name = "维修完成审批", value = content.RepairCompleted.ToString(), }); break;
  806. default: data.Add(new LargeScreenInterfacePie { name = "其它" + item, value = "0", }); break;
  807. }
  808. }
  809. }
  810. else
  811. {
  812. data.Add(new LargeScreenInterfacePie { name = "故障上报", value = content.Approval.ToString(), });//报修(故障上报)
  813. data.Add(new LargeScreenInterfacePie { name = "维修确认", value = content.Confirm.ToString(), });//维修确认
  814. data.Add(new LargeScreenInterfacePie { name = "维修处理", value = content.RepairOn.ToString(), });//正在维修
  815. data.Add(new LargeScreenInterfacePie { name = "维修审批", value = content.Complete.ToString(), });//维修完成
  816. data.Add(new LargeScreenInterfacePie { name = "维修取消", value = content.Cancel.ToString(), });//维修取消
  817. data.Add(new LargeScreenInterfacePie { name = "维修返工", value = content.RepairRework.ToString(), });//故障修复(维修返工)
  818. data.Add(new LargeScreenInterfacePie { name = "维修完成审批", value = content.RepairCompleted.ToString(), });//维修完成确认
  819. }
  820. }
  821. else
  822. {
  823. data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
  824. }
  825. return new ApiResult<object>(data);
  826. }
  827. catch (Exception ex)
  828. {
  829. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  830. }
  831. }
  832. /// <summary>
  833. /// 设备维保-统计[天]-列表
  834. /// </summary>
  835. /// <param name="search"></param>
  836. /// <returns></returns>
  837. [HttpPost("DevOpsDaysStatisticsList")]
  838. public async Task<ApiResult> DevOpsDaysStatisticsList(LargeScreenInterfaceDataSearch search)
  839. {
  840. if (search == null || string.IsNullOrEmpty(search.DevCode))
  841. {
  842. return new ApiResult(ReturnCode.GeneralError);
  843. }
  844. try
  845. {
  846. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
  847. if (search.Columns == null || search.Columns.Count==0)
  848. {
  849. search.Columns = new List<LargeScreenInterfaceListColumns>();
  850. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
  851. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保上报", key = "Approval" });
  852. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保确认", key = "Confirm" });
  853. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正在维保", key = "RepairOn" });
  854. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保完成", key = "Complete" });
  855. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保取消", key = "Cancel" });
  856. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保返工", key = "RepairRework" });
  857. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保完成确认", key = "RepairCompleted" });
  858. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "DevOpsTotal" });
  859. }
  860. List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
  861. if (content != null && content.Count() > 0)
  862. {
  863. foreach (var item in content)
  864. {
  865. if (item!=null)
  866. {
  867. Dictionary<string, string> rows = new Dictionary<string, string>();
  868. foreach (var index in search.Columns)
  869. {
  870. switch (index.key)
  871. {
  872. case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
  873. case "Approval": rows.Add(index.key, item.Status1.ToString()); break;
  874. case "Confirm": rows.Add(index.key, item.Status2.ToString()); break;
  875. case "RepairOn": rows.Add(index.key, item.Status3.ToString()); break;
  876. case "Complete": rows.Add(index.key, item.Status4.ToString()); break;
  877. case "Cancel": rows.Add(index.key, item.Status5.ToString()); break;
  878. case "RepairRework": rows.Add(index.key, item.Status6.ToString()); break;
  879. case "RepairCompleted": rows.Add(index.key, item.Status7.ToString()); break;
  880. case "DevOpsTotal": rows.Add(index.key, item.StatusTotal.ToString()); break;
  881. default: rows.Add(index.key,"未知"); break;
  882. }
  883. }
  884. datas.Add(rows);
  885. }
  886. }
  887. }
  888. else
  889. {
  890. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
  891. Dictionary<string, string> rows = new Dictionary<string, string>();
  892. rows.Add("null", "未知");
  893. datas.Add(rows);
  894. }
  895. var data = new
  896. {
  897. columns = search.Columns,
  898. data = datas
  899. };
  900. return new ApiResult<object>(data);
  901. }
  902. catch (Exception ex)
  903. {
  904. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  905. }
  906. }
  907. /// <summary>
  908. /// 设备维修-统计[天]-列表
  909. /// </summary>
  910. /// <param name="search"></param>
  911. /// <returns></returns>
  912. [HttpPost("RepairOrderDaysStatisticsList")]
  913. public async Task<ApiResult> RepairOrderDaysStatisticsList(LargeScreenInterfaceDataSearch search)
  914. {
  915. if (search == null || string.IsNullOrEmpty(search.DevCode))
  916. {
  917. return new ApiResult(ReturnCode.GeneralError);
  918. }
  919. try
  920. {
  921. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days);
  922. if (search.Columns == null || search.Columns.Count == 0)
  923. {
  924. search.Columns = new List<LargeScreenInterfaceListColumns>();
  925. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
  926. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修上报", key = "Approval" });
  927. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修确认", key = "Confirm" });
  928. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正在维修", key = "RepairOn" });
  929. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修完成", key = "Complete" });
  930. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修取消", key = "Cancel" });
  931. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修返工", key = "RepairRework" });
  932. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修完成确认", key = "RepairCompleted" });
  933. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "Total" });
  934. }
  935. List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
  936. if (content != null && content.Count() > 0)
  937. {
  938. foreach (var item in content)
  939. {
  940. if (item != null)
  941. {
  942. Dictionary<string, string> rows = new Dictionary<string, string>();
  943. foreach (var index in search.Columns)
  944. {
  945. switch (index.key)
  946. {
  947. case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
  948. case "Approval": rows.Add(index.key, item.Status1.ToString()); break;
  949. case "Confirm": rows.Add(index.key, item.Status2.ToString()); break;
  950. case "RepairOn": rows.Add(index.key, item.Status3.ToString()); break;
  951. case "Complete": rows.Add(index.key, item.Status4.ToString()); break;
  952. case "Cancel": rows.Add(index.key, item.Status5.ToString()); break;
  953. case "RepairRework": rows.Add(index.key, item.Status6.ToString()); break;
  954. case "RepairCompleted": rows.Add(index.key, item.Status7.ToString()); break;
  955. case "Total": rows.Add(index.key, item.StatusTotal.ToString()); break;
  956. default: rows.Add(index.key, "未知"); break;
  957. }
  958. }
  959. datas.Add(rows);
  960. }
  961. }
  962. }
  963. else
  964. {
  965. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
  966. Dictionary<string, string> rows = new Dictionary<string, string>();
  967. rows.Add("null", "未知");
  968. datas.Add(rows);
  969. }
  970. var data = new
  971. {
  972. columns = search.Columns,
  973. data = datas
  974. };
  975. return new ApiResult<object>(data);
  976. }
  977. catch (Exception ex)
  978. {
  979. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  980. }
  981. }
  982. /// <summary>
  983. /// 设备点检-统计[天]-列表
  984. /// </summary>
  985. /// <param name="search"></param>
  986. /// <returns></returns>
  987. [HttpPost("ISPDaysStatisticsList")]
  988. public async Task<ApiResult> ISPDaysStatisticsList(LargeScreenInterfaceDataSearch search)
  989. {
  990. if (search == null || string.IsNullOrEmpty(search.DevCode))
  991. {
  992. return new ApiResult(ReturnCode.GeneralError);
  993. }
  994. try
  995. {
  996. IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days);
  997. if (search.Columns == null || search.Columns.Count == 0)
  998. {
  999. search.Columns = new List<LargeScreenInterfaceListColumns>();
  1000. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
  1001. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正常", key = "Normal" });
  1002. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "异常", key = "Abnormal" });
  1003. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "确认异常", key = "ConfirmAbnormal" });
  1004. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "Total" });
  1005. }
  1006. List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
  1007. if (content != null && content.Count() > 0)
  1008. {
  1009. foreach (var item in content)
  1010. {
  1011. if (item != null)
  1012. {
  1013. Dictionary<string, string> rows = new Dictionary<string, string>();
  1014. foreach (var index in search.Columns)
  1015. {
  1016. switch (index.key)
  1017. {
  1018. case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
  1019. case "Normal": rows.Add(index.key, item.Status1.ToString()); break;
  1020. case "Abnormal": rows.Add(index.key, item.Status2.ToString()); break;
  1021. case "ConfirmAbnormal": rows.Add(index.key, item.Status3.ToString()); break;
  1022. case "Total": rows.Add(index.key, item.StatusTotal.ToString()); break;
  1023. default: rows.Add(index.key, "未知"); break;
  1024. }
  1025. }
  1026. datas.Add(rows);
  1027. }
  1028. }
  1029. }
  1030. else
  1031. {
  1032. search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
  1033. Dictionary<string, string> rows = new Dictionary<string, string>();
  1034. rows.Add("null", "未知");
  1035. datas.Add(rows);
  1036. }
  1037. var data = new
  1038. {
  1039. columns = search.Columns,
  1040. data = datas
  1041. };
  1042. return new ApiResult<object>(data);
  1043. }
  1044. catch (Exception ex)
  1045. {
  1046. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  1047. }
  1048. }
  1049. /// <summary>
  1050. /// 通过消息名称条件查询
  1051. /// </summary>
  1052. /// <param name="searchModel"></param>
  1053. /// <returns></returns>
  1054. [HttpPost("GetMessagesColumnByAsync")]
  1055. public async Task<ApiResult> GetMessagesColumnByAsync(TsysMessageSearchModel searchModel)
  1056. {
  1057. if (searchModel == null)
  1058. {
  1059. return new ApiResult(ReturnCode.ArgsError);
  1060. }
  1061. try
  1062. {
  1063. //统一接口加了start/end参数,
  1064. searchModel.BeginTime= searchModel.Start;
  1065. searchModel.EndTime= searchModel.End;
  1066. //TpushMsgModel
  1067. List<LargeScreenInterfaceListColumns> Columns = new List<LargeScreenInterfaceListColumns>();
  1068. Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备名称", key = "devName" });
  1069. Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备编码", key = "devNumber" });
  1070. Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警时间", key = "createOn" });
  1071. Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警类型", key = "subject" });
  1072. Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警内容", key = "msg" });
  1073. Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警来源", key = "userName" });
  1074. var contentList = await _TsysMessageService.GetConditionAsync(searchModel);
  1075. var contents=contentList.Select(x =>JsonConvert.DeserializeObject< TpushMsgModel>( x.C_Content)).ToList();
  1076. var data = new
  1077. {
  1078. columns = Columns,
  1079. data = new PagesModel<TpushMsgModel>(items: contents, searchModel)
  1080. };
  1081. return new ApiResult<object>(data);
  1082. }
  1083. catch (Exception ex)
  1084. {
  1085. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  1086. }
  1087. }
  1088. /// <summary>
  1089. /// 条件查询维修工单列表包含模板图片
  1090. /// </summary>
  1091. /// <param name="searchModel"></param>
  1092. /// <returns></returns>
  1093. [HttpPost("GetRepairOrderColumnAsync/{name=}")]
  1094. public async Task<ApiResult> GetRepairOrderColumnAsync(TmtnRepairOrderRecordSearchModel searchModel, string name)
  1095. {
  1096. if (searchModel == null)
  1097. {
  1098. return new ApiResult(ReturnCode.ArgsError);
  1099. }
  1100. //searchModel.IsPagination = false;
  1101. try
  1102. {
  1103. //TpushMsgModel
  1104. List<LargeScreenInterfaceListColumns> Columns = new List<LargeScreenInterfaceListColumns>();
  1105. Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修原由", key = "c_Name" });
  1106. Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备名称", key = "devName" });
  1107. Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修人员", key = "createByName" });
  1108. Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修时间", key = "d_CreateOn" });
  1109. Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修状态", key = "c_Status1" });
  1110. IEnumerable<TmtnRepairOrderRecordDetailViewMode> contentList = await _TmtnRepairOrderService.GetRecordsConditionAsync(searchModel);
  1111. if (contentList != null && contentList.Count() > 0)
  1112. {
  1113. if (contentList.FirstOrDefault() == null)
  1114. {
  1115. var removed = contentList.ToList();
  1116. removed.RemoveAt(0);
  1117. contentList = removed;
  1118. }
  1119. if ( !string.IsNullOrWhiteSpace(name))
  1120. {
  1121. contentList = contentList.Where(x => x.C_Name.Contains(name));
  1122. }
  1123. }
  1124. var data = new
  1125. {
  1126. columns = Columns,
  1127. data = new PagesModel<TmtnRepairOrderRecordDetailViewMode>(contentList, searchModel)
  1128. };
  1129. return new ApiResult<object>(data);
  1130. }
  1131. catch (Exception ex)
  1132. {
  1133. return new ApiResult(ReturnCode.GeneralError, ex.Message);
  1134. }
  1135. }
  1136. }
  1137. }