From e64d00cfdfd3d62e33953ab3eef30d7230e134c8 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Wed, 15 Jan 2025 11:22:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A4=A7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Product/ProductSmartScreenController.cs | 1 - .../FQC/QcFinishedproductDefectService.cs | 2 +- .../Product/ProductSmartScreenService.cs | 98 +++++++++++++++---- 3 files changed, 78 insertions(+), 23 deletions(-) diff --git a/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Product/ProductSmartScreenController.cs b/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Product/ProductSmartScreenController.cs index 21edda8..ce65c37 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Product/ProductSmartScreenController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/SmartScreen/Product/ProductSmartScreenController.cs @@ -30,7 +30,6 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Product public IActionResult DigitalTurntable() { var response= _productSmartScreenService.DigitalTurntable(); - return SUCCESS(response); } diff --git a/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs b/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs index 6439eb8..9a5610d 100644 --- a/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs +++ b/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs @@ -134,7 +134,7 @@ namespace DOAN.Service.MES.quality.FQC .RightJoin((t1, t2) => t1.Workorder == t2.Workorder) .RightJoin((t1, t2, t3) => t2.Workorder == t3.Workorder) .Where(predicate.ToExpression()) - .GroupBy((t1,t2,t3)=>new { t3.Workorder, t2.PlanNum, t2.FinishNum, t1.productionName, t1.productionCode }) + .GroupBy((t1,t2,t3)=>new { t3.Workorder, t2.FinishNum,t1.PlanNum, t1.productionName, t1.productionCode }) .Select((t1, t2, t3) => new ResultFQCShowDto { Workorder = t3.Workorder, diff --git a/DOAN.Service/MES/SmartScreen/Product/ProductSmartScreenService.cs b/DOAN.Service/MES/SmartScreen/Product/ProductSmartScreenService.cs index ca05326..6260abd 100644 --- a/DOAN.Service/MES/SmartScreen/Product/ProductSmartScreenService.cs +++ b/DOAN.Service/MES/SmartScreen/Product/ProductSmartScreenService.cs @@ -45,8 +45,10 @@ namespace DOAN.Service.MES.SmartScreen.Product //digital.ProductionFinishQuantity = Context.Queryable().Where(it => it.JobDateTime >= DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1)) // .Where(it => it.ProcessId == 90).Sum(it => it.FinishNum??0); - + // 今日物料领用 digital.MaterialRequisitionQuantity = Context.Queryable().Where(it => it.ProcessId == 10 && it.JobDateTime >= DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1)).Sum(it => it.FinishNum ?? 0); + + digital.ShipmentQuantity = Context.Queryable().Where(it => it.ProcessId == 90 && it.JobDateTime >= DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1)).Sum(it => it.FinishNum ?? 0); digital.GroupQuantity=Context.Queryable().Where(it => it.WorkorderDate == DateTime.Today).Select(it=>it.GroupCode).Distinct().Count(); @@ -77,10 +79,25 @@ namespace DOAN.Service.MES.SmartScreen.Product .GroupBy((it, w) => new {it.ProcessId,w.Name}) .Select((it, w) => new EchartsSeriesData() { - Name = w.Name, + Name = w.Name, Value=SqlFunc.AggregateSum(it.FinishNum??0) }).ToList(); - echartsSeries.Data = Data; + List NewData = new List(); + foreach (var item in xAxis.Data) + { + + decimal value=Data.Where(it=>it.Name==item).Select(it=>it.Value).FirstOrDefault(); + if(value==0) + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = 0 }); + } + else + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = value }); + } + + } + echartsSeries.Data = NewData; echartsOptions.Series.Add(echartsSeries); //获取各个工序今日累计计划值 EchartsSeries echartsSeries2 = new EchartsSeries(); @@ -95,7 +112,7 @@ namespace DOAN.Service.MES.SmartScreen.Product Value = SqlFunc.AggregateSum(it.PlanNum ?? 0) }).ToList(); echartsSeries2.Data = Data2; - echartsOptions.Series.Add(echartsSeries2); + // echartsOptions.Series.Add(echartsSeries2); @@ -121,7 +138,7 @@ namespace DOAN.Service.MES.SmartScreen.Product EchartsXAxis xAxis = new EchartsXAxis(); xAxis.Data = Context.Queryable().LeftJoin((r, p) => r.FkWorkProcesses == p.Id) - .Where((r, p) => r.FkWorkRoute == 32) + .Where((r, p) => r.FkWorkRoute == 32&&p.Status==1) .OrderBy((r, p) => p.Id) .Select((r, p) => p.Name) .ToList(); @@ -138,7 +155,22 @@ namespace DOAN.Service.MES.SmartScreen.Product Name = w.Name, Value = SqlFunc.AggregateSum(it.FinishNum ?? 0) }).ToList(); - echartsSeries.Data = Data; + List NewData = new List(); + foreach (var item in xAxis.Data) + { + + decimal value = Data.Where(it => it.Name == item).Select(it => it.Value).FirstOrDefault(); + if (value == 0) + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = 0 }); + } + else + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = value }); + } + + } + echartsSeries.Data = NewData; echartsOptions.Series.Add(echartsSeries); //获取各个工序今日累计计划值 EchartsSeries echartsSeries2 = new EchartsSeries(); @@ -153,7 +185,7 @@ namespace DOAN.Service.MES.SmartScreen.Product Value = SqlFunc.AggregateSum(it.PlanNum ?? 0) }).ToList(); echartsSeries2.Data = Data2; - echartsOptions.Series.Add(echartsSeries2); + //echartsOptions.Series.Add(echartsSeries2); @@ -194,7 +226,22 @@ namespace DOAN.Service.MES.SmartScreen.Product Name = w.Name, Value = SqlFunc.AggregateSum(it.FinishNum ?? 0) }).ToList(); - echartsSeries.Data = Data; + List NewData = new List(); + foreach (var item in xAxis.Data) + { + + decimal value = Data.Where(it => it.Name == item).Select(it => it.Value).FirstOrDefault(); + if (value == 0) + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = 0 }); + } + else + { + NewData.Add(new EchartsSeriesData() { Name = item, Value = value }); + } + + } + echartsSeries.Data = NewData; echartsOptions.Series.Add(echartsSeries); //获取各个工序今日累计计划值 EchartsSeries echartsSeries2 = new EchartsSeries(); @@ -209,7 +256,7 @@ namespace DOAN.Service.MES.SmartScreen.Product Value = SqlFunc.AggregateSum(it.PlanNum ?? 0) }).ToList(); echartsSeries2.Data = Data2; - echartsOptions.Series.Add(echartsSeries2); + // echartsOptions.Series.Add(echartsSeries2); @@ -256,7 +303,7 @@ namespace DOAN.Service.MES.SmartScreen.Product var result = Context.Queryable() .LeftJoin((w, r) => w.Workorder == r.Workorder) - .Where((w, r) => w.Status == 1 && w.WorkorderDate >= firstDayOfMonth && w.WorkorderDate <= lastDayOfMonth) + .Where((w, r) =>r.ProcessId==70&&w.Status == 1 && w.WorkorderDate >= firstDayOfMonth && w.WorkorderDate <= lastDayOfMonth) .GroupBy((w, r) => w.WorkorderDate) .Select((w, r) => new EchartsSeriesData() { @@ -287,7 +334,7 @@ namespace DOAN.Service.MES.SmartScreen.Product var GroupresultList = Context.Queryable() .LeftJoin((w, r) => w.Workorder == r.Workorder) .Where((w, r) => groupArray.Contains(w.GroupCode)) - .Where((w, r) => w.Status == 1 && w.WorkorderDate >= firstDayOfMonth && w.WorkorderDate <= lastDayOfMonth) + .Where((w, r) =>r.ProcessId==70&& w.Status == 1 && w.WorkorderDate >= firstDayOfMonth && w.WorkorderDate <= lastDayOfMonth) .GroupBy((w, r) => new { w.GroupCode, w.WorkorderDate }) .Select((w, r) => new { @@ -327,7 +374,7 @@ namespace DOAN.Service.MES.SmartScreen.Product { EchartsOptions echartsOptions = new EchartsOptions(); - echartsOptions.Title = new EchartsTitle("今日各工序实时累计完工数折线图", "今日各工序实时累计完工数折线图"); + echartsOptions.Title = new EchartsTitle("昨日-今日各工序实时累计完工数折线图", "昨日-今日各工序实时累计完工数折线图"); //1.查询各个工序 int[] processArray= Context.Queryable() @@ -341,18 +388,26 @@ namespace DOAN.Service.MES.SmartScreen.Product // 定义起始时间和结束时间 - DateTime startTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 8, 0, 0); - // DateTime startTime = DateTime.Today; - DateTime endTime = DateTime.Today.AddDays(1); // 8 AM + 12 hours = 8 PM + // 获取当前日期和时间 + DateTime now = DateTime.Now; - // 使用循环生成每10分钟的时间戳 - for (DateTime currentTime = startTime; currentTime <= endTime; currentTime = currentTime.AddMinutes(10)) + // 获取昨天的日期 + DateTime yesterday = now.AddDays(-1); + + // 设置时间为 20:00 + DateTime startTime = new DateTime(yesterday.Year, yesterday.Month, yesterday.Day, 20, 0, 0); + //DateTime startTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day., 8, 0, 0); + // DateTime startTime = DateTime.Today; + DateTime endTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 20, 0, 0); // 8 AM + 12 hours = 8 PM + + // 使用循环生成每30分钟的时间戳 + for (DateTime currentTime = startTime; currentTime <= endTime; currentTime = currentTime.AddMinutes(30)) { DateTimeArray.Add(currentTime); } - List DateTimeArrayString = DateTimeArray.Select(it => it.ToString("HH:mm")).ToList(); + List DateTimeArrayString = DateTimeArray.Select(it => it.ToString("dd-HH:mm")).ToList(); echartsOptions.XAxis = new EchartsXAxis() { Data = DateTimeArrayString }; - //2 系列值-这组 今日实时累计完成数(每10分钟) + //2 系列值-这组 今日实时累计完成数(每30分钟) for (int i=0;i().Where(it => it.Id == processArray[i]).Select(it => it.Name).First(); @@ -375,8 +430,9 @@ namespace DOAN.Service.MES.SmartScreen.Product " ORDER BY" + " time_period"; string sql2 = "SELECT time_period, SUM(finish_num) AS count\r\nFROM (\r\n SELECT FROM_UNIXTIME( FLOOR( UNIX_TIMESTAMP( job_datetime ) / 600 ) * 600 ) AS time_period,\r\n finish_num\r\n FROM pro_reportwork\r\n WHERE DATE(job_datetime) = CURDATE() AND @process_id=process_id\r\n) AS subquery\r\nGROUP BY time_period\r\nORDER BY time_period"; + string sql3 = "SELECT time_period, SUM(finish_num) AS count\r\nFROM (\r\n SELECT FROM_UNIXTIME( FLOOR( UNIX_TIMESTAMP( job_datetime ) / 1800 ) * 1800 ) AS time_period,\r\n finish_num\r\n FROM pro_reportwork\r\n WHERE job_datetime>=@SearchDateTime01 AND job_datetime<=@SearchDateTime02 AND process_id=@process_id\r\n) AS subquery\r\nGROUP BY time_period\r\nORDER BY time_period"; - DataTable result = Context.Ado.GetDataTable(sql2, new { process_id = processArray[i], }); + DataTable result = Context.Ado.GetDataTable(sql3, new { SearchDateTime01= startTime, SearchDateTime02=endTime, process_id = processArray[i], }); int sum = 0; @@ -389,7 +445,7 @@ namespace DOAN.Service.MES.SmartScreen.Product sum = sum + count; EchartsSeriesData echartsSeriesData = new EchartsSeriesData() { - Name = value.ToString("HH:mm"), + Name = value.ToString("dd-HH:mm"), Value = sum }; echartsSeriesDatas.Add(echartsSeriesData);