盘点库存的优化

This commit is contained in:
tongfei
2023-12-07 11:38:44 +08:00
parent 2086901e48
commit b1a1e73c87
2 changed files with 45 additions and 77 deletions

View File

@@ -1649,51 +1649,6 @@
同步状态
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.BoxId">
<summary>
箱Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.MaterialId">
<summary>
物料ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.OrgCode">
<summary>
组织编码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.StockCode">
<summary>
仓库
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.SubStockId">
<summary>
仓位
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.Erp_SubStockId">
<summary>
子仓库(跟金蝶交互字段)
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.BeforeQty">
<summary>
系统库存
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.AfterQty">
<summary>
盘点数量
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.FinalQty">
<summary>
盈亏数量
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.ResultType">
<summary>
盘点结果类型1为盘盈2位盘亏
@@ -1710,12 +1665,12 @@
同步到金蝶后金蝶的单据Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.SerialNumbers">
<member name="P:WMS.Web.Domain.Entitys.TakeStock.Details">
<summary>
序列号
明细
</summary>
</member>
<member name="M:WMS.Web.Domain.Entitys.TakeStock.Create(System.Int32)">
<member name="M:WMS.Web.Domain.Entitys.TakeStock.Create(System.Int32,WMS.Web.Domain.Values.TakeStockType)">
<summary>
创建
</summary>
@@ -1758,39 +1713,44 @@
物料ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.StockId">
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.OrgCode">
<summary>
仓库ID
组织编码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.StockCode">
<summary>
仓库
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.SubStockId">
<summary>
仓位ID
仓位
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.Erp_SubStockId">
<summary>
子仓库(跟金蝶交互字段)
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.BeforeQty">
<summary>
盘点前数量wms系统数量
系统库存
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.AfterQty">
<summary>
盘点实际数量(实际仓库数量)
盘点数量
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.FinalQty">
<summary>
盘点后数量
盈亏数量
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.ResultType">
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.SerialNumbers">
<summary>
盘点结果类型1为盘盈2位盘亏
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.Remark">
<summary>
备注
序列号
</summary>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.IAllFielRepositories`1.GetListField(`0,System.Int32)">

View File

@@ -341,8 +341,10 @@ namespace WMS.Web.Domain.Services
//物料收发明细dtos
var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>();
var dtoDetails_in = dtoDatas.Where(x => x.ResultType == TakeStockType.Profit).SelectMany(x => x.Details).ToList();
//2.组装:入库数据
var generateDtoList_in = dtoDatas.Where(x => x.ResultType == TakeStockType.Profit).GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
@@ -354,7 +356,7 @@ namespace WMS.Web.Domain.Services
//2.1.遍历:组装明细
generateDtoList_in.ForEach(x =>
{
foreach (var detItem in dtoDatas)
foreach (var detItem in dtoDetails_in)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
@@ -370,7 +372,8 @@ namespace WMS.Web.Domain.Services
});
//3.组装:出库数据
var generateDtoList_out = dtoDatas.Where(x => x.ResultType == TakeStockType.Loss).GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
var dtoDetails_out = dtoDatas.Where(x => x.ResultType == TakeStockType.Loss).SelectMany(x => x.Details).ToList();
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
@@ -382,7 +385,7 @@ namespace WMS.Web.Domain.Services
//3.1遍历:组装明细
generateDtoList_in.ForEach(x =>
{
foreach (var detItem in dtoDatas)
foreach (var detItem in dtoDetails_out)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
@@ -407,15 +410,20 @@ namespace WMS.Web.Domain.Services
return result;
//5.组装物料收发明细
foreach (var item in dtoDatas)
foreach (var item in dtoDatas.SelectMany(x => x.Details).ToList())
{
var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault();
if (entity != null)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, item.MaterialId,
item.OrgCode, item.StockCode,
item.SubStockId, OrderType.Take,
item.BillNo, item.FinalQty, (item.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In));
entity.BillNo, item.FinalQty, (entity.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In));
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
}
//5.提交物料收发明细:新增
if (InventoryInOutDetailsGenerateDtoList.Count != 0)
{