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,
}
}