修复bug

This commit is contained in:
18942506660
2024-04-09 16:33:57 +08:00
parent 1d42183b3c
commit 2995c7bd61
4 changed files with 79 additions and 8 deletions

View File

@@ -2183,11 +2183,16 @@
<param name="type"></param>
<param name="boxId"></param>
</member>
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.TakeStock(System.Int32,WMS.Web.Domain.Values.TakeStockType)">
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.TakeStock(System.Int32)">
<summary>
盘点
</summary>
</member>
<member name="M:WMS.Web.Domain.Entitys.SerialNumbers.TakeStock_Out">
<summary>
盘出去
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.SerialNumbers_Ops">
<summary>
老ops序列码
@@ -6888,7 +6893,12 @@
</member>
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.TakeStock">
<summary>
盘点
盘点(盘进)
</summary>
</member>
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.TakeStock_Out">
<summary>
盘点出去
</summary>
</member>
<member name="T:WMS.Web.Domain.Values.ShelfMethod">

View File

@@ -184,15 +184,38 @@ namespace WMS.Web.Domain.Entitys
/// <summary>
/// 盘点
/// </summary>
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;
}
/// <summary>
/// 盘出去
/// </summary>
public void TakeStock_Out()
{
this.BoxId = 0;
//盘出去冻结
this.IsDelete = true;
this.IsActivate = true;
}
/*
1.是否被激活(盘点 采购和非采购上架 出库回退上架) 激活
2.冻结(原箱盘出去的 出库 入库回退下架 移箱下架)
3. 反冻结(出库回退上架,新盘进来,非采购上架 移箱上架)
1默认ops系统 默认都是 非激活 非冻结
2 老ops历史条码的条码 激活 非冻结
非采购上架 改箱 (非激活的或者(激活被冻结))
盘点 所有的序列号
出库回退上架 (激活被冻结)
入库回退下架 (激活非冻结)
出库 (激活非冻结)
*/
}
}

View File

@@ -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;
}
/// <summary>
/// 改箱
@@ -458,6 +461,7 @@ namespace WMS.Web.Domain.Services
List<Box> box_New_List = new List<Box>();
List<SerialNumberOperate> soList = new List<SerialNumberOperate>();
List<SerialNumbers> sList = new List<SerialNumbers>();
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();

View File

@@ -94,10 +94,15 @@ namespace WMS.Web.Domain.Values
[EnumRemark("出库回退上架")]
BackRecord_On = 16,
/// <summary>
/// 盘点
/// 盘点(盘进)
/// </summary>
[EnumRemark("盘点")]
TakeStock = 17,
/// <summary>
/// 盘点出去
/// </summary>
[EnumRemark("盘点出去")]
TakeStock_Out = 18,
}
}