diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite index a481eadbd..2e7ede825 100644 Binary files a/.vs/slnx.sqlite and b/.vs/slnx.sqlite differ diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 441c35645..6376a2716 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -207,6 +207,11 @@ public class KittingIssueJobAppService if (kittingIssueJob.EnumIssueSendType == EnumIssueSendType.BoxQtyType) //按箱叫料 因为任务只有1箱 所以可以直接完成 { + if (issueJobDetailDto.RecommendToPackingCode != issueJobDetailDto.HandledToPackingCode) + { + await CheckPackingCodeIsUserAsync(issueJobDetailDto.HandledToPackingCode, kittingIssueJob.Number).ConfigureAwait(false); + } + await UpdateRequestAndjobStatusDoneAsync(kittingIssueJob, issueJobDetailDto, issueJobDetailDto.HandledToQty) .ConfigureAwait(false); await _expectOutAppService.RemoveByNumberAsync(kittingIssueJob.Number).ConfigureAwait(false); @@ -560,6 +565,23 @@ public class KittingIssueJobAppService await Task.CompletedTask.ConfigureAwait(false); } + /// + /// 判断实际TO的箱码是否被占用 + /// + /// + /// + /// + /// + private async Task CheckPackingCodeIsUserAsync(string packingCode,string jobNumber) + { + var list = await _expectOutAppService.GetListByPackingCodeAsync(packingCode).ConfigureAwait(false); + list=list.Where(p => p.JobNumber != jobNumber).ToList(); + if (list.Any()) + { + throw new UserFriendlyException($"任务号【{list.First().JobNumber}】已占用,【{packingCode}】箱码"); + } + } + private async Task RemoveExpectOutAsync(KittingIssueJob kittingIssueJob, KittingIssueJobDetailDTO kittingIssueJobDetailDto, decimal handledToQty) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs index d67a779d7..ea33a207d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/TransferLibJobs/TransferLibJobAppService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -75,6 +76,11 @@ public class TransferLibJobAppService foreach (var detailObj in dto.Details) { + if (detailObj.RecommendToPackingCode != detailObj.HandledToPackingCode) + { + await CheckPackingCodeIsUserAsync(detailObj.HandledToPackingCode, dto.CallJobNumber).ConfigureAwait(false); + } + if (detailObj.IsPackingCodeFrom) { if (detailObj.RecommendFromPackingCode != detailObj.HandledFromPackingCode) @@ -284,4 +290,21 @@ public class TransferLibJobAppService } } } + + /// + /// 判断实际TO的箱码是否被占用 + /// + /// + /// + /// + /// + private async Task CheckPackingCodeIsUserAsync(string packingCode, string jobNumber) + { + var list = await _expectOutAppService.GetListByPackingCodeAsync(packingCode).ConfigureAwait(false); + list = list.Where(p => p.JobNumber != jobNumber).ToList(); + if (list.Any()) + { + throw new UserFriendlyException($"任务号【{list.First().JobNumber}】已占用,【{packingCode}】箱码"); + } + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs index 8573a076a..308cb2a0c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/KittingIssueJobEventHandler.cs @@ -190,7 +190,7 @@ public class KittingIssueJobEventHandler : detailInput.RecommendToQty = detail.RecommendToQty; detailInput.RecommendToLot = detail.RecommendToLot; - detailInput.RecommendToPackingCode = detailInput.RecommendToPackingCode; + detailInput.RecommendToPackingCode = detail.RecommendToPackingCode; detailInput.RecommendToLot = detail.RecommendToLot; detailInput.RecommendToArriveDate = detail.RecommendToArriveDate;