From 3cbe9b1e3994fbb0b27e2dc2c23cf147f2969865 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Wed, 23 Jul 2025 08:49:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9B=98=E7=82=B9=E5=A4=9A?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=B0=E5=BD=95=E5=92=8C=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E8=AE=A1=E5=88=92=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/CountJobs/CountJobManager.cs | 47 ++++++++++++++----- .../Plans/CountPlans/CountPlanManager.cs | 10 +--- 2 files changed, 35 insertions(+), 22 deletions(-) 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 76d938799..51fbb63ad 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 @@ -22,16 +22,19 @@ public class CountJobManager : SfsJobManagerBase, ICou private readonly IBalanceAppService _balanceAppService; private readonly ICountJobRepository _repository; private readonly ICountNoteRepository _noteRepository; + private readonly ICountPlanRepository _planRepository; private readonly ICountAdjustRequestRepository _countAdjustRequestRepository; public CountJobManager( ICountJobRepository repository, IBalanceAppService balanceAppService, ICountNoteRepository noteRepository, + ICountPlanRepository planRepository, ICountAdjustRequestRepository countAdjustRequestRepository ) : base(repository) { _noteRepository = noteRepository; + _planRepository = planRepository; _balanceAppService = balanceAppService; _repository = repository; _countAdjustRequestRepository= countAdjustRequestRepository; @@ -304,31 +307,49 @@ public class CountJobManager : SfsJobManagerBase, ICou { decimal countCount = depDetail.CountQty; var detail = entity.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage&&r.Lot==depDetail.Lot); - var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage && r.Lot == depDetail.Lot); + //var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.InventoryStage == entity.InventoryStage && r.Lot == depDetail.Lot); + var oldDepDetail = entity.DepDetails.FirstOrDefault(r => r.Id == new Guid(depDetail.Id.ToString())); if (depDetail.IsDelete) { countCount = -oldDepDetail.CountQty; entity.DepDetails.Remove(oldDepDetail); + + //移除的扫描记录盘点数量与计划中盘点数量一致,移除计划中的物料 + var planDB = await _planRepository.FindAsync(r => r.Number == input.CountPlanNumber).ConfigureAwait(false); + if (planDB != null) + { + var planDetailDB = planDB.Details.FirstOrDefault(r => r.ItemCode == depDetail.ItemCode && r.PackingCode == depDetail.PackingCode && r.LocationCode == depDetail.LocationCode && r.Lot == depDetail.Lot && r.Status == depDetail.Status); + if (planDetailDB != null) + { + if(planDetailDB.FinalCountQty == oldDepDetail.CountQty) + { + planDB.Details.Remove(planDetailDB); + await _planRepository.UpdateAsync(planDB).ConfigureAwait(false); + } + } + } } else { if (oldDepDetail != null && depDetail.Id == oldDepDetail.Id) { countCount = depDetail.CountQty - oldDepDetail.CountQty; - entity.DepDetails.Remove(oldDepDetail); + oldDepDetail.CountQty = depDetail.CountQty; } - - var jobDepDetail = ObjectMapper.Map(depDetail); - var number = entity.Number; - jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); - jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); - entity.DepDetails.Add(jobDepDetail); - if (detail != null) + else { - jobDepDetail.ArriveDate = detail.ArriveDate; - jobDepDetail.ProduceDate = detail.ProduceDate; - jobDepDetail.ExpireDate = detail.ExpireDate; - } + var jobDepDetail = ObjectMapper.Map(depDetail); + var number = entity.Number; + jobDepDetail.SetIdAndNumber(GuidGenerator, entity.Id, number); + jobDepDetail.CountLabel = GuidGenerator.Create().ToString(); + entity.DepDetails.Add(jobDepDetail); + if (detail != null) + { + jobDepDetail.ArriveDate = detail.ArriveDate; + jobDepDetail.ProduceDate = detail.ProduceDate; + jobDepDetail.ExpireDate = detail.ExpireDate; + } + } } if (detail == null) { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs index a1940ec94..529c304d4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Plans/CountPlans/CountPlanManager.cs @@ -384,15 +384,7 @@ public class CountPlanManager : SfsStoreRequestManagerBase p.ItemCode == planDetail.ItemCode && p.PackingCode == planDetail.PackingCode && p.Lot == planDetail.Lot && p.LocationCode == planDetail.LocationCode); - if(entityDetail == null) - { - entity.Details.Remove(planDetail); - } - } + foreach (var planDetail in plan.Details) {