回退上架
This commit is contained in:
@@ -207,7 +207,12 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.BoxId">
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.BoxId">
|
||||||
<summary>
|
<summary>
|
||||||
所属箱号ID
|
扫的箱号ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SerialNumberBoxId">
|
||||||
|
<summary>
|
||||||
|
序列号所属箱不能为空
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.MaterialId">
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.MaterialId">
|
||||||
|
|||||||
@@ -11,10 +11,17 @@ namespace WMS.Web.Core.Dto.BackRecord
|
|||||||
public class SaveBackRecordDetailsRequest
|
public class SaveBackRecordDetailsRequest
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 所属箱号ID
|
/// 扫的箱号ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "箱号不能为空")]
|
[Required(ErrorMessage = "箱号不能为空")]
|
||||||
public int BoxId { get; set; }
|
public int BoxId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 序列号所属箱不能为空
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "序列号所属箱不能为空")]
|
||||||
|
public int SerialNumberBoxId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料ID
|
/// 物料ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using WMS.Web.Core.Dto.BackRecord;
|
using WMS.Web.Core.Dto.BackRecord;
|
||||||
|
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;
|
||||||
using WMS.Web.Core.Internal.Results;
|
using WMS.Web.Core.Internal.Results;
|
||||||
@@ -28,17 +29,23 @@ namespace WMS.Web.Domain.Services
|
|||||||
private readonly ISerialNumberService _serialNumberService;
|
private readonly ISerialNumberService _serialNumberService;
|
||||||
private readonly IBackRecordRepositories _backRecordRepositories;
|
private readonly IBackRecordRepositories _backRecordRepositories;
|
||||||
private readonly IBoxInventoryService _boxInventoryService;
|
private readonly IBoxInventoryService _boxInventoryService;
|
||||||
|
private readonly IChangeMoveBoxService _changeMoveBoxService;
|
||||||
|
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
||||||
public BackRecordService(IMapper mapper, ILoginService loginService,
|
public BackRecordService(IMapper mapper, ILoginService loginService,
|
||||||
IBasicsRepositories basicsRepositories,
|
IBasicsRepositories basicsRepositories,
|
||||||
IBoxInventoryService boxInventoryService,
|
IBoxInventoryService boxInventoryService,
|
||||||
ISerialNumberService serialNumberService,
|
ISerialNumberService serialNumberService,
|
||||||
|
IChangeMoveBoxService changeMoveBoxService,
|
||||||
|
ISerialNumbersRepositories serialNumbersRepositories,
|
||||||
IBackRecordRepositories backRecordRepositories)
|
IBackRecordRepositories backRecordRepositories)
|
||||||
{
|
{
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
|
_changeMoveBoxService = changeMoveBoxService;
|
||||||
_serialNumberService = serialNumberService;
|
_serialNumberService = serialNumberService;
|
||||||
_boxInventoryService = boxInventoryService;
|
_boxInventoryService = boxInventoryService;
|
||||||
_basicsRepositories = basicsRepositories;
|
_basicsRepositories = basicsRepositories;
|
||||||
|
_serialNumbersRepositories = serialNumbersRepositories;
|
||||||
_backRecordRepositories = backRecordRepositories;
|
_backRecordRepositories = backRecordRepositories;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +71,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details);
|
entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details);
|
||||||
entity.Details.ForEach(x =>
|
entity.Details.ForEach(x =>
|
||||||
{
|
{
|
||||||
var stock= stocks.Where(t => t.Code == x.StockCode).FirstOrDefault();
|
var stock = stocks.Where(t => t.Code == x.StockCode).FirstOrDefault();
|
||||||
if (stock != null)
|
if (stock != null)
|
||||||
x.OrgCode = stock.ErpOrgCode;
|
x.OrgCode = stock.ErpOrgCode;
|
||||||
});
|
});
|
||||||
@@ -80,6 +87,52 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (!serialNumber_result.IsSuccess)
|
if (!serialNumber_result.IsSuccess)
|
||||||
return serialNumber_result;
|
return serialNumber_result;
|
||||||
|
|
||||||
|
#region 需要改箱操作
|
||||||
|
//获取目标箱和原箱信息
|
||||||
|
var current_box_about = dto.Details.GroupBy(x => new { x.BoxId, x.SubStockId, x.StockCode }).Select(x => new { x.Key.BoxId, x.Key.SubStockId, x.Key.StockCode }).ToList();
|
||||||
|
var current_sernub_box = dto.Details.GroupBy(x => x.SerialNumberBoxId).Select(x => x.Key).ToList();
|
||||||
|
|
||||||
|
//要改箱的数据集合
|
||||||
|
var ganenrateChangeBoxs = new List<SaveChangeBoxRecordRequest>();
|
||||||
|
|
||||||
|
//遍历组装:改箱dto的头部集合
|
||||||
|
foreach (var boxAbout in current_box_about)
|
||||||
|
{
|
||||||
|
foreach (var serBoxId in current_sernub_box)
|
||||||
|
{
|
||||||
|
if (boxAbout.BoxId != serBoxId)
|
||||||
|
{
|
||||||
|
var changeBox = new SaveChangeBoxRecordRequest();
|
||||||
|
changeBox.SrcBoxId = serBoxId;
|
||||||
|
changeBox.DestBoxId = boxAbout.BoxId;
|
||||||
|
changeBox.SubStockId = boxAbout.SubStockId;
|
||||||
|
ganenrateChangeBoxs.Add(changeBox);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//遍历组装明细:改箱dto的明细集合
|
||||||
|
foreach (var detItem in dto.Details)
|
||||||
|
{
|
||||||
|
ganenrateChangeBoxs.ForEach(x =>
|
||||||
|
{
|
||||||
|
if (x.SrcBoxId == detItem.SerialNumberBoxId && x.DestBoxId == detItem.BoxId)
|
||||||
|
{
|
||||||
|
var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
|
||||||
|
changeBoxRD.MaterialId = detItem.MaterialId;
|
||||||
|
changeBoxRD.Qty = detItem.Qty;
|
||||||
|
changeBoxRD.SerialNumbers = detItem.SerialNumbers;
|
||||||
|
x.Details.Add(changeBoxRD);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//改箱保存操作:这里不需要在改箱的操作-进行库存的变更(因为会有问题),下面会去更新库存的
|
||||||
|
var changeBoxSave_Result = await _changeMoveBoxService.ChangeBoxSave(ganenrateChangeBoxs, loginInfo, isTransaction,false);
|
||||||
|
if (!changeBoxSave_Result.IsSuccess)
|
||||||
|
return changeBoxSave_Result;
|
||||||
|
#endregion
|
||||||
|
|
||||||
//保存成功后:变更库存
|
//保存成功后:变更库存
|
||||||
var entitys = new List<BackRecord>();
|
var entitys = new List<BackRecord>();
|
||||||
entitys.Add(entity);
|
entitys.Add(entity);
|
||||||
|
|||||||
Reference in New Issue
Block a user