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) if (loginInfo == null || loginInfo.UserInfo == null)
return ResultList<BoxResponse>.ReFailure(ResultCodes.Token_Invalid_Error); return ResultList<BoxResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
boxBillNos = boxBillNos.ConvertAll(d => d.ToLower());
var res = await _boxRepositories.GetBox(boxBillNos); 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(); var ex = boxBillNos.Except(bStrList).ToList();
if (ex.Count() > 0) if (ex.Count() > 0)
return ResultList<BoxResponse>.ReFailure("箱号" + JsonConvert.SerializeObject(ex) + "不存在", 800000); return ResultList<BoxResponse>.ReFailure("箱号" + JsonConvert.SerializeObject(ex) + "不存在", 800000);

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

View File

@@ -57,7 +57,7 @@ namespace WMS.Web.Repositories
/// <returns></returns> /// <returns></returns>
public async Task<List<BoxResponse>> GetBox(List<string> BoxBillNos) 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 resList = _mapper.Map<List<BoxResponse>>(list);
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();

View File

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