From 2995c7bd616abb0a11070b2e3d9756571b24351e Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Tue, 9 Apr 2024 16:33:57 +0800 Subject: [PATCH] =?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.Api/wwwroot/WMS.Web.Domain.xml | 14 ++++++- src/WMS.Web.Domain/Entitys/SerialNumbers.cs | 29 +++++++++++++-- .../Services/SerialNumberService.cs | 37 ++++++++++++++++++- .../Values/SerialNumberOperateType.cs | 7 +++- 4 files changed, 79 insertions(+), 8 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 519c1ba9..7bd4a50d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2183,11 +2183,16 @@ - + 盘点 + + + 盘出去 + + 老ops序列码 @@ -6888,7 +6893,12 @@ - 盘点 + 盘点(盘进) + + + + + 盘点出去 diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index 267f966c..a721bbf8 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -184,15 +184,38 @@ namespace WMS.Web.Domain.Entitys /// /// 盘点 /// - public void TakeStock(int boxId, TakeStockType type) + public void TakeStock(int boxId) { //拣货出库, 整箱移货下架, 入库回退下架---- 序列号状态失效 //盘点, 整箱移货上架, 出库回退上架----序列号正常可用 this.BoxId = boxId; - //盘亏被冻结 盘盈反冻结 - this.IsDelete = type == TakeStockType.Profit ? true : false; + //盘进来反冻结 + this.IsDelete = false; this.IsActivate = true; } + /// + /// 盘出去 + /// + public void TakeStock_Out() + { + this.BoxId = 0; + //盘出去冻结 + this.IsDelete = true; + this.IsActivate = true; + } + /* + 1.是否被激活(盘点 采购和非采购上架 出库回退上架) 激活 + 2.冻结(原箱盘出去的 出库 入库回退下架 移箱下架) + 3. 反冻结(出库回退上架,新盘进来,非采购上架 移箱上架) + 1默认ops系统 默认都是 非激活 非冻结 + 2 老ops历史条码的条码 激活 非冻结 + + 非采购上架 改箱 (非激活的或者(激活被冻结)) + 盘点 所有的序列号 + 出库回退上架 (激活被冻结) + 入库回退下架 (激活非冻结) + 出库 (激活非冻结) + */ } } diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index fbe518b0..102fbaf4 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -27,9 +27,11 @@ namespace WMS.Web.Domain.Services public readonly IBoxRepositories _boxRepositories; private readonly ISingleDataService _singleDataService; private readonly IErpService _erpService; + private readonly IBoxInventoryRepositories _boxInventoryRepositories; public SerialNumberService(ISerialNumberOperateRepositories serialNumberOperateRepositories, ISerialNumbersRepositories serialNumbersRepositories, IBasicsRepositories transactionRepositories, - IBoxRepositories boxRepositories, ISingleDataService singleDataService, IErpService erpService) + IBoxRepositories boxRepositories, ISingleDataService singleDataService, IErpService erpService, + IBoxInventoryRepositories boxInventoryRepositories) { _serialNumberOperateRepositories = serialNumberOperateRepositories; _serialNumbersRepositories = serialNumbersRepositories; @@ -37,6 +39,7 @@ namespace WMS.Web.Domain.Services _boxRepositories = boxRepositories; _singleDataService = singleDataService; _erpService = erpService; + _boxInventoryRepositories = boxInventoryRepositories; } /// /// 改箱 @@ -458,6 +461,7 @@ namespace WMS.Web.Domain.Services List box_New_List = new List(); List soList = new List(); List sList = new List(); + foreach (var s in serialNumbers) { var takeStockDetail = takeStocks.SelectMany(s => s.Details).FirstOrDefault(w => w.SerialNumbers.Contains(s)); @@ -482,7 +486,7 @@ namespace WMS.Web.Domain.Services else { var takeStock = takeStocks.FirstOrDefault(w => w.Details.FirstOrDefault(w => w.SerialNumbers.Contains(s)) != null); - s_entity.TakeStock(takeStockDetail.BoxId, takeStock.ResultType); + s_entity.TakeStock(takeStockDetail.BoxId); if (s_entity.BoxId == takeStockDetail.BoxId) continue; @@ -502,6 +506,35 @@ namespace WMS.Web.Domain.Services } } + //对移除的序列码进行 状态变更 + var boxInventorys = await _boxInventoryRepositories.GetList(boxIds); + var inventorysSerialNumbers = boxInventorys.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList(); + + var cList = inventorysSerialNumbers.Except(serialNumbers).ToList(); + var c_entityList = await _serialNumbersRepositories.GetEntityList(cList); + foreach (var c in c_entityList) + { + var takeStock = takeStocks.FirstOrDefault(w => w.Details.Where(w => w.BoxId == c.BoxId).Any()); + var box = boxList.FirstOrDefault(f => f.Id == c.BoxId); + + c.TakeStock_Out(); + entityList.Add(c); + + //记录序列号操作日志 + SerialNumberOperate op = new SerialNumberOperate() + { + MaterialNumber = c.MaterialNumber, + SerialNumber = c.SerialNumber, + OrgId = box?.OrgId ?? 0, + SupplierId = box?.SupplierId ?? 0, + OperateTime = DateTime.Now, + OperateType = SerialNumberOperateType.TakeStock_Out, + OperateUser = "", + Remark = "单号:" + takeStock?.BillNo ?? "" + "\r\n" + "箱号:" + box?.BoxBillNo ?? "" + }; + soList.Add(op); + } + IDbContextTransaction _transaction = null; if (isTransaction) _transaction = _transactionRepositories.GetTransaction(); diff --git a/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs b/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs index a46aeb18..4be7f8e5 100644 --- a/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs +++ b/src/WMS.Web.Domain/Values/SerialNumberOperateType.cs @@ -94,10 +94,15 @@ namespace WMS.Web.Domain.Values [EnumRemark("出库回退上架")] BackRecord_On = 16, /// - /// 盘点 + /// 盘点(盘进) /// [EnumRemark("盘点")] TakeStock = 17, + /// + /// 盘点出去 + /// + [EnumRemark("盘点出去")] + TakeStock_Out = 18, } }