库存-添加-组织维度

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

View File

@@ -1953,13 +1953,14 @@
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </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>
列表-根据物料和仓库和仓位 列表-根据物料和仓库和仓位
</summary> </summary>
<param name="materialIds"></param> <param name="materialIds"></param>
<param name="stockCodes"></param> <param name="stockCodes"></param>
<param name="subStockIds"></param> <param name="subStockIds"></param>
<param name="orgCodes"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:WMS.Web.Domain.Infrastructure.IInventoryInOutDetailsRepositories"> <member name="T:WMS.Web.Domain.Infrastructure.IInventoryInOutDetailsRepositories">

View File

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

View File

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

View File

@@ -42,7 +42,8 @@ namespace WMS.Web.Domain.Infrastructure
/// <param name="materialIds"></param> /// <param name="materialIds"></param>
/// <param name="stockCodes"></param> /// <param name="stockCodes"></param>
/// <param name="subStockIds"></param> /// <param name="subStockIds"></param>
/// <param name="orgCodes"></param>
/// <returns></returns> /// <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="delete_ids"></param>
/// <param name="update_entitys"></param> /// <param name="update_entitys"></param>
/// <returns></returns> /// <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出库的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱库存数据不存在,请稍候再试!” //3.1出库的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱库存数据不存在,请稍候再试!”
// 获取箱库存 // 获取箱库存
@@ -688,7 +688,7 @@ namespace WMS.Web.Domain.Services
/// <param name="add_entitys"></param> /// <param name="add_entitys"></param>
/// <param name="update_entitys"></param> /// <param name="update_entitys"></param>
/// <returns></returns> /// <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) if (dto.InventoryInOutMethod == (int)InventoryInOutMethod.Box)
@@ -756,6 +756,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoDet in dto.Details) foreach (var dtoDet in dto.Details)
{ {
var invDto = new InventoryDetailsGenerateDto(); var invDto = new InventoryDetailsGenerateDto();
invDto.OrgCode = dto.OrgCode;
invDto.InventoryInOutType = dto.InventoryInOutType; invDto.InventoryInOutType = dto.InventoryInOutType;
invDto.StockCode = dto.StockCode; invDto.StockCode = dto.StockCode;
invDto.SubStockId = dto.SubStockId ?? 0; 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) 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 materialIds = dtos.Select(x => x.MaterialId).ToList();
var stockCodes = dtos.GroupBy(x => x.StockCode).Select(x => x.Key).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 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>(); var add_entitys = new List<InventoryDetails>();
@@ -54,7 +55,11 @@ namespace WMS.Web.Domain.Services
foreach (var dto in dtos) foreach (var dto in dtos)
{ {
//2.1当前的即时库存明细 //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) if (currentDetail == null)
{ {
//出库的时候,判断是否有库存,没有就返回错误 //出库的时候,判断是否有库存,没有就返回错误

View File

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

View File

@@ -175,11 +175,13 @@ namespace WMS.Web.Repositories
/// <param name="materialIds"></param> /// <param name="materialIds"></param>
/// <param name="stockCodes"></param> /// <param name="stockCodes"></param>
/// <param name="subStockIds"></param> /// <param name="subStockIds"></param>
/// <param name="orgCodes"></param>
/// <returns></returns> /// <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) && return await _context.InventoryDetails.Where(x => materialIds.Contains(x.MaterialId) &&
stockCodes.Contains(x.StockCode) && stockCodes.Contains(x.StockCode) &&
orgCodes.Contains(x.OrgCode) &&
subStockIds.Contains(x.SubStockId) ).ToListAsync(); subStockIds.Contains(x.SubStockId) ).ToListAsync();
} }
} }