库存-添加-组织维度

This commit is contained in:
tongfei
2023-11-22 13:49:45 +08:00
parent 88eb4d1151
commit 327383a8ec
9 changed files with 44 additions and 9 deletions

View File

@@ -2616,6 +2616,11 @@
物料ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto.OrgCode">
<summary>
组织编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto.StockCode">
<summary>
仓库
@@ -2706,6 +2711,11 @@
物料收发明细-生成dto
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.InventoryInOutDetailsGenerateDto.OrgCode">
<summary>
组织编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.InventoryInOutDetailsGenerateDto.StockCode">
<summary>
仓库编码

View File

@@ -1953,13 +1953,14 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.IInventoryDetailsRepositories.GetListBy(System.Collections.Generic.List{System.Int32},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.Int32})">
<member name="M:WMS.Web.Domain.Infrastructure.IInventoryDetailsRepositories.GetListBy(System.Collections.Generic.List{System.Int32},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.Int32},System.Collections.Generic.List{System.String})">
<summary>
列表-根据物料和仓库和仓位
</summary>
<param name="materialIds"></param>
<param name="stockCodes"></param>
<param name="subStockIds"></param>
<param name="orgCodes"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Infrastructure.IInventoryInOutDetailsRepositories">

View File

@@ -14,6 +14,11 @@ namespace WMS.Web.Core.Dto.Inventory
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 组织编码
/// </summary>
public string OrgCode { get; set; }
/// <summary>
/// 仓库
/// </summary>

View File

@@ -9,6 +9,11 @@ namespace WMS.Web.Core.Dto.Inventory
/// </summary>
public class InventoryInOutDetailsGenerateDto
{
/// <summary>
/// 组织编码
/// </summary>
public string OrgCode { get; set; }
/// <summary>
/// 仓库编码
/// </summary>

View File

@@ -42,7 +42,8 @@ namespace WMS.Web.Domain.Infrastructure
/// <param name="materialIds"></param>
/// <param name="stockCodes"></param>
/// <param name="subStockIds"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds);
Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds, List<string> orgCodes);
}
}

View File

@@ -630,7 +630,7 @@ namespace WMS.Web.Domain.Services
/// <param name="delete_ids"></param>
/// <param name="update_entitys"></param>
/// <returns></returns>
public Result GenerateOutStockBox(BoxInventoryGenerateDto dto,List<BoxInventory> boxInventorys,List<int> delete_ids, List<BoxInventory> update_entitys)
private Result GenerateOutStockBox(BoxInventoryGenerateDto dto,List<BoxInventory> boxInventorys,List<int> delete_ids, List<BoxInventory> update_entitys)
{
//3.1出库的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱库存数据不存在,请稍候再试!”
// 获取箱库存
@@ -688,7 +688,7 @@ namespace WMS.Web.Domain.Services
/// <param name="add_entitys"></param>
/// <param name="update_entitys"></param>
/// <returns></returns>
public Result GenerateInStockBox(BoxInventoryGenerateDto dto, List<BoxInventory> boxInventorys, List<BoxInventory> add_entitys, List<BoxInventory> update_entitys)
private Result GenerateInStockBox(BoxInventoryGenerateDto dto, List<BoxInventory> boxInventorys, List<BoxInventory> add_entitys, List<BoxInventory> update_entitys)
{
//按箱上架入库
if (dto.InventoryInOutMethod == (int)InventoryInOutMethod.Box)
@@ -756,6 +756,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoDet in dto.Details)
{
var invDto = new InventoryDetailsGenerateDto();
invDto.OrgCode = dto.OrgCode;
invDto.InventoryInOutType = dto.InventoryInOutType;
invDto.StockCode = dto.StockCode;
invDto.SubStockId = dto.SubStockId ?? 0;

View File

@@ -41,10 +41,11 @@ namespace WMS.Web.Domain.Services
public async Task<Result> GenerateInventoryDetails(List<InventoryDetailsGenerateDto> dtos,bool isTransaction)
{
//找到物料对应的即时库存明细
var orgCodes = dtos.Select(x => x.OrgCode).ToList();
var materialIds = dtos.Select(x => x.MaterialId).ToList();
var stockCodes = dtos.GroupBy(x => x.StockCode).Select(x => x.Key).ToList();
var subStockIds = dtos.GroupBy(x => x.SubStockId).Select(x => x.Key).ToList();
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, subStockIds);
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, subStockIds, orgCodes);
var add_entitys = new List<InventoryDetails>();
@@ -54,7 +55,11 @@ namespace WMS.Web.Domain.Services
foreach (var dto in dtos)
{
//2.1当前的即时库存明细
var currentDetail = inventoryDetails.Where(x => x.MaterialId == dto.MaterialId && x.StockCode == dto.StockCode && x.SubStockId == dto.SubStockId).FirstOrDefault();
var currentDetail = inventoryDetails.Where(x =>
x.MaterialId == dto.MaterialId &&
x.StockCode == dto.StockCode &&
x.SubStockId == dto.SubStockId &&
x.OrgCode==dto.OrgCode).FirstOrDefault();
if (currentDetail == null)
{
//出库的时候,判断是否有库存,没有就返回错误

View File

@@ -44,10 +44,11 @@ namespace WMS.Web.Domain.Services
public async Task<Result> GenerateInOrOutDetails(List<InventoryInOutDetailsGenerateDto> dtos,bool isTransaction)
{
//找到物料对应的即时库存明细
var orgCodes = dtos.Select(x => x.OrgCode).ToList();
var materialIds = dtos.Select(x => x.MaterialId).ToList();
var stockCodes = dtos.GroupBy(x => x.StockCode).Select(x => x.Key).ToList();
var subStockIds = dtos.GroupBy(x => x.SubStockId).Select(x => x.Key).ToList();
var inventoryDetails=await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, subStockIds);
var inventoryDetails=await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, subStockIds, orgCodes);
//1.创建要新增的对象
var add_entitys = new List<InventoryInOutDetails>();
@@ -56,7 +57,11 @@ namespace WMS.Web.Domain.Services
foreach (var dto in dtos)
{
//2.1当前的即时库存明细
var currentDetail= inventoryDetails.Where(x => x.MaterialId == dto.MaterialId && x.StockCode == dto.StockCode && x.SubStockId == dto.SubStockId).FirstOrDefault();
var currentDetail= inventoryDetails.Where(x =>
x.MaterialId == dto.MaterialId &&
x.StockCode == dto.StockCode &&
x.SubStockId == dto.SubStockId &&
x.OrgCode==dto.OrgCode).FirstOrDefault();
//2.2组装物料收发明细实体
var entity = _mapper.Map<InventoryInOutDetails>(dto);

View File

@@ -175,11 +175,13 @@ namespace WMS.Web.Repositories
/// <param name="materialIds"></param>
/// <param name="stockCodes"></param>
/// <param name="subStockIds"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
public async Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds)
public async Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds, List<string> orgCodes)
{
return await _context.InventoryDetails.Where(x => materialIds.Contains(x.MaterialId) &&
stockCodes.Contains(x.StockCode) &&
orgCodes.Contains(x.OrgCode) &&
subStockIds.Contains(x.SubStockId) ).ToListAsync();
}
}