diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 852a01e6..be76f93a 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 6074170a..2fbdaa0e 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -71,7 +71,7 @@ namespace WMS.Web.Domain.Services public async Task Save(List dto, LoginInDto loginInfo) { _logger.LogInformation($"盘点保存:{JsonConvert.SerializeObject(dto)} 盘点人:{loginInfo.UserInfo.StaffId}"); - dto = dto.Where(w => w.AfterQty != w.BeforeQty).ToList(); + //dto = dto.Where(w => w.AfterQty != w.BeforeQty).ToList(); if (dto.Count() == 0) return Result.ReSuccess(); if (dto.GroupBy(g => g.BoxId).Count() > 1) return Result.ReFailure(ResultCodes.TakeStockBoxError); @@ -199,14 +199,20 @@ namespace WMS.Web.Domain.Services var sc_erpBasicDataExtendService = scope.ServiceProvider.GetRequiredService(); var sc_takeStockRepositories = scope.ServiceProvider.GetRequiredService(); - if (entity.Details.Count() == 0) return Result.ReSuccess(); + var details = entity.Details.Where(w => w.FinalQty > 0).ToList(); + if (details.Count() == 0) + { + entity.Sync(true, "", SyncStatus.Success, ""); + await sc_takeStockRepositories.Edit(entity, true); + return Result.ReSuccess(); + } var materials_result = await sc_erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError); var materials = materials_result.Data.ToList(); var subs = await _erpService.BillQueryForSubStock(); List<(string materialNumber, string orgCode, string stockCode, int subStockId)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode, int subStockId)>(); - foreach (var d in entity.Details) + foreach (var d in details) { int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode, subStockId)); @@ -223,7 +229,7 @@ namespace WMS.Web.Domain.Services #region 组装dto //子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004 List detils = new List(); - foreach (var d in entity.Details) + foreach (var d in details) { int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index c1bf79cd..724eab14 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -217,7 +217,7 @@ namespace WMS.Web.Repositories .GroupJoin(_context.TakeStock, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) .OrderByDescending(o => o.detail.Id) - .Where(adv => 1 == 1); + .Where(adv => 1 == 1 && adv.detail.FinalQty > 0); if (!string.IsNullOrEmpty(dto.MaterialNumber)) query = query.Where(w => mIds.Contains(w.detail.MaterialId));