From c77112750890c773e5d9091e84d21d0a812faa21 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Fri, 17 Nov 2023 09:38:42 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E9=87=87=E8=B4=AD=E4=B8=8A=E6=9E=B6-?=
=?UTF-8?q?=E7=AE=B1=E5=BA=93=E5=AD=98=E5=8F=98=E6=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 --
.../Dto/InStock/NoPurchaseShelfRequest.cs | 5 --
src/WMS.Web.Domain/Services/InStockService.cs | 54 ++++++++++++++-----
3 files changed, 41 insertions(+), 23 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 344b5f84..12b4600d 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -1765,11 +1765,6 @@
上架方式
-
-
- 箱集合
-
-
入库单明细
diff --git a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs
index 86dc2412..9be984cc 100644
--- a/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs
+++ b/src/WMS.Web.Core/Dto/InStock/NoPurchaseShelfRequest.cs
@@ -23,11 +23,6 @@ namespace WMS.Web.Core.Dto.InStock
[Required(ErrorMessage = "上架方式不能为空")]
public int ShelfMethod { get; set; }
- ///
- /// 箱集合
- ///
- public List Boxs { get; set; } = new List();
-
///
/// 入库单明细
///
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index 67f3bacb..7135f045 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -207,7 +207,7 @@ namespace WMS.Web.Domain.Services
return serialNumber_result;
//保存成功后:变更箱库存
- var boxInventoryGenerateDto = entity.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto()
+ var boxInventoryGenerateDto = dto.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto()
{
InventoryInOutMethod= (int)InventoryInOutMethod.Box,
InventoryInOutType=(int)InventoryInOutType.In,
@@ -246,12 +246,10 @@ namespace WMS.Web.Domain.Services
///
private async Task ShelfNoPurchaseSave(NoPurchaseShelfRequest dto, LoginInDto loginInfo, bool isTransaction = true)
{
-
//1.修改-入库任务单的信息
var updateInStockTaskRequest = new UpdateInStockTaskRequest();
updateInStockTaskRequest.Id = dto.TaskId;
- updateInStockTaskRequest.Boxs = dto.Boxs;
- updateInStockTaskRequest.Details =new List();
+ updateInStockTaskRequest.Details = new List();
foreach (var item in dto.Details)
{
var updateInStockTaskDetailsRequest = new UpdateInStockTaskDetailsRequest();
@@ -259,7 +257,17 @@ namespace WMS.Web.Domain.Services
updateInStockTaskDetailsRequest.ReceiveQty = item.Qty;
updateInStockTaskRequest.Details.Add(updateInStockTaskDetailsRequest);
}
-
+ //1.1.先找到箱IDs:获取箱基本信息
+ var boxIds = dto.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
+ var boxInfos= await _boxRepositories.GetEntityList(boxIds);
+ foreach (var item in boxInfos)
+ {
+ var task_box = new UpdateInStockTaskBoxRequest();
+ task_box.BoxId = item.Id;
+ task_box.BoxBillNo = item.BoxBillNo;
+ updateInStockTaskRequest.Boxs.Add(task_box);
+ }
+
//2.修改后返回当前实体
var update_result = await this.Update(updateInStockTaskRequest, loginInfo.UserInfo.StaffId, null, isTransaction, true);
if (!update_result.IsSuccess)
@@ -271,10 +279,6 @@ namespace WMS.Web.Domain.Services
entity.Details = _mapper.Map>(dto.Details);
entity.Create(loginInfo.UserInfo.StaffId);
- //需要填写序列号
- //需要修改库存
- //需要同步金蝶
-
//添加入库单信息
entity = await _inStockRepositories.Add(entity, isTransaction);
if(entity==null)
@@ -284,7 +288,7 @@ namespace WMS.Web.Domain.Services
if (dto.ShelfMethod == (int)ShelfMethod.Product)
{
var changeBox = new SaveChangeBoxRecordRequest();
- changeBox.DestBoxId = dto.Boxs.FirstOrDefault().BoxId;
+ changeBox.DestBoxId = boxIds.FirstOrDefault();
foreach (var item in dto.Details)
{
var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
@@ -302,6 +306,33 @@ namespace WMS.Web.Domain.Services
var serialNumber_result = await _serialNumberService.InStock(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess)
return serialNumber_result;
+
+ //保存成功后:箱库存的变更
+ var boxInventoryGenerateDto = dto.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto()
+ {
+ InventoryInOutMethod = dto.ShelfMethod == (int)ShelfMethod.Product?(int)InventoryInOutMethod.Box: (int)InventoryInOutMethod.Product,
+ InventoryInOutType = (int)InventoryInOutType.In,
+ BoxId = x.Key.BoxId,
+ StockCode = x.Key.StockCode,
+ SubStockId = x.Key.SubStockId
+ }).ToList();
+
+ foreach (var item in dto.Details)
+ {
+ var current = boxInventoryGenerateDto.Where(x => x.BoxId == item.BoxId).FirstOrDefault();
+ if (current != null)
+ {
+ var detail = new BoxInventoryGenerateDetailsDto();
+ detail.MaterialId = item.MaterialId;
+ detail.Qty = item.Qty;
+ detail.SerialNumbers = item.SerialNumbers;
+ current.Details.Add(detail);
+ }
+ }
+ var boxInventoryResult = await _boxInventoryService.HandlBoxInventory(boxInventoryGenerateDto, isTransaction);
+ if (!boxInventoryResult.IsSuccess)
+ return boxInventoryResult;
+
return Result.ReSuccess();
}
@@ -370,10 +401,7 @@ namespace WMS.Web.Domain.Services
}
var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction);
if (isSuccess)
- {
-
return Result.ReSuccess();
- }
else
return Result.ReFailure(ResultCodes.DateWriteError);
}