From 5fdf5418005be0227a2babcca20c42e7eecb86f4 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Fri, 5 Jul 2024 10:38:05 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=B8=8D=E5=90=88=E6=A0=BC=E5=BA=93?= =?UTF-8?q?=E5=AD=98--=E6=89=B9=E9=87=8F=E8=BD=AC=E5=90=88=E6=A0=BC?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=98=AF=E5=90=A6=E6=9C=89=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/InspectJobs/InspectJobAppService.cs | 16 +++++++++++- .../NoOkConvertOKNoteAppService.cs | 25 ++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) 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);