Browse Source

优化代码

dev_DY_CC
郑勃旭 12 months ago
parent
commit
6ac6324007
  1. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/AssembleIssueJobEventHandler.cs
  2. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/CoatingIssueJobEventHandler.cs
  3. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/InjectionIssueJobEventHandler.cs
  4. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/KittingIssueJobEventHandler.cs
  5. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/KittingIssueRequestEventHandler.cs
  6. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/SortBalance.cs

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/AssembleIssueJobEventHandler.cs

@ -14,6 +14,9 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event.BusinessJob; namespace Win_in.Sfs.Wms.Store.Event.BusinessJob;
/// <summary>
/// 装配
/// </summary>
public class AssembleIssueJobEventHandler : public class AssembleIssueJobEventHandler :
StoreEventHandlerBase StoreEventHandlerBase
, ILocalEventHandler<SfsCompletedEntityEventData<AssembleIssueJob>> , ILocalEventHandler<SfsCompletedEntityEventData<AssembleIssueJob>>

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/CoatingIssueJobEventHandler.cs

@ -14,6 +14,9 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event.BusinessJob; namespace Win_in.Sfs.Wms.Store.Event.BusinessJob;
/// <summary>
/// 喷涂
/// </summary>
public class CoatingIssueJobEventHandler : public class CoatingIssueJobEventHandler :
StoreEventHandlerBase StoreEventHandlerBase
, ILocalEventHandler<SfsCompletedEntityEventData<CoatingIssueJob>> , ILocalEventHandler<SfsCompletedEntityEventData<CoatingIssueJob>>

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/InjectionIssueJobEventHandler.cs

@ -14,6 +14,9 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event.BusinessJob; namespace Win_in.Sfs.Wms.Store.Event.BusinessJob;
/// <summary>
/// 注塑
/// </summary>
public class InjectionIssueJobEventHandler : public class InjectionIssueJobEventHandler :
StoreEventHandlerBase StoreEventHandlerBase
, ILocalEventHandler<SfsCompletedEntityEventData<InjectionIssueJob>> , ILocalEventHandler<SfsCompletedEntityEventData<InjectionIssueJob>>

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/Issue/KittingIssueJobEventHandler.cs

@ -14,6 +14,9 @@ using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event.BusinessJob; namespace Win_in.Sfs.Wms.Store.Event.BusinessJob;
/// <summary>
/// Kitting
/// </summary>
public class KittingIssueJobEventHandler : public class KittingIssueJobEventHandler :
StoreEventHandlerBase StoreEventHandlerBase
, ILocalEventHandler<SfsCompletedEntityEventData<KittingIssueJob>> , ILocalEventHandler<SfsCompletedEntityEventData<KittingIssueJob>>

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/Issue/KittingIssueRequestEventHandler.cs

@ -12,10 +12,8 @@ using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
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;
using Win_in.Sfs.Wms.Inventory.Domain;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using static Win_in.Sfs.Wms.Store.Domain.Shared.StoreSettings;
namespace Win_in.Sfs.Wms.Store.Event.BusinessRequest; namespace Win_in.Sfs.Wms.Store.Event.BusinessRequest;
@ -33,13 +31,11 @@ public class KittingIssueRequestEventHandler
private readonly ILocationAppService _locationAppService; private readonly ILocationAppService _locationAppService;
private readonly IBalanceAppService _balanceAppService; private readonly IBalanceAppService _balanceAppService;
private IMapper _mapper; private IMapper _mapper;
//private readonly IKittingIssueRequestManager _kittingIssueRequestManager;
public KittingIssueRequestEventHandler( public KittingIssueRequestEventHandler(
IKittingIssueJobAppService kittingIssueJobAppService, IProductionLineAppService productionLineAppService, IKittingIssueJobAppService kittingIssueJobAppService, IProductionLineAppService productionLineAppService,
ILocationAppService locationAppService, ILocationAppService locationAppService,
IBalanceAppService balanceAppService, IProductionLineItemAppService productionLineItemAppService IBalanceAppService balanceAppService, IProductionLineItemAppService productionLineItemAppService
//, IKittingIssueRequestManager kittingIssueRequestManager
) )
{ {
_kittingIssueJobAppService = kittingIssueJobAppService; _kittingIssueJobAppService = kittingIssueJobAppService;
@ -47,7 +43,6 @@ public class KittingIssueRequestEventHandler
_locationAppService = locationAppService; _locationAppService = locationAppService;
_balanceAppService = balanceAppService; _balanceAppService = balanceAppService;
_productionLineItemAppService = productionLineItemAppService; _productionLineItemAppService = productionLineItemAppService;
//_kittingIssueRequestManager = kittingIssueRequestManager;
} }
/// <summary> /// <summary>
@ -67,8 +62,6 @@ public class KittingIssueRequestEventHandler
/// <param name="eventData">Event data</param> /// <param name="eventData">Event data</param>
public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<List<KittingIssueRequest>> eventData) public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<List<KittingIssueRequest>> eventData)
{ {
var entity = eventData.Entity;
await Task.CompletedTask.ConfigureAwait(false); await Task.CompletedTask.ConfigureAwait(false);
} }
@ -179,8 +172,7 @@ public class KittingIssueRequestEventHandler
if (kittingIssueJobDetailInputs.Any()) if (kittingIssueJobDetailInputs.Any())
{ {
var kittingIssueJobEditInput = new KittingIssueJobEditInput(); var kittingIssueJobEditInput = await BuildKittingIssueJobCreateInputWithQtyTypeAsync(kittingIssueRequest,
kittingIssueJobEditInput = await BuildKittingIssueJobCreateInputWithQtyTypeAsync(kittingIssueRequest,
kittingIssueRequestDetails.First()).ConfigureAwait(false); kittingIssueRequestDetails.First()).ConfigureAwait(false);
kittingIssueJobEditInput.Details = kittingIssueJobDetailInputs; kittingIssueJobEditInput.Details = kittingIssueJobDetailInputs;
jobs.Add(kittingIssueJobEditInput); jobs.Add(kittingIssueJobEditInput);
@ -212,7 +204,6 @@ public class KittingIssueRequestEventHandler
return job; return job;
} }
/// <summary> /// <summary>
/// 构造注塑任务明细-按数量 /// 构造注塑任务明细-按数量
/// </summary> /// </summary>
@ -339,10 +330,8 @@ public class KittingIssueRequestEventHandler
{ {
var inputJobs = new List<KittingIssueJobEditInput>(); var inputJobs = new List<KittingIssueJobEditInput>();
var jobs = await _kittingIssueJobAppService.GetByRequestNumberAsync(kittingIssueRequest.Number).ConfigureAwait(false); var jobs = await _kittingIssueJobAppService.GetByRequestNumberAsync(kittingIssueRequest.Number)
.ConfigureAwait(false);
//已用的库存的集合
useBalanceList = useBalanceList;
foreach (var detail in kittingIssueRequestDetailList) foreach (var detail in kittingIssueRequestDetailList)
{ {
@ -354,7 +343,6 @@ public class KittingIssueRequestEventHandler
var productionLineDto = await _productionLineAppService var productionLineDto = await _productionLineAppService
.GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false); .GetByLocationCodeAsync(inputDetails.First().ToLocationCode).ConfigureAwait(false);
var productLineCodeAndItemCode = await _productionLineItemAppService var productLineCodeAndItemCode = await _productionLineItemAppService
.GetByProductLineCodeAndItemCodeAsync(productionLineDto.Code, detail.ItemCode) .GetByProductLineCodeAndItemCodeAsync(productionLineDto.Code, detail.ItemCode)
.ConfigureAwait(false); .ConfigureAwait(false);
@ -375,7 +363,7 @@ public class KittingIssueRequestEventHandler
if (usableList.Any()) if (usableList.Any())
{ {
var firstUsable = usableList.First(); var firstUsable = usableList.First();
useBalanceList.Add((BalanceDTO)firstUsable); useBalanceList.Add(firstUsable);
usableList.Remove(firstUsable); usableList.Remove(firstUsable);
var kittingIssueJobEditInput = var kittingIssueJobEditInput =
@ -429,7 +417,6 @@ public class KittingIssueRequestEventHandler
/// </summary> /// </summary>
/// <param name="kittingIssueRequestDetail"></param> /// <param name="kittingIssueRequestDetail"></param>
/// <param name="balance"></param> /// <param name="balance"></param>
/// <param name="toLocationGroupCode"></param>
/// <returns></returns> /// <returns></returns>
private async Task<KittingIssueJobDetailInput> BuildKittingIssueJobDetailWithBoxQtyTypeAsync( private async Task<KittingIssueJobDetailInput> BuildKittingIssueJobDetailWithBoxQtyTypeAsync(
KittingIssueRequestDetail kittingIssueRequestDetail, BalanceDTO balance) KittingIssueRequestDetail kittingIssueRequestDetail, BalanceDTO balance)
@ -540,7 +527,7 @@ public class KittingIssueRequestEventHandler
IsPackingCode = true IsPackingCode = true
}; };
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false); var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);
var sortByFifoAsync=await SortByFifoAsync(usableList).ConfigureAwait(false); var sortByFifoAsync = await SortByFifoAsync(usableList).ConfigureAwait(false);
//因为是按箱叫料 先把值赋值给箱数量上 //因为是按箱叫料 先把值赋值给箱数量上
kittingIssueRequestDetail.BoxQty = kittingIssueRequestDetail.Qty; kittingIssueRequestDetail.BoxQty = kittingIssueRequestDetail.Qty;
@ -594,8 +581,6 @@ public class KittingIssueRequestEventHandler
} }
} }
usableList = temp;
kittingIssueJobEditInputs.AddRange( kittingIssueJobEditInputs.AddRange(
await CreateKittingIssueJobWithQtyTypeAsync(kittingIssueRequest, await CreateKittingIssueJobWithQtyTypeAsync(kittingIssueRequest,
new List<KittingIssueRequestDetail> { kittingIssueRequestDetail }, temp, new List<KittingIssueRequestDetail> { kittingIssueRequestDetail }, temp,
@ -665,18 +650,15 @@ public class KittingIssueRequestEventHandler
requestDetail.ReceivedQty = allReceivedQty; requestDetail.ReceivedQty = allReceivedQty;
} }
} }
//await _kittingIssueRequestManager.UpdateAsync(kittingIssueRequest).ConfigureAwait(false);
} }
/// <summary> /// <summary>
/// 排序规则 1.批次正序 2.底层 3.到货日期正序 4.数量倒序(整箱优先) 5.库位正序 6.箱码正序 /// 排序规则 1.批次正序 2.底层 3.到货日期正序 4.数量倒序(整箱优先) 5.库位正序 6.箱码正序
/// </summary> /// </summary>
/// <param name="balances"></param> /// <param name="balances"></param>
/// <returns></returns> /// <returns></returns>
public async Task<List<SortBalance>> SortByFifoAsync(List<BalanceDTO> balances) public async Task<List<SortBalance>> SortByFifoAsync(List<BalanceDTO> balances)
{ {
var sortBalances = new List<SortBalance>();
var config = new MapperConfiguration(cfg => var config = new MapperConfiguration(cfg =>
{ {
cfg.CreateMap<BalanceDTO, SortBalance>() cfg.CreateMap<BalanceDTO, SortBalance>()
@ -687,15 +669,16 @@ public class KittingIssueRequestEventHandler
var resultBalances = _mapper.Map<List<BalanceDTO>, List<SortBalance>>(balances); var resultBalances = _mapper.Map<List<BalanceDTO>, List<SortBalance>>(balances);
foreach (var resultBalance in resultBalances) foreach (var resultBalance in resultBalances)
{ {
var locationDto=await _locationAppService.GetByCodeAsync(resultBalance.LocationCode).ConfigureAwait(false); var locationDto =
await _locationAppService.GetByCodeAsync(resultBalance.LocationCode).ConfigureAwait(false);
resultBalance.LocationRow = locationDto.RowCode; resultBalance.LocationRow = locationDto.RowCode;
} }
resultBalances=resultBalances resultBalances = resultBalances
.OrderBy(p => p.Lot) .OrderBy(p => p.Lot)
.ThenBy(p=>p.LocationRow) .ThenBy(p => p.LocationRow)
.ThenBy(p => p.PutInTime) .ThenBy(p => p.PutInTime)
.ThenBy(p => p.Qty)//2023-9-14 苑静雯 从小数开始发料 .ThenBy(p => p.Qty) //2023-9-14 苑静雯 从小数开始发料
.ThenBy(p => p.LocationCode) .ThenBy(p => p.LocationCode)
.ThenBy(p => p.PackingCode) .ThenBy(p => p.PackingCode)
.ToList(); .ToList();
@ -703,8 +686,3 @@ public class KittingIssueRequestEventHandler
return resultBalances; return resultBalances;
} }
} }
public class SortBalance: BalanceDTO
{
public int LocationRow { get; set; }
}

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

@ -0,0 +1,6 @@
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
public class SortBalance : BalanceDTO
{
public int LocationRow { get; set; }
}
Loading…
Cancel
Save