diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs
index 39e27bc58..5df4a8596 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/InspectJobs/InspectJobAppService.cs
@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
+using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.FileStorage.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
@@ -23,13 +24,15 @@ public class InspectJobAppService
{
private readonly IInspectJobManager _inspectJobManager;
private readonly IFileAppService _fileAppService;
+ private readonly ICurrentUser _currentUser;
public InspectJobAppService(
IInspectJobRepository repository, IInspectJobManager inspectJobManager
- , IFileAppService fileAppService) : base(repository, inspectJobManager)
+ , IFileAppService fileAppService, ICurrentUser currentUser) : base(repository, inspectJobManager)
{
_inspectJobManager = inspectJobManager;
_fileAppService = fileAppService;
+ _currentUser = currentUser;
}
/// 【创建】质检任务
@@ -40,6 +43,17 @@ public class InspectJobAppService
{
var entity = ObjectMapper.Map(input);
+ if (_currentUser != null)
+ {
+ foreach (var item in entity.SummaryDetails)
+ {
+ if (item.InspectUser.IsNullOrEmpty())
+ {
+ item.InspectUser = _currentUser.UserName;
+ }
+ }
+ }
+
var result = await _inspectJobManager.AddAsync(entity).ConfigureAwait(false);
var dto = ObjectMapper.Map(result);
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/NoOkConvertOKNotes/NoOkConvertOKNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/NoOkConvertOKNotes/NoOkConvertOKNoteAppService.cs
index 16cf0842f..9af291a3c 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/NoOkConvertOKNotes/NoOkConvertOKNoteAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/NoOkConvertOKNotes/NoOkConvertOKNoteAppService.cs
@@ -1,9 +1,14 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
+using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared;
+using System.Linq;
+using Volo.Abp;
+using Win_in.Sfs.Wms.Inventory.Domain.Acl.Location;
+using Win_in.Sfs.Shared.Domain.Shared;
namespace Win_in.Sfs.Wms.Store.Application;
@@ -25,11 +30,16 @@ public class NoOkConvertOkNoteAppService :
INoOkConvertOkNoteAppService
{
private readonly INoOkConvertOkNoteManager _nOOkConvertOKNoteManager;
+ private readonly IBalanceAppService _balanceAppService;
+ private readonly ILocationAclService _locationAclService;
+
public NoOkConvertOkNoteAppService(
- INoOkConvertOkNoteRepository repository, INoOkConvertOkNoteManager nOOkConvertOkNoteManager) : base(repository)
+ INoOkConvertOkNoteRepository repository, INoOkConvertOkNoteManager nOOkConvertOkNoteManager, IBalanceAppService balanceAppService, ILocationAclService locationAclService) : base(repository)
{
_nOOkConvertOKNoteManager = nOOkConvertOkNoteManager;
+ _balanceAppService = balanceAppService;
+ _locationAclService = locationAclService;
}
///
@@ -41,6 +51,19 @@ public class NoOkConvertOkNoteAppService :
//[Authorize(NoOkConvertOkNotePermissions.Create)]
public override async Task CreateAsync(NoOkConvertOkNoteEditInput input)
{
+ #region 判断隔离库中是否有库存
+ var locationInfo = await _locationAclService.GetFirstByTypeAsync(EnumLocationType.HOLD).ConfigureAwait(false);
+
+ var packingCodeLst = input.Details.Select(itm => itm.ToPackingCode).ToList();
+ var balanceLst = await _balanceAppService.GetListByPackingCodesAsync(packingCodeLst).ConfigureAwait(false);
+ bool allOK = (balanceLst.Count == packingCodeLst.Count
+ && balanceLst.All(itm => itm.LocationCode.ToUpper() == locationInfo.Code && itm.Status == EnumInventoryStatus.NOK));
+ if (allOK == false)
+ {
+ throw new UserFriendlyException("隔离库中不存在如下箱码(或者其中之一)" + string.Join(",", packingCodeLst));
+ }
+ #endregion
+
var createEntity = ObjectMapper.Map(input);
var entity = await _nOOkConvertOKNoteManager.CreateAsync(createEntity).ConfigureAwait(false);