From f49fa925ae8101f672b808f4872bfd1c416e584d Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Tue, 23 Apr 2024 10:59:50 +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 --- .../Boms/BomManager.cs | 2 + .../Jobs/CountJobs/CountJob.cs | 2 +- .../Jobs/CountJobs/CountJobManager.cs | 37 +++++++++++-------- .../Requests/CountPlanEventHandler.cs | 1 + 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs index bd83d5143..84e2bf562 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Boms/BomManager.cs @@ -361,8 +361,10 @@ public class BomManager : DomainService, IBomManager { List boms = new List(); var lst = await _repository.GetListAsync(p => p.Product == productCode).ConfigureAwait(false); + var parentitem = await _repository.FindAsync(p => p.Component == productCode).ConfigureAwait(false); foreach (var bom in lst) { + bom.Remark = parentitem?.Id.ToString(); boms.Add(bom); var results= await GetAllItemByCode(bom.Component).ConfigureAwait(false); boms.AddRange(results); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs index dd89bb9a8..677eecc06 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/CountJobs/CountJob.cs @@ -96,7 +96,7 @@ public class CountJob : SfsJobAggregateRootBase detail.ExpireDate = expireDate; detail.LocationCode = locationCode; - detail.CountQty = detail.CountQty+qty; + detail.CountQty = qty; detail.CountTime = time; detail.CountOperator = oper; detail.CountDescription = desc; 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 c0af47777..88e1b0935 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 @@ -118,22 +118,32 @@ public class CountJobManager : SfsJobManagerBase, ICou } private async Task SetDetailsAsync(CountJob input, CountJob entity) - { - foreach (var depDetail in input.DepDetails) + { + //将任务里所有可盘数量置为0 + input.Details.ForEach(r => { - var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode); - if (inputDetail != null) - { - inputDetail.CountQty += depDetail.CountQty; - } - else + r.CountQty = 0; + + }); + //清除之前的扫描明细 + entity.DepDetails.RemoveAll(r=>r.InventoryStage==entity.InventoryStage); + //遍历扫描明细 + foreach (var depDetail in input.DepDetails.Where(r=>r.InventoryStage==entity.InventoryStage)) + { + var inputDetail = input.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode&&r.LocationCode == depDetail.LocationCode&&r.InventoryStage == entity.InventoryStage); + if (inputDetail == null) { var jobDetail = ObjectMapper.Map(depDetail); + jobDetail.InventoryQty = 0; var detailNumber = await GetNumber().ConfigureAwait(false); jobDetail.SetIdAndNumber(GuidGenerator, entity.Id, detailNumber); jobDetail.CountLabel = GuidGenerator.Create().ToString(); input.Details.Add(jobDetail); } + else + { + inputDetail.CountQty += depDetail.CountQty; + } var jobDepDetail = ObjectMapper.Map(depDetail); var number = entity.Number; @@ -141,7 +151,7 @@ public class CountJobManager : SfsJobManagerBase, ICou jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); entity.DepDetails.Add(jobDepDetail); } - foreach (var detail in input.Details) + foreach (var detail in input.Details.Where(r => r.InventoryStage == entity.InventoryStage)) { var entityDetail = entity.Details.FirstOrDefault(p => p.Id == detail.Id); @@ -149,12 +159,7 @@ public class CountJobManager : SfsJobManagerBase, ICou 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(); - //CountJobDetail jobDetail = new CountJobDetail() { }; - + var jobDetail = ObjectMapper.Map(detail); entity.AddDetail(jobDetail); } else @@ -163,6 +168,8 @@ public class CountJobManager : SfsJobManagerBase, ICou .ConfigureAwait(false); } } + //移除原有明细里没有,并且第二次扫描以处的项目 + entity.Details.RemoveAll(r => r.InventoryQty == 0 && r.CountQty == 0&& r.InventoryStage == entity.InventoryStage); } public override void CheckDetails(CountJob entity, AbpValidationResult result) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs index cba7ab568..ab4562f87 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/CountPlanEventHandler.cs @@ -238,6 +238,7 @@ public class CountPlanEventHandler foreach (var countPlanDetail in countPlanDetails) { var countJobDetail = ObjectMapper.Map(countPlanDetail); + countJobDetail.InventoryStage = countPlan.InventoryStage; countJob.Details.Add(countJobDetail); }