This commit is contained in:
tongfei
2024-04-09 16:56:07 +08:00
4 changed files with 79 additions and 8 deletions

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();