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);