本月各工序产量统计
This commit is contained in:
@@ -43,6 +43,22 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Product
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
//TODO 本周 各工序产量统计
|
||||
[HttpGet("BarProcessProductStatistic_week")]
|
||||
public IActionResult BarProcessProductStatisticWeek()
|
||||
{
|
||||
var response = _productSmartScreenService.BarProcessProductStatisticWeek();
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
//TODO 本月 各工序产量统计
|
||||
[HttpGet("BarProcessProductStatistic_month")]
|
||||
public IActionResult BarProcessProductStatisticMonth()
|
||||
{
|
||||
var response = _productSmartScreenService.BarProcessProductStatisticMonth();
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
//TODO 本月产量 折线图
|
||||
|
||||
@@ -14,6 +14,8 @@ namespace DOAN.Service.MES.SmartScreen.Product.IService
|
||||
DigitalTurntableModel DigitalTurntable();
|
||||
|
||||
EchartsOptions BarProcessProductStatistic();
|
||||
EchartsOptions BarProcessProductStatisticMonth();
|
||||
EchartsOptions BarProcessProductStatisticWeek();
|
||||
|
||||
EchartsOptions OutputOfCurrentmonth();
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ using DOAN.Model.MES.SmartScreen.Product;
|
||||
using DOAN.Model.MES.SmartScreen;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using DOAN.Model.MES.base_;
|
||||
using MathNet.Numerics;
|
||||
|
||||
namespace DOAN.Service.MES.SmartScreen.Product
|
||||
{
|
||||
@@ -65,7 +66,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
echartsOptions.XAxis=xAxis;
|
||||
//获取各个工序今日累计报工值
|
||||
EchartsSeries echartsSeries = new EchartsSeries();
|
||||
echartsSeries.Name = "今日各个工序今日累计报工数";
|
||||
echartsSeries.Name = "今日各个工序累计报工数";
|
||||
List<EchartsSeriesData> Data = Context.Queryable<ProReportwork01>()
|
||||
.LeftJoin<BaseWorkProcesses>((it,w)=>it.ProcessId==w.Id)
|
||||
.Where((it, w) => it.JobDateTime >= DateTime.Today && it.JobDateTime <= DateTime.Today.AddDays(1))
|
||||
@@ -79,7 +80,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
echartsOptions.Series.Add(echartsSeries);
|
||||
//获取各个工序今日累计计划值
|
||||
EchartsSeries echartsSeries2 = new EchartsSeries();
|
||||
echartsSeries2.Name = "今日各个工序今日累计计划数";
|
||||
echartsSeries2.Name = "今日各个工序累计计划数";
|
||||
List<EchartsSeriesData> Data2 = Context.Queryable<ProReportwork01>()
|
||||
.LeftJoin<BaseWorkProcesses>((it, w) => it.ProcessId == w.Id)
|
||||
.Where((it, w) => it.JobDateTime >= DateTime.Today && it.JobDateTime <= DateTime.Today.AddDays(1))
|
||||
@@ -94,6 +95,120 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
|
||||
|
||||
|
||||
return echartsOptions;
|
||||
}
|
||||
public EchartsOptions BarProcessProductStatisticWeek()
|
||||
{
|
||||
// 获取当前时间
|
||||
DateTime now = DateTime.Now;
|
||||
|
||||
// 计算到本周一需要减去的天数
|
||||
int daysToSubtract = ((int)now.DayOfWeek - (int)DayOfWeek.Monday + 7) % 7;
|
||||
|
||||
// 获取本周一的日期
|
||||
DateTime mondayMorning = now.AddDays(-daysToSubtract).Date; // .Date将时间设置为00:00:00
|
||||
|
||||
// 获取本周日午夜(实际上是下周一开始时间)
|
||||
DateTime sundayMidnight = mondayMorning.AddDays(7);
|
||||
|
||||
|
||||
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) => r.FkWorkRoute == 32)
|
||||
.OrderBy((r, p) => p.Id)
|
||||
.Select((r, p) => p.Name)
|
||||
.ToList();
|
||||
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) => it.JobDateTime >= mondayMorning && it.JobDateTime <= sundayMidnight)
|
||||
.GroupBy((it, w) => new { it.ProcessId, w.Name })
|
||||
.Select((it, w) => new EchartsSeriesData()
|
||||
{
|
||||
Name = w.Name,
|
||||
Value = SqlFunc.AggregateSum(it.FinishNum ?? 0)
|
||||
}).ToList();
|
||||
echartsSeries.Data = Data;
|
||||
echartsOptions.Series.Add(echartsSeries);
|
||||
//获取各个工序今日累计计划值
|
||||
EchartsSeries echartsSeries2 = new EchartsSeries();
|
||||
echartsSeries2.Name = "本周各个工序累计计划数";
|
||||
List<EchartsSeriesData> Data2 = Context.Queryable<ProReportwork01>()
|
||||
.LeftJoin<BaseWorkProcesses>((it, w) => it.ProcessId == w.Id)
|
||||
.Where((it, w) => it.JobDateTime >= mondayMorning && it.JobDateTime <= sundayMidnight)
|
||||
.GroupBy((it, w) => new { it.ProcessId, w.Name })
|
||||
.Select((it, w) => new EchartsSeriesData()
|
||||
{
|
||||
Name = w.Name,
|
||||
Value = SqlFunc.AggregateSum(it.PlanNum ?? 0)
|
||||
}).ToList();
|
||||
echartsSeries2.Data = Data2;
|
||||
echartsOptions.Series.Add(echartsSeries2);
|
||||
|
||||
|
||||
|
||||
return echartsOptions;
|
||||
}
|
||||
public EchartsOptions BarProcessProductStatisticMonth()
|
||||
{
|
||||
// 获取当前日期时间
|
||||
DateTime now = DateTime.Now;
|
||||
|
||||
// 获取本月第一天的日期时间(凌晨)
|
||||
DateTime firstDayOfMonth = new DateTime(now.Year, now.Month, 1, 0, 0, 0);
|
||||
|
||||
// 获取本月最后一天的日期时间(午夜)
|
||||
int daysInMonth = DateTime.DaysInMonth(now.Year, now.Month);
|
||||
DateTime lastDayOfMonth = new DateTime(now.Year, now.Month, daysInMonth, 23, 59, 59);
|
||||
|
||||
|
||||
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) => r.FkWorkRoute == 32)
|
||||
.OrderBy((r, p) => p.Id)
|
||||
.Select((r, p) => p.Name)
|
||||
.ToList();
|
||||
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) => it.JobDateTime >= firstDayOfMonth && it.JobDateTime <= lastDayOfMonth)
|
||||
.GroupBy((it, w) => new { it.ProcessId, w.Name })
|
||||
.Select((it, w) => new EchartsSeriesData()
|
||||
{
|
||||
Name = w.Name,
|
||||
Value = SqlFunc.AggregateSum(it.FinishNum ?? 0)
|
||||
}).ToList();
|
||||
echartsSeries.Data = Data;
|
||||
echartsOptions.Series.Add(echartsSeries);
|
||||
//获取各个工序今日累计计划值
|
||||
EchartsSeries echartsSeries2 = new EchartsSeries();
|
||||
echartsSeries2.Name = "本月各个工序今日累计计划数";
|
||||
List<EchartsSeriesData> Data2 = Context.Queryable<ProReportwork01>()
|
||||
.LeftJoin<BaseWorkProcesses>((it, w) => it.ProcessId == w.Id)
|
||||
.Where((it, w) => it.JobDateTime >= firstDayOfMonth && it.JobDateTime <= lastDayOfMonth)
|
||||
.GroupBy((it, w) => new { it.ProcessId, w.Name })
|
||||
.Select((it, w) => new EchartsSeriesData()
|
||||
{
|
||||
Name = w.Name,
|
||||
Value = SqlFunc.AggregateSum(it.PlanNum ?? 0)
|
||||
}).ToList();
|
||||
echartsSeries2.Data = Data2;
|
||||
echartsOptions.Series.Add(echartsSeries2);
|
||||
|
||||
|
||||
|
||||
return echartsOptions;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user