diff --git a/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Quality/QualitySmartController.cs b/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Quality/QualitySmartController.cs index d99a7e6..0ee7399 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Quality/QualitySmartController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Quality/QualitySmartController.cs @@ -55,11 +55,25 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Quality /// /// [HttpGet("GetQualitySmartScreenForMonth")] + [AllowAnonymous] public IActionResult GetQualitySmartScreenForMonth() { var response = _QualitySmartService.GetQualitySmartScreenForMonth(); return SUCCESS(response); } + + /// + /// 按月获取质量大屏数据数状图 + /// + /// + [HttpGet("GetQualitySmartScreenForBarChart")] + [AllowAnonymous] + public IActionResult GetQualitySmartScreenForBarChart() + { + + var response = _QualitySmartService.GetQualitySmartScreenForBarChart(); + return SUCCESS(response); + } } } diff --git a/DOAN.Model/MES/SmartScreen/EchartsDto.cs b/DOAN.Model/MES/SmartScreen/EchartsDto.cs index 622a76d..402d0d6 100644 --- a/DOAN.Model/MES/SmartScreen/EchartsDto.cs +++ b/DOAN.Model/MES/SmartScreen/EchartsDto.cs @@ -78,8 +78,13 @@ namespace DOAN.Model.MES.SmartScreen /// 参数值 /// public List Data { get; set; } = new List(); + + } + + + /// /// echarts图表series返回值内容 /// diff --git a/DOAN.Service/MES/SmartScreen/Quality/IService/IQualitySmartService.cs b/DOAN.Service/MES/SmartScreen/Quality/IService/IQualitySmartService.cs index 142c80d..25cf09f 100644 --- a/DOAN.Service/MES/SmartScreen/Quality/IService/IQualitySmartService.cs +++ b/DOAN.Service/MES/SmartScreen/Quality/IService/IQualitySmartService.cs @@ -16,5 +16,9 @@ namespace DOAN.Service.MES.SmartScreen.Quality.IService List GetQualitySmartScreenForWeek(); List GetQualitySmartScreenForMonth(); + + //barchart EchartsOptions + + EchartsOptions GetQualitySmartScreenForBarChart(); } } diff --git a/DOAN.Service/MES/SmartScreen/Quality/QualitySmartService.cs b/DOAN.Service/MES/SmartScreen/Quality/QualitySmartService.cs index 33dec93..77dcdd8 100644 --- a/DOAN.Service/MES/SmartScreen/Quality/QualitySmartService.cs +++ b/DOAN.Service/MES/SmartScreen/Quality/QualitySmartService.cs @@ -23,7 +23,7 @@ namespace DOAN.Service.MES.SmartScreen.Quality { public QualityScreenHeadDto GetQualityScreenHead() { - QualityScreenHeadDto qualityScreenHeadDto = new QualityScreenHeadDto(); + QualityScreenHeadDto qualityScreenHeadDto = new QualityScreenHeadDto(); // 当前日期 DateTime now = DateTime.Now; // 当前月份的第一天 00:00:00 @@ -42,8 +42,8 @@ namespace DOAN.Service.MES.SmartScreen.Quality .AddSeconds(59); var response = Queryable().ToList(); - 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.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); return qualityScreenHeadDto; } @@ -94,13 +94,80 @@ namespace DOAN.Service.MES.SmartScreen.Quality .GroupBy(defect => new { defect.DefectCode }) .Select(defect => new EchartsSeriesData { - + Name = defect.DefectName, - Value =Convert.ToDecimal(SqlFunc.AggregateSum(defect.Number)) + Value = Convert.ToDecimal(SqlFunc.AggregateSum(defect.Number)) }) .ToList(); 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 dateList = new List(); + + // 遍历从第一天到最后一天的日期 + for (DateTime date = firstDayOfMonth; date <= lastDayOfMonth; date = date.AddDays(1)) + { + dateList.Add(date); // 使用标准日期格式 + } + + + + EchartsOptions echartsOptions = new EchartsOptions(); + EchartsXAxis echartsXAxis = new EchartsXAxis(); + + List dateStringList= new List(); + foreach (var date in dateList) + { + dateStringList.Add(date.ToString("MM-dd")); + } + echartsXAxis.Data = dateStringList; + echartsOptions.XAxis = echartsXAxis; + + + List echartsSeriesList = new List(); + + // 使用 SqlSugar 进行联表查询和分组统计 + List qcFinishedproductDefectCollections = Context.Queryable() + .Where(defect => defect.CheckDatetime >= firstDayOfMonth && defect.CheckDatetime <= lastDayOfMonth).ToList(); + + + List classname = qcFinishedproductDefectCollections.Select(o => o.DefectName).Distinct().ToList(); + + foreach (var classitem in classname) + { + EchartsSeries echartsSeries = new EchartsSeries(); + echartsSeries.Name = classitem; + List echartsSeriesDatas = new List(); + 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; + } } }