修改大屏

This commit is contained in:
qianhao.xu
2025-01-15 11:22:18 +08:00
parent 52f625824f
commit e64d00cfdf
3 changed files with 78 additions and 23 deletions

View File

@@ -30,7 +30,6 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Product
public IActionResult DigitalTurntable()
{
var response= _productSmartScreenService.DigitalTurntable();
return SUCCESS(response);
}

View File

@@ -134,7 +134,7 @@ namespace DOAN.Service.MES.quality.FQC
.RightJoin<ProReportwork01>((t1, t2) => t1.Workorder == t2.Workorder)
.RightJoin<QcFinishedproductDefectCollection>((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,

View File

@@ -45,8 +45,10 @@ namespace DOAN.Service.MES.SmartScreen.Product
//digital.ProductionFinishQuantity = Context.Queryable<ProReportwork01>().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<ProReportwork01>().Where(it => it.ProcessId == 10 && it.JobDateTime >= DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1)).Sum(it => it.FinishNum ?? 0);
digital.ShipmentQuantity = Context.Queryable<ProReportwork01>().Where(it => it.ProcessId == 90 && it.JobDateTime >= DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1)).Sum(it => it.FinishNum ?? 0);
digital.GroupQuantity=Context.Queryable<ProWorkorder>().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<EchartsSeriesData> NewData = new List<EchartsSeriesData>();
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<BaseRelWorkRouteProcesses>().LeftJoin<BaseWorkProcesses>((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<EchartsSeriesData> NewData = new List<EchartsSeriesData>();
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<EchartsSeriesData> NewData = new List<EchartsSeriesData>();
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<ProWorkorder>()
.LeftJoin<ProReportwork01>((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<ProWorkorder>()
.LeftJoin<ProReportwork01>((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<ProReportwork01>()
@@ -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<string> DateTimeArrayString = DateTimeArray.Select(it => it.ToString("HH:mm")).ToList();
List<string> 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<processArray.Length;i++)
{
string ProcessName= Context.Queryable<BaseWorkProcesses>().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);