箱库存-修改

This commit is contained in:
tongfei
2023-11-23 16:03:16 +08:00
parent eb73e30fc6
commit 57e2b755de
8 changed files with 120 additions and 2 deletions

View File

@@ -106,6 +106,10 @@ namespace WMS.Web.Api.Controllers
{ {
response.ExportStatus.Add((int)enumv, enumv.GetRemark()); response.ExportStatus.Add((int)enumv, enumv.GetRemark());
} }
foreach (InventoryInOutMethod enumv in Enum.GetValues(typeof(InventoryInOutMethod)))
{
response.InventoryInOutMethod.Add((int)enumv, enumv.GetRemark());
}
//2 //2
//1 //1
return Task.FromResult(Result<EnumStatusResponse>.ReSuccess(response)); return Task.FromResult(Result<EnumStatusResponse>.ReSuccess(response));

View File

@@ -525,6 +525,11 @@
下载导出状态 下载导出状态
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.EnumStatusResponse.InventoryInOutMethod">
<summary>
出入库方式:按箱或者按产品
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.Customer.ErpCustomerDto"> <member name="T:WMS.Web.Core.Dto.Erp.Customer.ErpCustomerDto">
<summary> <summary>
客户 客户

View File

@@ -486,6 +486,11 @@
入库类型 入库类型
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.InStock.Method">
<summary>
入库方式1按箱2按产品
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.InStock.CreatorId"> <member name="P:WMS.Web.Domain.Entitys.InStock.CreatorId">
<summary> <summary>
创建人 创建人
@@ -3331,6 +3336,14 @@
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.BoxInventoryService.GenerateInStockBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.InStock},System.Boolean)">
<summary>
入库单-箱库存的变更
</summary>
<param name="dtoDatas"></param>
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.BoxInventoryService.HandlBoxInventory(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.BoxInventoryGenerateDto},System.Boolean)"> <member name="M:WMS.Web.Domain.Services.BoxInventoryService.HandlBoxInventory(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.BoxInventoryGenerateDto},System.Boolean)">
<summary> <summary>
处理箱库存变更:出入库 处理箱库存变更:出入库

View File

@@ -54,6 +54,10 @@ namespace WMS.Web.Core.Dto
/// 下载导出状态 /// 下载导出状态
/// </summary> /// </summary>
public Dictionary<int, string> ExportStatus { get; set; } = new Dictionary<int, string>(); public Dictionary<int, string> ExportStatus { get; set; } = new Dictionary<int, string>();
/// <summary>
/// 出入库方式:按箱或者按产品
/// </summary>
public Dictionary<int, string> InventoryInOutMethod { get; set; } = new Dictionary<int, string>();
} }

View File

@@ -27,6 +27,10 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public InstockType Type { get; set; } public InstockType Type { get; set; }
/// <summary> /// <summary>
/// 入库方式1按箱2按产品
/// </summary>
public InventoryInOutMethod Method { get; set; }
/// <summary>
/// 创建人 /// 创建人
/// </summary> /// </summary>
public int CreatorId { get; set; } public int CreatorId { get; set; }

View File

@@ -799,6 +799,92 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary>
/// 入库单-箱库存的变更
/// </summary>
/// <param name="dtoDatas"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> GenerateInStockBox(List<InStock> dtoDatas, bool isTransaction)
{
//1.判断来源数据是否存在
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
var update_entitys = new List<BoxInventory>();
var add_entitys = new List<BoxInventory>();
var InventoryDetailsGenerateDto = new List<InventoryDetailsGenerateDto>();
//2.组装-按箱入库
var dtoDatas_details_Method_box = dtoDatas.Where(x => x.Method == InventoryInOutMethod.Box).SelectMany(x => x.Details).ToList();
var generateDtoList_Metod_Box = dtoDatas_details_Method_box.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x=>new BoxInventoryGenerateDto()
{
BoxId=x.Key.BoxId,
OrgCode=x.Key.OrgCode,
StockCode=x.Key.StockCode,
SubStockId=x.Key.SubStockId,
InventoryInOutMethod= (int)InventoryInOutMethod.Box,
InventoryInOutType=(int)InventoryInOutType.In
}).ToList();
//2.1.遍历:组装明细
generateDtoList_Metod_Box.ForEach(x =>
{
foreach (var detItem in dtoDatas_details_Method_box)
{
//2.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
//2.2组装明细
var det = new BoxInventoryGenerateDetailsDto();
det.MaterialId = detItem.MaterialId;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
}
}
});
//3.组装-按产品入库
var dtoDatas_details_Method_Product = dtoDatas.Where(x => x.Method == InventoryInOutMethod.Box).SelectMany(x => x.Details).ToList();
var generateDtoList_Metod_Product = dtoDatas_details_Method_Product.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x => new BoxInventoryGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
InventoryInOutMethod = (int)InventoryInOutMethod.Product,
InventoryInOutType = (int)InventoryInOutType.In
}).ToList();
//3.1.遍历:组装明细
generateDtoList_Metod_Product.ForEach(x =>
{
foreach (var detItem in dtoDatas_details_Method_Product)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
//3.2组装明细
var det = new BoxInventoryGenerateDetailsDto();
det.MaterialId = detItem.MaterialId;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
}
}
});
//整合一起
var generateDtoList = new List<BoxInventoryGenerateDto>();
generateDtoList.AddRange(generateDtoList_Metod_Box);
generateDtoList.AddRange(generateDtoList_Metod_Product);
//提交处理
return null;
}
/// <summary> /// <summary>
/// 处理箱库存变更:出入库 /// 处理箱库存变更:出入库

View File

@@ -196,6 +196,7 @@ namespace WMS.Web.Domain.Services
{ {
var entity = new InStock(); var entity = new InStock();
entity.Type = type; entity.Type = type;
entity.Method = InventoryInOutMethod.Box;
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);
@@ -275,6 +276,7 @@ namespace WMS.Web.Domain.Services
//2.生成:入库单 //2.生成:入库单
var entity = new InStock(); var entity = new InStock();
entity.Type = task.Type; entity.Type = task.Type;
entity.Method = dto.ShelfMethod == (int)ShelfMethod.Box ? InventoryInOutMethod.Box : InventoryInOutMethod.Product;
entity.Details = new List<InStockDetails>(); entity.Details = new List<InStockDetails>();
var temps = new List<InStockDetails>(); var temps = new List<InStockDetails>();

View File

@@ -146,7 +146,7 @@ namespace WMS.Web.Repositories
/// <returns></returns> /// <returns></returns>
public async Task<List<BoxInventory>> GetList(List<int> ids) public async Task<List<BoxInventory>> GetList(List<int> ids)
{ {
return await _context.BoxInventory.Include(x => x.Details).Where(x => ids.Contains(x.Id)).ToListAsync(); return await _context.BoxInventory.Include(x => x.Details).Where(x => ids.Contains(x.BoxId)).ToListAsync();
} }
/// <summary> /// <summary>