改箱调整

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

@@ -95,7 +95,7 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error); return Result.ReFailure(ResultCodes.Token_Invalid_Error);
return await _changeMoveBoxService.ChangeBoxSave(new List<SaveChangeBoxRecordRequest>() { dto }, loginInfo); return await _changeMoveBoxService.ChangeBoxSave(new List<SaveChangeBoxRecordRequest>() { dto }, loginInfo, true, true, true);
} }
} }
} }

View File

@@ -475,6 +475,11 @@
目标箱子ID 目标箱子ID
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest.DestBoxBillNo">
<summary>
目标箱号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest.SubStockId"> <member name="P:WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest.SubStockId">
<summary> <summary>
目标箱仓位或重新上架选择仓位 目标箱仓位或重新上架选择仓位

View File

@@ -3814,7 +3814,7 @@
<member name="T:WMS.Web.Domain.Services.ChangeMoveBoxService"> <member name="T:WMS.Web.Domain.Services.ChangeMoveBoxService">
改箱 移箱服务 改箱 移箱服务
</member> </member>
<member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.ChangeBoxSave(System.Collections.Generic.List{WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest},WMS.Web.Core.Dto.Login.LoginInDto,System.Boolean,System.Boolean)"> <member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.ChangeBoxSave(System.Collections.Generic.List{WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest},WMS.Web.Core.Dto.Login.LoginInDto,System.Boolean,System.Boolean,System.Boolean)">
<summary> <summary>
改箱保存 改箱保存
</summary> </summary>
@@ -3822,6 +3822,13 @@
<param name="loginInfo"></param> <param name="loginInfo"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.CreateBox(WMS.Web.Core.Dto.ChangeBoxRecord.SaveChangeBoxRecordRequest)">
<summary>
自动生成箱信息
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.MoveBoxSave(System.Collections.Generic.List{WMS.Web.Core.Dto.MoveBoxRecord.SaveMoveBoxRecordRequest},System.Boolean,WMS.Web.Core.Dto.Login.LoginInDto)"> <member name="M:WMS.Web.Domain.Services.ChangeMoveBoxService.MoveBoxSave(System.Collections.Generic.List{WMS.Web.Core.Dto.MoveBoxRecord.SaveMoveBoxRecordRequest},System.Boolean,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary> <summary>
移箱保存 移箱保存

View File

@@ -23,12 +23,15 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
/// <summary> /// <summary>
/// 目标箱子ID /// 目标箱子ID
/// </summary> /// </summary>
[Required(ErrorMessage = "目标箱子不能为空")]
public int DestBoxId { get; set; } public int DestBoxId { get; set; }
/// <summary> /// <summary>
/// 目标箱号
/// </summary>
[Required(ErrorMessage = "目标箱号不能为空")]
public string DestBoxBillNo { get; set; }
/// <summary>
/// 目标箱仓位或重新上架选择仓位 /// 目标箱仓位或重新上架选择仓位
///</summary> ///</summary>
[Required(ErrorMessage = "仓位不能为空")]
public int SubStockId { get; set; } = 0; public int SubStockId { get; set; } = 0;
/// <summary> /// <summary>
/// 明细 /// 明细

View File

@@ -67,7 +67,7 @@ namespace WMS.Web.Core.Dto
/// 序列号生成时间 /// 序列号生成时间
/// </summary> /// </summary>
[JsonProperty("barCreateTime")] [JsonProperty("barCreateTime")]
public DateTime? BarCreateTime { get; set; } public DateTime? BarCreateTime { get; set; } = DateTime.Now;
/// <summary> /// <summary>
/// 序列号生成用户 /// 序列号生成用户
/// </summary> /// </summary>

View File

@@ -18,7 +18,7 @@ namespace WMS.Web.Domain.IService
public interface IChangeMoveBoxService public interface IChangeMoveBoxService
{ {
//改箱保存 //改箱保存
Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction=true,bool IsInventory=true); Task<Result> ChangeBoxSave(List<SaveChangeBoxRecordRequest> dto, LoginInDto loginInfo, bool isTransaction=true,bool IsInventory=true,bool IsPDA=false);
//移箱保存 //移箱保存
Task<Result> MoveBoxSave(List<SaveMoveBoxRecordRequest> dto, bool IsUp, LoginInDto loginInfo); Task<Result> MoveBoxSave(List<SaveMoveBoxRecordRequest> dto, bool IsUp, LoginInDto loginInfo);
//出库回退 //出库回退

View File

@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Dto.ChangeBoxRecord;
using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
@@ -35,11 +36,12 @@ namespace WMS.Web.Domain.Services
private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly IBoxInventoryRepositories _boxInventoryRepositories;
private readonly ILogger<ChangeMoveBoxService> _logger; private readonly ILogger<ChangeMoveBoxService> _logger;
private readonly ISerialNumbersRepositories _serialNumbersRepositories; private readonly ISerialNumbersRepositories _serialNumbersRepositories;
private readonly IBoxService _boxService;
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, ISerialNumbersRepositories serialNumbersRepositories) ILogger<ChangeMoveBoxService> logger, ISerialNumbersRepositories serialNumbersRepositories, IBoxService boxService)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
@@ -52,6 +54,7 @@ namespace WMS.Web.Domain.Services
_boxInventoryRepositories = boxInventoryRepositories; _boxInventoryRepositories = boxInventoryRepositories;
_logger = logger; _logger = logger;
_serialNumbersRepositories = serialNumbersRepositories; _serialNumbersRepositories = serialNumbersRepositories;
_boxService = boxService;
} }
/// <summary> /// <summary>
/// 改箱保存 /// 改箱保存
@@ -59,13 +62,33 @@ namespace WMS.Web.Domain.Services
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="loginInfo"></param> /// <param name="loginInfo"></param>
/// <returns></returns> /// <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}"); _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.有原箱时 需要判断 物料对应的序列号是否存在 //1.有原箱时 需要判断 物料对应的序列号是否存在
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 serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList();
var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers); var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
foreach (var d in dto) foreach (var d in dto)
@@ -187,6 +210,33 @@ namespace WMS.Web.Domain.Services
} }
return Result.ReSuccess(); 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>
/// 移箱保存 /// 移箱保存
/// </summary> /// </summary>