From b1a1e73c87f3ff0ebadc7d9b7d372f7e625b1325 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Thu, 7 Dec 2023 11:38:44 +0800
Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=BA=93=E5=AD=98=E7=9A=84?=
=?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 82 +++++--------------
.../Services/BoxInventoryService.cs | 40 +++++----
2 files changed, 45 insertions(+), 77 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 0d5e5243..c1edc966 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -1649,51 +1649,6 @@
同步状态
-
-
- 箱Id
-
-
-
-
- 物料ID
-
-
-
-
- 组织编码
-
-
-
-
- 仓库
-
-
-
-
- 仓位
-
-
-
-
- 子仓库(跟金蝶交互字段)
-
-
-
-
- 系统库存
-
-
-
-
- 盘点数量
-
-
-
-
- 盈亏数量
-
-
盘点结果类型:1为盘盈,2位盘亏
@@ -1710,12 +1665,12 @@
同步到金蝶后金蝶的单据Id
-
+
- 序列号
+ 明细
-
+
创建
@@ -1758,39 +1713,44 @@
物料ID
-
+
- 仓库ID
+ 组织编码
+
+
+
+
+ 仓库
- 仓位ID
+ 仓位
+
+
+
+
+ 子仓库(跟金蝶交互字段)
- 盘点前数量(wms系统数量)
+ 系统库存
- 盘点实际数量(实际仓库数量)
+ 盘点数量
- 盘点后数量
+ 盈亏数量
-
+
- 盘点结果类型:1为盘盈,2位盘亏
-
-
-
-
- 备注
+ 序列号
diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
index 7a0d61d3..528dad6d 100644
--- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs
+++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
@@ -341,8 +341,10 @@ namespace WMS.Web.Domain.Services
//物料收发明细dtos
var InventoryInOutDetailsGenerateDtoList = new List();
+ 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,14 +410,19 @@ namespace WMS.Web.Domain.Services
return result;
//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.OrgCode, item.StockCode,
item.SubStockId, OrderType.Take,
- item.BillNo, item.FinalQty, (item.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In));
- InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
+ entity.BillNo, item.FinalQty, (entity.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In));
+ InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
+ }
+
}
//5.提交物料收发明细:新增
if (InventoryInOutDetailsGenerateDtoList.Count != 0)
@@ -603,7 +611,7 @@ namespace WMS.Web.Domain.Services
foreach (var item in dtoData.Details.SelectMany(x => x.BoxsDetails).ToList())
{
//找到当前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(
item.BoxId, currentDet.MaterialId,
@@ -895,13 +903,13 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//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,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
- InventoryInOutType=(int)InventoryInOutType.In,
+ InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).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()
@@ -914,7 +922,7 @@ namespace WMS.Web.Domain.Services
Qty = x.Sum(t => t.Qty)
}).ToList();
- var invDetGenDtos=new List();
+ var invDetGenDtos = new List();
invDetGenDtos.AddRange(invDetGenDtos_in);
invDetGenDtos.AddRange(invDetGenDtos_out);
@@ -962,7 +970,7 @@ namespace WMS.Web.Domain.Services
addEntity.Details = _mapper.Map>(dto.Details);
add_entitys.Add(addEntity);
}
- else
+ else
{
var update_entity = boxInventory;
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();
if (updateDetail == null)
{
- var det =_mapper.Map(dtoItem);
+ var det = _mapper.Map(dtoItem);
update_entity.Details.Add(det);
}
- else
+ else
{
- updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
+ updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers);
}
}