diff --git a/DOAN.Admin.WebApi/Controllers/MES/BigScreen/MaterialProgressScreenController.cs b/DOAN.Admin.WebApi/Controllers/MES/BigScreen/MaterialProgressScreenController.cs
new file mode 100644
index 0000000..29e52df
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/BigScreen/MaterialProgressScreenController.cs
@@ -0,0 +1,42 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Admin.WebApi.Filters;
+using DOAN.Service.MES.bigScreen.IService;
+using DOAN.Infrastructure;
+
+namespace DOAN.WebApi.Controllers.MES.BigScreen
+{
+ ///
+ /// 设备台账
+ ///
+ [Verify]
+ [Route("mes/bigscreen/materialprogress")]
+ public class MaterialProgressScreenController : BaseController
+ {
+ private readonly IMaterialProgressService materialProgressService;
+
+
+ public MaterialProgressScreenController(IMaterialProgressService materialProgressService)
+ {
+ this.materialProgressService = materialProgressService;
+ }
+
+ ///
+ /// 查看备料进度大屏
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("view_Material_paration_progress")]
+ public IActionResult ViewMaterialParationProgress(DateTime dateTime)
+ {
+ dateTime = ConvertDateTime.ConvertLocalDate(dateTime);
+ if (dateTime == DateTime.MinValue) { throw new CustomException("dateTime 为空"); }
+
+ var response = materialProgressService.ViewMaterialParationProgress(dateTime);
+
+
+ return SUCCESS(response);
+ }
+ }
+}
+
diff --git a/DOAN.Model/MES/bigscreen/Dto/MaterialProgressDto.cs b/DOAN.Model/MES/bigscreen/Dto/MaterialProgressDto.cs
new file mode 100644
index 0000000..c187960
--- /dev/null
+++ b/DOAN.Model/MES/bigscreen/Dto/MaterialProgressDto.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DOAN.Model.MES.bigscreen.Dto
+{
+ public class MaterialProgressDto
+ {
+
+ public DateTime Date { get; set; }
+ ///
+ /// 产线 code
+ ///
+ public string LineCode { get; set; }
+ ///
+ /// 产线 name
+ ///
+ public string LineName { get; set; }
+
+
+ public List materialInfos { get; set; }
+
+
+
+ }
+ public class MaterialProgressDto2
+ {
+
+ public DateTime Date { get; set; }
+ ///
+ /// 产线 code
+ ///
+ public string LineCode { get; set; }
+ ///
+ /// 产线 name
+ ///
+ public string LineName { get; set; }
+ public string MaterialCode { get; set; }
+
+
+ public string MaterialName { get; set; }
+
+
+
+ public decimal PlanNum { get; set; }
+
+
+ public decimal ActualNum { get; set; }
+
+
+ }
+
+
+ public class MaterialInfo
+ {
+ public string MaterialCode { get; set; }
+
+
+ public string MaterialName { get; set; }
+
+
+
+ public decimal PlanNum { get; set; }
+
+
+ public decimal ActualNum { get; set; }
+
+
+ }
+
+}
diff --git a/DOAN.Service/MES/bigScreen/IService/IMaterialProgressService.cs b/DOAN.Service/MES/bigScreen/IService/IMaterialProgressService.cs
new file mode 100644
index 0000000..39ba1bd
--- /dev/null
+++ b/DOAN.Service/MES/bigScreen/IService/IMaterialProgressService.cs
@@ -0,0 +1,16 @@
+using DOAN.Model.MES.bigscreen.Dto;
+using DOAN.Model.MES.dev;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DOAN.Service.MES.bigScreen.IService
+{
+ public interface IMaterialProgressService : IBaseService
+ {
+
+ List ViewMaterialParationProgress(DateTime dateTime);
+ }
+}
diff --git a/DOAN.Service/MES/bigScreen/MaterialProgressService.cs b/DOAN.Service/MES/bigScreen/MaterialProgressService.cs
new file mode 100644
index 0000000..e6396ef
--- /dev/null
+++ b/DOAN.Service/MES/bigScreen/MaterialProgressService.cs
@@ -0,0 +1,90 @@
+using DOAN.Model.MES.base_;
+using DOAN.Model.MES.bigscreen.Dto;
+using DOAN.Model.MES.dev;
+using DOAN.Model.MES.mm;
+using DOAN.Model.Mobile.Dto;
+using DOAN.Service.MES.bigScreen.IService;
+using DOAN.Service.MES.dev.IService;
+using Infrastructure.Attribute;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static System.Runtime.InteropServices.JavaScript.JSType;
+
+namespace DOAN.Service.MES.bigScreen
+{
+
+
+ ///
+ /// 备料进度大屏
+ ///
+ [AppService(ServiceType = typeof(IMaterialProgressService), ServiceLifetime = LifeTime.Transient)]
+ public class MaterialProgressService : BaseService, IMaterialProgressService
+ {
+ ///
+ /// 查看备料进度大屏
+ ///
+ ///
+ ///
+ public List ViewMaterialParationProgress(DateTime dateTime)
+ {
+ var RequireMaterial = Context.Queryable().LeftJoin((r, p) => r.Code == p.LineCode)
+ .Where((r, p) => p.RequireDate == dateTime)
+ .Select((r, p) => new
+ {
+ LineCode = r.Code,
+ LineName = r.Name,
+ MaterialCode = p.MaterialCode,
+ MaterialName = p.MaterialName,
+ PlanNum = p.RequireNum
+
+ }).ToList();
+
+ var ActualNumMaterial = Context.Queryable().LeftJoin((r, t) => r.Code == t.LineCode)
+ .LeftJoin((r, t, i) => t.TaskCode == i.FkTaskCode)
+ .Where((r, t, i) => t.TaskDate == dateTime)
+ .GroupBy((r, t, i) => new { r.Code,r.Name,i.MaterialCode, i.MaterialName })
+ .Select((r, t, i) => new
+ {
+ LineCode = r.Code,
+ LineName = r.Name,
+ MaterialCode = i.MaterialCode,
+ MaterialName = i.MaterialName,
+ ActualNum = SqlFunc.AggregateSum(i.Quantity),
+
+ }).ToList();
+ List MaterialProgressDto2 = new List();
+ foreach (var r in RequireMaterial)
+ {
+ MaterialProgressDto2 progressDto2 = new MaterialProgressDto2();
+ progressDto2.Date = dateTime;
+ progressDto2.LineCode = r.LineCode;
+ progressDto2.LineName = r.LineName;
+ progressDto2.MaterialCode = r.MaterialCode;
+ progressDto2.MaterialName = r.MaterialName;
+ progressDto2.PlanNum = r.PlanNum;
+ progressDto2.ActualNum = ActualNumMaterial
+ .Where(it => it.LineCode == progressDto2.LineCode)
+ .Where(it => it.MaterialCode == progressDto2.MaterialCode).Select(it => it.ActualNum).FirstOrDefault();
+ MaterialProgressDto2.Add(progressDto2);
+ }
+ return MaterialProgressDto2.GroupBy(it => new { it.Date, it.LineCode, it.LineName }).Select(group => new MaterialProgressDto()
+ {
+
+ Date = group.Key.Date,
+ LineCode = group.Key.LineCode,
+ LineName = group.Key.LineName,
+ materialInfos = group.Select(item => new MaterialInfo
+ {
+ MaterialCode = item.MaterialCode,
+ MaterialName = item.MaterialName,
+ PlanNum =item.PlanNum,
+ ActualNum = item.ActualNum
+ }).ToList()
+
+ }).ToList();
+ }
+ }
+}