改箱调整

This commit is contained in:
18942506660
2023-12-28 15:03:14 +08:00
parent b7a365afe6
commit b1d3bdfe06
7 changed files with 73 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.ChangeBoxRecord;
using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Dto.Login;
@@ -35,11 +36,12 @@ namespace WMS.Web.Domain.Services
private readonly IBoxInventoryRepositories _boxInventoryRepositories;
private readonly ILogger<ChangeMoveBoxService> _logger;
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
private readonly IBoxService _boxService;
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
IChangeBoxRecordRepositories changeBoxRecordRepositories, IBasicsRepositories basbicsRepositories,
IMoveBoxRecordRepositories moveBoxRecordRepositories, IBoxRepositories boxRepositories,
ISerialNumberService serialNumberService, IBoxInventoryService boxInventoryService, IBoxInventoryRepositories boxInventoryRepositories,
ILogger<ChangeMoveBoxService> logger, ISerialNumbersRepositories serialNumbersRepositories)
ILogger<ChangeMoveBoxService> logger, ISerialNumbersRepositories serialNumbersRepositories, IBoxService boxService)
{
_mapper = mapper;
_loginService = loginService;
@@ -52,6 +54,7 @@ namespace WMS.Web.Domain.Services
_boxInventoryRepositories = boxInventoryRepositories;
_logger = logger;
_serialNumbersRepositories = serialNumbersRepositories;
_boxService = boxService;
}
/// <summary>
/// 改箱保存
@@ -59,13 +62,33 @@ namespace WMS.Web.Domain.Services
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
public async Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction = false, bool IsInventory = true)
public async Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction = false, bool IsInventory = true, bool IsPDA = false)
{
_logger.LogInformation($"改箱:{JsonConvert.SerializeObject(dto)} 操作人:{loginInfo.UserInfo.StaffId}");
if (IsPDA)
{
var d = dto.First();
var dBox = await _boxRepositories.GetByNo(d.DestBoxBillNo);
if (dBox == null)
{
var res = await CreateBox(d);
if (!res.IsSuccess) return res;
dBox = await _boxRepositories.GetByNo(d.DestBoxBillNo);
dto.First().DestBoxId = dBox.Id;
}
else
{
var destInventoryBoxs = await _boxInventoryRepositories.Get(dBox.Id);
dto.First().DestBoxId = dBox.Id;
if (destInventoryBoxs != null)
dto.First().SubStockId = destInventoryBoxs.SubStockId;
}
}
//1.有原箱时 需要判断 物料对应的序列号是否存在
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)
@@ -187,6 +210,33 @@ namespace WMS.Web.Domain.Services
}
return Result.ReSuccess();
}
/// <summary>
/// 自动生成箱信息
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
private async Task<Result> CreateBox(SaveChangeBoxRecordRequest dto)
{
List<OpsBoxResponse> list = new List<OpsBoxResponse>();
OpsBoxResponse response = new OpsBoxResponse() { BoxBillNo = dto.DestBoxBillNo };
foreach (var d in dto.Details)
{
List<OpsSerialNumbersResponse> s = new List<OpsSerialNumbersResponse>();
foreach (var sd in d.SerialNumbers)
{
s.Add(new OpsSerialNumbersResponse() { SerialNumber = sd });
}
OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse()
{
MaterialId = d.MaterialId,
Qty = d.Qty,
SerialNumbers = s
};
}
list.Add(response);
return await _boxService.Sync(list);
}
/// <summary>
/// 移箱保存
/// </summary>