Browse Source

修改bug

集成Redis
郑勃旭 2 years ago
parent
commit
7ca655e8ff
  1. 19
      be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql
  2. 1
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs
  3. 15
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs
  4. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs
  5. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs
  6. 22
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs
  7. 12
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs
  8. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs
  9. 15
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs
  10. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs
  11. 33
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs
  12. 16
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs

19
be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/scripts/db.Microsoft.EntityFrameworkCore.SqlServer.StoreDbContext.sql

@ -2529,6 +2529,9 @@ CREATE TABLE [Job_PutawayJobDetail] (
CREATE TABLE [Job_UnplannedIssueJobDetail] ( CREATE TABLE [Job_UnplannedIssueJobDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[ReasonCode] nvarchar(max) NULL, [ReasonCode] nvarchar(max) NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,
@ -2579,6 +2582,9 @@ CREATE TABLE [Job_UnplannedIssueJobDetail] (
CREATE TABLE [Job_UnplannedReceiptJobDetail] ( CREATE TABLE [Job_UnplannedReceiptJobDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[ReasonCode] nvarchar(max) NULL, [ReasonCode] nvarchar(max) NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,
@ -4875,6 +4881,9 @@ CREATE TABLE [Store_TransferRequestDetail] (
CREATE TABLE [Store_UnplannedIssueNoteDetail] ( CREATE TABLE [Store_UnplannedIssueNoteDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[ReasonCode] nvarchar(max) NULL, [ReasonCode] nvarchar(max) NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,
@ -4937,6 +4946,9 @@ CREATE TABLE [Store_UnplannedIssueNoteDetail] (
CREATE TABLE [Store_UnplannedIssueRequestDetail] ( CREATE TABLE [Store_UnplannedIssueRequestDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,
@ -4974,6 +4986,9 @@ CREATE TABLE [Store_UnplannedIssueRequestDetail] (
CREATE TABLE [Store_UnplannedReceiptNoteDetail] ( CREATE TABLE [Store_UnplannedReceiptNoteDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[ReasonCode] nvarchar(max) NULL, [ReasonCode] nvarchar(max) NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,
@ -5036,6 +5051,10 @@ CREATE TABLE [Store_UnplannedReceiptNoteDetail] (
CREATE TABLE [Store_UnplannedReceiptRequestDetail] ( CREATE TABLE [Store_UnplannedReceiptRequestDetail] (
[Id] uniqueidentifier NOT NULL, [Id] uniqueidentifier NOT NULL,
[ReasonCode] nvarchar(max) NULL,
[CaseCode] nvarchar(max) NULL,
[ProjCapacityCode] nvarchar(max) NULL,
[OnceBusiCode] nvarchar(max) NULL,
[ExtraProperties] nvarchar(max) NULL, [ExtraProperties] nvarchar(max) NULL,
[CreationTime] datetime2 NOT NULL, [CreationTime] datetime2 NOT NULL,
[CreatorId] uniqueidentifier NULL, [CreatorId] uniqueidentifier NULL,

1
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs

@ -275,6 +275,7 @@ public class BalanceAppService
dto.ItemName = item.Name; dto.ItemName = item.Name;
dto.ItemDesc1 = item.Desc1; dto.ItemDesc1 = item.Desc1;
dto.ItemDesc2 = item.Desc2; dto.ItemDesc2 = item.Desc2;
dto.Uom = item.BasicUom;
} }
return dtos; return dtos;
} }

15
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Transactions/TransactionManager.cs

@ -18,7 +18,8 @@ public class TransactionManager : DomainService, ITransactionManager
private readonly IBalanceManager _balanceManager; private readonly IBalanceManager _balanceManager;
private readonly IItemBasicAclService _itemBasicAclService; private readonly IItemBasicAclService _itemBasicAclService;
private readonly ILocationAclService _locationAclService; private readonly ILocationAclService _locationAclService;
private readonly ITransactionTypeAclService _transactionTypeAclService; //private readonly ITransactionTypeAclService _transactionTypeAclService;
private readonly ITransactionTypeAppService _transactionTypeAppService;
private readonly ITransactionRepository _transactionRepository; private readonly ITransactionRepository _transactionRepository;
private readonly IBalanceRepository _balanceRepository; private readonly IBalanceRepository _balanceRepository;
private readonly ISnowflakeIdGenerator _numberGenerator; private readonly ISnowflakeIdGenerator _numberGenerator;
@ -28,20 +29,22 @@ public class TransactionManager : DomainService, ITransactionManager
IBalanceManager balanceManager IBalanceManager balanceManager
, IItemBasicAclService itemBasicAclService , IItemBasicAclService itemBasicAclService
, ILocationAclService locationAclService , ILocationAclService locationAclService
, ITransactionTypeAclService transactionTypeAclService //, ITransactionTypeAclService transactionTypeAclService
, ITransactionRepository transactionRepository , ITransactionRepository transactionRepository
, IBalanceRepository balanceRepository , IBalanceRepository balanceRepository
, ISnowflakeIdGenerator numberGenerator , ISnowflakeIdGenerator numberGenerator
, ILocationCapacityManager locationCapacityManager) , ILocationCapacityManager locationCapacityManager
, ITransactionTypeAppService transactionTypeAppService)
{ {
_balanceManager = balanceManager; _balanceManager = balanceManager;
_itemBasicAclService = itemBasicAclService; _itemBasicAclService = itemBasicAclService;
_locationAclService = locationAclService; _locationAclService = locationAclService;
_transactionTypeAclService = transactionTypeAclService; //_transactionTypeAclService = transactionTypeAclService;
_transactionRepository = transactionRepository; _transactionRepository = transactionRepository;
_balanceRepository = balanceRepository; _balanceRepository = balanceRepository;
_numberGenerator = numberGenerator; _numberGenerator = numberGenerator;
_locationCapacityManager = locationCapacityManager; _locationCapacityManager = locationCapacityManager;
_transactionTypeAppService = transactionTypeAppService;
} }
public virtual async Task<string> AddAsync(Transaction transaction) public virtual async Task<string> AddAsync(Transaction transaction)
@ -96,7 +99,7 @@ public class TransactionManager : DomainService, ITransactionManager
var item = await _itemBasicAclService.GetByCodeAsync(transaction.ItemCode).ConfigureAwait(false); var item = await _itemBasicAclService.GetByCodeAsync(transaction.ItemCode).ConfigureAwait(false);
var location = await _locationAclService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false); var location = await _locationAclService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false);
var transactionType = await _transactionTypeAclService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); var transactionType = await _transactionTypeAppService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false);
transaction.CheckTransactionType(transactionType, item, location); transaction.CheckTransactionType(transactionType, item, location);
//执行库存余额的变动 //执行库存余额的变动
@ -158,7 +161,7 @@ public class TransactionManager : DomainService, ITransactionManager
//库位注意大小写 //库位注意大小写
var location = locations.FirstOrDefault(p => p.Code.ToUpper() == transaction.LocationCode.ToUpper()); var location = locations.FirstOrDefault(p => p.Code.ToUpper() == transaction.LocationCode.ToUpper());
var transactionType = await _transactionTypeAclService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false); var transactionType = await _transactionTypeAppService.GetByTransTypeAsync(transaction.TransType, transaction.TransSubType).ConfigureAwait(false);
transaction.CheckTransactionType(transactionType, item, location); transaction.CheckTransactionType(transactionType, item, location);
await UpdateBalanceAsync(transaction, item, location).ConfigureAwait(false); await UpdateBalanceAsync(transaction, item, location).ConfigureAwait(false);

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Orders/PurchaseOrders/IPurchaseOrderAppService.cs

@ -29,7 +29,7 @@ public interface IPurchaseOrderAppService
/// <param name="number"></param> /// <param name="number"></param>
/// <param name="input"></param> /// <param name="input"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateDetailsAsync(string number, List<PurchaseOrderDetailUpdateInput> input); Task UpdateDetailsAsync(string number,List<PurchaseOrderDetailUpdateInput> input);
/// <summary> /// <summary>
/// 【批量创建】到货通知 (收货单) /// 【批量创建】到货通知 (收货单)

16
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/ItemTransformRequests/ItemTransformRequestAppService.cs

@ -75,7 +75,8 @@ public class ItemTransformRequestAppService :
{ {
var fromLocationDto= await LocationAclService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); var fromLocationDto= await LocationAclService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false);
var toLocationDto= await LocationAclService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false); var toLocationDto= await LocationAclService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false);
var itemBasicDto=await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); var fromItemBasicDto=await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
var toItemBasicDto = await ItemBasicAclService.GetByCodeAsync(detail.ToItemCode).ConfigureAwait(false);
var balanceDto= await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode, detail.ItemCode, var balanceDto= await _balanceAppService.GetByItemLocationAndPackingAsync(detail.FromPackingCode, detail.ItemCode,
detail.FromLocationCode).ConfigureAwait(false); detail.FromLocationCode).ConfigureAwait(false);
@ -97,10 +98,15 @@ public class ItemTransformRequestAppService :
detail.ToLocationGroup = toLocationDto.LocationGroupCode; detail.ToLocationGroup = toLocationDto.LocationGroupCode;
detail.ToWarehouseCode = toLocationDto.WarehouseCode; detail.ToWarehouseCode = toLocationDto.WarehouseCode;
detail.ItemDesc1 = itemBasicDto.Desc1; detail.ItemDesc1 = fromItemBasicDto.Desc1;
detail.ItemDesc2= itemBasicDto.Desc2; detail.ItemDesc2= fromItemBasicDto.Desc2;
detail.ItemName= itemBasicDto.Name; detail.ItemName= fromItemBasicDto.Name;
detail.Uom = itemBasicDto.BasicUom; detail.Uom = fromItemBasicDto.BasicUom;
detail.ToItemCode = toItemBasicDto.Desc1;
detail.ToItemDesc1 = toItemBasicDto.Desc2;
detail.ToItemDesc2 = toItemBasicDto.Name;
detail.ItemName = toItemBasicDto.BasicUom;
} }
} }

22
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs

@ -37,18 +37,20 @@ public class PurchaseReturnRequestAppService :
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
private readonly ITransactionTypeAppService _transactionTypeAppService; private readonly ITransactionTypeAppService _transactionTypeAppService;
private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager; private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager;
private readonly IPurchaseOrderAppService _purchaseOrderAppService;
public PurchaseReturnRequestAppService( public PurchaseReturnRequestAppService(
IPurchaseReturnRequestRepository repository, IPurchaseReturnRequestRepository repository,
IPurchaseReturnRequestManager purchaseReturnRequestManager, IPurchaseReturnRequestManager purchaseReturnRequestManager,
IInventoryLabelAppService inventoryLabelApp, IInventoryLabelAppService inventoryLabelApp,
ILocationAppService locationAppService, ILocationAppService locationAppService,
ITransactionTypeAppService transactionTypeAppService) : base(repository, purchaseReturnRequestManager) ITransactionTypeAppService transactionTypeAppService,
IPurchaseOrderAppService purchaseOrderAppService) : base(repository, purchaseReturnRequestManager)
{ {
_purchaseReturnRequestManager = purchaseReturnRequestManager; _purchaseReturnRequestManager = purchaseReturnRequestManager;
_inventoryLabelApp = inventoryLabelApp; _inventoryLabelApp = inventoryLabelApp;
_locationAppService = locationAppService; _locationAppService = locationAppService;
_transactionTypeAppService = transactionTypeAppService; _transactionTypeAppService = transactionTypeAppService;
_purchaseOrderAppService = purchaseOrderAppService;
base.CreatePolicyName = PurchaseReturnRequestPermissions.Create; base.CreatePolicyName = PurchaseReturnRequestPermissions.Create;
base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update; base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update;
@ -97,13 +99,16 @@ public class PurchaseReturnRequestAppService :
var labelDto = await _inventoryLabelApp.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false); var labelDto = await _inventoryLabelApp.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false);
var balanceDto = await BalanceAclService.GetByPackingCodeAsync(detail.PackingCode).ConfigureAwait(false); var balanceDto = await BalanceAclService.GetByPackingCodeAsync(detail.PackingCode).ConfigureAwait(false);
var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false); var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false);
var purchaseOrderDto= await _purchaseOrderAppService.GetByNumberAsync(labelDto.PoNumber).ConfigureAwait(false);
purchaseOrderDto = await _purchaseOrderAppService.GetAsync(purchaseOrderDto.Id).ConfigureAwait(false);
purchaseReturnRequest.AsnNumber = labelDto.AsnNumber; purchaseReturnRequest.AsnNumber = labelDto.AsnNumber;
purchaseReturnRequest.RpNumber = labelDto.RpNumber; purchaseReturnRequest.RpNumber = labelDto.RpNumber;
purchaseReturnRequest.ReturnTime=DateTime.Now; purchaseReturnRequest.ReturnTime=DateTime.Now;
purchaseReturnRequest.SupplierCode= labelDto.SupplierCode; purchaseReturnRequest.SupplierCode= labelDto.SupplierCode;
purchaseReturnRequest.ReturnType = EnumPurchaseReturnType.AfterPuton; purchaseReturnRequest.ReturnType = EnumPurchaseReturnType.AfterPuton;
purchaseReturnRequest.PoNumber = labelDto.PoNumber; purchaseReturnRequest.PoNumber = labelDto.PoNumber;
await SetDetailPropertiesAsync(detail, labelDto, balanceDto,locationDto).ConfigureAwait(false); await SetDetailPropertiesAsync(detail, labelDto, balanceDto,locationDto, purchaseOrderDto).ConfigureAwait(false);
} }
} }
@ -135,12 +140,15 @@ public class PurchaseReturnRequestAppService :
/// <param name="labelDto"></param> /// <param name="labelDto"></param>
/// <param name="balanceDto"></param> /// <param name="balanceDto"></param>
/// <param name="locationDto"></param> /// <param name="locationDto"></param>
/// <param name="purchaseOrderDto"></param>
/// <returns></returns> /// <returns></returns>
private async Task SetDetailPropertiesAsync( private async Task SetDetailPropertiesAsync(
PurchaseReturnRequestDetail detail, PurchaseReturnRequestDetail detail,
InventoryLabelDto labelDto, InventoryLabelDto labelDto,
BalanceDTO balanceDto, BalanceDTO balanceDto,
LocationDTO locationDto) LocationDTO locationDto,
PurchaseOrderDTO purchaseOrderDto
)
{ {
if (labelDto != null) if (labelDto != null)
{ {
@ -171,6 +179,12 @@ public class PurchaseReturnRequestAppService :
detail.StdPackQty = balanceDto.StdPackQty; detail.StdPackQty = balanceDto.StdPackQty;
detail.Qty = balanceDto.Qty; detail.Qty = balanceDto.Qty;
} }
if (purchaseOrderDto != null)
{
detail.PoLine =
purchaseOrderDto.Details.FirstOrDefault(p => p.ItemCode == balanceDto.ItemCode && p.Lot == balanceDto.Lot).PoLine;
}
} }
#endregion #endregion

12
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/MaterialRequests/MaterialRequestManager.cs

@ -133,7 +133,7 @@ public class MaterialRequestManager
SetMaterialRequestDetailStatus(detail); SetMaterialRequestDetailStatus(detail);
} }
//SetMaterialRequestStatus(oldEntity); SetMaterialRequestStatus(oldEntity);
await Repository.UpdateAsync(oldEntity).ConfigureAwait(false); await Repository.UpdateAsync(oldEntity).ConfigureAwait(false);
} }
@ -146,7 +146,7 @@ public class MaterialRequestManager
{ {
detail.Status = EnumStatus.Close; detail.Status = EnumStatus.Close;
} }
else else//要100
{ {
detail.Status=EnumStatus.Open; detail.Status=EnumStatus.Open;
} }
@ -157,6 +157,14 @@ public class MaterialRequestManager
} }
} }
private void SetMaterialRequestStatus(MaterialRequest materialRequest)
{
if (materialRequest.Details.All(p => p.Status == EnumStatus.Close))
{
materialRequest.RequestStatus = EnumRequestStatus.Completed;
}
}
public virtual async Task CompleteAsync(string number) public virtual async Task CompleteAsync(string number)
{ {
var entity = await GetByNumberAsync(number).ConfigureAwait(false); var entity = await GetByNumberAsync(number).ConfigureAwait(false);

7
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/ExpectInOuts/IssueJobEventHandler.cs

@ -17,6 +17,13 @@ public class IssueJobEventHandler :
, ILocalEventHandler<SfsCancelledEntityEventData<IssueJob>> , ILocalEventHandler<SfsCancelledEntityEventData<IssueJob>>
{ {
private readonly IBalanceAppService _balanceAppService;
public IssueJobEventHandler(IBalanceAppService balanceAppService)
{
_balanceAppService = balanceAppService;
}
[UnitOfWork] [UnitOfWork]
public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<IssueJob> eventData) public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<IssueJob> eventData)
{ {

15
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/PurchaseReceiptJobEventHandler.cs

@ -35,7 +35,7 @@ public class PurchaseReceiptJobEventHandler :
var entity = eventData.Entity; var entity = eventData.Entity;
//创建收货记录 //创建收货记录
await CreatePurchaseReceiptNoteAsync(entity).ConfigureAwait(false); await BuildPurchaseReceiptNoteAsync(entity).ConfigureAwait(false);
} }
#region 私有 #region 私有
@ -44,8 +44,9 @@ public class PurchaseReceiptJobEventHandler :
/// 创建收货记录 /// 创建收货记录
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
private async Task CreatePurchaseReceiptNoteAsync(PurchaseReceiptJob purchaseReceiptJob) private async Task BuildPurchaseReceiptNoteAsync(PurchaseReceiptJob purchaseReceiptJob)
{ {
var holdLocation = await LocationAclService.GetFirstByTypeAsync(EnumLocationType.HOLD).ConfigureAwait(false); //隔离库位
var createInput = ObjectMapper.Map<PurchaseReceiptJob, PurchaseReceiptNoteEditInput>(purchaseReceiptJob); var createInput = ObjectMapper.Map<PurchaseReceiptJob, PurchaseReceiptNoteEditInput>(purchaseReceiptJob);
//未收货记录 //未收货记录
@ -58,6 +59,16 @@ public class PurchaseReceiptJobEventHandler :
detailInput.PurchaseReceiptInspectStatus = EnumPurchaseReceiptInspect.NORECEIPT; detailInput.PurchaseReceiptInspectStatus = EnumPurchaseReceiptInspect.NORECEIPT;
} }
var noOkNoteDetailInputs =
createInput.Details.Where(p => p.PurchaseReceiptInspectStatus == EnumPurchaseReceiptInspect.NOK);
foreach (var detailInput in noOkNoteDetailInputs)
{
detailInput.HandledToLocationArea = holdLocation.AreaCode;
detailInput.HandledToLocationErpCode = holdLocation.ErpLocationCode;
detailInput.HandledToLocationGroup = holdLocation.LocationGroupCode;
detailInput.HandledToWarehouseCode=holdLocation.WarehouseCode;
}
await _purchaseReceiptNoteAppService.CreateAsync(createInput).ConfigureAwait(false); await _purchaseReceiptNoteAppService.CreateAsync(createInput).ConfigureAwait(false);
} }

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ItemTransformRequestEventHandler.cs

@ -74,9 +74,9 @@ public class ItemTransformRequestEventHandler
ReasonCode = detail.ReasonCode, ReasonCode = detail.ReasonCode,
ToArriveDate = detail.ToArriveDate, ToArriveDate = detail.ToArriveDate,
ToExpireDate = detail.ToExpireDate, ToExpireDate = detail.ToExpireDate,
ToItemDesc1 = detail.ItemDesc1, ToItemDesc1 = detail.ToItemDesc1,
ToItemDesc2 = detail.ItemDesc2, ToItemDesc2 = detail.ToItemDesc2,
ToItemName = detail.ItemName, ToItemName = detail.ToItemName,
ToLot = detail.ToLot, ToLot = detail.ToLot,
ToPackingCode = detail.ToPackingCode, ToPackingCode = detail.ToPackingCode,
ToQty = detail.ToQty, ToQty = detail.ToQty,

33
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/MaterialRequestEventHandler.cs

@ -28,17 +28,20 @@ public class MaterialRequestEventHandler
private readonly IProductionLineAppService _productionLineAppService; private readonly IProductionLineAppService _productionLineAppService;
private readonly IMaterialRequestManager _materialRequestManager; private readonly IMaterialRequestManager _materialRequestManager;
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
private readonly IBalanceAppService _balanceAppService;
public MaterialRequestEventHandler( public MaterialRequestEventHandler(
IIssueJobAppService issueJobAppService IIssueJobAppService issueJobAppService
, IProductionLineAppService productionLineAppService , IProductionLineAppService productionLineAppService
, IMaterialRequestManager materialRequestManager , IMaterialRequestManager materialRequestManager
, ILocationAppService locationAppService) , ILocationAppService locationAppService
, IBalanceAppService balanceAppService)
{ {
_issueJobAppService = issueJobAppService; _issueJobAppService = issueJobAppService;
_productionLineAppService = productionLineAppService; _productionLineAppService = productionLineAppService;
_materialRequestManager = materialRequestManager; _materialRequestManager = materialRequestManager;
_locationAppService = locationAppService; _locationAppService = locationAppService;
_balanceAppService = balanceAppService;
} }
/// <summary> /// <summary>
@ -204,7 +207,7 @@ public class MaterialRequestEventHandler
Statuses = transactionType.OutInventoryStatuses, Statuses = transactionType.OutInventoryStatuses,
}; };
//获取推荐库存 //获取推荐库存
var recommendList = await BalanceAclService.GetRecommendBalancesAsync(input).ConfigureAwait(false); var recommendList = await _balanceAppService.GetRecommendBalancesAsync(input).ConfigureAwait(false);
//没有推荐库存时 跳过此明细 不生成任务 //没有推荐库存时 跳过此明细 不生成任务
if (recommendList.Count != 0) if (recommendList.Count != 0)
{ {
@ -215,16 +218,17 @@ public class MaterialRequestEventHandler
if (materialRequest.UseOnTheWayLocation) if (materialRequest.UseOnTheWayLocation)
{ {
//获取在途库 //获取在途库
var locationDto= await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT).ConfigureAwait(false); var locationDto = await _locationAppService.GetFirstByTypeAsync(EnumLocationType.TRANSPORT).ConfigureAwait(false);
detail.OnTheWayLocationCode = locationDto.Code; detail.OnTheWayLocationCode = locationDto.Code;
} }
jobDetails.Add(detail); jobDetails.Add(detail);
materialRequestDetail.IssuedQty += recommend.Qty; materialRequestDetail.IssuedQty += recommend.Qty;
await _materialRequestManager.UpdateDetailsAsync(materialRequest).ConfigureAwait(false);
} }
} }
return jobDetails; return jobDetails;
} }
@ -240,21 +244,22 @@ public class MaterialRequestEventHandler
detail.RecommendPackingCode = balance.PackingCode; detail.RecommendPackingCode = balance.PackingCode;
detail.RecommendContainerCode = balance.ContainerCode; detail.RecommendContainerCode = balance.ContainerCode;
detail.RecommendSupplierBatch = balance.SupplierBatch; detail.RecommendSupplierBatch = balance.SupplierBatch;
detail.RecommendProduceDate= balance.ProduceDate; detail.RecommendProduceDate = balance.ProduceDate;
detail.RecommendExpireDate= balance.ExpireDate; detail.RecommendExpireDate = balance.ExpireDate;
detail.RecommendLot= balance.Lot; detail.RecommendLot = balance.Lot;
detail.RecommendProduceDate=balance.ProduceDate; detail.RecommendProduceDate = balance.ProduceDate;
detail.RecommendArriveDate= balance.ArriveDate; detail.RecommendArriveDate = balance.ArriveDate;
detail.RecommendFromLocationArea = balance.LocationArea; detail.RecommendFromLocationArea = balance.LocationArea;
detail.RecommendFromLocationCode= balance.LocationCode; detail.RecommendFromLocationCode = balance.LocationCode;
detail.RecommendFromLocationErpCode= balance.LocationErpCode; detail.RecommendFromLocationErpCode = balance.LocationErpCode;
detail.RecommendFromLocationGroup= balance.LocationGroup; detail.RecommendFromLocationGroup = balance.LocationGroup;
detail.RecommendFromWarehouseCode= balance.WarehouseCode; detail.RecommendFromWarehouseCode = balance.WarehouseCode;
detail.RecommendQty = balance.Qty;
detail.Uom = balance.Uom; detail.Uom = balance.Uom;
detail.ToLocationCode = materialRequestDetail.ToLocationCode; detail.ToLocationCode = materialRequestDetail.ToLocationCode;
detail.ToLocationErpCode = materialRequestDetail.ToLocationErpCode; detail.ToLocationErpCode = materialRequestDetail.ToLocationErpCode;
detail.ToLocationArea= materialRequestDetail.ToLocationArea; detail.ToLocationArea = materialRequestDetail.ToLocationArea;
detail.ToWarehouseCode = materialRequestDetail.ToWarehouseCode; detail.ToWarehouseCode = materialRequestDetail.ToWarehouseCode;
detail.ToLocationGroup = materialRequestDetail.ToLocationGroup; detail.ToLocationGroup = materialRequestDetail.ToLocationGroup;
//detail.Operation = //TODO //detail.Operation = //TODO

16
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs

@ -3,6 +3,7 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Inventory.Application.Contracts;
@ -25,14 +26,16 @@ public class PurchaseReturnNoteEventHandler
private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestApp; private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestApp;
private readonly IPurchaseOrderAppService _purchaseOrderAppService; private readonly IPurchaseOrderAppService _purchaseOrderAppService;
private readonly IInventoryLabelAppService _inventoryLabelAppService;
public PurchaseReturnNoteEventHandler( public PurchaseReturnNoteEventHandler(
IPurchaseReturnRequestAppService purchaseReturnRequestApp IPurchaseReturnRequestAppService purchaseReturnRequestApp
, IPurchaseOrderAppService purchaseOrderAppService , IPurchaseOrderAppService purchaseOrderAppService,
) IInventoryLabelAppService inventoryLabelAppService)
{ {
_purchaseReturnRequestApp = purchaseReturnRequestApp; _purchaseReturnRequestApp = purchaseReturnRequestApp;
_purchaseOrderAppService = purchaseOrderAppService; _purchaseOrderAppService = purchaseOrderAppService;
_inventoryLabelAppService = inventoryLabelAppService;
} }
[UnitOfWork] [UnitOfWork]
@ -53,10 +56,15 @@ public class PurchaseReturnNoteEventHandler
private async Task UpdatePurchaseOrderAsync(PurchaseReturnNote entity) private async Task UpdatePurchaseOrderAsync(PurchaseReturnNote entity)
{ {
var purchaseOrderDetailUpdateInputs = entity.Details foreach (var detail in entity.Details)
{
var inventoryLabelDto=await _inventoryLabelAppService.GetByCodeAsync(detail.PackingCode).ConfigureAwait(false);
var purchaseOrderDetailUpdateInputs = entity.Details
.Select(BuildPurchaseOrderDetailUpdateInput).ToList(); .Select(BuildPurchaseOrderDetailUpdateInput).ToList();
await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false); await _purchaseOrderAppService.UpdateDetailsAsync(entity.PoNumber, purchaseOrderDetailUpdateInputs).ConfigureAwait(false);
}
} }
private static PurchaseOrderDetailUpdateInput BuildPurchaseOrderDetailUpdateInput(PurchaseReturnNoteDetail purchaseReturnNoteDetail) private static PurchaseOrderDetailUpdateInput BuildPurchaseOrderDetailUpdateInput(PurchaseReturnNoteDetail purchaseReturnNoteDetail)

Loading…
Cancel
Save