质量大屏
This commit is contained in:
@@ -75,5 +75,18 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Quality
|
||||
var response = _QualitySmartService.GetQualitySmartScreenForBarChart();
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按月获取质量大屏数据折线图
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("GetQualitySmartScreenForLineChart")]
|
||||
[AllowAnonymous]
|
||||
public IActionResult GetQualitySmartScreenForLineChart()
|
||||
{
|
||||
|
||||
var response = _QualitySmartService.GetQualitySmartScreenForLineChart();
|
||||
return SUCCESS(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,12 +13,9 @@ namespace DOAN.Service.MES.SmartScreen.Quality.IService
|
||||
public interface IQualitySmartService : IBaseService<QcFinishedproductDefectCollection>
|
||||
{
|
||||
QualityScreenHeadDto GetQualityScreenHead();
|
||||
|
||||
List<EchartsSeriesData> GetQualitySmartScreenForWeek();
|
||||
List<EchartsSeriesData> GetQualitySmartScreenForMonth();
|
||||
|
||||
//barchart EchartsOptions
|
||||
|
||||
EchartsOptions GetQualitySmartScreenForBarChart();
|
||||
EchartsOptions GetQualitySmartScreenForLineChart();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ namespace DOAN.Service.MES.SmartScreen.Quality
|
||||
dateList.Add(date); // 使用标准日期格式
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
EchartsOptions echartsOptions = new EchartsOptions();
|
||||
EchartsXAxis echartsXAxis = new EchartsXAxis();
|
||||
@@ -171,11 +171,10 @@ namespace DOAN.Service.MES.SmartScreen.Quality
|
||||
foreach (var dateitem in dateList)
|
||||
{
|
||||
DateTime startOfDay = dateitem.Date;
|
||||
|
||||
// 结束时间:当天的 23:59:59
|
||||
DateTime endOfDay = startOfDay.AddDays(1).AddSeconds(-1);
|
||||
EchartsSeriesData echartsSeriesData = new EchartsSeriesData();
|
||||
echartsSeriesData.Name = dateitem.ToString("MM-dd");
|
||||
|
||||
echartsSeriesData.Value =Convert.ToDecimal(qcFinishedproductDefectCollections.Where(o=>o.DefectName==classitem&&o.CheckDatetime >= startOfDay && o.CheckDatetime<= endOfDay).Sum(o=>o.Number));
|
||||
echartsSeriesDatas.Add(echartsSeriesData);
|
||||
|
||||
@@ -186,5 +185,73 @@ namespace DOAN.Service.MES.SmartScreen.Quality
|
||||
echartsOptions.Series = echartsSeriesList;
|
||||
return echartsOptions;
|
||||
}
|
||||
|
||||
public EchartsOptions GetQualitySmartScreenForLineChart()
|
||||
{
|
||||
// 获取当前日期
|
||||
DateTime now = DateTime.Now;
|
||||
// 当前月份的第一天 00:00:00
|
||||
DateTime firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
||||
// 当前月份的最后一天 23:59:59
|
||||
DateTime lastDayOfMonth = new DateTime(now.Year, now.Month, 1)
|
||||
.AddMonths(1)
|
||||
.AddSeconds(-1);
|
||||
// 创建字符串集合存储日期
|
||||
List<DateTime> dateList = new List<DateTime>();
|
||||
|
||||
// 遍历从第一天到最后一天的日期
|
||||
for (DateTime date = firstDayOfMonth; date <= lastDayOfMonth; date = date.AddDays(1))
|
||||
{
|
||||
dateList.Add(date); // 使用标准日期格式
|
||||
}
|
||||
|
||||
List<ProWorkorder> proWorkorders = Context.Queryable<ProWorkorder>().Where(o => o.WorkorderDate >= firstDayOfMonth && o.WorkorderDate <= lastDayOfMonth).ToList();
|
||||
|
||||
EchartsOptions echartsOptions = new EchartsOptions();
|
||||
EchartsXAxis echartsXAxis = new EchartsXAxis();
|
||||
|
||||
List<string> dateStringList = new List<string>();
|
||||
foreach (var date in dateList)
|
||||
{
|
||||
dateStringList.Add(date.ToString("MM-dd"));
|
||||
}
|
||||
echartsXAxis.Data = dateStringList;
|
||||
echartsOptions.XAxis = echartsXAxis;
|
||||
|
||||
|
||||
List<EchartsSeries> echartsSeriesList = new List<EchartsSeries>();
|
||||
|
||||
// 使用 SqlSugar 进行联表查询和分组统计
|
||||
List<QcFinishedproductDefectCollection> qcFinishedproductDefectCollections = Context.Queryable<QcFinishedproductDefectCollection>()
|
||||
.Where(defect => defect.CheckDatetime >= firstDayOfMonth && defect.CheckDatetime <= lastDayOfMonth).ToList();
|
||||
|
||||
|
||||
List<string> classname = qcFinishedproductDefectCollections.Select(o => o.DefectName).Distinct().ToList();
|
||||
|
||||
foreach (var classitem in classname)
|
||||
{
|
||||
EchartsSeries echartsSeries = new EchartsSeries();
|
||||
echartsSeries.Name = classitem;
|
||||
List<EchartsSeriesData> echartsSeriesDatas = new List<EchartsSeriesData>();
|
||||
foreach (var dateitem in dateList)
|
||||
{
|
||||
|
||||
DateTime startOfDay = dateitem.Date;
|
||||
DateTime endOfDay = startOfDay.AddDays(1).AddSeconds(-1);
|
||||
decimal plannum =Convert.ToDecimal(proWorkorders.Where(o => o.WorkorderDate >= startOfDay && o.WorkorderDate <= endOfDay).Sum(o=>o.PlanNum));
|
||||
decimal nopassnum= Convert.ToDecimal(qcFinishedproductDefectCollections.Where(o => o.DefectName == classitem && o.CheckDatetime >= startOfDay && o.CheckDatetime <= endOfDay).Sum(o => o.Number));
|
||||
decimal passnum = plannum - nopassnum;
|
||||
EchartsSeriesData echartsSeriesData = new EchartsSeriesData();
|
||||
echartsSeriesData.Name = dateitem.ToString("MM-dd");
|
||||
echartsSeriesData.Value = passnum/ plannum;
|
||||
echartsSeriesDatas.Add(echartsSeriesData);
|
||||
|
||||
}
|
||||
echartsSeries.Data = echartsSeriesDatas;
|
||||
echartsSeriesList.Add(echartsSeries);
|
||||
}
|
||||
echartsOptions.Series = echartsSeriesList;
|
||||
return echartsOptions;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user