盘点库存的优化
This commit is contained in:
@@ -1649,51 +1649,6 @@
|
|||||||
同步状态
|
同步状态
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStock.ResultType">
|
||||||
<summary>
|
<summary>
|
||||||
盘点结果类型:1为盘盈,2位盘亏
|
盘点结果类型:1为盘盈,2位盘亏
|
||||||
@@ -1710,12 +1665,12 @@
|
|||||||
同步到金蝶后金蝶的单据Id
|
同步到金蝶后金蝶的单据Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStock.SerialNumbers">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStock.Details">
|
||||||
<summary>
|
<summary>
|
||||||
序列号
|
明细
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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>
|
||||||
创建
|
创建
|
||||||
</summary>
|
</summary>
|
||||||
@@ -1758,39 +1713,44 @@
|
|||||||
物料ID
|
物料ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.StockId">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.OrgCode">
|
||||||
<summary>
|
<summary>
|
||||||
仓库ID
|
组织编码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.StockCode">
|
||||||
|
<summary>
|
||||||
|
仓库
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.SubStockId">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.SubStockId">
|
||||||
<summary>
|
<summary>
|
||||||
仓位ID
|
仓位
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.Erp_SubStockId">
|
||||||
|
<summary>
|
||||||
|
子仓库(跟金蝶交互字段)
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.BeforeQty">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.BeforeQty">
|
||||||
<summary>
|
<summary>
|
||||||
盘点前数量(wms系统数量)
|
系统库存
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.AfterQty">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.AfterQty">
|
||||||
<summary>
|
<summary>
|
||||||
盘点实际数量(实际仓库数量)
|
盘点数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.FinalQty">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.FinalQty">
|
||||||
<summary>
|
<summary>
|
||||||
盘点后数量
|
盈亏数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.ResultType">
|
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.SerialNumbers">
|
||||||
<summary>
|
<summary>
|
||||||
盘点结果类型:1为盘盈,2位盘亏
|
序列号
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.Remark">
|
|
||||||
<summary>
|
|
||||||
备注
|
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Infrastructure.IAllFielRepositories`1.GetListField(`0,System.Int32)">
|
<member name="M:WMS.Web.Domain.Infrastructure.IAllFielRepositories`1.GetListField(`0,System.Int32)">
|
||||||
|
|||||||
@@ -341,8 +341,10 @@ namespace WMS.Web.Domain.Services
|
|||||||
//物料收发明细dtos
|
//物料收发明细dtos
|
||||||
var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>();
|
var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>();
|
||||||
|
|
||||||
|
var dtoDetails_in = dtoDatas.Where(x => x.ResultType == TakeStockType.Profit).SelectMany(x => x.Details).ToList();
|
||||||
|
|
||||||
//2.组装:入库数据
|
//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,
|
BoxId = x.Key.BoxId,
|
||||||
OrgCode = x.Key.OrgCode,
|
OrgCode = x.Key.OrgCode,
|
||||||
@@ -354,7 +356,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
//2.1.遍历:组装明细
|
//2.1.遍历:组装明细
|
||||||
generateDtoList_in.ForEach(x =>
|
generateDtoList_in.ForEach(x =>
|
||||||
{
|
{
|
||||||
foreach (var detItem in dtoDatas)
|
foreach (var detItem in dtoDetails_in)
|
||||||
{
|
{
|
||||||
//3.1箱是当前的
|
//3.1箱是当前的
|
||||||
if (detItem.BoxId == x.BoxId)
|
if (detItem.BoxId == x.BoxId)
|
||||||
@@ -370,7 +372,8 @@ namespace WMS.Web.Domain.Services
|
|||||||
});
|
});
|
||||||
|
|
||||||
//3.组装:出库数据
|
//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,
|
BoxId = x.Key.BoxId,
|
||||||
OrgCode = x.Key.OrgCode,
|
OrgCode = x.Key.OrgCode,
|
||||||
@@ -382,7 +385,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
//3.1遍历:组装明细
|
//3.1遍历:组装明细
|
||||||
generateDtoList_in.ForEach(x =>
|
generateDtoList_in.ForEach(x =>
|
||||||
{
|
{
|
||||||
foreach (var detItem in dtoDatas)
|
foreach (var detItem in dtoDetails_out)
|
||||||
{
|
{
|
||||||
//3.1箱是当前的
|
//3.1箱是当前的
|
||||||
if (detItem.BoxId == x.BoxId)
|
if (detItem.BoxId == x.BoxId)
|
||||||
@@ -407,14 +410,19 @@ namespace WMS.Web.Domain.Services
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
//5.组装物料收发明细
|
//5.组装物料收发明细
|
||||||
foreach (var item in dtoDatas)
|
foreach (var item in dtoDatas.SelectMany(x => x.Details).ToList())
|
||||||
{
|
{
|
||||||
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
|
var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault();
|
||||||
|
if (entity != null)
|
||||||
|
{
|
||||||
|
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
|
||||||
item.BoxId, item.MaterialId,
|
item.BoxId, item.MaterialId,
|
||||||
item.OrgCode, item.StockCode,
|
item.OrgCode, item.StockCode,
|
||||||
item.SubStockId, OrderType.Take,
|
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);
|
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//5.提交物料收发明细:新增
|
//5.提交物料收发明细:新增
|
||||||
if (InventoryInOutDetailsGenerateDtoList.Count != 0)
|
if (InventoryInOutDetailsGenerateDtoList.Count != 0)
|
||||||
@@ -603,7 +611,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
foreach (var item in dtoData.Details.SelectMany(x => x.BoxsDetails).ToList())
|
foreach (var item in dtoData.Details.SelectMany(x => x.BoxsDetails).ToList())
|
||||||
{
|
{
|
||||||
//找到当前box对应的物料明细
|
//找到当前box对应的物料明细
|
||||||
var currentDet= current_materialDetails.Where(x => x.Id == item.DetailId).FirstOrDefault();
|
var currentDet = current_materialDetails.Where(x => x.Id == item.DetailId).FirstOrDefault();
|
||||||
|
|
||||||
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
|
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
|
||||||
item.BoxId, currentDet.MaterialId,
|
item.BoxId, currentDet.MaterialId,
|
||||||
@@ -895,13 +903,13 @@ namespace WMS.Web.Domain.Services
|
|||||||
}
|
}
|
||||||
//5.即时库存:处理
|
//5.即时库存:处理
|
||||||
//5.1先合并相同的数据
|
//5.1先合并相同的数据
|
||||||
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x=>x.InventoryInOutType==(int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
|
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
|
||||||
{
|
{
|
||||||
OrgCode = x.Key.OrgCode,
|
OrgCode = x.Key.OrgCode,
|
||||||
StockCode = x.Key.StockCode,
|
StockCode = x.Key.StockCode,
|
||||||
MaterialId = x.Key.MaterialId,
|
MaterialId = x.Key.MaterialId,
|
||||||
SubStockId = x.Key.SubStockId,
|
SubStockId = x.Key.SubStockId,
|
||||||
InventoryInOutType=(int)InventoryInOutType.In,
|
InventoryInOutType = (int)InventoryInOutType.In,
|
||||||
Qty = x.Sum(t => t.Qty)
|
Qty = x.Sum(t => t.Qty)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
|
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
|
||||||
@@ -914,7 +922,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
Qty = x.Sum(t => t.Qty)
|
Qty = x.Sum(t => t.Qty)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
var invDetGenDtos=new List<InventoryDetailsGenerateDto>();
|
var invDetGenDtos = new List<InventoryDetailsGenerateDto>();
|
||||||
invDetGenDtos.AddRange(invDetGenDtos_in);
|
invDetGenDtos.AddRange(invDetGenDtos_in);
|
||||||
invDetGenDtos.AddRange(invDetGenDtos_out);
|
invDetGenDtos.AddRange(invDetGenDtos_out);
|
||||||
|
|
||||||
@@ -962,7 +970,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details);
|
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details);
|
||||||
add_entitys.Add(addEntity);
|
add_entitys.Add(addEntity);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var update_entity = boxInventory;
|
var update_entity = boxInventory;
|
||||||
update_entity.OrgCode = dto.OrgCode;
|
update_entity.OrgCode = dto.OrgCode;
|
||||||
@@ -976,12 +984,12 @@ namespace WMS.Web.Domain.Services
|
|||||||
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
|
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
|
||||||
if (updateDetail == null)
|
if (updateDetail == null)
|
||||||
{
|
{
|
||||||
var det =_mapper.Map<BoxInventoryDetails>(dtoItem);
|
var det = _mapper.Map<BoxInventoryDetails>(dtoItem);
|
||||||
update_entity.Details.Add(det);
|
update_entity.Details.Add(det);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
|
updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
|
||||||
updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers);
|
updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user