diff --git a/DOAN.Admin.WebApi/Controllers/MES/report/ReportController.cs b/DOAN.Admin.WebApi/Controllers/MES/report/ReportController.cs index 78ec89e..c9c639d 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/report/ReportController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/report/ReportController.cs @@ -41,9 +41,9 @@ namespace DOAN.WebApi.Controllers /// /// [HttpGet("devicePoweronRate")] - public IActionResult DevicePoweronRate() + public IActionResult DevicePoweronRate(DeviceReportDto param) { - var response = _ReportService.DevicePoweronRate(DateTime.Today); + var response = _ReportService.DevicePoweronRate(param); return SUCCESS(response); } @@ -52,9 +52,9 @@ namespace DOAN.WebApi.Controllers /// /// [HttpGet("deviceDowntimeRate")] - public IActionResult DeviceDowntimeRate() + public IActionResult DeviceDowntimeRate(DeviceReportDto param) { - var response = _ReportService.DeviceDowntimeRate(DateTime.Today); + var response = _ReportService.DeviceDowntimeRate(param); return SUCCESS(response); } diff --git a/DOAN.Model/MES/report/Dto/ReportDto.cs b/DOAN.Model/MES/report/Dto/ReportDto.cs index 643dcfd..88c22f9 100644 --- a/DOAN.Model/MES/report/Dto/ReportDto.cs +++ b/DOAN.Model/MES/report/Dto/ReportDto.cs @@ -10,4 +10,10 @@ namespace DOAN.Model.MES { public DateTime SearchYearMonth { get; set; } } + + public class DeviceReportDto //: PagerInfo + { + public DateTime StartDate { get; set; } + public DateTime EndDate { get; set; } + } } diff --git a/DOAN.Service/MES/report/IService/IReportService.cs b/DOAN.Service/MES/report/IService/IReportService.cs index 851bf69..1eea3e9 100644 --- a/DOAN.Service/MES/report/IService/IReportService.cs +++ b/DOAN.Service/MES/report/IService/IReportService.cs @@ -14,8 +14,8 @@ namespace DOAN.Service.MES.report.IService { public interface IReportService : IBaseService { - List DevicePoweronRate(DateTime dateTime); - List DeviceDowntimeRate(DateTime dateTime); + List DevicePoweronRate(DeviceReportDto param); + List DeviceDowntimeRate(DeviceReportDto param); List ProductionCompletionRate(DateTime dateTime); diff --git a/DOAN.Service/MES/report/ReportService.cs b/DOAN.Service/MES/report/ReportService.cs index 799b819..65e35ef 100644 --- a/DOAN.Service/MES/report/ReportService.cs +++ b/DOAN.Service/MES/report/ReportService.cs @@ -1,4 +1,5 @@ using Aliyun.OSS; +using DOAN.Model.MES; using DOAN.Model.MES.andon; using DOAN.Model.MES.base_; using DOAN.Model.MES.group; @@ -13,16 +14,17 @@ namespace DOAN.Service.MES.report [AppService(ServiceType = typeof(IReportService), ServiceLifetime = LifeTime.Transient)] public class ReportService : BaseService, IReportService { - public List DevicePoweronRate(DateTime dateTime) + public List DevicePoweronRate(DeviceReportDto param) { List list = new List(); var response = Context.Queryable().OrderBy(t => t.Id).ToList(); - var dt = dateTime.ToString("yyyy-MM-dd"); + //var dt = dateTime.ToString("yyyy-MM-dd"); var shiftList = Context.Queryable() .LeftJoin((a, b) => a.FkShift == b.Id) - .LeftJoin((a, b, c) => a.GroupCode == c.GroupCode && c.WorkorderDate.Value.ToString("yyyy-MM-dd") == dt) - .Where((a, b, c) => a.ScheduleDate.Value.ToString("yyyy-MM-dd") == dt) + .LeftJoin((a, b, c) => a.GroupCode == c.GroupCode + && c.WorkorderDate.Value.ToString("yyyy-MM-dd") == a.ScheduleDate.Value.ToString("yyyy-MM-dd")) + .Where((a, b, c) => a.ScheduleDate.Value>= param.StartDate && a.ScheduleDate.Value <= param.EndDate) .Select((a, b, c) => new { @@ -30,7 +32,7 @@ namespace DOAN.Service.MES.report b.WorkHours, b.StartTime, b.EndTime, - c.LineCode + c.LineCode, }).ToList(); var tempList = response.Select(it => new @@ -85,13 +87,15 @@ namespace DOAN.Service.MES.report return list; } - public List DeviceDowntimeRate(DateTime dateTime) + public List DeviceDowntimeRate(DeviceReportDto param) { List list = new List(); - var dt = dateTime.ToString("yyyy-MM-dd"); + //var dt = dateTime.ToString("yyyy-MM-dd"); list = Context.Queryable() - .LeftJoin((a, b) => a.Code == b.LineCode && b.WorkorderDate.Value.ToString("yyyy-MM-dd") == dt) + .LeftJoin((a, b) => a.Code == b.LineCode + && b.WorkorderDate.Value>= param.StartDate + && b.WorkorderDate.Value<= param.EndDate) .OrderBy((a,b)=>a.Id) .Select((a, b) => new DeviceDowntimeRateModel @@ -101,8 +105,19 @@ namespace DOAN.Service.MES.report PlanHours = SqlFunc.Round((b.Beat * b.DeliveryNum ?? 0) / 3600.0, 2) }).ToList(); + var groupListWorkRoute = list.GroupBy(it => new { it.LineCode,it.LineName }).Select(it => new + { + LineCode = it.Key.LineCode, + LineName = it.Key.LineName, + PlanHours = it.ToList().Sum(t => t.PlanHours) + }).ToList(); + var response = Context.Queryable() - .Where(t=>t.FaultDict== "设备异常" && t.StartTime.HasValue && t.EndTime.HasValue && t.EndTime.Value.ToString("yyyy-MM-dd") ==dt) + .Where(t=>t.FaultDict== "设备异常" + && t.StartTime.HasValue + && t.EndTime.HasValue + && t.EndTime.Value>= param.StartDate + && t.EndTime.Value<= param.EndDate) .Select(it => new { it.LineCode, @@ -117,7 +132,7 @@ namespace DOAN.Service.MES.report DowntimeHours = it.ToList().Sum(t=>t.DowntimeHours) }).ToList(); - var result = list.GroupJoin(groupList, + var result = groupListWorkRoute.GroupJoin(groupList, l => l.LineCode, g => g.LineCode, (l, gList) => new DeviceDowntimeRateModel