|
@@ -0,0 +1,1057 @@
|
|
|
|
+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));
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 构造函数
|
|
|
|
+ /// </summary>
|
|
|
|
+ public ScreenInterfaceDataController(ILGSLargeScreenService lGSLargeScreenService, ITmtnDevOpsService TmtnDevOpsService, ITmtnRepairOrderService tmtnRepairOrderService, ITispRecordService tispRecordService, ITmtnAlarmOrderService tmtnAlarmOrderService)
|
|
|
|
+ {
|
|
|
|
+ _lGSLargeScreenService = lGSLargeScreenService;
|
|
|
|
+ _TmtnDevOpsService = TmtnDevOpsService;
|
|
|
|
+ _TmtnRepairOrderService = tmtnRepairOrderService;
|
|
|
|
+ _tispRecordService = tispRecordService;
|
|
|
|
+ _tmtnAlarmOrderService = tmtnAlarmOrderService;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|