采购上架优化

This commit is contained in:
tongfei
2023-11-25 11:52:18 +08:00
parent ece634b395
commit de6998c6b9
4 changed files with 31 additions and 11 deletions

View File

@@ -1295,6 +1295,11 @@
数量 数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastBoxDetailsResponse.SerialNumbers">
<summary>
序列号
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryRequest"> <member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryRequest">
<summary> <summary>
模糊查询来源单据-请求对象 模糊查询来源单据-请求对象

View File

@@ -55,5 +55,10 @@ namespace WMS.Web.Core.Dto.InStockTask
/// 数量 /// 数量
/// </summary> /// </summary>
public decimal Qty { get; set; } public decimal Qty { get; set; }
/// <summary>
/// 序列号
/// </summary>
public List<string> SerialNumbers { get; set; } = new List<string>();
} }
} }

View File

@@ -475,7 +475,7 @@ namespace WMS.Web.Domain.Services
#region #region
//3.组装-按产品入库 //3.组装-按产品入库
var dtoDatas_details_Method_Product = dtoDatas.Where(x => x.Method == InventoryInOutMethod.Box).SelectMany(x => x.Details).ToList(); var dtoDatas_details_Method_Product = dtoDatas.Where(x => x.Method == InventoryInOutMethod.Product).SelectMany(x => x.Details).ToList();
var generateDtoList_Metod_Product = dtoDatas_details_Method_Product.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }) var generateDtoList_Metod_Product = dtoDatas_details_Method_Product.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x => new BoxInventoryGenerateDto() .Select(x => new BoxInventoryGenerateDto()
{ {

View File

@@ -31,6 +31,7 @@ namespace WMS.Web.Domain.Services
private readonly IErpService _erpService; private readonly IErpService _erpService;
private readonly ILoginService _loginService; private readonly ILoginService _loginService;
private readonly ISerialNumberService _serialNumberService; private readonly ISerialNumberService _serialNumberService;
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
private readonly IChangeMoveBoxService _changeMoveBoxService; private readonly IChangeMoveBoxService _changeMoveBoxService;
private readonly IBoxRepositories _boxRepositories; private readonly IBoxRepositories _boxRepositories;
private readonly IBoxInventoryService _boxInventoryService; private readonly IBoxInventoryService _boxInventoryService;
@@ -38,7 +39,7 @@ namespace WMS.Web.Domain.Services
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
public InStockService(IMapper mapper, IErpService erpService, IBoxInventoryService boxInventoryService, ISerialNumberService serialNumberService, ILoginService loginService, IBoxRepositories boxRepositories, public InStockService(IMapper mapper, ISerialNumbersRepositories serialNumbersRepositories, IErpService erpService, IBoxInventoryService boxInventoryService, ISerialNumberService serialNumberService, ILoginService loginService, IBoxRepositories boxRepositories,
IBasicsRepositories basicsRepositories, IErpBasicDataExtendService erpBasicDataExtendService, IChangeMoveBoxService changeMoveBoxService, IBasicsRepositories basicsRepositories, IErpBasicDataExtendService erpBasicDataExtendService, IChangeMoveBoxService changeMoveBoxService,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories) IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{ {
@@ -53,6 +54,7 @@ namespace WMS.Web.Domain.Services
_inStockRepositories = inStockRepositories; _inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories; _inStockTaskRepositories = inStockTaskRepositories;
_erpBasicDataExtendService = erpBasicDataExtendService; _erpBasicDataExtendService = erpBasicDataExtendService;
_serialNumbersRepositories = serialNumbersRepositories;
} }
/// <summary> /// <summary>
@@ -101,13 +103,6 @@ namespace WMS.Web.Domain.Services
//1.添加入库单同步金蝶在save方法里面进行 //1.添加入库单同步金蝶在save方法里面进行
var save_result = await this.ShelfSave(instock, InstockType.Purchase, loginInfo, isTransaction); var save_result = await this.ShelfSave(instock, InstockType.Purchase, loginInfo, isTransaction);
if (!save_result.IsSuccess) isRollback = true; if (!save_result.IsSuccess) isRollback = true;
{
//2.修改入库任务单
var ids = instock.Details.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
var result = await this.UpdateRange(ids, loginInfo.UserInfo.StaffId, false, isTransaction);
if (!result.IsSuccess) isRollback = true;
}
//提交事务 //提交事务
var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction); var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess) if (!isSuccess)
@@ -200,6 +195,20 @@ namespace WMS.Web.Domain.Services
entity.Details = _mapper.Map<List<InStockDetails>>(dto.Details); entity.Details = _mapper.Map<List<InStockDetails>>(dto.Details);
entity.Create(loginInfo.UserInfo.StaffId); entity.Create(loginInfo.UserInfo.StaffId);
//序列号集:箱里面的
var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(dto.Details.GroupBy(x=>x.BoxId).Select(x => x.Key).ToList());
//赋值序列号
entity.Details.ForEach(x =>
{
var current_box_serNums = serialNumbers.Where(t => t.BoxId == x.BoxId).ToList();
if (current_box_serNums != null)
{
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
}
});
//需要填写序列号 //需要填写序列号
//需要修改库存 //需要修改库存
//需要同步金蝶 //需要同步金蝶
@@ -219,7 +228,8 @@ namespace WMS.Web.Domain.Services
if (current_dto_det != null) if (current_dto_det != null)
x.DeliveredQty = current_dto_det.Qty; x.DeliveredQty = current_dto_det.Qty;
}); });
task=await _inStockTaskRepositories.Update(task,isTransaction); task.Shelf(loginInfo.UserInfo.StaffId);
task =await _inStockTaskRepositories.Update(task,isTransaction);
if(task==null) if(task==null)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
} }