Browse Source

修改采购订单

集成Redis
郑勃旭 2 years ago
parent
commit
e69183ab07
  1. 42
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs
  2. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs
  3. 25
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs

42
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Orders/PurchaseOrders/PurchaseOrderAppService.cs

@ -98,6 +98,27 @@ public class PurchaseOrderAppService :
return dictionary;
}
/// <summary>
/// 【创建】采购订单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("")]
public override async Task<PurchaseOrderDTO> CreateAsync(PurchaseOrderEditInput input)
{
if (string.IsNullOrWhiteSpace(input.Number))
{
input.Number = await _purchaseOrderManager
.GenerateNumberAsync(nameof(PurchaseOrder), Clock.Normalize(input.ActiveDate)).ConfigureAwait(false);
}
var entity = ObjectMapper.Map<PurchaseOrderEditInput, PurchaseOrder>(input);
await _purchaseOrderManager.CreateAsync(entity).ConfigureAwait(false);
return ObjectMapper.Map<PurchaseOrder, PurchaseOrderDTO>(entity);
}
#region 校验
/// <summary>
@ -140,27 +161,6 @@ public class PurchaseOrderAppService :
#endregion
/// <summary>
/// 【创建】采购订单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("")]
public override async Task<PurchaseOrderDTO> CreateAsync(PurchaseOrderEditInput input)
{
if (string.IsNullOrWhiteSpace(input.Number))
{
input.Number = await _purchaseOrderManager
.GenerateNumberAsync(nameof(PurchaseOrder), Clock.Normalize(input.ActiveDate)).ConfigureAwait(false);
}
var entity = ObjectMapper.Map<PurchaseOrderEditInput, PurchaseOrder>(input);
await _purchaseOrderManager.CreateAsync(entity).ConfigureAwait(false);
return ObjectMapper.Map<PurchaseOrder, PurchaseOrderDTO>(entity);
}
/// <summary>
/// 【批量创建】采购订单
/// </summary>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Orders/PurchaseOrders/PurchaseOrderManager.cs

@ -54,8 +54,8 @@ public class PurchaseOrderManager : SfsStoreManagerBase<PurchaseOrder, PurchaseO
purchaseOrder.SetIdAndNumberWithDetails(GuidGenerator, purchaseOrder.Number);
//await PublishCreatedAsync(purchaseOrder).ConfigureAwait(false);
//不要用base.create 要不会把number覆盖
await PublishCreatedAsync(purchaseOrder).ConfigureAwait(false);
return await Repository.InsertAsync(purchaseOrder).ConfigureAwait(false);
}
/// <summary>

25
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Orders/PurchaseOrderEventHandler.cs

@ -107,6 +107,10 @@ public class PurchaseOrderEventHandler
//供应商窗口
var supplierTimeWindowDtos = await _supplierTimeWindowAppService.GetListBySupplierCodeAsync(purchaseOrder.SupplierCode).ConfigureAwait(false);
if (!supplierTimeWindowDtos.Any())
{
throw new UserFriendlyException($"供应商窗口【{purchaseOrder.SupplierCode}】没设置");
}
//一次性返回所有物品信息
var itemBasicDtos = await _itemBasicAppService.GetByCodesAsync(itemCodes).ConfigureAwait(false);
@ -173,13 +177,13 @@ public class PurchaseOrderEventHandler
//todo 一个物品多个包装?怎么取值
//标包数
var itemPackDto=ItemPacks.First(p => p.ItemCode == purchaseOrderDetaildetail.ItemCode);
var itemPackDto = itemBasicDtos.First(p=>p.Code== purchaseOrderDetaildetail.ItemCode).StdPackQty;
//总箱数
var itemPackingCount = (int)(itemQty / itemPackDto.Qty);
if (itemQty > itemPackDto.Qty)
var itemPackingCount = (int)(itemQty / itemPackDto);
if (itemQty > itemPackDto)
{
if (itemQty % itemPackDto.Qty != 0)
if (itemQty % itemPackDto != 0)
{
itemPackingCount++;
}
@ -214,7 +218,7 @@ public class PurchaseOrderEventHandler
supplierAsnDetailInput.ItemDesc2 = itemBasicDto.Desc2;
//标包
supplierAsnDetailInput.StdPackQty = itemPackDto.Qty;
supplierAsnDetailInput.StdPackQty = itemPackDto;
supplierAsnDetailInput.SupplierPackQty = supplierItemDto.SupplierPackQty;
supplierAsnDetailInput.SupplierPackUom = supplierItemDto.SupplierPackUom;
@ -228,11 +232,11 @@ public class PurchaseOrderEventHandler
supplierAsnDetailInput.RecommendErpCode = purchaseOrderDetaildetail.LocationErpCode;
supplierAsnDetailInput.PoNumber = purchaseOrder.Number;
supplierAsnDetailInput.Qty = itemQty>itemPackDto.Qty ? itemPackDto.Qty : itemQty;
supplierAsnDetailInput.Qty = itemQty>itemPackDto ? itemPackDto : itemQty;
itemQty-=itemPackDto.Qty;
itemQty-=itemPackDto;
var InventoryLabelEditInput = await BuildInventoryLabelEditInputAsync(supplierAsnEditInput, supplierAsnDetailInput, supplierDto, itemBasicDto, supplierItemDto, itemPackDto).ConfigureAwait(false);
var InventoryLabelEditInput = await BuildInventoryLabelEditInputAsync(supplierAsnEditInput, supplierAsnDetailInput, supplierDto, itemBasicDto, supplierItemDto).ConfigureAwait(false);
inventoryLabelEditInputs.Add(InventoryLabelEditInput);
supplierAsnEditInput.Details.Add(supplierAsnDetailInput);
@ -260,8 +264,7 @@ public class PurchaseOrderEventHandler
SupplierAsnDetailInput supplierAsnDetail,
SupplierDTO supplierDto,
ItemBasicDTO itemBasicDto,
SupplierItemDTO supplierItemDto,
ItemPackDTO itemPackDto)
SupplierItemDTO supplierItemDto)
{
if (itemBasicDto == null)
@ -308,7 +311,7 @@ public class PurchaseOrderEventHandler
inputLabel.LabelStatus = LabelStatus.Enable;
inputLabel.Specifications = itemBasicDto.Color;
inputLabel.StdPackQty = itemPackDto.Qty;
inputLabel.StdPackQty = itemBasicDto.StdPackQty;
inputLabel.SupplierItemCode = supplierItemDto.SupplierItemCode;
inputLabel.SupplierItemName = supplierItemDto.ItemName;

Loading…
Cancel
Save