diff --git a/DOAN.Admin.WebApi/Controllers/MES/BigScreen/quality/QualityController.cs b/DOAN.Admin.WebApi/Controllers/MES/BigScreen/quality/QualityController.cs index 1cd2c79..c02a21c 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/BigScreen/quality/QualityController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/BigScreen/quality/QualityController.cs @@ -11,5 +11,88 @@ namespace DOAN.WebApi.Controllers.MES.BigScreen [AllowAnonymous] [Route("mes/bigscreen/quality")] public class QualityController : BaseController - {} + { + private readonly IQualityBigScreenService bigScreenService; + + public QualityController(IQualityBigScreenService bigScreenService) + { + this.bigScreenService=bigScreenService; + } + + /// + /// 获取今日IQC 缺陷饼图 + /// + /// + + [HttpGet("get_moudle01")] + public IActionResult GetMoudle01() + { + var response = bigScreenService.GetMoudle01(); + return SUCCESS(response); + } + + /// + /// 获取今日IpQC 缺陷饼图 + /// + /// + + [HttpGet("get_moudle02")] + public IActionResult GetMoudle02() + { + var response = bigScreenService.GetMoudle02(); + return SUCCESS(response); + } + + + /// + /// 获取今日FQC 缺陷饼图 + /// + /// + + [HttpGet("get_moudle03")] + public IActionResult GetMoudle03() + { + var response = bigScreenService.GetMoudle03(); + return SUCCESS(response); + } + + + /// + /// 获取近 七日 IQC 缺陷直方图 + /// + /// + + [HttpGet("get_moudle04")] + public IActionResult GetMoudle04() + { + var response = bigScreenService.GetMoudle04(); + return SUCCESS(response); + } + + + /// + /// 获取近 七日 IPQC 缺陷直方图 + /// + /// + + [HttpGet("get_moudle05")] + public IActionResult GetMoudle05() + { + var response = bigScreenService.GetMoudle05(); + return SUCCESS(response); + } + + + /// + /// 获取近 七日 FQC 缺陷直方图 + /// + /// + + [HttpGet("get_moudle06")] + public IActionResult GetMoudle06() + { + var response = bigScreenService.GetMoudle06(); + return SUCCESS(response); + } + } } \ No newline at end of file diff --git a/DOAN.Service/MES/bigScreen/IService/IQualityBigScreenService.cs b/DOAN.Service/MES/bigScreen/IService/IQualityBigScreenService.cs index 190c4a8..554237e 100644 --- a/DOAN.Service/MES/bigScreen/IService/IQualityBigScreenService.cs +++ b/DOAN.Service/MES/bigScreen/IService/IQualityBigScreenService.cs @@ -1,7 +1,15 @@ using DOAN.Model.MES.bigscreen.Dto; using DOAN.Model.MES.dev; +using DOAN.Model.mes.echarts; namespace DOAN.Service.MES.bigScreen.IService; public interface IQualityBigScreenService : IBaseService -{} \ No newline at end of file +{ + EchartsOptions GetMoudle01(); + EchartsOptions GetMoudle02(); + EchartsOptions GetMoudle03(); + EchartsOptions GetMoudle04(); + EchartsOptions GetMoudle05(); + EchartsOptions GetMoudle06(); +} \ No newline at end of file diff --git a/DOAN.Service/MES/bigScreen/ProductBigScreenService.cs b/DOAN.Service/MES/bigScreen/ProductBigScreenService.cs index ad9f20e..095c279 100644 --- a/DOAN.Service/MES/bigScreen/ProductBigScreenService.cs +++ b/DOAN.Service/MES/bigScreen/ProductBigScreenService.cs @@ -60,8 +60,8 @@ public class ProductBigScreenService : BaseService, IProductBigScr var Title = new EchartsTitle(); - Title.Text = "7日产量趋势图"; - Title.SubText = "7日产量趋势图"; + Title.Text = "前7日产量趋势图"; + Title.SubText = "前7日产量趋势图"; LineEchart.Title = Title; var XAxis = new EchartsXAxis(); @@ -114,8 +114,8 @@ public class ProductBigScreenService : BaseService, IProductBigScr var Title = new EchartsTitle(); - Title.Text = "7日工单趋势图"; - Title.SubText = "7日工单趋势图"; + Title.Text = "本周工单趋势图"; + Title.SubText = "本周工单趋势图"; LineEchart.Title = Title; var XAxis = new EchartsXAxis(); @@ -204,7 +204,7 @@ public class ProductBigScreenService : BaseService, IProductBigScr // List Series=new List(); EchartsSeries SeriesData = new EchartsSeries(); - var EchartsSeriesDataList= Context.Queryable().LeftJoin((w, l) => + var EchartsSeriesDataList= Context.Queryable().LeftJoin((w, l) => w.Workorder == l.Workorder ) .Where((w,l)=>w.WorkorderDate < DateTime.Today.AddDays(1) && w.WorkorderDate < DateTime.Today.AddDays(-6)) diff --git a/DOAN.Service/MES/bigScreen/QualityBigScreenService.cs b/DOAN.Service/MES/bigScreen/QualityBigScreenService.cs index 1d09b84..e302266 100644 --- a/DOAN.Service/MES/bigScreen/QualityBigScreenService.cs +++ b/DOAN.Service/MES/bigScreen/QualityBigScreenService.cs @@ -2,7 +2,12 @@ using Infrastructure.Attribute; using DOAN.Model.MES.base_; using DOAN.Model.MES.bigscreen.Dto; using DOAN.Model.MES.dev; +using DOAN.Model.mes.echarts; using DOAN.Model.MES.mm; +using DOAN.Model.MES.product; +using DOAN.Model.MES.quality.FQC; +using DOAN.Model.MES.quality.IPQC; +using DOAN.Model.MES.quality.IQC; using DOAN.Service.MES.bigScreen.IService; @@ -13,7 +18,268 @@ namespace DOAN.Service.MES.bigScreen /// [AppService(ServiceType = typeof(IQualityBigScreenService), ServiceLifetime = LifeTime.Transient)] public class QualityBigScreenService : BaseService, IQualityBigScreenService - {} + { + public EchartsOptions GetMoudle01() + { + var LineEchart = new EchartsOptions(); + + LineEchart.Title = new EchartsTitle("今天IQC缺陷分布占比", "今天IQC缺陷分布占比"); + + // List Series=new List(); + EchartsSeries SeriesData = new EchartsSeries(); + + var EchartsSeriesDataList= Context.Queryable() + .Where(it=>it.DateTime==DateTime.Today) + .Where(it=>it.Type==1) + .GroupBy(it=>it.DefectDescription) + .Select(it => new EchartsSeriesData + { + Name = it.DefectDescription, + Value = SqlFunc.AggregateSum(it.Quantity) + + }).ToList(); + SeriesData.Type = "pie"; + SeriesData.Data = EchartsSeriesDataList; + SeriesData.Name = "缺陷数"; + LineEchart.Series= new List(){SeriesData}; + return LineEchart; + } + + public EchartsOptions GetMoudle02() + { + var LineEchart = new EchartsOptions(); + + LineEchart.Title = new EchartsTitle("今天IPQC缺陷分布占比", "今天IPQC缺陷分布占比"); + + // List Series=new List(); + EchartsSeries SeriesData = new EchartsSeries(); + + var EchartsSeriesDataList= Context.Queryable() + .Where(it=>it.DateTime==DateTime.Today) + .Where(it=>it.Type==2) + .GroupBy(it=>it.DefectDescription) + .Select(it => new EchartsSeriesData + { + Name = it.DefectDescription, + Value = SqlFunc.AggregateSum(it.Quantity) + + }).ToList(); + SeriesData.Type = "pie"; + SeriesData.Data = EchartsSeriesDataList; + SeriesData.Name = "缺陷数"; + LineEchart.Series= new List(){SeriesData}; + return LineEchart; + } + + public EchartsOptions GetMoudle03() + { + var LineEchart = new EchartsOptions(); + + LineEchart.Title = new EchartsTitle("今天FQC缺陷分布占比", "今天FQC缺陷分布占比"); + + // List Series=new List(); + EchartsSeries SeriesData = new EchartsSeries(); + + var EchartsSeriesDataList = Context.Queryable() + .LeftJoin((p, f) => p.Workorder == f.Workorder) + .LeftJoin((p, f, d) => f.DefectCode == d.Code) + .Where((p, f, d) => p.WorkorderDate == DateTime.Today) + .GroupBy((p, f, d) => new { f.DefectCode, d.Name }) + .Select((p, f, d) => new EchartsSeriesData() + { + Name = d.Name, + Value = SqlFunc.AggregateSum(f.Number ?? 0) + }).ToList(); + + + + + + + + + + SeriesData.Type = "pie"; + SeriesData.Data = EchartsSeriesDataList; + SeriesData.Name = "缺陷数"; + LineEchart.Series= new List(){SeriesData}; + return LineEchart; + } + + public EchartsOptions GetMoudle04() + { + var LineEchart = new EchartsOptions(); + + + var Title = new EchartsTitle(); + Title.Text = "前7日IQC缺陷数量直方图"; + Title.SubText = "前7日IQC缺陷数量直方图"; + LineEchart.Title = Title; + + var XAxis = new EchartsXAxis(); + + // 获取今天的日期 + var today = DateTime.Today; + + // 创建一个数组来存储七天的日期 + var dates = new DateTime[7]; + + // 填充数组 + for (var i = 0; i < 7; i++) dates[i] = today.AddDays(-i); + + // 反转数组,使得日期从最早的开始 + Array.Reverse(dates); + XAxis.Data = dates.Select(it => it.ToString("yyyy-MM-dd")).ToList(); + LineEchart.XAxis = XAxis; + + + var Series = new EchartsSeries(); + + + var SeriesData =Context.Queryable() + .Where(it=>it.Type==1) + .Where(it=>it.DateTime>DateTime.Today.AddDays(-6)&&it.DateTimeit.DateTime) + .Select(it=> new EchartsSeriesData + { + Name =it.DateTime.Value.ToString("yyyy-MM-dd"), + Value = SqlFunc.AggregateSum(it.Quantity) + }).ToList(); + + + + + Series.Data = SeriesData; + Series.Type = "line"; + Series.Name = "缺陷数"; + + LineEchart.Series = new List(){Series}; + + return LineEchart; + } + + public EchartsOptions GetMoudle05() + { + var LineEchart = new EchartsOptions(); + + + var Title = new EchartsTitle(); + Title.Text = "前7日IQC缺陷数量直方图"; + Title.SubText = "前7日IQC缺陷数量直方图"; + LineEchart.Title = Title; + + var XAxis = new EchartsXAxis(); + + // 获取今天的日期 + var today = DateTime.Today; + + // 创建一个数组来存储七天的日期 + var dates = new DateTime[7]; + + // 填充数组 + for (var i = 0; i < 7; i++) dates[i] = today.AddDays(-i); + + // 反转数组,使得日期从最早的开始 + Array.Reverse(dates); + XAxis.Data = dates.Select(it => it.ToString("yyyy-MM-dd")).ToList(); + LineEchart.XAxis = XAxis; + + + var Series = new EchartsSeries(); + + + var SeriesData =Context.Queryable() + .Where(it=>it.Type==2) + .Where(it=>it.DateTime>DateTime.Today.AddDays(-6)&&it.DateTimeit.DateTime) + .Select(it=> new EchartsSeriesData + { + Name =it.DateTime.Value.ToString("yyyy-MM-dd"), + Value = SqlFunc.AggregateSum(it.Quantity) + }).ToList(); + + + + + Series.Data = SeriesData; + Series.Type = "line"; + Series.Name = "缺陷数"; + + LineEchart.Series = new List(){Series}; + + return LineEchart; + } + + public EchartsOptions GetMoudle06() + { + + var LineEchart = new EchartsOptions(); + + + var Title = new EchartsTitle(); + Title.Text = "前7日FQC缺陷数量直方图"; + Title.SubText = "前7日FQC缺陷数量直方图"; + LineEchart.Title = Title; + + var XAxis = new EchartsXAxis(); + + // 获取今天的日期 + var today = DateTime.Today; + + // 创建一个数组来存储七天的日期 + var dates = new DateTime[7]; + + // 填充数组 + for (var i = 0; i < 7; i++) dates[i] = today.AddDays(-i); + + // 反转数组,使得日期从最早的开始 + Array.Reverse(dates); + XAxis.Data = dates.Select(it => it.ToString("yyyy-MM-dd")).ToList(); + LineEchart.XAxis = XAxis; + + + + + + var result =Context.Queryable() + .LeftJoin((p, f) => p.Workorder == f.Workorder) + .LeftJoin((p, f, d) => f.DefectCode == d.Code) + .Where((p, f, d) => p.WorkorderDate>DateTime.Today.AddDays(-6)&&p.WorkorderDate new { p.WorkorderDate ,f.DefectCode,d.Name}) + .Select((p, f, d) => new + { + WorkorderDate=p.WorkorderDate, + DefectCode=f.DefectCode, + Name = d.Name, + Value = SqlFunc.AggregateSum(f.Number ?? 0) + }).ToList(); + List QcDefectConfigList= Context.Queryable().ToList(); + var list = new List(); + foreach (var item in QcDefectConfigList) + { + EchartsSeries QcSeries = new EchartsSeries(); + QcSeries.Name = item.Name+"-缺陷数"; + List Data = result.Where(it => it.DefectCode == item.Code) + .Select(it => new EchartsSeriesData() + { + Name = it.Name, + Value = it.Value + }).ToList(); + QcSeries.Data = Data; + + + list.Add(QcSeries); + + } + + LineEchart.Series = list; + + return LineEchart; + + } + } }