质量大屏

This commit is contained in:
qianhao.xu 2024-11-11 20:02:27 +08:00
parent 56eba54156
commit 68f3cc9bc4
4 changed files with 365 additions and 8 deletions

View File

@ -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;
}
/// <summary>
/// 获取今日IQC 缺陷饼图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle01")]
public IActionResult GetMoudle01()
{
var response = bigScreenService.GetMoudle01();
return SUCCESS(response);
}
/// <summary>
/// 获取今日IpQC 缺陷饼图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle02")]
public IActionResult GetMoudle02()
{
var response = bigScreenService.GetMoudle02();
return SUCCESS(response);
}
/// <summary>
/// 获取今日FQC 缺陷饼图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle03")]
public IActionResult GetMoudle03()
{
var response = bigScreenService.GetMoudle03();
return SUCCESS(response);
}
/// <summary>
/// 获取近 七日 IQC 缺陷直方图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle04")]
public IActionResult GetMoudle04()
{
var response = bigScreenService.GetMoudle04();
return SUCCESS(response);
}
/// <summary>
/// 获取近 七日 IPQC 缺陷直方图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle05")]
public IActionResult GetMoudle05()
{
var response = bigScreenService.GetMoudle05();
return SUCCESS(response);
}
/// <summary>
/// 获取近 七日 FQC 缺陷直方图
/// </summary>
/// <returns></returns>
[HttpGet("get_moudle06")]
public IActionResult GetMoudle06()
{
var response = bigScreenService.GetMoudle06();
return SUCCESS(response);
}
}
}

View File

@ -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<DeviceAccount>
{}
{
EchartsOptions GetMoudle01();
EchartsOptions GetMoudle02();
EchartsOptions GetMoudle03();
EchartsOptions GetMoudle04();
EchartsOptions GetMoudle05();
EchartsOptions GetMoudle06();
}

View File

@ -60,8 +60,8 @@ public class ProductBigScreenService : BaseService<ProWorkorder>, 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<ProWorkorder>, 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<ProWorkorder>, IProductBigScr
// List<EchartsSeries> Series=new List<EchartsSeries>();
EchartsSeries SeriesData = new EchartsSeries();
var EchartsSeriesDataList= Context.Queryable<ProWorkorder>().LeftJoin<ProWorkorderUpdateLog>((w, l) =>
var EchartsSeriesDataList= Context.Queryable<ProWorkorder>().LeftJoin<ProWorkorderUpdateLog>((w, l) =>
w.Workorder == l.Workorder )
.Where((w,l)=>w.WorkorderDate < DateTime.Today.AddDays(1) &&
w.WorkorderDate < DateTime.Today.AddDays(-6))

View File

@ -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
/// </summary>
[AppService(ServiceType = typeof(IQualityBigScreenService), ServiceLifetime = LifeTime.Transient)]
public class QualityBigScreenService : BaseService<DeviceAccount>, IQualityBigScreenService
{}
{
public EchartsOptions GetMoudle01()
{
var LineEchart = new EchartsOptions();
LineEchart.Title = new EchartsTitle("今天IQC缺陷分布占比", "今天IQC缺陷分布占比");
// List<EchartsSeries> Series=new List<EchartsSeries>();
EchartsSeries SeriesData = new EchartsSeries();
var EchartsSeriesDataList= Context.Queryable<QcDefectCollection>()
.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<EchartsSeries>(){SeriesData};
return LineEchart;
}
public EchartsOptions GetMoudle02()
{
var LineEchart = new EchartsOptions();
LineEchart.Title = new EchartsTitle("今天IPQC缺陷分布占比", "今天IPQC缺陷分布占比");
// List<EchartsSeries> Series=new List<EchartsSeries>();
EchartsSeries SeriesData = new EchartsSeries();
var EchartsSeriesDataList= Context.Queryable<QcDefectCollection>()
.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<EchartsSeries>(){SeriesData};
return LineEchart;
}
public EchartsOptions GetMoudle03()
{
var LineEchart = new EchartsOptions();
LineEchart.Title = new EchartsTitle("今天FQC缺陷分布占比", "今天FQC缺陷分布占比");
// List<EchartsSeries> Series=new List<EchartsSeries>();
EchartsSeries SeriesData = new EchartsSeries();
var EchartsSeriesDataList = Context.Queryable<ProWorkorder>()
.LeftJoin<QcFinishedproductDefectCollection>((p, f) => p.Workorder == f.Workorder)
.LeftJoin<QcDefectConfig>((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<EchartsSeries>(){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<QcDefectCollection>()
.Where(it=>it.Type==1)
.Where(it=>it.DateTime>DateTime.Today.AddDays(-6)&&it.DateTime<DateTime.Today.AddDays(1))
.GroupBy(it=>it.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<EchartsSeries>(){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<QcDefectCollection>()
.Where(it=>it.Type==2)
.Where(it=>it.DateTime>DateTime.Today.AddDays(-6)&&it.DateTime<DateTime.Today.AddDays(1))
.GroupBy(it=>it.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<EchartsSeries>(){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<ProWorkorder>()
.LeftJoin<QcFinishedproductDefectCollection>((p, f) => p.Workorder == f.Workorder)
.LeftJoin<QcDefectConfig>((p, f, d) => f.DefectCode == d.Code)
.Where((p, f, d) => p.WorkorderDate>DateTime.Today.AddDays(-6)&&p.WorkorderDate<DateTime.Today.AddDays(1))
.GroupBy((p, f, d) => 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<QcDefectConfig> QcDefectConfigList= Context.Queryable<QcDefectConfig>().ToList();
var list = new List<EchartsSeries>();
foreach (var item in QcDefectConfigList)
{
EchartsSeries QcSeries = new EchartsSeries();
QcSeries.Name = item.Name+"-缺陷数";
List<EchartsSeriesData> 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;
}
}
}