From 8afbfb97d46adb0618b875ddd243e50d5b09a1c9 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Thu, 23 Nov 2023 13:46:14 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=BA=93=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 16 ++++++-------
.../Services/BoxInventoryService.cs | 23 ++++++-------------
.../BoxInventoryRepositories.cs | 13 +++++++++++
3 files changed, 28 insertions(+), 24 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 9dc71ea5..620087b6 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -2205,14 +2205,6 @@
-
-
- 入库回退上下架-箱库存的变更
-
-
-
-
-
入库回退上下架-箱库存的变更
@@ -3310,6 +3302,14 @@
+
+
+ 盘点单-箱库存的变更
+
+
+
+
+
处理箱库存变更:出入库
diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
index 636d145b..f25b6267 100644
--- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs
+++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs
@@ -407,8 +407,6 @@ namespace WMS.Web.Domain.Services
//2.获取“箱库存集合”
var boxIds = dtoDatas.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
var boxInventorys = await _boxInventoryRepositories.GetList(boxIds);
- var boxs = await _boxRepositories.GetEntityList(boxIds);
- var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds);
//3.遍历:dto
foreach (var dto in dtoDatas)
{
@@ -419,21 +417,15 @@ namespace WMS.Web.Domain.Services
var ishave = boxInventorys.Where(x => x.BoxId == dto.BoxId).Any();
if (ishave)
return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError);
- //3.1.1取箱信息
- var box = boxs.Where(x => x.Id == dto.BoxId).FirstOrDefault();
- if (box == null)
- return Result.ReFailure(ResultCodes.BoxNoData);
- //3.1.2去箱对应的序列号信息
- var box_serialNumbers = serialNumbers.Where(x => x.BoxId == dto.BoxId).Select(x => new { x.MaterialId, x.SerialNumber }).ToList();
//3.2组装要新增的箱库存信息:箱和明细和序列号
var addEntity = _mapper.Map(dto);
- addEntity.Details = _mapper.Map>(box.Details);
+ addEntity.Details = _mapper.Map>(dto.Details);
add_entitys.Add(addEntity);
//4.1即时库存:组装入库
- foreach (var item in box.Details)
+ foreach (var item in dto.Details)
{
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
@@ -527,12 +519,6 @@ namespace WMS.Web.Domain.Services
if (dtoDatas == null || dtoDatas.Count == 0)
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
- //2.获取“箱库存集合”
- var boxIds = dtoDatas.SelectMany(x => x.Details).GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
- var boxInventorys = await _boxInventoryRepositories.GetList(boxIds);
- var boxs = await _boxRepositories.GetEntityList(boxIds);
- var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds);
-
var generateDtoList = new List();
#region 入库组装
@@ -618,6 +604,11 @@ namespace WMS.Web.Domain.Services
///
public async Task GenerateTakeBox(List dtoDatas, bool isTransaction)
{
+ //1.判断来源数据是否存在
+ if (dtoDatas == null || dtoDatas.Count == 0)
+ return Result.ReFailure(ResultCodes.InventoryNoSourceError);
+
+ var generateDtoList = new List();
return null;
}
diff --git a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs
index 92b21480..c970cf94 100644
--- a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs
+++ b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs
@@ -114,12 +114,25 @@ namespace WMS.Web.Repositories
.SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box })
.Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo).Select(x=>x.boxinvent).FirstOrDefaultAsync();
+
+
+
var response = _mapper.Map(entity);
if (response != null)
{
+ var serialNumbs = await _context.SerialNumbers.Where(x => x.BoxId == response.BoxId).ToListAsync();
+
response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode);
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, response.SubStockId);
response.Details = _mapper.Map>(entity.Details);
+ if (response.Details != null && response.Details.Count != 0)
+ {
+ response.Details.ForEach(x =>
+ {
+ x.SerialNumbers = serialNumbs.Where(x => x.MaterialId == x.MaterialId).Select(x=>x.SerialNumber).ToList();
+ });
+ }
+
response.TotalCount = response.Details.Count();
}