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, IConsoleService { /// /// 获取色块看板信息 /// /// public ConsoleMoudle01 GetColorBlockKanbanInformation() { ConsoleMoudle01 consoleMoudle01 = new ConsoleMoudle01(); DateTime nowDate = DateTime.Now.Date; DateTime nextDate = nowDate.AddDays(1); UseTran2(() => { //workorders consoleMoudle01.workorders=Context.Queryable().Where(it => it.WorkorderDate == nowDate).Count(); consoleMoudle01.finishWorkorders=Context.Queryable().Where(it => it.WorkorderDate == nowDate).Where(it=>it.Status==3).Count(); consoleMoudle01.exceptionWorkorders=Context.Queryable().Where(it => it.ChangeTime == nowDate).Count(); consoleMoudle01.preparationTasks=Context.Queryable().Where(it=>it.TaskDate== nowDate).Count(); consoleMoudle01.ClaimsQuantity= Context.Queryable().Where(it => it.Type == 2) .Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate) .Sum(it => it.Quantity); consoleMoudle01.reportedLossQuantity= Context.Queryable().Where(it => it.Type == 1) .Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate) .Sum(it => it.Quantity); consoleMoudle01.ProductDefectQuantity= Context.Queryable() .Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate) .Sum(it => it.Number??0); consoleMoudle01.InspectionTaskQuantity = Context.Queryable() .Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate) .Count(); consoleMoudle01.AndonQuantity= Context.Queryable() .Where(it => it.StartTime > nowDate && it.StartTime < nextDate) .Count(); consoleMoudle01.EquipmentRepairQuantity = Context.Queryable() .Where(it => it.CreatedTime > nowDate && it.CreatedTime < nextDate) .Count(); }); return consoleMoudle01; } /// /// 获取线 工单数/任务数 /// /// 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().OrderBy(it=>it.Id).Select(it => it.Name).ToList(); echartsOptions.XAxis = XAxis; EchartsYAxis YAxis=new EchartsYAxis(); YAxis.Type = "value"; echartsOptions.YAxis = YAxis; List Series=new List(); EchartsSeries serie01 = new EchartsSeries(); serie01.Name = "工单数"; serie01.Type = "bar"; List EchartsSeriesDataList = Context.Queryable().LeftJoin((r, w) => r.Code == w.LineCode&& w.WorkorderDate == DateTime.Now.Date) .OrderBy((r, w) => r.Id) .GroupBy((r, w) => r.Code) .Select((r, w) => new EchartsSeriesData { Name=r.Name, Value=SqlFunc.AggregateCount(w.Id) }).ToList(); serie01.Data = EchartsSeriesDataList; Series.Add(serie01); EchartsSeries serie02 = new EchartsSeries(); serie02.Name = "物料配送车数"; serie02.Type = "bar"; List EchartsSeriesDataList02 = Context.Queryable().LeftJoin((r, w) => r.Code == w.LineCode&& w.TaskDate == DateTime.Now.Date) .OrderBy((r, w) => r.Id) .GroupBy((r, w) => r.Name) .Select((r, w) => new EchartsSeriesData { Name = r.Name, Value = SqlFunc.AggregateCount(w.Id) }).ToList(); serie02.Data = EchartsSeriesDataList02; Series.Add(serie02); echartsOptions.Series= Series; return echartsOptions; } /// /// 班组工单数今日班组产能 /// /// public EchartsOptions GetGroupWorkOrderNum() { 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().OrderBy(it => it.Id).Select(it => it.GroupName).ToList(); echartsOptions.XAxis = XAxis; EchartsYAxis YAxis = new EchartsYAxis(); YAxis.Type = "value"; echartsOptions.YAxis = YAxis; List Series = new List(); EchartsSeries serie01 = new EchartsSeries(); serie01.Name = "工单数"; serie01.Type = "bar"; List EchartsSeriesDataList = Context.Queryable().LeftJoin((r, w) => r.GroupCode == w.GroupCode) .Where((r, w) => w.WorkorderDate == DateTime.Now.Date) .OrderBy((r, w) => r.Id) .GroupBy((r, w) => r.GroupCode) .Select((r, w) => new EchartsSeriesData { Name = r.GroupName, Value = SqlFunc.AggregateCount(w) }).ToList(); serie01.Data = EchartsSeriesDataList; Series.Add(serie01); echartsOptions.Series = Series; return echartsOptions; } }