diff --git a/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderScheduleController.cs b/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderScheduleController.cs index c42186f..9a3df01 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderScheduleController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderScheduleController.cs @@ -38,5 +38,41 @@ namespace DOAN.Admin.WebApi.Controllers return SUCCESS(response); } + /// + /// 获取工序 + /// + /// 工一路线id + /// 工艺路线绑定的工序列表 + [HttpGet("get_work_process")] + public IActionResult GetworkProcess(int WorkRouteID) + { + var response = _ProWorkorderSchedule.GetworkProcess(WorkRouteID); + return SUCCESS(response); + } + + /// + /// 获取工位 + /// + /// 工序id + /// 工序绑定的工位列表 + [HttpGet("get_work_station")] + public IActionResult GetworkStation(int WorkProcessID) + { + var response = _ProWorkorderSchedule.GetworkStation(WorkProcessID); + return SUCCESS(response); + } + + /// + /// 获取设备 + /// + /// 工序id + /// 工序绑定的工位列表 + [HttpGet("get_work_device")] + public IActionResult GetWorkDevice(int WorkStationID) + { + var response = _ProWorkorderSchedule.GetWorkDevice(WorkStationID); + return SUCCESS(response); + } + } } diff --git a/DOAN.Model/MES/dev/Dto/DeviceTaskExecuteDto.cs b/DOAN.Model/MES/dev/Dto/DeviceTaskExecuteDto.cs index df86b77..0bed670 100644 --- a/DOAN.Model/MES/dev/Dto/DeviceTaskExecuteDto.cs +++ b/DOAN.Model/MES/dev/Dto/DeviceTaskExecuteDto.cs @@ -124,6 +124,9 @@ namespace DOAN.Model.MES.dev.Dto [ExcelColumnName("任务执行——结束时间")] public DateTime? EndTime { get; set; } + //耗时 + public double ConsumeTime { get; set; } + [ExcelColumn(Name = "状态")] [ExcelColumnName("状态")] public int? Status { get; set; } diff --git a/DOAN.Service/MES/dev/DeviceTaskExecuteService.cs b/DOAN.Service/MES/dev/DeviceTaskExecuteService.cs index 4ca3145..2ef4416 100644 --- a/DOAN.Service/MES/dev/DeviceTaskExecuteService.cs +++ b/DOAN.Service/MES/dev/DeviceTaskExecuteService.cs @@ -56,6 +56,18 @@ namespace DOAN.Service.MES.dev .Where(predicate.ToExpression()) .ToPage(parm); + foreach (DeviceTaskExecuteDto item in response.Result) + { + if (item.StartTime > DateTime.MinValue && item.EndTime > DateTime.MinValue) + { + TimeSpan timeDifference = item.EndTime.Value - item.StartTime.Value; + + double minutes = timeDifference.TotalMinutes; + double roundedMinutes = Math.Round(minutes, 1); + item.ConsumeTime = roundedMinutes; + } + } + return response; } diff --git a/DOAN.Service/MES/product/IService/IProWorkorderSchedule.cs b/DOAN.Service/MES/product/IService/IProWorkorderSchedule.cs index ac434a2..47554b7 100644 --- a/DOAN.Service/MES/product/IService/IProWorkorderSchedule.cs +++ b/DOAN.Service/MES/product/IService/IProWorkorderSchedule.cs @@ -1,4 +1,5 @@ using DOAN.Model; +using DOAN.Model.MES.base_.Dto; using DOAN.Model.MES.product; using DOAN.Model.MES.product.Dto; using System; @@ -13,5 +14,14 @@ namespace DOAN.Service.MES.product.IService public interface IProWorkorderSchedule : IBaseService { PagedInfo GetList(ProWorkorderQueryDto parm); + + + + List GetworkProcess(int WorkRouteId); + + List GetworkStation(int WorkProcessID); + + + List GetWorkDevice(int WorkStationID); } } diff --git a/DOAN.Service/MES/product/ProWorkorderSchedule.cs b/DOAN.Service/MES/product/ProWorkorderSchedule.cs index 6acda01..7038996 100644 --- a/DOAN.Service/MES/product/ProWorkorderSchedule.cs +++ b/DOAN.Service/MES/product/ProWorkorderSchedule.cs @@ -10,6 +10,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using DOAN.Repository; +using DOAN.Model.MES.base_.Dto; +using Mapster; @@ -57,5 +59,46 @@ namespace DOAN.Service.MES.product return response; } + /// + /// 获取工序 + /// + /// + /// + public List GetworkProcess(int WorkRouteId) + { + var query = Context.Queryable().Where(it => it.FkWorkRoute == WorkRouteId); + return Context.Queryable(query) + .LeftJoin((q, p) => q.FkWorkProcesses == p.Id) + .Select((q, p) => p) + .ToList() + .Adapt>(); + } + + /// + /// 获取工位 + /// + /// + /// + public List GetworkStation(int WorkProcessID) + { + return Context.Queryable() + .Where(it => it.FkWorkProcesses == WorkProcessID) + .ToList() + .Adapt>(); + + } + /// + /// 获取设备 + /// + /// + /// + public List GetWorkDevice(int WorkStationID) + { + var query = Context.Queryable().Where(it => it.FkWorkStation == WorkStationID).ToList() + .Adapt>(); + + return query; + } + } } \ No newline at end of file