修复bug

This commit is contained in:
18942506660
2023-12-12 15:58:36 +08:00
parent 593f003629
commit 50d36019fc
3 changed files with 17 additions and 5 deletions

View File

@@ -13,7 +13,7 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
/// <summary> /// <summary>
/// 原箱子ID /// 原箱子ID
/// </summary> /// </summary>
public int SrcBoxId { get; set; } public int SrcBoxId { get; set; } = 0;
/// <summary> /// <summary>
/// 目标箱子ID /// 目标箱子ID
/// </summary> /// </summary>

View File

@@ -33,11 +33,12 @@ namespace WMS.Web.Domain.Services
private readonly IBoxInventoryService _boxInventoryService; private readonly IBoxInventoryService _boxInventoryService;
private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly IBoxInventoryRepositories _boxInventoryRepositories;
private readonly ILogger<ChangeMoveBoxService> _logger; private readonly ILogger<ChangeMoveBoxService> _logger;
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
IChangeBoxRecordRepositories changeBoxRecordRepositories, IBasicsRepositories basbicsRepositories, IChangeBoxRecordRepositories changeBoxRecordRepositories, IBasicsRepositories basbicsRepositories,
IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories, IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories,
ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService, IBoxInventoryRepositories boxInventoryRepositories, ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService, IBoxInventoryRepositories boxInventoryRepositories,
ILogger<ChangeMoveBoxService> logger) ILogger<ChangeMoveBoxService> logger, ISerialNumbersRepositories serialNumbersRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
@@ -49,6 +50,7 @@ namespace WMS.Web.Domain.Services
_boxInventoryService = boxInventoryService; _boxInventoryService = boxInventoryService;
_boxInventoryRepositories = boxInventoryRepositories; _boxInventoryRepositories = boxInventoryRepositories;
_logger = logger; _logger = logger;
_serialNumbersRepositories = serialNumbersRepositories;
} }
/// <summary> /// <summary>
/// 改箱保存 /// 改箱保存
@@ -63,9 +65,18 @@ namespace WMS.Web.Domain.Services
var srcIds = dto.Select(s => s.SrcBoxId).Distinct().ToList(); var srcIds = dto.Select(s => s.SrcBoxId).Distinct().ToList();
var destIds = dto.Select(s => s.DestBoxId).Distinct().ToList(); var destIds = dto.Select(s => s.DestBoxId).Distinct().ToList();
var boxs = await _boxInventoryRepositories.GetList(srcIds); 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) 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); var box = boxs.FirstOrDefault(f => f.BoxId == d.SrcBoxId);
//原箱在库存中的话 进行验证 //原箱在库存中的话 进行验证
if (box != null) if (box != null)
@@ -74,10 +85,10 @@ namespace WMS.Web.Domain.Services
{ {
var bDe = box.Details.FirstOrDefault(f => f.MaterialId == bd.MaterialId); var bDe = box.Details.FirstOrDefault(f => f.MaterialId == bd.MaterialId);
if (bDe == null) if (bDe == null)
Result.ReFailure(ResultCodes.BoxMateriaNoData); return Result.ReFailure(ResultCodes.BoxMateriaNoData);
var ex = bd.SerialNumbers.Except(bDe.SerialNumbers).ToList(); var ex = bd.SerialNumbers.Except(bDe.SerialNumbers).ToList();
if (ex.Count() > 0) if (ex.Count() > 0)
Result.ReFailure(ResultCodes.BoxInventorySerialNumbersNoData); return Result.ReFailure(ResultCodes.BoxInventorySerialNumbersNoData);
} }
} }
} }

View File

@@ -68,6 +68,7 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> InventoryDetailsWriteError = (800014, "写入即时库存明细失败!"); public static ValueTuple<int, string> InventoryDetailsWriteError = (800014, "写入即时库存明细失败!");
public static ValueTuple<int, string> SerialNumbersNoData = (610000, "序列号不存在"); public static ValueTuple<int, string> SerialNumbersNoData = (610000, "序列号不存在");
public static ValueTuple<int, string> SerialNumbersBoxError = (610002, "序列号已经绑定箱");
public static ValueTuple<int, string> TakeStockStockError = (610001, "一次不能盘多个仓库"); public static ValueTuple<int, string> TakeStockStockError = (610001, "一次不能盘多个仓库");
} }
} }