修复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>
/// 原箱子ID
/// </summary>
public int SrcBoxId { get; set; }
public int SrcBoxId { get; set; } = 0;
/// <summary>
/// 目标箱子ID
/// </summary>

View File

@@ -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);
}
}
}

View File

@@ -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, "一次不能盘多个仓库");
}
}