This commit is contained in:
tongfei
2023-12-13 14:10:38 +08:00
6 changed files with 21 additions and 8 deletions

View File

@@ -309,8 +309,9 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null)
return ResultList<BoxResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
boxBillNos = boxBillNos.ConvertAll(d => d.ToLower());
var res = await _boxRepositories.GetBox(boxBillNos);
var bStrList = res.Select(s => s.BoxBillNo).ToList();
var bStrList = res.Select(s => s.BoxBillNo.ToLower()).ToList();
var ex = boxBillNos.Except(bStrList).ToList();
if (ex.Count() > 0)
return ResultList<BoxResponse>.ReFailure("箱号" + JsonConvert.SerializeObject(ex) + "不存在", 800000);

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

View File

@@ -57,7 +57,7 @@ namespace WMS.Web.Repositories
/// <returns></returns>
public async Task<List<BoxResponse>> GetBox(List<string> BoxBillNos)
{
var list = await _context.Box.Include(x => x.Details).Where(f => BoxBillNos.Contains(f.BoxBillNo)).ToListAsync();
var list = await _context.Box.Include(x => x.Details).Where(f => BoxBillNos.Contains(f.BoxBillNo.ToLower())).ToListAsync();
var resList = _mapper.Map<List<BoxResponse>>(list);
var materials_result = await _erpService.BillQueryForMaterial();

View File

@@ -296,7 +296,7 @@ namespace WMS.Web.Repositories
CreateTime = s.order.CreateTime.DateToStringSeconds(),
OperateTime = s.order.OperateTime.DateToStringSeconds(),
Operator = _singleDataService.GetSingleData(SingleAction.Staffs, _loginRepositories.CompanyId, s.order.OperatorId ?? 0),
OutStockTime = s.order.OperateTime.DateToStringSeconds(),
OutStockTime = s.order.OutStockTime.DateToStringSeconds(),
OutStock = _singleDataService.GetSingleData(SingleAction.Staffs, _loginRepositories.CompanyId, s.order.OutStockId ?? 0),
OutStockBeginTime = s.detail.OutStockBeginTime.DateToStringSeconds(),
OutStockEndTime = s.detail.OutStockEndTime.DateToStringSeconds(),