修复bug
This commit is contained in:
@@ -13,7 +13,7 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
|
||||
/// <summary>
|
||||
/// 原箱子ID
|
||||
/// </summary>
|
||||
public int SrcBoxId { get; set; }
|
||||
public int SrcBoxId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// 目标箱子ID
|
||||
/// </summary>
|
||||
|
||||
@@ -33,11 +33,12 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly IBoxInventoryService _boxInventoryService;
|
||||
private readonly IBoxInventoryRepositories _boxInventoryRepositories;
|
||||
private readonly ILogger<ChangeMoveBoxService> _logger;
|
||||
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
||||
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
|
||||
IChangeBoxRecordRepositories changeBoxRecordRepositories, IBasicsRepositories basbicsRepositories,
|
||||
IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories,
|
||||
ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService, IBoxInventoryRepositories boxInventoryRepositories,
|
||||
ILogger<ChangeMoveBoxService> logger)
|
||||
ILogger<ChangeMoveBoxService> logger, ISerialNumbersRepositories serialNumbersRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
@@ -49,6 +50,7 @@ namespace WMS.Web.Domain.Services
|
||||
_boxInventoryService = boxInventoryService;
|
||||
_boxInventoryRepositories = boxInventoryRepositories;
|
||||
_logger = logger;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
}
|
||||
/// <summary>
|
||||
/// 改箱保存
|
||||
@@ -63,9 +65,18 @@ namespace WMS.Web.Domain.Services
|
||||
var srcIds = dto.Select(s => s.SrcBoxId).Distinct().ToList();
|
||||
var destIds = dto.Select(s => s.DestBoxId).Distinct().ToList();
|
||||
var boxs = await _boxInventoryRepositories.GetList(srcIds);
|
||||
var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList();
|
||||
var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
|
||||
foreach (var d in dto)
|
||||
{
|
||||
if (d.SrcBoxId == 0) continue;
|
||||
if (d.SrcBoxId == 0)
|
||||
{
|
||||
//没有原箱的情况下需要验证序列号是否有箱子绑定
|
||||
var s = d.Details.SelectMany(s => s.SerialNumbers).ToList();
|
||||
var sCount = serialNumberList.Where(w => s.Contains(w.SerialNumber) && w.BoxId != 0).Count();
|
||||
if (sCount > 0)
|
||||
return Result.ReFailure(ResultCodes.SerialNumbersBoxError);
|
||||
}
|
||||
var box = boxs.FirstOrDefault(f => f.BoxId == d.SrcBoxId);
|
||||
//原箱在库存中的话 进行验证
|
||||
if (box != null)
|
||||
@@ -74,10 +85,10 @@ namespace WMS.Web.Domain.Services
|
||||
{
|
||||
var bDe = box.Details.FirstOrDefault(f => f.MaterialId == bd.MaterialId);
|
||||
if (bDe == null)
|
||||
Result.ReFailure(ResultCodes.BoxMateriaNoData);
|
||||
return Result.ReFailure(ResultCodes.BoxMateriaNoData);
|
||||
var ex = bd.SerialNumbers.Except(bDe.SerialNumbers).ToList();
|
||||
if (ex.Count() > 0)
|
||||
Result.ReFailure(ResultCodes.BoxInventorySerialNumbersNoData);
|
||||
return Result.ReFailure(ResultCodes.BoxInventorySerialNumbersNoData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,7 @@ namespace WMS.Web.Domain.Values
|
||||
public static ValueTuple<int, string> InventoryDetailsWriteError = (800014, "写入即时库存明细失败!");
|
||||
|
||||
public static ValueTuple<int, string> SerialNumbersNoData = (610000, "序列号不存在");
|
||||
public static ValueTuple<int, string> SerialNumbersBoxError = (610002, "序列号已经绑定箱");
|
||||
public static ValueTuple<int, string> TakeStockStockError = (610001, "一次不能盘多个仓库");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user