大屏调整

This commit is contained in:
qianhao.xu
2025-01-15 13:00:13 +08:00
parent e64d00cfdf
commit 0e8285f478

View File

@@ -29,8 +29,8 @@ namespace DOAN.Service.MES.SmartScreen.Product
/// <returns></returns>
public DigitalTurntableModel DigitalTurntable()
{
DigitalTurntableModel digital=new DigitalTurntableModel();
digital.WorkorderQuantity = Context.Queryable<ProWorkorder>().Where(it=>it.WorkorderDate==DateTime.Today).Count();
DigitalTurntableModel digital = new DigitalTurntableModel();
digital.WorkorderQuantity = Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).Count();
//digital.FinishedWorkorderQuantity=Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today)
// .Where(it=>it.Status==2)
@@ -40,20 +40,20 @@ namespace DOAN.Service.MES.SmartScreen.Product
// .Where(it => it.Status <2)
// .Count();
digital.ProductionPlanQuantity = Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).Sum(it=>it.PlanNum??0);
digital.ProductionPlanQuantity = Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).Sum(it => it.PlanNum ?? 0);
//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();
digital.GroupQuantity = Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).Select(it => it.GroupCode).Distinct().Count();
return digital;
}
@@ -63,31 +63,31 @@ namespace DOAN.Service.MES.SmartScreen.Product
EchartsOptions echartsOptions = new EchartsOptions();
echartsOptions.Title = new EchartsTitle("今日各工序产量统计", "今日各工序产量统计");
EchartsXAxis xAxis = new EchartsXAxis();
xAxis.Data = Context.Queryable<BaseRelWorkRouteProcesses>().LeftJoin<BaseWorkProcesses>((r, p) => r.FkWorkProcesses == p.Id)
.Where((r, p) => p.Status == 1 && r.FkWorkRoute == 32)
.OrderBy((r, p) => p.Id)
.Select((r, p) => p.Name)
.ToList();
echartsOptions.XAxis=xAxis;
echartsOptions.XAxis = xAxis;
//获取各个工序今日累计报工值
EchartsSeries echartsSeries = new EchartsSeries();
echartsSeries.Name = "今日各个工序累计报工数";
List<EchartsSeriesData> Data = Context.Queryable<ProReportwork01>()
.LeftJoin<BaseWorkProcesses>((it,w)=>it.ProcessId==w.Id)
.Where((it, w) =>w.Status==1&& it.JobDateTime >= DateTime.Today && it.JobDateTime <= DateTime.Today.AddDays(1))
.GroupBy((it, w) => new {it.ProcessId,w.Name})
.LeftJoin<BaseWorkProcesses>((it, w) => it.ProcessId == w.Id)
.Where((it, w) => w.Status == 1 && it.JobDateTime >= DateTime.Today && it.JobDateTime <= DateTime.Today.AddDays(1))
.GroupBy((it, w) => new { it.ProcessId, w.Name })
.Select((it, w) => new EchartsSeriesData()
{
Name = w.Name,
Value=SqlFunc.AggregateSum(it.FinishNum??0)
Name = w.Name,
Value = SqlFunc.AggregateSum(it.FinishNum ?? 0)
}).ToList();
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)
decimal value = Data.Where(it => it.Name == item).Select(it => it.Value).FirstOrDefault();
if (value == 0)
{
NewData.Add(new EchartsSeriesData() { Name = item, Value = 0 });
}
@@ -95,7 +95,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
{
NewData.Add(new EchartsSeriesData() { Name = item, Value = value });
}
}
echartsSeries.Data = NewData;
echartsOptions.Series.Add(echartsSeries);
@@ -111,8 +111,8 @@ namespace DOAN.Service.MES.SmartScreen.Product
Name = w.Name,
Value = SqlFunc.AggregateSum(it.PlanNum ?? 0)
}).ToList();
echartsSeries2.Data = Data2;
// echartsOptions.Series.Add(echartsSeries2);
// echartsSeries2.Data = Data2;
// echartsOptions.Series.Add(echartsSeries2);
@@ -138,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&&p.Status==1)
.Where((r, p) => r.FkWorkRoute == 32 && p.Status == 1)
.OrderBy((r, p) => p.Id)
.Select((r, p) => p.Name)
.ToList();
@@ -184,7 +184,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
Name = w.Name,
Value = SqlFunc.AggregateSum(it.PlanNum ?? 0)
}).ToList();
echartsSeries2.Data = Data2;
// echartsSeries2.Data = Data2;
//echartsOptions.Series.Add(echartsSeries2);
@@ -255,8 +255,8 @@ namespace DOAN.Service.MES.SmartScreen.Product
Name = w.Name,
Value = SqlFunc.AggregateSum(it.PlanNum ?? 0)
}).ToList();
echartsSeries2.Data = Data2;
// echartsOptions.Series.Add(echartsSeries2);
// echartsSeries2.Data = Data2;
// echartsOptions.Series.Add(echartsSeries2);
@@ -287,7 +287,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
DateTime index = firstDayOfMonth;
do
{
xData.Add(index.ToString("MM-dd"));
xData.Add(index.ToString("dd"));
index = index.AddDays(1);
} while (index < lastDayOfMonth.AddDays(1));
@@ -301,16 +301,34 @@ namespace DOAN.Service.MES.SmartScreen.Product
LineSeries.Type = "line";
var result = Context.Queryable<ProWorkorder>()
.LeftJoin<ProReportwork01>((w, r) => w.Workorder == r.Workorder)
.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()
{
Name = w.WorkorderDate.Value.ToString("MM-dd"),
Value = SqlFunc.AggregateSum(r.FinishNum ?? 0)
//var result = Context.Queryable<ProWorkorder>()
// .LeftJoin<ProReportwork01>((w, r) => w.Workorder == r.Workorder)
// .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()
// {
// Name = w.WorkorderDate.Value.ToString("MM-dd"),
// Value = SqlFunc.AggregateSum(r.FinishNum ?? 0)
// }).ToList();
//var result = Context.Queryable<ProReportwork01>()
// .Where(it=>it.ProcessId == 20 && it.JobDateTime >= firstDayOfMonth && it.JobDateTime <= lastDayOfMonth.AddDays(1))
// .GroupBy(it => SqlFunc.DateDiff(DateType.Day, it.JobDateTime ?? DateTime.MinValue, DateTime.Now)) // 按天分组
// .Select(it => new
// {
// Name = it.JobDateTime.Value.ToString("MM-dd"),// 获取日期部分
// Value = SqlFunc.AggregateSum(it.FinishNum ?? 0) // 聚合求和
// }).ToList();
var result = Context.Queryable<ProReportwork01>()
.Where(it => it.ProcessId == 20 && it.JobDateTime >= firstDayOfMonth && it.JobDateTime <= lastDayOfMonth.AddDays(1))
.GroupBy(it => SqlFunc.DateValue(it.JobDateTime ?? DateTime.MinValue, DateType.Day)) // 按天分组
.Select(it => new
{
Name = SqlFunc.DateValue(it.JobDateTime ?? DateTime.MinValue, DateType.Day), // 获取日期部分
Value = SqlFunc.AggregateSum(it.FinishNum ?? 0) // 聚合求和
})
.ToList();
}).ToList();
List<EchartsSeriesData> LineSeriesData = new List<EchartsSeriesData>();
foreach (var item in xData)
@@ -318,7 +336,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
LineSeriesData.Add(new EchartsSeriesData()
{
Name = item,
Value = result.Where(it => it.Name == item).Select(it => it.Value).FirstOrDefault(),
Value = result.Where(it => it.Name==int.Parse (item)).Select(it => it.Value).FirstOrDefault(),
});
}
@@ -331,17 +349,31 @@ namespace DOAN.Service.MES.SmartScreen.Product
.ToArray();
if (groupArray.Length > 0)
{
var GroupresultList = Context.Queryable<ProWorkorder>()
.LeftJoin<ProReportwork01>((w, r) => w.Workorder == r.Workorder)
.Where((w, r) => groupArray.Contains(w.GroupCode))
.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
{
groupCode = w.GroupCode,
Name = w.WorkorderDate.Value.ToString("MM-dd"),
Value = SqlFunc.AggregateSum(r.FinishNum ?? 0)
}).ToList();
//var GroupresultList = Context.Queryable<ProWorkorder>()
// .RightJoin<ProReportwork01>((w, r) => w.Workorder == r.Workorder)
// .Where((w, r) => groupArray.Contains(w.GroupCode))
// .Where((w, r) => r.ProcessId == 70 && w.Status == 1 && r.JobDateTime >= firstDayOfMonth && r.JobDateTime <= lastDayOfMonth)
// .GroupBy((w, r) => new { w.GroupCode, w.WorkorderDate })
// .Select((w, r) => new
// {
// groupCode = w.GroupCode,
// Name = w.WorkorderDate.Value.ToString("MM-dd"),
// Value = SqlFunc.AggregateSum(r.FinishNum ?? 0)
// }).ToList();
var GroupresultList = Context.Queryable<ProReportwork01>().LeftJoin<ProWorkorder>((r, w) => r.Workorder == w.Workorder)
.Where((r, w) => groupArray.Contains(w.GroupCode))
.Where((r, w) => r.ProcessId == 20 && r.JobDateTime >= firstDayOfMonth && r.JobDateTime <= lastDayOfMonth.AddDays(1))
.GroupBy((r, w) => new { w.GroupCode, Day = SqlFunc.DateValue(r.JobDateTime ?? DateTime.MinValue, DateType.Day) }) // 按天分组
.Select((r, w) => new
{
groupCode = w.GroupCode,
Name = SqlFunc.DateValue(r.JobDateTime ?? DateTime.MinValue, DateType.Day),// 获取日期部分
Value = SqlFunc.AggregateSum(r.FinishNum ?? 0) // 聚合求和
}).ToList();
foreach (var group in groupArray)
{
EchartsSeries groupSeries = new EchartsSeries();
@@ -356,7 +388,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
LineSeriesData01.Add(new EchartsSeriesData()
{
Name = item,
Value = GroupresultList.Where(it => it.Name == item).Where(it => it.groupCode == group).Select(it => it.Value).FirstOrDefault(),
Value = GroupresultList.Where(it => it.Name ==int.Parse(item)).Where(it => it.groupCode == group).Select(it => it.Value).FirstOrDefault(),
});
}
@@ -377,14 +409,14 @@ namespace DOAN.Service.MES.SmartScreen.Product
echartsOptions.Title = new EchartsTitle("昨日-今日各工序实时累计完工数折线图", "昨日-今日各工序实时累计完工数折线图");
//1.查询各个工序
int[] processArray= Context.Queryable<ProReportwork01>()
.Where(it => it.JobDateTime > DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1))
.OrderBy(it => it.ProcessId)
.Select(it => it.ProcessId)
.Distinct()
.ToArray();
int[] processArray = Context.Queryable<ProReportwork01>()
.Where(it => it.JobDateTime > DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1))
.OrderBy(it => it.ProcessId)
.Select(it => it.ProcessId)
.Distinct()
.ToArray();
//1 X轴
List<DateTime> DateTimeArray= new List<DateTime>();
List<DateTime> DateTimeArray = new List<DateTime>();
// 定义起始时间和结束时间
@@ -408,16 +440,16 @@ namespace DOAN.Service.MES.SmartScreen.Product
List<string> DateTimeArrayString = DateTimeArray.Select(it => it.ToString("dd-HH:mm")).ToList();
echartsOptions.XAxis = new EchartsXAxis() { Data = DateTimeArrayString };
//2 系列值-这组 今日实时累计完成数每30分钟
for (int i=0;i<processArray.Length;i++)
for (int i = 0; i < processArray.Length; i++)
{
string ProcessName= Context.Queryable<BaseWorkProcesses>().Where(it => it.Id == processArray[i]).Select(it => it.Name).First();
string ProcessName = Context.Queryable<BaseWorkProcesses>().Where(it => it.Id == processArray[i]).Select(it => it.Name).First();
EchartsSeries echartsSeries = new EchartsSeries();
//echartsSeries.Name = ProcessName + "工序今日实时累计完成数每10分钟";
echartsSeries.Name = ProcessName ;
echartsSeries.Name = ProcessName;
echartsSeries.Type = "line";
List<EchartsSeriesData> echartsSeriesDatas = new List<EchartsSeriesData>();
string sql = "SELECT" +
" FROM_UNIXTIME( FLOOR( UNIX_TIMESTAMP(job_datetime) / 600 ) * 600 ) AS time_period," +
" SUM( finish_num ) AS count " +
@@ -432,7 +464,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
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(sql3, new { SearchDateTime01= startTime, SearchDateTime02=endTime, process_id = processArray[i], });
DataTable result = Context.Ado.GetDataTable(sql3, new { SearchDateTime01 = startTime, SearchDateTime02 = endTime, process_id = processArray[i], });
int sum = 0;
@@ -487,11 +519,11 @@ namespace DOAN.Service.MES.SmartScreen.Product
}
}
echartsSeries.Data = echartsSeriesDatas.OrderBy(it => it.Name).ToList();
echartsOptions.Series.Add(echartsSeries);
echartsSeries.Data = echartsSeriesDatas.OrderBy(it => it.Name).ToList();
echartsOptions.Series.Add(echartsSeries);
}
return echartsOptions;