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;