diff --git a/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs b/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs index 185a786..9ccfcdb 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Order/OrderPurchaseController.cs @@ -40,8 +40,7 @@ namespace DOAN.Admin.WebApi.Controllers [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 = _OrderPurchaseService.GetList(parm); return SUCCESS(response); } @@ -142,19 +141,19 @@ namespace DOAN.Admin.WebApi.Controllers return SUCCESS(response); } - + /// /// 采购订单excel导出 /// - /// + /// /// [HttpGet("export")] - [Log(Title = "用户导出", BusinessType = BusinessType.EXPORT)] + [Log(Title = "采购订单导出", BusinessType = BusinessType.EXPORT)] [AllowAnonymous] - public IActionResult UserExport([FromQuery] OrderPurchaseQueryDto order) + public IActionResult UserExport([FromQuery] OrderPurchaseQueryDto parm) { - var list = _OrderPurchaseService.SelectOrderList(order); + var list = _OrderPurchaseService.SelectOrderList(parm); var result = ExportExcelMini(list, "order", "采购订单列表"); return ExportExcel(result.Item2, result.Item1); diff --git a/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs b/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs index 27093e3..febe041 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Product/ProWorkorderController.cs @@ -36,8 +36,7 @@ namespace DOAN.Admin.WebApi.Controllers [ActionPermissionFilter(Permission = "productManagement:proworkorder:list")] public IActionResult QueryProWorkorder([FromBody] ProWorkorderQueryDto parm) { - parm.WorkorderDate[0] = DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[0]); - parm.WorkorderDate[1]= DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[1]); + var response = _ProWorkorderService.GetList(parm); return SUCCESS(response); diff --git a/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs b/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs index ecf50ac..ad8e00c 100644 --- a/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs +++ b/DOAN.Model/MES/Order/Dto/OrderPurchaseDto.cs @@ -6,16 +6,39 @@ namespace DOAN.Model.MES.order.Dto /// public class OrderPurchaseQueryDto : PagerInfo { + /// + /// 导入日期 + /// public DateTime[] ImportDate { get; set; } - + /// + /// 订单号(MES实际使用) + /// public string OrderNoMes { get; set; } - + /// + /// 采购订单号(对接ERP) + /// public string PurchaseOrderErp { get; set; } + /// + /// 工单号 + /// + public string WorkOrder { get; set; } + /// + /// 领料单号 + /// + public string FeedOrder { get; set; } + /// + /// 物料号 + /// + public string MaterialCode { get; set; } /// /// 是否完成订单 /// public int Orderindicator { get; set; } + /// + /// 是否非标 + /// + public int Specordindicator { get; set; } } /// @@ -76,12 +99,38 @@ namespace DOAN.Model.MES.order.Dto public DateTime? UpdatedTime { get; set; } + } - - [ExcelColumn(Name = "类型")] - public string KdTypeLabel { get; set; } - - - + /// + /// 采购订单导出对象 + /// + public class OrderPurchaseExcelDto + { + [ExcelColumnName("系统编号(id)")] + public string Id { get; set; } + [ExcelColumnName("导入时间(import_date)")] + public DateTime? ImportDate { get; set; } + [ExcelColumnName("订单号(order_no_mes)")] + public string OrderNoMes { get; set; } + [ExcelColumnName("物料名称")] + public string MaterialName { get; set; } + [ExcelColumnName("物料编号")] + public string MaterialCode { get; set; } + [ExcelColumnName("交货日期(delivery_date)")] + public DateTime? DocumentDate { get; set; } + [ExcelColumnName("需求数量(demand_quantity)")] + public int? DemandQuantity { get; set; } + [ExcelColumnName("交货日期(delivery_date)")] + public DateTime? DeliveryDate { get; set; } + [ExcelColumnName("交货数量(delivery_quantity)")] + public int? DeliveryQuantity { get; set; } + [ExcelColumnName("订单开始时间(start_date)")] + public DateTime? StartDate { get; set; } + [ExcelColumnName("订单结束时间(end_date)")] + public DateTime? EndDate { get; set; } + [ExcelColumnName("订单是否完成(0-未完成/1-完成)")] + public int Orderindicator { get; set; } + [ExcelColumnName("备注")] + public string Remark { get; set; } } } \ No newline at end of file diff --git a/DOAN.Model/MES/Product/Dto/ProWorkorderDto.cs b/DOAN.Model/MES/Product/Dto/ProWorkorderDto.cs index 97e1b79..f738fe5 100644 --- a/DOAN.Model/MES/Product/Dto/ProWorkorderDto.cs +++ b/DOAN.Model/MES/Product/Dto/ProWorkorderDto.cs @@ -16,6 +16,16 @@ namespace DOAN.Model.MES.product.Dto public string RouteCode { get; set; } public string GroupCode { get; set; } + /// + /// 进料单号(领料) + /// + public string FeedOrder { get; set; } + + /// + /// 客户单号(出货) + /// + public string CustomerOrder { get; set; } + public int Status { get; set; } public DateTime[] WorkorderDate { get; set; } = new DateTime[2]; diff --git a/DOAN.Service/MES/Order/IService/IOrderPurchaseService.cs b/DOAN.Service/MES/Order/IService/IOrderPurchaseService.cs index b5db1f0..d705055 100644 --- a/DOAN.Service/MES/Order/IService/IOrderPurchaseService.cs +++ b/DOAN.Service/MES/Order/IService/IOrderPurchaseService.cs @@ -17,7 +17,7 @@ namespace DOAN.Service.MES.order.IService OrderPurchase AddOrderPurchase(OrderPurchase parm); int UpdateOrderPurchase(OrderPurchase parm); - List SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto); + List SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto); } } diff --git a/DOAN.Service/MES/Order/OrderPurchaseService.cs b/DOAN.Service/MES/Order/OrderPurchaseService.cs index d1fb8cb..1d5f789 100644 --- a/DOAN.Service/MES/Order/OrderPurchaseService.cs +++ b/DOAN.Service/MES/Order/OrderPurchaseService.cs @@ -1,16 +1,15 @@ -using Infrastructure.Attribute; -using Infrastructure.Extensions; -using DOAN.Service.MES.order.IService; -using DOAN.Repository; -using DOAN.Model.MES.order.Dto; +using Aliyun.OSS; using DOAN.Model.MES.order; +using DOAN.Model.MES.order.Dto; +using DOAN.Model.MES.product; +using DOAN.Repository; +using DOAN.Service.MES.order.IService; +using Infrastructure.Attribute; +using Infrastructure.Converter; +using Mapster; using Microsoft.AspNetCore.Http; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; -using NPOI.SS.Formula.Functions; -using Aliyun.OSS; -using Mapster; -using ZXing; namespace DOAN.Service.MES.order { @@ -27,10 +26,49 @@ namespace DOAN.Service.MES.order /// public PagedInfo GetList(OrderPurchaseQueryDto parm) { + + // 日期处理 + if (parm != null && parm.ImportDate != null && parm.ImportDate.Length > 0) + { + if (parm.ImportDate[0] > DateTime.MinValue) + { + parm.ImportDate[0] = DOANConvertDate.ConvertLocalDate(parm.ImportDate[0]); + } + if (parm.ImportDate[1] > DateTime.MinValue) + { + parm.ImportDate[1] = DOANConvertDate.ConvertLocalDate(parm.ImportDate[1]); + } + } + string _orderNoMes = parm.OrderNoMes; + // 工单查询处理 + if (parm != null && !string.IsNullOrEmpty(parm.WorkOrder)) + { + var workorderInfo = Context.Queryable() + .Where(it => it.Workorder.Contains(parm.WorkOrder)) + .First(); + if(workorderInfo != null) + { + parm.OrderNoMes = workorderInfo.CustomerOrder; + } + } + // 领料单查询处理 + if (parm != null && !string.IsNullOrEmpty(parm.FeedOrder)) + { + var workorderInfo = Context.Queryable() + .Where(it => it.FeedOrder.Contains(parm.FeedOrder)) + .First(); + if (workorderInfo != null) + { + parm.OrderNoMes = workorderInfo.CustomerOrder; + } + } + + var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) + .OrderBy(it=> it.OrderNoMes) .ToPage(parm); return response; @@ -81,10 +119,10 @@ namespace DOAN.Service.MES.order var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.OrderNoMes), it => it.OrderNoMes.Contains(parm.OrderNoMes)) .AndIF(!string.IsNullOrEmpty(parm.PurchaseOrderErp), it => it.PurchaseOrderErp.Contains(parm.PurchaseOrderErp)) + .AndIF(!string.IsNullOrEmpty(parm.MaterialCode), it => it.MaterialCode.Contains(parm.MaterialCode)) .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]) .AndIF(parm.Orderindicator > -1, it => it.Orderindicator == parm.Orderindicator) - ; return predicate; @@ -212,12 +250,63 @@ namespace DOAN.Service.MES.order } } - public List SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto) + public List SelectOrderList(OrderPurchaseQueryDto parm) { - var predicate = QueryExp(orderPurchaseDto); - + // 日期处理 + if (parm != null && parm.ImportDate != null && parm.ImportDate.Length > 0) + { + if (parm.ImportDate[0] > DateTime.MinValue) + { + parm.ImportDate[0] = DOANConvertDate.ConvertLocalDate(parm.ImportDate[0]); + } + if (parm.ImportDate[1] > DateTime.MinValue) + { + parm.ImportDate[1] = DOANConvertDate.ConvertLocalDate(parm.ImportDate[1]); + } + } + string _orderNoMes = parm.OrderNoMes; + // 工单查询处理 + if (parm != null && !string.IsNullOrEmpty(parm.WorkOrder)) + { + var workorderInfo = Context.Queryable() + .Where(it => it.Workorder.Contains(parm.WorkOrder)) + .First(); + if (workorderInfo != null) + { + parm.OrderNoMes = workorderInfo.CustomerOrder; + } + } + // 领料单查询处理 + if (parm != null && !string.IsNullOrEmpty(parm.FeedOrder)) + { + var workorderInfo = Context.Queryable() + .Where(it => it.FeedOrder.Contains(parm.FeedOrder)) + .First(); + if (workorderInfo != null) + { + parm.OrderNoMes = workorderInfo.CustomerOrder; + } + } + var predicate = QueryExp(parm); var response = Queryable() - .Where(predicate.ToExpression()).Adapt>(); + .Where(predicate.ToExpression()) + .OrderBy(it => it.OrderNoMes) + .Select(it => new OrderPurchaseExcelDto + { + Id = it.Id, + OrderNoMes = it.OrderNoMes, + ImportDate = it.ImportDate, + MaterialCode = it.MaterialCode, + MaterialName = it.MaterialName, + DocumentDate = it.DocumentDate, + DemandQuantity = it.DemandQuantity, + DeliveryDate = it.DeliveryDate, + DeliveryQuantity = it.DeliveryQuantity, + Orderindicator = it.Orderindicator, + StartDate = it.StartDate, + EndDate = it.EndDate, + Remark = it.Remark + }).ToList(); return response; } diff --git a/DOAN.Service/MES/Product/ProWorkorderService.cs b/DOAN.Service/MES/Product/ProWorkorderService.cs index 383950d..6b28aa8 100644 --- a/DOAN.Service/MES/Product/ProWorkorderService.cs +++ b/DOAN.Service/MES/Product/ProWorkorderService.cs @@ -49,6 +49,8 @@ namespace DOAN.Service.MES.product { if (parm.WorkorderDate != null && parm.WorkorderDate.Length > 0) { + parm.WorkorderDate[0] = DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[0]); + parm.WorkorderDate[1] = DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[1]); parm.WorkorderDate[0] = parm.WorkorderDate[0].Date; parm.WorkorderDate[1] = parm.WorkorderDate[1].Date; } @@ -63,6 +65,14 @@ namespace DOAN.Service.MES.product !string.IsNullOrEmpty(parm.productionCode), it => it.productionCode.Contains(parm.productionCode) ) + .AndIF( + !string.IsNullOrEmpty(parm.FeedOrder), + it => it.FeedOrder.Contains(parm.FeedOrder) + ) + .AndIF( + !string.IsNullOrEmpty(parm.CustomerOrder), + it => it.CustomerOrder.Contains(parm.CustomerOrder) + ) .AndIF(!string.IsNullOrEmpty(parm.RouteCode), it => it.RouteCode == parm.RouteCode) .AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode) .AndIF( @@ -148,6 +158,13 @@ namespace DOAN.Service.MES.product /// public PagedInfo GetList_NOCheck(ProWorkorderQueryDto parm) { + if (parm.WorkorderDate != null && parm.WorkorderDate.Length > 0) + { + parm.WorkorderDate[0] = DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[0]); + parm.WorkorderDate[1] = DOANConvertDate.ConvertLocalDate(parm.WorkorderDate[1]); + parm.WorkorderDate[0] = parm.WorkorderDate[0].Date; + parm.WorkorderDate[1] = parm.WorkorderDate[1].Date; + } var predicate = Expressionable .Create() .AndIF( @@ -162,6 +179,14 @@ namespace DOAN.Service.MES.product !string.IsNullOrEmpty(parm.productionCode), it => it.productionCode.Contains(parm.productionCode) ) + .AndIF( + !string.IsNullOrEmpty(parm.FeedOrder), + it => it.FeedOrder.Contains(parm.FeedOrder) + ) + .AndIF( + !string.IsNullOrEmpty(parm.CustomerOrder), + it => it.CustomerOrder.Contains(parm.CustomerOrder) + ) .AndIF(!string.IsNullOrEmpty(parm.RouteCode), it => it.RouteCode == parm.RouteCode) .AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode) .AndIF(