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; 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 static readonly ILog log = LogManager.GetLogger(typeof(ScreenInterfaceDataController)); /// /// 构造函数 /// public ScreenInterfaceDataController(ILGSLargeScreenService lGSLargeScreenService, ITmtnDevOpsService TmtnDevOpsService, ITmtnRepairOrderService tmtnRepairOrderService, ITispRecordService tispRecordService, ITmtnAlarmOrderService tmtnAlarmOrderService) { _lGSLargeScreenService = lGSLargeScreenService; _TmtnDevOpsService = TmtnDevOpsService; _TmtnRepairOrderService = tmtnRepairOrderService; _tispRecordService = tispRecordService; _tmtnAlarmOrderService = tmtnAlarmOrderService; } /// /// 设备维保-柱状图统计[天] /// /// /// [HttpPost("DevOpsDaysStatisticsBarChart")] public async Task DevOpsDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days); if (content != null && content.Count() > 0) { List YData= new List(); //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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备维修-柱状图统计[天] /// /// /// [HttpPost("RepairDaysStatisticsBarChart")] public async Task RepairDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days); if (content != null && content.Count() > 0) { List YData = new List(); 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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备点检-柱状图统计[天] /// /// /// [HttpPost("ISPDaysStatisticsBarChart")] public async Task ISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days); if (content != null && content.Count() > 0) { List YData = new List(); 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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备【维修、维保、点检】条形图统计[天] /// /// /// [HttpPost("DevOpsRepairISPDaysStatisticsBarChart")] public async Task DevOpsRepairISPDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search) { if (search==null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable 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 bar=new List(); 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(data); } else { DateTime time = DateTime.Now; List y= new List(); List x= new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备维保-各个状态的条形图统计[天] /// /// /// [HttpPost("DevOpsStatusDaysStatisticsBarChart")] public async Task DevOpsStatusDaysStatisticsBarChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days); if (content != null && content.Count() > 0) { List bar = new List(); 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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备【维修、维保、点检】堆叠条形图统计[天] /// /// /// [HttpPost("DevOpsRepairISPDaysStatisticsStackBarChart")] public async Task DevOpsRepairISPDaysStatisticsStackBarChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable 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 bar = new List(); 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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备【维修、维保、点检 】折线图统计[天] /// /// /// [HttpPost("DevOpsRepairISPDaysStatisticsLineChart")] public async Task DevOpsRepairISPDaysStatisticsLineChart(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable 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 bar = new List(); 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(data); } else { DateTime time = DateTime.Now; List y = new List(); List x = new List(); 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(data); } } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 根据数据源,类型、名称获取的数组形式的数据 /// /// 数据类型 /// 数据名称 /// 【点检、维保、维修】根据天获取数据统计的数据源 /// private List GetChartData(string type,string name, IEnumerable content) { List arrayStr=new List(); 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; } /// /// 报警工单状态【1、2、3、4、5、6、7】-饼图统计 /// /// /// [HttpPost("AlarmOrderStatusStatisticsMonthPieChart")] public async Task 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 data = new List(); 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(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 维保状态【1、2、3、4、5、6、7】-饼图统计 /// /// /// [HttpPost("GeDevOpsStatisticsMonthPieAsync")] public async Task 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 data = new List(); 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(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 维修状态【1、2、3、4、5、6、7】-饼图统计 /// /// /// [HttpPost("GeRepairOrderStatisticsMonthPieAsync")] public async Task 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 data = new List(); 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(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备维保-统计[天]-列表 /// /// /// [HttpPost("DevOpsDaysStatisticsList")] public async Task DevOpsDaysStatisticsList(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.DevOpsDaysStatistics(search.DevCode, search.Days); if (search.Columns == null || search.Columns.Count==0) { search.Columns = new List(); 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> datas = new List>(); if (content != null && content.Count() > 0) { foreach (var item in content) { if (item!=null) { Dictionary rows = new Dictionary(); 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 rows = new Dictionary(); rows.Add("null", "未知"); datas.Add(rows); } var data = new { columns = search.Columns, data = datas }; return new ApiResult(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备维修-统计[天]-列表 /// /// /// [HttpPost("RepairOrderDaysStatisticsList")] public async Task RepairOrderDaysStatisticsList(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.RepairOrderDaysStatistics(search.DevCode, search.Days); if (search.Columns == null || search.Columns.Count == 0) { search.Columns = new List(); 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> datas = new List>(); if (content != null && content.Count() > 0) { foreach (var item in content) { if (item != null) { Dictionary rows = new Dictionary(); 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 rows = new Dictionary(); rows.Add("null", "未知"); datas.Add(rows); } var data = new { columns = search.Columns, data = datas }; return new ApiResult(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } /// /// 设备点检-统计[天]-列表 /// /// /// [HttpPost("ISPDaysStatisticsList")] public async Task ISPDaysStatisticsList(LargeScreenInterfaceDataSearch search) { if (search == null || string.IsNullOrEmpty(search.DevCode)) { return new ApiResult(ReturnCode.GeneralError); } try { IEnumerable content = await _lGSLargeScreenService.ISPDaysStatistics(search.DevCode, search.Days); if (search.Columns == null || search.Columns.Count == 0) { search.Columns = new List(); 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> datas = new List>(); if (content != null && content.Count() > 0) { foreach (var item in content) { if (item != null) { Dictionary rows = new Dictionary(); 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 rows = new Dictionary(); rows.Add("null", "未知"); datas.Add(rows); } var data = new { columns = search.Columns, data = datas }; return new ApiResult(data); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } } }