From 7aba25180179c0bd2bd54bbaeabed1fa2eccda49 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 22 Apr 2024 14:21:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Jobs/CountJobController.cs | 9 ++-- .../CountJobs/CountJobAutoMapperProfile.cs | 3 +- .../Jobs/CountJobs/CountJobManager.cs | 42 ++++++++++++------- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs index 6c6a13d7b..f3278d893 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs @@ -68,11 +68,13 @@ public class CountJobController : AbpController /// /// /// + /// 1为有箱码2无箱码 /// [HttpGet("list")] - public virtual async Task> GetListAsync(int pageSize, int pageIndex) + public virtual async Task> GetListAsync(int pageSize, int pageIndex,string inventoryMode) { - var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); + EnumInventoryMode mode = (EnumInventoryMode)Enum.Parse(typeof(EnumInventoryMode), inventoryMode); + var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); var jsonCodes = JsonSerializer.Serialize(wlgCodes); var status = new List() { (int)EnumJobStatus.Open, (int)EnumJobStatus.Doing }; @@ -88,7 +90,8 @@ public class CountJobController : AbpController Filters = new List { new(nameof(CountJobDTO.WorkGroupCode),jsonCodes,"In"), - new(nameof(CountJobDTO.JobStatus),jsonStatus,"In") + new(nameof(CountJobDTO.JobStatus),jsonStatus,"In"), + new(nameof(CountJobDTO.InventoryMode),mode.ToString()) } } }; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs index 20da66f9f..8becdf0d2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAutoMapperProfile.cs @@ -86,6 +86,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile .Ignore(x => x.Number) .Ignore(x => x.Id) ; - + CreateMap() + .ReverseMap(); } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs index 3bebda3a9..c0af47777 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJobManager.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using Volo.Abp; +using Volo.Abp.ObjectMapping; using Volo.Abp.Users; using Volo.Abp.Validation; using Win_in.Sfs.Shared.Domain; @@ -117,19 +118,41 @@ public class CountJobManager : SfsJobManagerBase, ICou } private async Task SetDetailsAsync(CountJob input, CountJob entity) - { + { + foreach (var depDetail in input.DepDetails) + { + var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode); + if (inputDetail != null) + { + inputDetail.CountQty += depDetail.CountQty; + } + else + { + var jobDetail = ObjectMapper.Map(depDetail); + var detailNumber = await GetNumber().ConfigureAwait(false); + jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber); + jobDetail.CountLabel = GuidGenerator.Create().ToString(); + input.Details.Add(jobDetail); + } + + var jobDepDetail = ObjectMapper.Map(depDetail); + var number = entity.Number; + jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); + jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); + entity.DepDetails.Add(jobDepDetail); + } foreach (var detail in input.Details) { var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id); //新增盘点明细 - if (entityDetail == null||entityDetail.Id==Guid.Empty) + if (entityDetail == null || entityDetail.Id == Guid.Empty) { var jobDetail = ObjectMapper.Map(detail); - var number =await GetNumber(); - jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number); - jobDetail.CountLabel = GuidGenerator.Create().ToString(); + //var number =await GetNumber(); + //jobDetail.SetIdAndNumber(GuidGenerator,entity.Id, number); + //jobDetail.CountLabel = GuidGenerator.Create().ToString(); //CountJobDetail jobDetail = new CountJobDetail() { }; entity.AddDetail(jobDetail); @@ -140,15 +163,6 @@ public class CountJobManager : SfsJobManagerBase, ICou .ConfigureAwait(false); } } - - foreach (var depDetail in input.DepDetails) - { - var jobDepDetail = ObjectMapper.Map(depDetail); - var number = entity.Number; - jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); - jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); - entity.DepDetails.Add(jobDepDetail); - } } public override void CheckDetails(CountJob entity, AbpValidationResult result)