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(