今日各工序实时累计完工数折线图
This commit is contained in:
@@ -71,6 +71,16 @@ namespace DOAN.Admin.WebApi.Controllers.MES.SmartScreen.Product
|
||||
}
|
||||
|
||||
|
||||
//TODO 今天各工序(人)的累计完工数
|
||||
[HttpGet("accumulatedreport")]
|
||||
public IActionResult AccumulatedReport()
|
||||
{
|
||||
var response = _productSmartScreenService.AccumulatedReport();
|
||||
return SUCCESS(response);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -19,5 +19,7 @@ namespace DOAN.Service.MES.SmartScreen.Product.IService
|
||||
|
||||
EchartsOptions OutputOfCurrentmonth();
|
||||
|
||||
EchartsOptions AccumulatedReport();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ using DOAN.Model.MES.SmartScreen;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using DOAN.Model.MES.base_;
|
||||
using MathNet.Numerics;
|
||||
using System.Data;
|
||||
|
||||
namespace DOAN.Service.MES.SmartScreen.Product
|
||||
{
|
||||
@@ -45,7 +46,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
.Where(it => it.ProcessId == 90).Sum(it => it.FinishNum??0);
|
||||
|
||||
|
||||
digital.GroupQuantity=Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).GroupBy(it=>it.GroupCode).Count();
|
||||
digital.GroupQuantity=Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == DateTime.Today).Select(it=>it.GroupCode).MergeTable().Distinct().Count();
|
||||
|
||||
|
||||
return digital;
|
||||
@@ -127,7 +128,7 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
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)
|
||||
.Where((it, w) => w.Status == 1 && it.JobDateTime >= mondayMorning && it.JobDateTime <= sundayMidnight)
|
||||
.GroupBy((it, w) => new { it.ProcessId, w.Name })
|
||||
.Select((it, w) => new EchartsSeriesData()
|
||||
{
|
||||
@@ -314,6 +315,74 @@ namespace DOAN.Service.MES.SmartScreen.Product
|
||||
}
|
||||
}
|
||||
|
||||
return echartsOptions;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public EchartsOptions AccumulatedReport()
|
||||
{
|
||||
EchartsOptions echartsOptions = new EchartsOptions();
|
||||
|
||||
echartsOptions.Title = new EchartsTitle("今日各工序实时累计完工数折线图", "今日各工序实时累计完工数折线图");
|
||||
|
||||
//1.查询各个工序
|
||||
int[] processArray= Context.Queryable<ProReportwork01>()
|
||||
.Where(it => it.JobDateTime > DateTime.Today && it.JobDateTime < DateTime.Today.AddDays(1))
|
||||
.Select(it => it.ProcessId)
|
||||
.Distinct()
|
||||
.ToArray();
|
||||
|
||||
//2 系列值-这组 今日实时累计完成数(每10分钟)
|
||||
for(int i=0;i<processArray.Length;i++)
|
||||
{
|
||||
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.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 " +
|
||||
"FROM" +
|
||||
"pro_reportwork " +
|
||||
"WHERE" +
|
||||
"DATE(job_datetime) = CURDATE() AND process_id=@ process_id " +
|
||||
"GROUP BY" +
|
||||
"FLOOR( UNIX_TIMESTAMP( job_datetime ) / 600 )" +
|
||||
"ORDER BY" +
|
||||
"time_period";
|
||||
|
||||
DataTable result = Context.Ado.GetDataTable(sql, new { process_id = processArray[i], });
|
||||
int sum = 0;
|
||||
|
||||
|
||||
foreach (DataRow row in result.Rows)
|
||||
{
|
||||
// DateTime value =(DateTime)row["time_period"];
|
||||
DateTime value = row["time_period"] != DBNull.Value ? Convert.ToDateTime(row["time_period"]) : DateTime.MinValue;
|
||||
int count = Convert.ToInt32(row["count"]);
|
||||
|
||||
sum = sum + count;
|
||||
EchartsSeriesData echartsSeriesData = new EchartsSeriesData()
|
||||
{
|
||||
Name = value.ToString("HH:mm"),
|
||||
Value = sum
|
||||
};
|
||||
echartsSeriesDatas.Add(echartsSeriesData);
|
||||
}
|
||||
|
||||
echartsSeries.Data = echartsSeriesDatas.OrderBy(it => it.Name).ToList();
|
||||
|
||||
echartsOptions.XAxis = new EchartsXAxis() { Data = echartsSeriesDatas.Select(it => it.Name).ToList() };
|
||||
|
||||
echartsOptions.Series.Add(echartsSeries);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return echartsOptions;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user