129 lines
4.9 KiB
C#
129 lines
4.9 KiB
C#
using DOAN.Model.mes.echarts;
|
|
using DOAN.Model.MES.andon;
|
|
using DOAN.Model.MES.base_;
|
|
using DOAN.Model.MES.console;
|
|
using DOAN.Model.MES.dev;
|
|
using DOAN.Model.MES.mm;
|
|
using DOAN.Model.MES.product;
|
|
using DOAN.Model.MES.quality.FQC;
|
|
using DOAN.Model.MES.quality.IPQC;
|
|
using DOAN.Service.MES.Console_.IService;
|
|
using Infrastructure.Attribute;
|
|
using System.Collections.Generic;
|
|
|
|
namespace DOAN.Service.MES.Console_;
|
|
|
|
[AppService(ServiceType = typeof(IConsoleService), ServiceLifetime = LifeTime.Transient)]
|
|
public class ConsoleService : BaseService<ProWorkorder>, IConsoleService
|
|
{
|
|
/// <summary>
|
|
/// 获取色块看板信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public ConsoleMoudle01 GetColorBlockKanbanInformation()
|
|
{
|
|
ConsoleMoudle01 consoleMoudle01 = new ConsoleMoudle01();
|
|
DateTime nowDate = DateTime.Now.Date;
|
|
DateTime nextDate = nowDate.AddDays(1);
|
|
UseTran2(() =>
|
|
{
|
|
//workorders
|
|
consoleMoudle01.workorders=Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == nowDate).Count();
|
|
consoleMoudle01.finishWorkorders=Context.Queryable<ProWorkorder>().Where(it => it.WorkorderDate == nowDate).Where(it=>it.Status==3).Count();
|
|
consoleMoudle01.exceptionWorkorders=Context.Queryable<ProWorkorderUpdateLog>().Where(it => it.ChangeTime == nowDate).Count();
|
|
consoleMoudle01.preparationTasks=Context.Queryable<MmPreparationTaskLine>().Where(it=>it.TaskDate== nowDate).Count();
|
|
|
|
consoleMoudle01.ClaimsQuantity= Context.Queryable<QcDefectCollection>().Where(it => it.Type == 2)
|
|
.Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate)
|
|
.Sum(it => it.Quantity);
|
|
|
|
consoleMoudle01.reportedLossQuantity= Context.Queryable<QcDefectCollection>().Where(it => it.Type == 1)
|
|
.Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate)
|
|
.Sum(it => it.Quantity);
|
|
|
|
consoleMoudle01.ProductDefectQuantity= Context.Queryable<QcFinishedproductDefectCollection>()
|
|
.Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate)
|
|
.Sum(it => it.Number??0);
|
|
|
|
consoleMoudle01.InspectionTaskQuantity = Context.Queryable<DeviceTaskExecute>()
|
|
.Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate)
|
|
.Count();
|
|
|
|
consoleMoudle01.AndonQuantity= Context.Queryable<AndonFaultRecord>()
|
|
.Where(it => it.StartTime > nowDate && it.StartTime < nextDate)
|
|
.Count();
|
|
|
|
consoleMoudle01.EquipmentRepairQuantity = Context.Queryable<DeviceRepair>()
|
|
.Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate)
|
|
.Count();
|
|
|
|
});
|
|
return consoleMoudle01;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 获取线 任务数/工单数
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public EchartsOptions GetLineOfTaskNumAndWorkorder()
|
|
{
|
|
EchartsOptions echartsOptions = new EchartsOptions();
|
|
|
|
EchartsTitle Title=new EchartsTitle();
|
|
Title.Text = "今日产线产能";
|
|
Title.SubText = "今日产线工单和任务数对比";
|
|
echartsOptions.Title = Title;
|
|
|
|
EchartsXAxis XAxis=new EchartsXAxis();
|
|
|
|
XAxis.Type = "category";
|
|
|
|
XAxis.Data =Context.Queryable<BaseWorkRoute>().OrderBy(it=>it.Code).Select(it => it.Name).ToList();
|
|
echartsOptions.XAxis = XAxis;
|
|
|
|
EchartsYAxis YAxis=new EchartsYAxis();
|
|
YAxis.Type = "value";
|
|
echartsOptions.YAxis = YAxis;
|
|
|
|
List<EchartsSeries> Series=new List<EchartsSeries>();
|
|
EchartsSeries serie01 = new EchartsSeries();
|
|
serie01.Name = "工单数";
|
|
serie01.Type = "bar";
|
|
|
|
List<EchartsSeriesData> EchartsSeriesDataList = Context.Queryable<BaseWorkRoute>().LeftJoin<ProWorkorder>((r, w) => r.Code == w.LineCode)
|
|
.Where((r,w)=>w.WorkorderDate == DateTime.Now.Date)
|
|
.OrderBy((r, w) => r.Code)
|
|
.GroupBy((r, w) => r.Name)
|
|
.Select((r, w) => new EchartsSeriesData {
|
|
Name=r.Name,
|
|
Value=SqlFunc.AggregateCount(w)
|
|
|
|
}).ToList();
|
|
serie01.Data = EchartsSeriesDataList;
|
|
Series.Add(serie01);
|
|
|
|
EchartsSeries serie02 = new EchartsSeries();
|
|
serie02.Name = "任务数";
|
|
serie02.Type = "bar";
|
|
|
|
List<EchartsSeriesData> EchartsSeriesDataList02 = Context.Queryable<BaseWorkRoute>().LeftJoin<MmPreparationTaskLine>((r, w) => r.Code == w.LineCode)
|
|
.Where((r, w) => w.TaskDate == DateTime.Now.Date)
|
|
.OrderBy((r, w) => r.Code)
|
|
.GroupBy((r, w) => r.Name)
|
|
.Select((r, w) => new EchartsSeriesData
|
|
{
|
|
Name = r.Name,
|
|
Value = SqlFunc.AggregateCount(w)
|
|
|
|
}).ToList();
|
|
serie02.Data = EchartsSeriesDataList;
|
|
Series.Add(serie02);
|
|
|
|
echartsOptions.Series= Series;
|
|
|
|
|
|
return echartsOptions;
|
|
}
|
|
} |