From f9ce3ebec96ee285476bb4a5e62f918ebfe9970e Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 3 Apr 2024 10:15:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/SerialNumberService.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 1615da51..10a843e4 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -145,7 +145,7 @@ namespace WMS.Web.Domain.Services }; if (moveBoxRecord.Type == MoveBoxType.Up) { - var srcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, moveBoxRecord.DestSubStockCode+ moveBoxRecord.StockCode+ moveBoxRecord.OrgCode); + var srcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, moveBoxRecord.DestSubStockCode + moveBoxRecord.StockCode + moveBoxRecord.OrgCode); op.Remark += "\r\n" + "仓位:" + srcSubStock; } sList.Add(op); @@ -180,6 +180,7 @@ namespace WMS.Web.Domain.Services var serialNumbers = outStock.Details.SelectMany(s => s.SerialNumbers).ToList(); var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); var boxIds = entityList.Select(s => s.BoxId).ToList(); + boxIds.AddRange(outStock.Details.SelectMany(s => s.BoxsDetails).Select(s => s.BoxId)); var boxList = await _boxRepositories.GetEntityList(boxIds); var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId); @@ -191,7 +192,8 @@ namespace WMS.Web.Domain.Services List sList = new List(); foreach (var entity in entityList) { - var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId); + var boxId = outStock.Details.SelectMany(s => s.BoxsDetails).FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; + var box = boxList.FirstOrDefault(f => f.Id == boxId); var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); if (outstockDetail == null) continue; //修改序列号和箱绑定关系 @@ -202,8 +204,8 @@ namespace WMS.Web.Domain.Services { MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, - OrgId = box.OrgId, - SupplierId = box.SupplierId, + OrgId = box?.OrgId ?? 0, + SupplierId = box?.SupplierId ?? 0, OperateTime = DateTime.Now, OperateType = OutStockTypeConvert(outStock.Type), OperateUser = userName, @@ -322,7 +324,7 @@ namespace WMS.Web.Domain.Services var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; var box = boxList.FirstOrDefault(f => f.Id == boxId); var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); - var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode+ inStock.StockCode+ inStock.OrgCode); + var subStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, inStock.SubStockCode + inStock.StockCode + inStock.OrgCode); //修改序列号和箱绑定关系 entity.InStock(instockDetail.SourceBillNo, inStock.Type); entity.Bind(boxId, box?.CompleteCartonTime ?? DateTime.Now); @@ -411,7 +413,7 @@ namespace WMS.Web.Domain.Services if (backRecord.Type == BackRecordType.OutstockOn) { var subStockId = backRecord?.SubStockCode ?? ""; - var srcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, backRecord?.SubStockCode ?? ""+ backRecord?.StockCode ?? ""+ backRecord?.OrgCode ?? ""); + var srcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, backRecord?.SubStockCode ?? "" + backRecord?.StockCode ?? "" + backRecord?.OrgCode ?? ""); op.Remark += "\r\n" + "仓位:" + srcSubStock; } sList.Add(op); @@ -445,7 +447,7 @@ namespace WMS.Web.Domain.Services { var serialNumbers = takeStocks.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList(); var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); - var boxIds = takeStocks.SelectMany(s=>s.Details).Select(s => s.BoxId).ToList(); + var boxIds = takeStocks.SelectMany(s => s.Details).Select(s => s.BoxId).ToList(); var boxList = await _boxRepositories.GetEntityList(boxIds); List box_New_List = new List(); From 2f0e37908770ac4e6b1526e58afe79aae733398f Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Wed, 3 Apr 2024 11:07:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/Entitys/SerialNumbers.cs | 7 +++++++ src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs | 5 +++++ src/WMS.Web.Domain/Services/SerialNumberService.cs | 3 +++ src/WMS.Web.Repositories/SerialNumbersRepositories.cs | 8 ++++---- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index 489880e6..f9d4f4ea 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -92,6 +92,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("CustomerId")] public int CustomerId { get; set; } = 0; + /// + /// 是否出库 + /// + [Column("IsOutStock")] + public bool? IsOutStock { get; set; } = false; /// /// 操作(绑定箱信息) @@ -126,6 +131,8 @@ namespace WMS.Web.Domain.Entitys this.CustomerId = outStock.ReceiptCustomerId; this.OutStockTime = DateTime.Now; } + //标识出库 + this.IsOutStock = true; } /// /// 入库 diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs index 5bea43c1..b58de8f2 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs @@ -81,5 +81,10 @@ namespace WMS.Web.Domain.Entitys /// [Column("CustomerId")] public int CustomerId { get; set; } = 0; + /// + /// 是否出库 + /// + [Column("IsOutStock")] + public bool? IsOutStock { get; set; } = false; } } diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 10a843e4..e12bc08a 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -393,7 +393,10 @@ namespace WMS.Web.Domain.Services //if (backRecord.Type == BackRecordType.InstockOff) // entity.UnBind(); if (backRecord.Type == BackRecordType.OutstockOn) + { entity.Bind(detail.BoxId, box.CompleteCartonTime); + entity.IsOutStock = false;//标识出库状态 + } //记录序列号操作日志 diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index 92982eed..b2cc4aae 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -248,7 +248,7 @@ namespace WMS.Web.Repositories .SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory }) .GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box }) .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) - .FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber)); + .FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber) && w.serial.IsOutStock != true); if (entity == null || entity.serial == null) { if (IsOps) @@ -289,13 +289,13 @@ namespace WMS.Web.Repositories //.SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory }) //.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box }) //.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box }) - .FirstOrDefaultAsync(w => serialNumber.Equals(w.SerialNumber)); + .FirstOrDefaultAsync(w => serialNumber.Equals(w.SerialNumber) && w.IsOutStock != true); if (entity == null) return null; response.IsOldOps = true; response.IsBoxInventory = true;//如果是老ops序列号 默认有库存 response.BoxId = 0; - response.BoxBillNo = ""; - response.SubStockCode = ""; + response.BoxBillNo = ""; + response.SubStockCode = ""; response.SerialNumber = entity.SerialNumber; response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.MaterialNumber); response.MaterialNumber = entity.MaterialNumber;