173 lines
6.4 KiB
C#
Raw Normal View History

2024-11-07 13:40:44 +08:00
using DOAN.Model.mes.echarts;
2024-11-06 19:20:11 +08:00
using DOAN.Model.MES.andon;
2024-11-07 13:40:44 +08:00
using DOAN.Model.MES.base_;
2024-11-06 18:32:46 +08:00
using DOAN.Model.MES.console;
2024-11-06 19:20:11 +08:00
using DOAN.Model.MES.dev;
using DOAN.Model.MES.mm;
using DOAN.Model.MES.product;
2024-11-06 19:20:11 +08:00
using DOAN.Model.MES.quality.FQC;
using DOAN.Model.MES.quality.IPQC;
using DOAN.Service.MES.Console_.IService;
using Infrastructure.Attribute;
2024-11-07 13:40:44 +08:00
using System.Collections.Generic;
namespace DOAN.Service.MES.Console_;
[AppService(ServiceType = typeof(IConsoleService), ServiceLifetime = LifeTime.Transient)]
public class ConsoleService : BaseService<ProWorkorder>, IConsoleService
2024-11-06 18:32:46 +08:00
{
/// <summary>
/// 获取色块看板信息
/// </summary>
/// <returns></returns>
public ConsoleMoudle01 GetColorBlockKanbanInformation()
{
ConsoleMoudle01 consoleMoudle01 = new ConsoleMoudle01();
2024-11-06 19:20:11 +08:00
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();
});
2024-11-06 18:32:46 +08:00
return consoleMoudle01;
}
2024-11-07 13:40:44 +08:00
/// <summary>
2024-11-07 13:53:33 +08:00
/// 获取线 工单数/任务数
2024-11-07 13:40:44 +08:00
/// </summary>
/// <returns></returns>
public EchartsOptions GetLineOfTaskNumAndWorkorder()
{
EchartsOptions echartsOptions = new EchartsOptions();
EchartsTitle Title=new EchartsTitle();
Title.Text = "今日产线产能";
2024-11-07 15:07:47 +08:00
Title.SubText = "今日产线工单和物料配送车数对比";
2024-11-07 13:40:44 +08:00
echartsOptions.Title = Title;
EchartsXAxis XAxis=new EchartsXAxis();
XAxis.Type = "category";
2024-11-07 14:07:45 +08:00
XAxis.Data =Context.Queryable<BaseWorkRoute>().OrderBy(it=>it.Id).Select(it => it.Name).ToList();
2024-11-07 13:40:44 +08:00
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";
2024-11-07 14:35:53 +08:00
List<EchartsSeriesData> EchartsSeriesDataList = Context.Queryable<BaseWorkRoute>().LeftJoin<ProWorkorder>((r, w) => r.Code == w.LineCode&& w.WorkorderDate == DateTime.Now.Date)
2024-11-07 13:53:33 +08:00
.OrderBy((r, w) => r.Id)
2024-11-07 14:35:53 +08:00
.GroupBy((r, w) => r.Code)
2024-11-07 13:40:44 +08:00
.Select((r, w) => new EchartsSeriesData {
Name=r.Name,
2024-11-07 14:38:45 +08:00
Value=SqlFunc.AggregateCount(w.Id)
2024-11-07 13:40:44 +08:00
}).ToList();
serie01.Data = EchartsSeriesDataList;
Series.Add(serie01);
EchartsSeries serie02 = new EchartsSeries();
2024-11-07 15:07:47 +08:00
serie02.Name = "物料配送车数";
2024-11-07 13:40:44 +08:00
serie02.Type = "bar";
2024-11-07 14:35:53 +08:00
List<EchartsSeriesData> EchartsSeriesDataList02 = Context.Queryable<BaseWorkRoute>().LeftJoin<MmPreparationTaskLine>((r, w) => r.Code == w.LineCode&& w.TaskDate == DateTime.Now.Date)
2024-11-07 13:53:33 +08:00
.OrderBy((r, w) => r.Id)
2024-11-07 13:40:44 +08:00
.GroupBy((r, w) => r.Name)
.Select((r, w) => new EchartsSeriesData
{
Name = r.Name,
2024-11-07 14:38:45 +08:00
Value = SqlFunc.AggregateCount(w.Id)
2024-11-07 13:40:44 +08:00
}).ToList();
2024-11-07 14:13:12 +08:00
serie02.Data = EchartsSeriesDataList02;
2024-11-07 13:40:44 +08:00
Series.Add(serie02);
echartsOptions.Series= Series;
return echartsOptions;
}
2024-11-07 13:53:33 +08:00
/// <summary>
/// 班组工单数今日班组产能
/// </summary>
/// <returns></returns>
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";
2024-11-07 14:07:45 +08:00
XAxis.Data = Context.Queryable<BaseGroup>().OrderBy(it => it.Id).Select(it => it.GroupName).ToList();
2024-11-07 13:53:33 +08:00
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<BaseGroup>().LeftJoin<ProWorkorder>((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;
}
2024-11-06 18:32:46 +08:00
}