质量大屏

This commit is contained in:
卢江海
2025-03-27 18:34:05 +08:00
parent 36d58b74cc
commit ea64aa7381
4 changed files with 95 additions and 5 deletions

View File

@@ -55,11 +55,25 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Quality
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet("GetQualitySmartScreenForMonth")] [HttpGet("GetQualitySmartScreenForMonth")]
[AllowAnonymous]
public IActionResult GetQualitySmartScreenForMonth() public IActionResult GetQualitySmartScreenForMonth()
{ {
var response = _QualitySmartService.GetQualitySmartScreenForMonth(); var response = _QualitySmartService.GetQualitySmartScreenForMonth();
return SUCCESS(response); return SUCCESS(response);
} }
/// <summary>
/// 按月获取质量大屏数据数状图
/// </summary>
/// <returns></returns>
[HttpGet("GetQualitySmartScreenForBarChart")]
[AllowAnonymous]
public IActionResult GetQualitySmartScreenForBarChart()
{
var response = _QualitySmartService.GetQualitySmartScreenForBarChart();
return SUCCESS(response);
}
} }
} }

View File

@@ -78,8 +78,13 @@ namespace DOAN.Model.MES.SmartScreen
/// 参数值 /// 参数值
/// </summary> /// </summary>
public List<EchartsSeriesData> Data { get; set; } = new List<EchartsSeriesData>(); public List<EchartsSeriesData> Data { get; set; } = new List<EchartsSeriesData>();
} }
/// <summary> /// <summary>
/// echarts图表series返回值内容 /// echarts图表series返回值内容
///</summary> ///</summary>

View File

@@ -16,5 +16,9 @@ namespace DOAN.Service.MES.SmartScreen.Quality.IService
List<EchartsSeriesData> GetQualitySmartScreenForWeek(); List<EchartsSeriesData> GetQualitySmartScreenForWeek();
List<EchartsSeriesData> GetQualitySmartScreenForMonth(); List<EchartsSeriesData> GetQualitySmartScreenForMonth();
//barchart EchartsOptions
EchartsOptions GetQualitySmartScreenForBarChart();
} }
} }

View File

@@ -23,7 +23,7 @@ namespace DOAN.Service.MES.SmartScreen.Quality
{ {
public QualityScreenHeadDto GetQualityScreenHead() public QualityScreenHeadDto GetQualityScreenHead()
{ {
QualityScreenHeadDto qualityScreenHeadDto = new QualityScreenHeadDto(); QualityScreenHeadDto qualityScreenHeadDto = new QualityScreenHeadDto();
// 当前日期 // 当前日期
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
// 当前月份的第一天 00:00:00 // 当前月份的第一天 00:00:00
@@ -42,8 +42,8 @@ namespace DOAN.Service.MES.SmartScreen.Quality
.AddSeconds(59); .AddSeconds(59);
var response = Queryable().ToList(); var response = Queryable().ToList();
qualityScreenHeadDto.MonthFQC = response.Where(o => o.CheckDatetime >= firstDayOfMonth && o.CheckDatetime <= lastDayOfMonth).Sum(o=>o.Number); qualityScreenHeadDto.MonthFQC = response.Where(o => o.CheckDatetime >= firstDayOfMonth && o.CheckDatetime <= lastDayOfMonth).Sum(o => o.Number);
qualityScreenHeadDto.WeekFQC= response.Where(o => o.CheckDatetime >= startOfWeek && o.CheckDatetime <= endOfWeek).Sum(o => o.Number); qualityScreenHeadDto.WeekFQC = response.Where(o => o.CheckDatetime >= startOfWeek && o.CheckDatetime <= endOfWeek).Sum(o => o.Number);
return qualityScreenHeadDto; return qualityScreenHeadDto;
} }
@@ -94,13 +94,80 @@ namespace DOAN.Service.MES.SmartScreen.Quality
.GroupBy(defect => new { defect.DefectCode }) .GroupBy(defect => new { defect.DefectCode })
.Select(defect => new EchartsSeriesData .Select(defect => new EchartsSeriesData
{ {
Name = defect.DefectName, Name = defect.DefectName,
Value =Convert.ToDecimal(SqlFunc.AggregateSum(defect.Number)) Value = Convert.ToDecimal(SqlFunc.AggregateSum(defect.Number))
}) })
.ToList(); .ToList();
return result; return result;
} }
public EchartsOptions GetQualitySmartScreenForBarChart()
{
// 获取当前日期
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); // 使用标准日期格式
}
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;
// 结束时间:当天的 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);
}
echartsSeries.Data = echartsSeriesDatas;
echartsSeriesList.Add(echartsSeries);
}
echartsOptions.Series = echartsSeriesList;
return echartsOptions;
}
} }
} }