采购入库-变更库存

This commit is contained in:
tongfei
2023-11-16 17:37:19 +08:00
parent ec486c1dbd
commit 815b2f6b21
8 changed files with 99 additions and 22 deletions

View File

@@ -1780,11 +1780,6 @@
采购上架-请求对象 采购上架-请求对象
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.BoxIds">
<summary>
箱IDS
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.Details"> <member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.Details">
<summary> <summary>
明细 明细
@@ -1800,6 +1795,11 @@
单据ID(等同-入库任务单ID) 单据ID(等同-入库任务单ID)
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.BoxId">
<summary>
箱ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.SourceBillNo"> <member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.SourceBillNo">
<summary> <summary>
来源单号 来源单号
@@ -1815,11 +1815,6 @@
组织 组织
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.MaterialId">
<summary>
物料Id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.StockCode"> <member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.StockCode">
<summary> <summary>
仓库编码 仓库编码
@@ -1830,6 +1825,11 @@
仓位ID 仓位ID
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.MaterialId">
<summary>
物料Id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.Qty"> <member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.Qty">
<summary> <summary>
入库数量 入库数量

View File

@@ -530,6 +530,11 @@
任务单ID 任务单ID
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.InStockDetails.BoxId">
<summary>
箱ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.InStockDetails.SourceBillNo"> <member name="P:WMS.Web.Domain.Entitys.InStockDetails.SourceBillNo">
<summary> <summary>
来源单号 来源单号

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text; using System.Text;
namespace WMS.Web.Core.Dto.InStock namespace WMS.Web.Core.Dto.InStock
@@ -10,10 +11,6 @@ namespace WMS.Web.Core.Dto.InStock
public class PurchaseShelfRequest public class PurchaseShelfRequest
{ {
/// <summary>
/// 箱IDS
/// </summary>
public List<int> BoxIds { get; set; } = new List<int>();
/// <summary> /// <summary>
/// 明细 /// 明细

View File

@@ -16,6 +16,12 @@ namespace WMS.Web.Core.Dto.InStock
[Required(ErrorMessage = "任务单ID不能为空")] [Required(ErrorMessage = "任务单ID不能为空")]
public int TaskId { get; set; } public int TaskId { get; set; }
/// <summary>
/// 箱ID
/// </summary>
[Required(ErrorMessage = "箱ID不能为空")]
public int BoxId { get; set; }
/// <summary> /// <summary>
/// 来源单号 /// 来源单号
///</summary> ///</summary>
@@ -33,12 +39,6 @@ namespace WMS.Web.Core.Dto.InStock
[Required(ErrorMessage = "组织不能为空")] [Required(ErrorMessage = "组织不能为空")]
public int OrgId { get; set; } public int OrgId { get; set; }
/// <summary>
/// 物料Id
///</summary>
[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 仓库编码 /// 仓库编码
///</summary> ///</summary>
@@ -50,6 +50,12 @@ namespace WMS.Web.Core.Dto.InStock
[Required(ErrorMessage = " 仓位不能为空")] [Required(ErrorMessage = " 仓位不能为空")]
public int SubStockId { get; set; } public int SubStockId { get; set; }
/// <summary>
/// 物料Id
///</summary>
[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 入库数量 /// 入库数量
///</summary> ///</summary>

View File

@@ -32,7 +32,7 @@ namespace WMS.Web.Core.Dto.Inventory
/// <summary> /// <summary>
/// 明细 /// 明细
/// </summary> /// </summary>
public List<BoxInventoryBackDetailsGenerateDto> Details { get; set; } public List<BoxInventoryBackDetailsGenerateDto> Details { get; set; } = new List<BoxInventoryBackDetailsGenerateDto>();
} }
/// <summary> /// <summary>

View File

@@ -25,6 +25,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public int TaskId { get; set; } public int TaskId { get; set; }
/// <summary>
/// 箱ID
/// </summary>
public int BoxId { get; set; }
/// <summary> /// <summary>
/// 来源单号 /// 来源单号
/// </summary> /// </summary>

View File

@@ -2,9 +2,11 @@
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto.BackRecord; using WMS.Web.Core.Dto.BackRecord;
using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Entitys;
@@ -25,13 +27,16 @@ namespace WMS.Web.Domain.Services
public readonly IBasicsRepositories _basicsRepositories; public readonly IBasicsRepositories _basicsRepositories;
private readonly ISerialNumberService _serialNumberService; private readonly ISerialNumberService _serialNumberService;
private readonly IBackRecordRepositories _backRecordRepositories; private readonly IBackRecordRepositories _backRecordRepositories;
private readonly IBoxInventoryService _boxInventoryService;
public BackRecordService(IMapper mapper, ILoginService loginService, public BackRecordService(IMapper mapper, ILoginService loginService,
IBasicsRepositories basicsRepositories, IBasicsRepositories basicsRepositories,
IBoxInventoryService boxInventoryService,
ISerialNumberService serialNumberService, ISerialNumberService serialNumberService,
IBackRecordRepositories backRecordRepositories) IBackRecordRepositories backRecordRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
_boxInventoryService = boxInventoryService;
_basicsRepositories = basicsRepositories; _basicsRepositories = basicsRepositories;
_backRecordRepositories = backRecordRepositories; _backRecordRepositories = backRecordRepositories;
} }
@@ -66,6 +71,32 @@ namespace WMS.Web.Domain.Services
var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction); var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess) if (!serialNumber_result.IsSuccess)
return serialNumber_result; return serialNumber_result;
//保存成功后:变更库存
var boxInventoryBackGenerateDto = dto.Details.GroupBy(x =>new { x.BoxId,x.StockCode,x.SubStockId}).Select(x => new BoxInventoryBackGenerateDto()
{
BoxId=x.Key.BoxId,
StockCode=x.Key.StockCode,
SubStockId=x.Key.SubStockId,
InventoryInOutType= type== BackRecordType.OutstockOn? (int)InventoryInOutType.In:(int)InventoryInOutType.Out,
}).ToList();
foreach (var item in dto.Details)
{
var current= boxInventoryBackGenerateDto.Where(x => x.BoxId == item.BoxId).FirstOrDefault();
if (current != null)
{
var detail = new BoxInventoryBackDetailsGenerateDto();
detail.MaterialId = item.MaterialId;
detail.Qty = item.Qty;
detail.SerialNumbers = item.SerialNumbers;
current.Details.Add(detail);
}
}
var boxInventoryResult= await _boxInventoryService.GenerateBackBox(boxInventoryBackGenerateDto, isTransaction);
if (!boxInventoryResult.IsSuccess)
return boxInventoryResult;
return Result.ReSuccess(); return Result.ReSuccess();
} }
else else

View File

@@ -10,6 +10,7 @@ using WMS.Web.Core.Dto.ChangeBoxRecord;
using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.InStock; using WMS.Web.Core.Dto.InStock;
using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Dto.InStockTask;
using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Entitys;
@@ -32,17 +33,19 @@ namespace WMS.Web.Domain.Services
private readonly ISerialNumberService _serialNumberService; private readonly ISerialNumberService _serialNumberService;
private readonly IChangeMoveBoxService _changeMoveBoxService; private readonly IChangeMoveBoxService _changeMoveBoxService;
private readonly IBoxRepositories _boxRepositories; private readonly IBoxRepositories _boxRepositories;
private readonly IBoxInventoryService _boxInventoryService;
private readonly IBasicsRepositories _basicsRepositories; private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
public InStockService(IMapper mapper, IErpService erpService, ISerialNumberService serialNumberService, ILoginService loginService, IBoxRepositories boxRepositories, public InStockService(IMapper mapper, IErpService erpService, IBoxInventoryService boxInventoryService,ISerialNumberService serialNumberService, ILoginService loginService, IBoxRepositories boxRepositories,
IBasicsRepositories basicsRepositories, IErpBasicDataExtendService erpBasicDataExtendService, IChangeMoveBoxService changeMoveBoxService, IBasicsRepositories basicsRepositories, IErpBasicDataExtendService erpBasicDataExtendService, IChangeMoveBoxService changeMoveBoxService,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories) IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_erpService = erpService; _erpService = erpService;
_loginService = loginService; _loginService = loginService;
_boxInventoryService = boxInventoryService;
_serialNumberService = serialNumberService; _serialNumberService = serialNumberService;
_boxRepositories = boxRepositories; _boxRepositories = boxRepositories;
_changeMoveBoxService = changeMoveBoxService; _changeMoveBoxService = changeMoveBoxService;
@@ -202,6 +205,33 @@ namespace WMS.Web.Domain.Services
var serialNumber_result= await _serialNumberService.InStock(entity, loginInfo, isTransaction); var serialNumber_result= await _serialNumberService.InStock(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess) if (!serialNumber_result.IsSuccess)
return serialNumber_result; return serialNumber_result;
//保存成功后:变更箱库存
var boxInventoryGenerateDto = entity.Details.GroupBy(x => new { x.BoxId, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryGenerateDto()
{
InventoryInOutMethod= (int)InventoryInOutMethod.Box,
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(); return Result.ReSuccess();
} }
else else
@@ -340,7 +370,10 @@ namespace WMS.Web.Domain.Services
} }
var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction); var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction);
if (isSuccess) if (isSuccess)
{
return Result.ReSuccess(); return Result.ReSuccess();
}
else else
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
} }