查看备料进度大屏
This commit is contained in:
parent
c0ff32769f
commit
50c2fa7e0d
@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备台账
|
||||
/// </summary>
|
||||
[Verify]
|
||||
[Route("mes/bigscreen/materialprogress")]
|
||||
public class MaterialProgressScreenController : BaseController
|
||||
{
|
||||
private readonly IMaterialProgressService materialProgressService;
|
||||
|
||||
|
||||
public MaterialProgressScreenController(IMaterialProgressService materialProgressService)
|
||||
{
|
||||
this.materialProgressService = materialProgressService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查看备料进度大屏
|
||||
/// </summary>
|
||||
/// <param name="dateTime"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="CustomException"></exception>
|
||||
[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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
73
DOAN.Model/MES/bigscreen/Dto/MaterialProgressDto.cs
Normal file
73
DOAN.Model/MES/bigscreen/Dto/MaterialProgressDto.cs
Normal file
@ -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; }
|
||||
/// <summary>
|
||||
/// 产线 code
|
||||
/// </summary>
|
||||
public string LineCode { get; set; }
|
||||
/// <summary>
|
||||
/// 产线 name
|
||||
/// </summary>
|
||||
public string LineName { get; set; }
|
||||
|
||||
|
||||
public List<MaterialInfo> materialInfos { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
public class MaterialProgressDto2
|
||||
{
|
||||
|
||||
public DateTime Date { get; set; }
|
||||
/// <summary>
|
||||
/// 产线 code
|
||||
/// </summary>
|
||||
public string LineCode { get; set; }
|
||||
/// <summary>
|
||||
/// 产线 name
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<DeviceAccount>
|
||||
{
|
||||
|
||||
List<MaterialProgressDto> ViewMaterialParationProgress(DateTime dateTime);
|
||||
}
|
||||
}
|
||||
90
DOAN.Service/MES/bigScreen/MaterialProgressService.cs
Normal file
90
DOAN.Service/MES/bigScreen/MaterialProgressService.cs
Normal file
@ -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
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 备料进度大屏
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IMaterialProgressService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class MaterialProgressService : BaseService<DeviceAccount>, IMaterialProgressService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查看备料进度大屏
|
||||
/// </summary>
|
||||
/// <param name="dateTime"></param>
|
||||
/// <returns></returns>
|
||||
public List<MaterialProgressDto> ViewMaterialParationProgress(DateTime dateTime)
|
||||
{
|
||||
var RequireMaterial = Context.Queryable<BaseWorkRoute>().LeftJoin<MmRequirePlanByline>((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<BaseWorkRoute>().LeftJoin<MmPreparationTaskLine>((r, t) => r.Code == t.LineCode)
|
||||
.LeftJoin<MmTaskMaterialInfoByLine>((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> MaterialProgressDto2 = new List<MaterialProgressDto2>();
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user