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