完善订单查询,导出功能,完善工单查询功能

This commit is contained in:
2025-12-30 16:58:01 +08:00
parent ba63c12824
commit 1cb9cbc6d8
7 changed files with 203 additions and 32 deletions

View File

@@ -40,8 +40,7 @@ namespace DOAN.Admin.WebApi.Controllers
[ActionPermissionFilter(Permission = "orderpurchase:list")] [ActionPermissionFilter(Permission = "orderpurchase:list")]
public IActionResult QueryOrderPurchase([FromBody] OrderPurchaseQueryDto parm) 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); var response = _OrderPurchaseService.GetList(parm);
return SUCCESS(response); return SUCCESS(response);
} }
@@ -142,19 +141,19 @@ namespace DOAN.Admin.WebApi.Controllers
return SUCCESS(response); return SUCCESS(response);
} }
/// <summary> /// <summary>
/// 采购订单excel导出 /// 采购订单excel导出
/// </summary> /// </summary>
/// <param name="user"></param> /// <param name="parm"></param>
/// <returns></returns> /// <returns></returns>
[HttpGet("export")] [HttpGet("export")]
[Log(Title = "用户导出", BusinessType = BusinessType.EXPORT)] [Log(Title = "采购订单导出", BusinessType = BusinessType.EXPORT)]
[AllowAnonymous] [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", "采购订单列表"); var result = ExportExcelMini(list, "order", "采购订单列表");
return ExportExcel(result.Item2, result.Item1); return ExportExcel(result.Item2, result.Item1);

View File

@@ -36,8 +36,7 @@ namespace DOAN.Admin.WebApi.Controllers
[ActionPermissionFilter(Permission = "productManagement:proworkorder:list")] [ActionPermissionFilter(Permission = "productManagement:proworkorder:list")]
public IActionResult QueryProWorkorder([FromBody] ProWorkorderQueryDto parm) 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); var response = _ProWorkorderService.GetList(parm);
return SUCCESS(response); return SUCCESS(response);

View File

@@ -6,16 +6,39 @@ namespace DOAN.Model.MES.order.Dto
/// </summary> /// </summary>
public class OrderPurchaseQueryDto : PagerInfo public class OrderPurchaseQueryDto : PagerInfo
{ {
/// <summary>
/// 导入日期
/// </summary>
public DateTime[] ImportDate { get; set; } public DateTime[] ImportDate { get; set; }
/// <summary>
/// 订单号MES实际使用
/// </summary>
public string OrderNoMes { get; set; } public string OrderNoMes { get; set; }
/// <summary>
/// 采购订单号对接ERP
/// </summary>
public string PurchaseOrderErp { get; set; } public string PurchaseOrderErp { get; set; }
/// <summary>
/// 工单号
/// </summary>
public string WorkOrder { get; set; }
/// <summary>
/// 领料单号
/// </summary>
public string FeedOrder { get; set; }
/// <summary>
/// 物料号
/// </summary>
public string MaterialCode { get; set; }
/// <summary> /// <summary>
/// 是否完成订单 /// 是否完成订单
/// </summary> /// </summary>
public int Orderindicator { get; set; } public int Orderindicator { get; set; }
/// <summary>
/// 是否非标
/// </summary>
public int Specordindicator { get; set; }
} }
/// <summary> /// <summary>
@@ -76,12 +99,38 @@ namespace DOAN.Model.MES.order.Dto
public DateTime? UpdatedTime { get; set; } public DateTime? UpdatedTime { get; set; }
}
/// <summary>
[ExcelColumn(Name = "类型")] /// 采购订单导出对象
public string KdTypeLabel { get; set; } /// </summary>
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; }
} }
} }

View File

@@ -16,6 +16,16 @@ namespace DOAN.Model.MES.product.Dto
public string RouteCode { get; set; } public string RouteCode { get; set; }
public string GroupCode { get; set; } public string GroupCode { get; set; }
/// <summary>
/// 进料单号(领料)
/// </summary>
public string FeedOrder { get; set; }
/// <summary>
/// 客户单号(出货)
/// </summary>
public string CustomerOrder { get; set; }
public int Status { get; set; } public int Status { get; set; }
public DateTime[] WorkorderDate { get; set; } = new DateTime[2]; public DateTime[] WorkorderDate { get; set; } = new DateTime[2];

View File

@@ -17,7 +17,7 @@ namespace DOAN.Service.MES.order.IService
OrderPurchase AddOrderPurchase(OrderPurchase parm); OrderPurchase AddOrderPurchase(OrderPurchase parm);
int UpdateOrderPurchase(OrderPurchase parm); int UpdateOrderPurchase(OrderPurchase parm);
List<OrderPurchaseDto> SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto); List<OrderPurchaseExcelDto> SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto);
} }
} }

View File

@@ -1,16 +1,15 @@
using Infrastructure.Attribute; using Aliyun.OSS;
using Infrastructure.Extensions;
using DOAN.Service.MES.order.IService;
using DOAN.Repository;
using DOAN.Model.MES.order.Dto;
using DOAN.Model.MES.order; 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 Microsoft.AspNetCore.Http;
using NPOI.SS.UserModel; using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; using NPOI.XSSF.UserModel;
using NPOI.SS.Formula.Functions;
using Aliyun.OSS;
using Mapster;
using ZXing;
namespace DOAN.Service.MES.order namespace DOAN.Service.MES.order
{ {
@@ -27,10 +26,49 @@ namespace DOAN.Service.MES.order
/// <returns></returns> /// <returns></returns>
public PagedInfo<OrderPurchaseDto> GetList(OrderPurchaseQueryDto parm) public PagedInfo<OrderPurchaseDto> 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<ProWorkorder>()
.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<ProWorkorder>()
.Where(it => it.FeedOrder.Contains(parm.FeedOrder))
.First();
if (workorderInfo != null)
{
parm.OrderNoMes = workorderInfo.CustomerOrder;
}
}
var predicate = QueryExp(parm); var predicate = QueryExp(parm);
var response = Queryable() var response = Queryable()
.Where(predicate.ToExpression()) .Where(predicate.ToExpression())
.OrderBy(it=> it.OrderNoMes)
.ToPage<OrderPurchase, OrderPurchaseDto>(parm); .ToPage<OrderPurchase, OrderPurchaseDto>(parm);
return response; return response;
@@ -81,10 +119,10 @@ namespace DOAN.Service.MES.order
var predicate = Expressionable.Create<OrderPurchase>() var predicate = Expressionable.Create<OrderPurchase>()
.AndIF(!string.IsNullOrEmpty(parm.OrderNoMes), it => it.OrderNoMes.Contains(parm.OrderNoMes)) .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.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[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.ImportDate != null && parm.ImportDate[1] > DateTime.MinValue, it => it.ImportDate <= parm.ImportDate[1])
.AndIF(parm.Orderindicator > -1, it => it.Orderindicator == parm.Orderindicator) .AndIF(parm.Orderindicator > -1, it => it.Orderindicator == parm.Orderindicator)
; ;
return predicate; return predicate;
@@ -212,12 +250,63 @@ namespace DOAN.Service.MES.order
} }
} }
public List<OrderPurchaseDto> SelectOrderList(OrderPurchaseQueryDto orderPurchaseDto) public List<OrderPurchaseExcelDto> 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<ProWorkorder>()
.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<ProWorkorder>()
.Where(it => it.FeedOrder.Contains(parm.FeedOrder))
.First();
if (workorderInfo != null)
{
parm.OrderNoMes = workorderInfo.CustomerOrder;
}
}
var predicate = QueryExp(parm);
var response = Queryable() var response = Queryable()
.Where(predicate.ToExpression()).Adapt<List<OrderPurchaseDto>>(); .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; return response;
} }

View File

@@ -49,6 +49,8 @@ namespace DOAN.Service.MES.product
{ {
if (parm.WorkorderDate != null && parm.WorkorderDate.Length > 0) 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[0] = parm.WorkorderDate[0].Date;
parm.WorkorderDate[1] = parm.WorkorderDate[1].Date; parm.WorkorderDate[1] = parm.WorkorderDate[1].Date;
} }
@@ -63,6 +65,14 @@ namespace DOAN.Service.MES.product
!string.IsNullOrEmpty(parm.productionCode), !string.IsNullOrEmpty(parm.productionCode),
it => it.productionCode.Contains(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.RouteCode), it => it.RouteCode == parm.RouteCode)
.AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode) .AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode)
.AndIF( .AndIF(
@@ -148,6 +158,13 @@ namespace DOAN.Service.MES.product
/// <returns></returns> /// <returns></returns>
public PagedInfo<ProWorkorderDto> GetList_NOCheck(ProWorkorderQueryDto parm) public PagedInfo<ProWorkorderDto> 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 var predicate = Expressionable
.Create<ProWorkorder>() .Create<ProWorkorder>()
.AndIF( .AndIF(
@@ -162,6 +179,14 @@ namespace DOAN.Service.MES.product
!string.IsNullOrEmpty(parm.productionCode), !string.IsNullOrEmpty(parm.productionCode),
it => it.productionCode.Contains(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.RouteCode), it => it.RouteCode == parm.RouteCode)
.AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode) .AndIF(!string.IsNullOrEmpty(parm.GroupCode), it => it.GroupCode == parm.GroupCode)
.AndIF( .AndIF(