From 50e485ff1bebae3079d0b9f058d5422df886638f Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 18 Feb 2025 09:28:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BA=A4=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MES/Order/DeliveryScheduleController.cs | 46 ++++++++++ .../MES/Order/OrderPurchaseController.cs | 6 +- DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs | 5 + DOAN.Model/MES/Order/Dto/OrderScheduleDto.cs | 16 ++++ .../MES/Order/DeliveryScheduleService.cs | 91 +++++++++++++++++++ .../IService/IDeliveryScheduleService.cs | 16 ++++ .../MES/Order/OrderPurchaseService.cs | 8 +- 7 files changed, 184 insertions(+), 4 deletions(-) create mode 100644 DOAN.Admin.WebApi/Controllers/MES/Order/DeliveryScheduleController.cs create mode 100644 DOAN.Model/MES/Order/Dto/OrderScheduleDto.cs create mode 100644 DOAN.Service/MES/Order/DeliveryScheduleService.cs create mode 100644 DOAN.Service/MES/Order/IService/IDeliveryScheduleService.cs diff --git a/DOAN.Admin.WebApi/Controllers/MES/Order/DeliveryScheduleController.cs b/DOAN.Admin.WebApi/Controllers/MES/Order/DeliveryScheduleController.cs new file mode 100644 index 0000000..18e04bf --- /dev/null +++ b/DOAN.Admin.WebApi/Controllers/MES/Order/DeliveryScheduleController.cs @@ -0,0 +1,46 @@ +using Microsoft.AspNetCore.Mvc; + +using DOAN.Admin.WebApi.Filters; +using DOAN.Service.MES.Order.IService; +using DOAN.Service.MES.order.IService; +using DOAN.Model.MES.order.Dto; +using DOAN.Service.MES.order; +using Infrastructure.Converter; + + +namespace DOAN.Admin.WebApi.Controllers.MES.Order +{ + /// + /// 交付进度 + /// + [Verify] + [Route("mes/deliveryManagement/OrderPurchase")] + public class DeliveryScheduleController : BaseController + { + /// + /// 交付进度接口 + /// + private readonly IDeliveryScheduleService _deliveryScheduleService; + public DeliveryScheduleController(IDeliveryScheduleService deliveryScheduleService) + { + _deliveryScheduleService= deliveryScheduleService; + } + + + /// + /// 交付进度列表 + /// + /// + /// + [HttpPost("list")] + [ActionPermissionFilter(Permission = "orderpurchase:list")] + public IActionResult QueryOrderPurchase([FromBody] OrderPurchaseQueryDto parm) + { + parm.ImportDate[0]= DOANConvertDate.ConvertLocalDate(parm.ImportDate[0]); + parm.ImportDate[1]= DOANConvertDate.ConvertLocalDate(parm.ImportDate[1]); + var response = _deliveryScheduleService.GetList(parm); + return SUCCESS(response); + } + + } +} diff --git a/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs b/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs index 1391215..939bc45 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs @@ -9,6 +9,7 @@ using DOAN.Model.System.Dto; using DOAN.Model; using DOAN.Model.System; using MiniExcelLibs; +using Infrastructure.Converter; //创建时间:2025-02-17 namespace DOAN.Admin.WebApi.Controllers @@ -39,6 +40,8 @@ namespace DOAN.Admin.WebApi.Controllers [ActionPermissionFilter(Permission = "orderpurchase:list")] public IActionResult QueryOrderPurchase([FromQuery] OrderPurchaseQueryDto parm) { + parm.ImportDate[0]= DOANConvertDate.ConvertLocalDate(parm.ImportDate[0]); + parm.ImportDate[1]= DOANConvertDate.ConvertLocalDate(parm.ImportDate[1]); var response = _OrderPurchaseService.GetList(parm); return SUCCESS(response); } @@ -136,9 +139,6 @@ namespace DOAN.Admin.WebApi.Controllers int response = _OrderPurchaseService.ImportData(formFile, HttpContext.GetName()); return SUCCESS(response); - - - } diff --git a/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs b/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs index e790a03..1914d6a 100644 --- a/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs +++ b/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs @@ -6,6 +6,11 @@ namespace DOAN.Model.MES.order.Dto /// public class OrderPurchaseQueryDto : PagerInfo { + public DateTime[] ImportDate { get; set; } + + public string OrderNoMes { get; set; } + + public string PurchaseOrderErp { get; set; } } /// diff --git a/DOAN.Model/MES/Order/Dto/OrderScheduleDto.cs b/DOAN.Model/MES/Order/Dto/OrderScheduleDto.cs new file mode 100644 index 0000000..9102a80 --- /dev/null +++ b/DOAN.Model/MES/Order/Dto/OrderScheduleDto.cs @@ -0,0 +1,16 @@ +using DOAN.Model.MES.order.Dto; +using DOAN.Model.MES.product; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DOAN.Model.MES.Order.Dto +{ + public class OrderScheduleDto : OrderPurchaseDto + { + + public List Children { get; set; } + } +} diff --git a/DOAN.Service/MES/Order/DeliveryScheduleService.cs b/DOAN.Service/MES/Order/DeliveryScheduleService.cs new file mode 100644 index 0000000..c15bd39 --- /dev/null +++ b/DOAN.Service/MES/Order/DeliveryScheduleService.cs @@ -0,0 +1,91 @@ +using DOAN.Model.MES.order; +using DOAN.Model.MES.order.Dto; +using DOAN.Model.MES.Order.Dto; +using DOAN.Model.MES.product; +using DOAN.Service.MES.order.IService; +using DOAN.Service.MES.Order.IService; +using Infrastructure.Attribute; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DOAN.Service.MES.Order +{ + [AppService(ServiceType = typeof(IDeliveryScheduleService), ServiceLifetime = LifeTime.Transient)] + public class DeliveryScheduleService : BaseService, IDeliveryScheduleService + { + /// + /// 获取交付进度 + /// + /// + /// + public List GetList(OrderPurchaseQueryDto parm) + { + var predicate = QueryExp(parm); + var queryResult = Context.Queryable() + .LeftJoin((o, w) => o.OrderNoMes == w.FeedOrder) + .Where(predicate.ToExpression()) + .Where((o, w) => !SqlFunc.IsNullOrEmpty(o.OrderNoMes)) + .OrderBy((o, w) => o.Id) + .Select((o, w) => new OrderScheduleDto + { + Id = o.Id, + ImportDate = o.ImportDate, + OrderNoMes = o.OrderNoMes, + PurchaseOrderErp = o.PurchaseOrderErp, + Poitem = o.Poitem, + Variety = o.Variety, + Specordindicator = o.Specordindicator, + KdType = o.KdType, + DocumentDate = o.DocumentDate, + Seller = o.Seller, + SalesArea = o.SalesArea, + MaterialName = o.MaterialName, + MaterialCode = o.MaterialCode, + DemandQuantity = o.DemandQuantity, + DeliveryDate = o.DeliveryDate, + DeliveryQuantity = o.DeliveryQuantity, + StartDate = o.StartDate, + EndDate = o.EndDate, + Orderindicator = o.Orderindicator, + RouteCode = o.RouteCode, + Status = o.Status, + Remark = o.Remark, + CreatedBy = o.CreatedBy, + CreatedTime = o.CreatedTime, + UpdatedBy = o.UpdatedBy, + UpdatedTime = o.UpdatedTime, + Children = SqlFunc.Subqueryable() + .Where(w => w.FeedOrder == o.OrderNoMes) // 子查询,获取对应的工单数据 + .ToList() + }) + .Distinct() + + .ToList(); + + + + + + return queryResult; + } + + private static Expressionable QueryExp(OrderPurchaseQueryDto parm) + { + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.OrderNoMes), (o, w) => o.OrderNoMes.Contains(parm.OrderNoMes)) + .AndIF(!string.IsNullOrEmpty(parm.PurchaseOrderErp), (o, w) => o.OrderNoMes.Contains(parm.PurchaseOrderErp)) + .AndIF(parm.ImportDate != null && parm.ImportDate[0] > DateTime.MinValue, (o, w) => o.ImportDate >= parm.ImportDate[0]) + .AndIF(parm.ImportDate != null && parm.ImportDate[1] > DateTime.MinValue, (o, w) => o.ImportDate >= parm.ImportDate[1]) + + ; + + return predicate; + } + + } + + +} diff --git a/DOAN.Service/MES/Order/IService/IDeliveryScheduleService.cs b/DOAN.Service/MES/Order/IService/IDeliveryScheduleService.cs new file mode 100644 index 0000000..671b5e1 --- /dev/null +++ b/DOAN.Service/MES/Order/IService/IDeliveryScheduleService.cs @@ -0,0 +1,16 @@ +using DOAN.Model.MES.order; +using DOAN.Model.MES.order.Dto; +using DOAN.Model.MES.Order.Dto; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DOAN.Service.MES.Order.IService +{ + public interface IDeliveryScheduleService : IBaseService + { + List GetList(OrderPurchaseQueryDto parm); + } +} diff --git a/DOAN.Service/MES/Order/OrderPurchaseService.cs b/DOAN.Service/MES/Order/OrderPurchaseService.cs index e2e5174..997490e 100644 --- a/DOAN.Service/MES/Order/OrderPurchaseService.cs +++ b/DOAN.Service/MES/Order/OrderPurchaseService.cs @@ -77,8 +77,14 @@ namespace DOAN.Service.MES.order /// private static Expressionable QueryExp(OrderPurchaseQueryDto parm) { - var predicate = Expressionable.Create(); + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.OrderNoMes), it => it.OrderNoMes.Contains(parm.OrderNoMes)) + .AndIF(!string.IsNullOrEmpty(parm.PurchaseOrderErp), it => it.OrderNoMes.Contains(parm.PurchaseOrderErp)) + .AndIF(parm.ImportDate != null && parm.ImportDate[0] > DateTime.MinValue, it => it.ImportDate >= parm.ImportDate[0]) + .AndIF(parm.ImportDate != null && parm.ImportDate[1] > DateTime.MinValue, it => it.ImportDate >= parm.ImportDate[1]) + ; + return predicate; }