123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155 |
- using log4net;
- using Microsoft.AspNetCore.Mvc;
- using Ropin.Inspection.Api.Common;
- using Ropin.Inspection.Model.ViewModel;
- using Ropin.Inspection.Service.LGS.Interface;
- using System.Threading.Tasks;
- using System;
- using Ropin.Inspection.Service;
- using Ropin.Inspection.Service.Interface;
- using Ropin.Inspection.Model.ViewModel.LGS;
- using System.Collections.Generic;
- using System.Linq;
- using Ropin.Inspection.Model.SearchModel.LGS;
- using Castle.Core.Internal;
- using Ropin.Inspection.Model.Common;
- using NPOI.SS.Formula.Functions;
- using Ropin.Inspection.Service.MTN.Interface;
- using Microsoft.EntityFrameworkCore.Metadata.Internal;
- using NPOI.POIFS.Crypt.Dsig;
- using Microsoft.AspNetCore.Authorization;
- using Ropin.Inspection.Model;
- using System.Data;
- using Newtonsoft.Json;
- namespace Ropin.Inspection.Api.Controllers.LGS
- {
- public class ScreenInterfaceDataController : BaseController
- {
- private readonly ILGSLargeScreenService _lGSLargeScreenService;
- private readonly ITmtnDevOpsService _TmtnDevOpsService;
- private readonly ITmtnRepairOrderService _TmtnRepairOrderService;
- private readonly ITispRecordService _tispRecordService;
- private readonly ITmtnAlarmOrderService _tmtnAlarmOrderService;
- private readonly ITsysMessageService _TsysMessageService;
- private static readonly ILog log = LogManager.GetLogger(typeof(ScreenInterfaceDataController));
- /// <summary>
- /// 构造函数
- /// </summary>
- public ScreenInterfaceDataController(ILGSLargeScreenService lGSLargeScreenService, ITmtnDevOpsService TmtnDevOpsService, ITmtnRepairOrderService tmtnRepairOrderService, ITispRecordService tispRecordService, ITmtnAlarmOrderService tmtnAlarmOrderService, ITsysMessageService TsysMessageService)
- {
- _lGSLargeScreenService = lGSLargeScreenService;
- _TmtnDevOpsService = TmtnDevOpsService;
- _TmtnRepairOrderService = tmtnRepairOrderService;
- _tispRecordService = tispRecordService;
- _tmtnAlarmOrderService = tmtnAlarmOrderService;
- _TsysMessageService = TsysMessageService;
- }
- /// <summary>
- /// 设备维保-柱状图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsDaysStatisticsBarChart")]
- public async Task<ApiResult> DevOpsDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
- if (content != null && content.Count() > 0)
- {
- List<string> YData= new List<string>();
- //normal=4、abnormal=3
- //【approval=1;confirm=2;repairOn=3;complete=4;cancel=5;repairRework=6;repairCompleted=7】
- switch (search.DataType)
- {
- case "approval":
- case "1":
- YData = content.Select(d => d.Status1.ToString()).ToList();break;
- case "confirm":
- case "2":
- YData = content.Select(d => d.Status2.ToString()).ToList(); break;
- case "repairOn":
- case "abnormal":
- case "3":
- YData = content.Select(d => d.Status3.ToString()).ToList(); break;
- case "complete":
- case "normal":
- case "4":
- YData = content.Select(d => d.Status4.ToString()).ToList(); break;
- case "cancel":
- case "5":
- YData = content.Select(d => d.Status5.ToString()).ToList(); break;
- case "repairRework":
- case "6":
- YData = content.Select(d => d.Status6.ToString()).ToList(); break;
- case "repairCompleted":
- case "7":
- YData = content.Select(d => d.Status7.ToString()).ToList(); break;
- default:
- YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
- }
- var data = new
- {
- y = YData,
- x = content.Select(d => d.SpecificDay).ToArray()
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- y.Add("0");
- }
- var data = new
- {
- y = y,
- x = x
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备维修-柱状图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("RepairDaysStatisticsBarChart")]
- public async Task<ApiResult> RepairDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days);
- if (content != null && content.Count() > 0)
- {
- List<string> YData = new List<string>();
- switch (search.DataType)
- {
- case "approval":
- case "1":
- YData = content.Select(d => d.Status1.ToString()).ToList(); break;
- case "confirm":
- case "2":
- YData = content.Select(d => d.Status2.ToString()).ToList(); break;
- case "repairOn":
- case "abnormal":
- case "3":
- YData = content.Select(d => d.Status3.ToString()).ToList(); break;
- case "complete":
- case "normal":
- case "4":
- YData = content.Select(d => d.Status4.ToString()).ToList(); break;
- case "cancel":
- case "5":
- YData = content.Select(d => d.Status5.ToString()).ToList(); break;
- case "repairRework":
- case "6":
- YData = content.Select(d => d.Status6.ToString()).ToList(); break;
- case "repairCompleted":
- case "7":
- YData = content.Select(d => d.Status7.ToString()).ToList(); break;
- default:
- YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
- }
- var data = new
- {
- y = YData,
- x = content.Select(d => d.SpecificDay).ToArray()
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- y.Add("0");
- }
- var data = new
- {
- y = y,
- x = x
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备点检-柱状图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("ISPDaysStatisticsBarChart")]
- public async Task<ApiResult> ISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days);
- if (content != null && content.Count() > 0)
- {
- List<string> YData = new List<string>();
- switch (search.DataType)
- {
- case "normal":
- case "1":
- YData = content.Select(d => d.Status1.ToString()).ToList(); break;
- case "abnormal":
- case "2":
- YData = content.Select(d => d.Status2.ToString()).ToList(); break;
- case "3":
- YData = content.Select(d => d.Status3.ToString()).ToList(); break;
- default:
- YData = content.Select(d => d.StatusTotal.ToString()).ToList(); break;
- }
- var data = new
- {
- y = YData,
- x = content.Select(d => d.SpecificDay).ToArray()
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- y.Add("0");
- }
- var data = new
- {
- y = y,
- x = x
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
-
- /// <summary>
- /// 设备【维修、维保、点检】条形图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsRepairISPDaysStatisticsBarChart")]
- public async Task<ApiResult> DevOpsRepairISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search==null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DevOpsRepairISPDaysStatistics> content =null;
- switch (search.Days)
- {
- case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode);break;
- case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
- default:
- break;
- }
- if (content!=null&& content.Count()>0)
- {
- List<LargeScreenInterfaceBar> bar=new List<LargeScreenInterfaceBar>();
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保",
- type = "bar",
- data = GetChartData(search.DataType, "维保", content)
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维修",
- type = "bar",
- data = GetChartData(search.DataType, "维修", content)
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "点检",
- type = "bar",
- data = GetChartData(search.DataType, "点检", content)
- });
- var data = new
- {
- y= content.Select(d => d.SpecificDay).ToArray(),
- x = bar
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y= new List<string>();
- List<string> x= new List<string>();
- for (int i = search.Days; i >= 0; i --)
- {
- y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- x.Add("0");
- }
- var data = new
- {
- y =y,
- x = new
- {
- name="未知",
- type="bar",
- data=x
- }
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备维保-各个状态的条形图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsStatusDaysStatisticsBarChart")]
- public async Task<ApiResult> DevOpsStatusDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
- if (content != null && content.Count() > 0)
- {
- List<LargeScreenInterfaceBar> bar = new List<LargeScreenInterfaceBar>();
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保上报",//Approval
- type = "bar",
- data = content.Select(x => x.Status1.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保确认",//Confirm
- type = "bar",
- data = content.Select(x => x.Status2.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "正在维保",//RepairOn
- type = "bar",
- data = content.Select(x => x.Status3.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保完成",//Complete
- type = "bar",
- data = content.Select(x => x.Status4.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保取消",//Cancel
- type = "bar",
- data = content.Select(x => x.Status5.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保返工",//RepairRework
- type = "bar",
- data = content.Select(x => x.Status6.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "维保完成确认",//RepairCompleted
- type = "bar",
- data = content.Select(x => x.Status7.ToString()).ToList()
- });
- bar.Add(new LargeScreenInterfaceBar
- {
- name = "总数",
- type = "bar",
- data = content.Select(x => x.StatusTotal.ToString()).ToList()
- });
- var data = new
- {
- y = content.Select(d => d.SpecificDay).ToArray(),
- x = bar
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- x.Add("0");
- }
- var data = new
- {
- y = y,
- x = new
- {
- name = "未知",
- type = "bar",
- data = x
- }
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备【维修、维保、点检】堆叠条形图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsRepairISPDaysStatisticsStackBarChart")]
- public async Task<ApiResult> DevOpsRepairISPDaysStatisticsStackBarChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DevOpsRepairISPDaysStatistics> content = null;
- switch (search.Days)
- {
- case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode); break;
- case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
- default:
- break;
- }
- if (content != null && content.Count() > 0)
- {
- List<LargeScreenInterfaceStackBar> bar = new List<LargeScreenInterfaceStackBar>();
- bar.Add(new LargeScreenInterfaceStackBar
- {
- name = "维保",
- type = "bar",
- stack= "total",
- label=new LabelStackBarModel { show= search.LableIsShow },
- data = GetChartData(search.DataType, "维保", content)
- });
- bar.Add(new LargeScreenInterfaceStackBar
- {
- name = "维修",
- type = "bar",
- stack = "total",
- label = new LabelStackBarModel { show = search.LableIsShow },
- data = GetChartData(search.DataType, "维修", content)
- });
- bar.Add(new LargeScreenInterfaceStackBar
- {
- name = "点检",
- type = "bar",
- stack = "total",
- label = new LabelStackBarModel { show = search.LableIsShow },
- data = GetChartData(search.DataType, "点检", content)
- });
- var data = new
- {
- y = content.Select(d => d.SpecificDay).ToArray(),
- x = bar
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- y.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- x.Add("0");
- }
- var data = new
- {
- y = y,
- x = new
- {
- name = "未知",
- type = "bar",
- stack = "total",
- label = new LabelStackBarModel { show = true },
- data = x
- }
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备【维修、维保、点检 】折线图统计[天]
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsRepairISPDaysStatisticsLineChart")]
- public async Task<ApiResult> DevOpsRepairISPDaysStatisticsLineChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DevOpsRepairISPDaysStatistics> content = null;
- string type = "line";string stack = "Total";
- switch (search.Days)
- {
- case 30: content = await _lGSLargeScreenService.DevOpsRepairISP30DaysStatistics(search.DevCode); break;
- case 7: content = await _lGSLargeScreenService.DevOpsRepairISP7DaysStatistics(search.DevCode); break;
- default:
- break;
- }
- if (content != null && content.Count() > 0)
- {
- List<LargeScreenInterfaceLine> bar = new List<LargeScreenInterfaceLine>();
- bar.Add(new LargeScreenInterfaceLine
- {
- name = "维保",
- type = type,
- stack = stack,
- data = GetChartData(search.DataType, "维保", content)
- });
- bar.Add(new LargeScreenInterfaceLine
- {
- name = "维修",
- type = type,
- stack = stack,
- data = GetChartData(search.DataType, "维修", content)
- });
- bar.Add(new LargeScreenInterfaceLine
- {
- name = "点检",
- type = type,
- stack = stack,
- data = GetChartData(search.DataType, "点检", content)
- });
- var data = new
- {
- y = bar,
- x = content.Select(d => d.SpecificDay).ToArray()
- };
- return new ApiResult<object>(data);
- }
- else
- {
- DateTime time = DateTime.Now;
- List<string> y = new List<string>();
- List<string> x = new List<string>();
- for (int i = search.Days; i >= 0; i--)
- {
- x.Add(time.AddDays(-i).ToString("yyyyMMdd"));
- y.Add("0");
- }
- var data = new
- {
- y = new
- {
- name = "未知",
- type = type,
- stack = stack,
- data = y
- },
- x = x
- };
- return new ApiResult<object>(data);
- }
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 根据数据源,类型、名称获取的数组形式的数据
- /// </summary>
- /// <param name="type">数据类型</param>
- /// <param name="name">数据名称</param>
- /// <param name="content">【点检、维保、维修】根据天获取数据统计的数据源</param>
- /// <returns></returns>
- private List<string> GetChartData(string type,string name, IEnumerable<DevOpsRepairISPDaysStatistics> content)
- {
- List<string> arrayStr=new List<string>();
- if (name=="维保")
- {
- switch (type)
- {
- case "complete":
- case "normal":
- case "4": arrayStr = content.Select(d => d.DevOpsNormal.ToString()).ToList(); break;
- case "repairOn":
- case "abnormal":
- case "3": arrayStr = content.Select(d => d.DevOpsAbnormal.ToString()).ToList(); break;
- default: arrayStr = content.Select(d => d.DevOpsTotal.ToString()).ToList(); break;
- }
- }
- else if (name=="维修")
- {
- switch (type)
- {
- case "complete":
- case "normal":
- case "4": arrayStr = content.Select(d => d.RepairOrderNormal.ToString()).ToList(); break;
- case "repairOn":
- case "abnormal":
- case "3": arrayStr = content.Select(d => d.RepairOrderAbnormal.ToString()).ToList(); break;
- default: arrayStr = content.Select(d => d.RepairOrderTotal.ToString()).ToList(); break;
- }
- }
- else if (name == "点检")
- {
- switch (type)
- {
- case "complete":
- case "normal":
- case "4": arrayStr = content.Select(d => d.ISPNormal.ToString()).ToList(); break;
- case "repairOn":
- case "abnormal":
- case "3": arrayStr = content.Select(d => d.ISPAbnormal.ToString()).ToList(); break;
- default: arrayStr = content.Select(d => d.ISPTotal.ToString()).ToList(); break;
- }
- }
- return arrayStr;
- }
- /// <summary>
- /// 报警工单状态【1、2、3、4、5、6、7】-饼图统计
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("AlarmOrderStatusStatisticsMonthPieChart")]
- public async Task<ApiResult> AlarmOrderStatusStatisticsMonthPieChart(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- var content = await _tmtnAlarmOrderService.GetAlarmOrderStatisticsAsync(search.DevCode,search.MonthNum);
- List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
- if (content != null)
- {
- if (search.StatusArray!=null&&search.StatusArray.Count>0)
- {
- foreach (var item in search.StatusArray)
- {
- switch (item)
- {
- case 1: data.Add(new LargeScreenInterfacePie { name = "报警上报", value = content.Approval.ToString(), });break;
- case 2: data.Add(new LargeScreenInterfacePie { name = "报警确认", value = content.Confirm.ToString(), }); break;
- case 3: data.Add(new LargeScreenInterfacePie { name = "报警处理", value = content.RepairOn.ToString(), });break;
- case 4: data.Add(new LargeScreenInterfacePie { name = "报警审批", value = content.Complete.ToString(), }); break;
- case 5: data.Add(new LargeScreenInterfacePie { name = "报警取消", value = content.Cancel.ToString(), }); break;
- case 6: data.Add(new LargeScreenInterfacePie { name = "报警返工", value = content.RepairRework.ToString(), }); break;
- case 7: data.Add(new LargeScreenInterfacePie { name = "报警完成审批", value = content.RepairCompleted.ToString(), }); break;
- default: data.Add(new LargeScreenInterfacePie { name = "其它"+ item, value = "0", }); break;
- }
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "报警上报", value = content.Approval.ToString(), });//1上报处理报警
- data.Add(new LargeScreenInterfacePie { name = "报警确认", value = content.Confirm.ToString(), });//2报警确认
- data.Add(new LargeScreenInterfacePie { name = "报警处理", value = content.RepairOn.ToString(), });//3正在处理报警
- data.Add(new LargeScreenInterfacePie { name = "报警审批", value = content.Complete.ToString(), });//4报警处理完成
- data.Add(new LargeScreenInterfacePie { name = "报警取消", value = content.Cancel.ToString(), });//5报警取消
- data.Add(new LargeScreenInterfacePie { name = "报警返工", value = content.RepairRework.ToString(), });//6报警处理返工
- data.Add(new LargeScreenInterfacePie { name = "报警完成审批", value = content.RepairCompleted.ToString(), });//7报警处理完成确认
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
- }
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 维保状态【1、2、3、4、5、6、7】-饼图统计
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("GeDevOpsStatisticsMonthPieAsync")]
- public async Task<ApiResult> GeDevOpsStatisticsMonthPieAsync(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- var content = await _lGSLargeScreenService.GeDevOpsStatisticsMonthPieAsync(search.DevCode, search.MonthNum);
- List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
- if (content != null)
- {
- if (search.StatusArray != null && search.StatusArray.Count > 0)
- {
- foreach (var item in search.StatusArray)
- {
- switch (item)
- {
- case 1: data.Add(new LargeScreenInterfacePie { name = "维保上报", value = content.Approval.ToString(), }); break;
- case 2: data.Add(new LargeScreenInterfacePie { name = "维保确认", value = content.Confirm.ToString(), }); break;
- case 3: data.Add(new LargeScreenInterfacePie { name = "维保处理", value = content.RepairOn.ToString(), }); break;
- case 4: data.Add(new LargeScreenInterfacePie { name = "维保审批", value = content.Complete.ToString(), }); break;
- case 5: data.Add(new LargeScreenInterfacePie { name = "维保取消", value = content.Cancel.ToString(), }); break;
- case 6: data.Add(new LargeScreenInterfacePie { name = "维保返工", value = content.RepairRework.ToString(), }); break;
- case 7: data.Add(new LargeScreenInterfacePie { name = "维保完成审批", value = content.RepairCompleted.ToString(), }); break;
- default: data.Add(new LargeScreenInterfacePie { name = "其它" + item, value = "0", }); break;
- }
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "维保上报", value = content.Approval.ToString(), });//上报维保(维保上报)
- data.Add(new LargeScreenInterfacePie { name = "维保确认", value = content.Confirm.ToString(), });//维保确认
- data.Add(new LargeScreenInterfacePie { name = "维保处理", value = content.RepairOn.ToString(), });//正在维保
- data.Add(new LargeScreenInterfacePie { name = "维保审批", value = content.Complete.ToString(), });//维保完成
- data.Add(new LargeScreenInterfacePie { name = "维保取消", value = content.Cancel.ToString(), });//维保取消
- data.Add(new LargeScreenInterfacePie { name = "维保返工", value = content.RepairRework.ToString(), });//维保修复(维保返工)
- data.Add(new LargeScreenInterfacePie { name = "维保完成审批", value = content.RepairCompleted.ToString(), });//维保完成确认
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
- }
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 维修状态【1、2、3、4、5、6、7】-饼图统计
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("GeRepairOrderStatisticsMonthPieAsync")]
- public async Task<ApiResult> GeRepairOrderStatisticsMonthPieAsync(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- var content = await _lGSLargeScreenService.GeRepairOrderStatisticsMonthPieAsync(search.DevCode, search.MonthNum);
- List<LargeScreenInterfacePie> data = new List<LargeScreenInterfacePie>();
- if (content != null)
- {
- if (search.StatusArray != null && search.StatusArray.Count > 0)
- {
- foreach (var item in search.StatusArray)
- {
- switch (item)
- {
- case 1: data.Add(new LargeScreenInterfacePie { name = "故障上报", value = content.Approval.ToString(), }); break;
- case 2: data.Add(new LargeScreenInterfacePie { name = "维修确认", value = content.Confirm.ToString(), }); break;
- case 3: data.Add(new LargeScreenInterfacePie { name = "维修处理", value = content.RepairOn.ToString(), }); break;
- case 4: data.Add(new LargeScreenInterfacePie { name = "维修审批", value = content.Complete.ToString(), }); break;
- case 5: data.Add(new LargeScreenInterfacePie { name = "维修取消", value = content.Cancel.ToString(), }); break;
- case 6: data.Add(new LargeScreenInterfacePie { name = "维修返工", value = content.RepairRework.ToString(), }); break;
- case 7: data.Add(new LargeScreenInterfacePie { name = "维修完成审批", value = content.RepairCompleted.ToString(), }); break;
- default: data.Add(new LargeScreenInterfacePie { name = "其它" + item, value = "0", }); break;
- }
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "故障上报", value = content.Approval.ToString(), });//报修(故障上报)
- data.Add(new LargeScreenInterfacePie { name = "维修确认", value = content.Confirm.ToString(), });//维修确认
- data.Add(new LargeScreenInterfacePie { name = "维修处理", value = content.RepairOn.ToString(), });//正在维修
- data.Add(new LargeScreenInterfacePie { name = "维修审批", value = content.Complete.ToString(), });//维修完成
- data.Add(new LargeScreenInterfacePie { name = "维修取消", value = content.Cancel.ToString(), });//维修取消
- data.Add(new LargeScreenInterfacePie { name = "维修返工", value = content.RepairRework.ToString(), });//故障修复(维修返工)
- data.Add(new LargeScreenInterfacePie { name = "维修完成审批", value = content.RepairCompleted.ToString(), });//维修完成确认
- }
- }
- else
- {
- data.Add(new LargeScreenInterfacePie { name = "未知", value = "0" });
- }
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备维保-统计[天]-列表
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("DevOpsDaysStatisticsList")]
- public async Task<ApiResult> DevOpsDaysStatisticsList(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days);
- if (search.Columns == null || search.Columns.Count==0)
- {
- search.Columns = new List<LargeScreenInterfaceListColumns>();
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保上报", key = "Approval" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保确认", key = "Confirm" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正在维保", key = "RepairOn" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保完成", key = "Complete" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保取消", key = "Cancel" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保返工", key = "RepairRework" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维保完成确认", key = "RepairCompleted" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "DevOpsTotal" });
- }
- List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
- if (content != null && content.Count() > 0)
- {
- foreach (var item in content)
- {
- if (item!=null)
- {
- Dictionary<string, string> rows = new Dictionary<string, string>();
- foreach (var index in search.Columns)
- {
- switch (index.key)
- {
- case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
- case "Approval": rows.Add(index.key, item.Status1.ToString()); break;
- case "Confirm": rows.Add(index.key, item.Status2.ToString()); break;
- case "RepairOn": rows.Add(index.key, item.Status3.ToString()); break;
- case "Complete": rows.Add(index.key, item.Status4.ToString()); break;
- case "Cancel": rows.Add(index.key, item.Status5.ToString()); break;
- case "RepairRework": rows.Add(index.key, item.Status6.ToString()); break;
- case "RepairCompleted": rows.Add(index.key, item.Status7.ToString()); break;
- case "DevOpsTotal": rows.Add(index.key, item.StatusTotal.ToString()); break;
- default: rows.Add(index.key,"未知"); break;
- }
- }
- datas.Add(rows);
- }
- }
- }
- else
- {
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
- Dictionary<string, string> rows = new Dictionary<string, string>();
- rows.Add("null", "未知");
- datas.Add(rows);
- }
- var data = new
- {
- columns = search.Columns,
- data = datas
- };
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备维修-统计[天]-列表
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("RepairOrderDaysStatisticsList")]
- public async Task<ApiResult> RepairOrderDaysStatisticsList(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days);
- if (search.Columns == null || search.Columns.Count == 0)
- {
- search.Columns = new List<LargeScreenInterfaceListColumns>();
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修上报", key = "Approval" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修确认", key = "Confirm" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正在维修", key = "RepairOn" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修完成", key = "Complete" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修取消", key = "Cancel" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修返工", key = "RepairRework" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修完成确认", key = "RepairCompleted" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "Total" });
- }
- List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
- if (content != null && content.Count() > 0)
- {
- foreach (var item in content)
- {
- if (item != null)
- {
- Dictionary<string, string> rows = new Dictionary<string, string>();
- foreach (var index in search.Columns)
- {
- switch (index.key)
- {
- case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
- case "Approval": rows.Add(index.key, item.Status1.ToString()); break;
- case "Confirm": rows.Add(index.key, item.Status2.ToString()); break;
- case "RepairOn": rows.Add(index.key, item.Status3.ToString()); break;
- case "Complete": rows.Add(index.key, item.Status4.ToString()); break;
- case "Cancel": rows.Add(index.key, item.Status5.ToString()); break;
- case "RepairRework": rows.Add(index.key, item.Status6.ToString()); break;
- case "RepairCompleted": rows.Add(index.key, item.Status7.ToString()); break;
- case "Total": rows.Add(index.key, item.StatusTotal.ToString()); break;
- default: rows.Add(index.key, "未知"); break;
- }
- }
- datas.Add(rows);
- }
- }
- }
- else
- {
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
- Dictionary<string, string> rows = new Dictionary<string, string>();
- rows.Add("null", "未知");
- datas.Add(rows);
- }
- var data = new
- {
- columns = search.Columns,
- data = datas
- };
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 设备点检-统计[天]-列表
- /// </summary>
- /// <param name="search"></param>
- /// <returns></returns>
- [HttpPost("ISPDaysStatisticsList")]
- public async Task<ApiResult> ISPDaysStatisticsList(LargeScreenInterfaceDataSearch search)
- {
- if (search == null || string.IsNullOrEmpty(search.DevCode))
- {
- return new ApiResult(ReturnCode.GeneralError);
- }
- try
- {
- IEnumerable<DaysStatusStatistics> content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days);
- if (search.Columns == null || search.Columns.Count == 0)
- {
- search.Columns = new List<LargeScreenInterfaceListColumns>();
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "日期", key = "SpecificDay" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "正常", key = "Normal" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "异常", key = "Abnormal" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "确认异常", key = "ConfirmAbnormal" });
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "总数", key = "Total" });
- }
- List<Dictionary<string, string>> datas = new List<Dictionary<string, string>>();
- if (content != null && content.Count() > 0)
- {
- foreach (var item in content)
- {
- if (item != null)
- {
- Dictionary<string, string> rows = new Dictionary<string, string>();
- foreach (var index in search.Columns)
- {
- switch (index.key)
- {
- case "SpecificDay": rows.Add(index.key, item.SpecificDay); break;
- case "Normal": rows.Add(index.key, item.Status1.ToString()); break;
- case "Abnormal": rows.Add(index.key, item.Status2.ToString()); break;
- case "ConfirmAbnormal": rows.Add(index.key, item.Status3.ToString()); break;
- case "Total": rows.Add(index.key, item.StatusTotal.ToString()); break;
- default: rows.Add(index.key, "未知"); break;
- }
- }
- datas.Add(rows);
- }
- }
- }
- else
- {
- search.Columns.Add(new LargeScreenInterfaceListColumns() { title = "未知", key = "null" });
- Dictionary<string, string> rows = new Dictionary<string, string>();
- rows.Add("null", "未知");
- datas.Add(rows);
- }
- var data = new
- {
- columns = search.Columns,
- data = datas
- };
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 通过消息名称条件查询
- /// </summary>
- /// <param name="searchModel"></param>
- /// <returns></returns>
- [HttpPost("GetMessagesColumnByAsync")]
- public async Task<ApiResult> GetMessagesColumnByAsync(TsysMessageSearchModel searchModel)
- {
- if (searchModel == null)
- {
- return new ApiResult(ReturnCode.ArgsError);
- }
- try
- {
- //统一接口加了start/end参数,
- searchModel.BeginTime= searchModel.Start;
- searchModel.EndTime= searchModel.End;
- //TpushMsgModel
- List<LargeScreenInterfaceListColumns> Columns = new List<LargeScreenInterfaceListColumns>();
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备名称", key = "devName" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备编码", key = "devNumber" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警时间", key = "createOn" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警类型", key = "subject" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警内容", key = "msg" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "报警来源", key = "userName" });
- var contentList = await _TsysMessageService.GetConditionAsync(searchModel);
- var contents=contentList.Select(x =>JsonConvert.DeserializeObject< TpushMsgModel>( x.C_Content)).ToList();
- var data = new
- {
- columns = Columns,
- data = new PagesModel<TpushMsgModel>(items: contents, searchModel)
- };
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- /// <summary>
- /// 条件查询维修工单列表包含模板图片
- /// </summary>
- /// <param name="searchModel"></param>
- /// <returns></returns>
- [HttpPost("GetRepairOrderColumnAsync/{name=}")]
- public async Task<ApiResult> GetRepairOrderColumnAsync(TmtnRepairOrderRecordSearchModel searchModel, string name)
- {
- if (searchModel == null)
- {
- return new ApiResult(ReturnCode.ArgsError);
- }
- //searchModel.IsPagination = false;
- try
- {
- //TpushMsgModel
- List<LargeScreenInterfaceListColumns> Columns = new List<LargeScreenInterfaceListColumns>();
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修原由", key = "c_Name" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "设备名称", key = "devName" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修人员", key = "createByName" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修时间", key = "d_CreateOn" });
- Columns.Add(new LargeScreenInterfaceListColumns() { title = "维修状态", key = "c_Status1" });
- IEnumerable<TmtnRepairOrderRecordDetailViewMode> contentList = await _TmtnRepairOrderService.GetRecordsConditionAsync(searchModel);
- if (contentList != null && contentList.Count() > 0)
- {
- if (contentList.FirstOrDefault() == null)
- {
- var removed = contentList.ToList();
- removed.RemoveAt(0);
- contentList = removed;
- }
- if ( !string.IsNullOrWhiteSpace(name))
- {
- contentList = contentList.Where(x => x.C_Name.Contains(name));
- }
- }
- var data = new
- {
- columns = Columns,
- data = new PagesModel<TmtnRepairOrderRecordDetailViewMode>(contentList, searchModel)
- };
- return new ApiResult<object>(data);
- }
- catch (Exception ex)
- {
- return new ApiResult(ReturnCode.GeneralError, ex.Message);
- }
- }
- }
- }
|