采购入库-变更库存
This commit is contained in:
@@ -1780,11 +1780,6 @@
|
||||
采购上架-请求对象
|
||||
</summary>
|
||||
</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">
|
||||
<summary>
|
||||
明细
|
||||
@@ -1800,6 +1795,11 @@
|
||||
单据ID(等同-入库任务单ID)
|
||||
</summary>
|
||||
</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">
|
||||
<summary>
|
||||
来源单号
|
||||
@@ -1815,11 +1815,6 @@
|
||||
组织
|
||||
</summary>
|
||||
</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">
|
||||
<summary>
|
||||
仓库编码
|
||||
@@ -1830,6 +1825,11 @@
|
||||
仓位ID
|
||||
</summary>
|
||||
</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">
|
||||
<summary>
|
||||
入库数量
|
||||
|
||||
@@ -530,6 +530,11 @@
|
||||
任务单ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Entitys.InStockDetails.BoxId">
|
||||
<summary>
|
||||
箱ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Entitys.InStockDetails.SourceBillNo">
|
||||
<summary>
|
||||
来源单号
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.InStock
|
||||
@@ -10,10 +11,6 @@ namespace WMS.Web.Core.Dto.InStock
|
||||
public class PurchaseShelfRequest
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 箱IDS
|
||||
/// </summary>
|
||||
public List<int> BoxIds { get; set; } = new List<int>();
|
||||
|
||||
/// <summary>
|
||||
/// 明细
|
||||
|
||||
@@ -16,6 +16,12 @@ namespace WMS.Web.Core.Dto.InStock
|
||||
[Required(ErrorMessage = "任务单ID不能为空")]
|
||||
public int TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱ID
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "箱ID不能为空")]
|
||||
public int BoxId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来源单号
|
||||
///</summary>
|
||||
@@ -33,12 +39,6 @@ namespace WMS.Web.Core.Dto.InStock
|
||||
[Required(ErrorMessage = "组织不能为空")]
|
||||
public int OrgId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料Id
|
||||
///</summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public int MaterialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库编码
|
||||
///</summary>
|
||||
@@ -50,6 +50,12 @@ namespace WMS.Web.Core.Dto.InStock
|
||||
[Required(ErrorMessage = " 仓位不能为空")]
|
||||
public int SubStockId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物料Id
|
||||
///</summary>
|
||||
[Required(ErrorMessage = "物料不能为空")]
|
||||
public int MaterialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 入库数量
|
||||
///</summary>
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace WMS.Web.Core.Dto.Inventory
|
||||
/// <summary>
|
||||
/// 明细
|
||||
/// </summary>
|
||||
public List<BoxInventoryBackDetailsGenerateDto> Details { get; set; }
|
||||
public List<BoxInventoryBackDetailsGenerateDto> Details { get; set; } = new List<BoxInventoryBackDetailsGenerateDto>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -25,6 +25,11 @@ namespace WMS.Web.Domain.Entitys
|
||||
/// </summary>
|
||||
public int TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱ID
|
||||
/// </summary>
|
||||
public int BoxId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 来源单号
|
||||
/// </summary>
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.BackRecord;
|
||||
using WMS.Web.Core.Dto.Inventory;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
@@ -25,13 +27,16 @@ namespace WMS.Web.Domain.Services
|
||||
public readonly IBasicsRepositories _basicsRepositories;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
private readonly IBackRecordRepositories _backRecordRepositories;
|
||||
private readonly IBoxInventoryService _boxInventoryService;
|
||||
public BackRecordService(IMapper mapper, ILoginService loginService,
|
||||
IBasicsRepositories basicsRepositories,
|
||||
IBoxInventoryService boxInventoryService,
|
||||
ISerialNumberService serialNumberService,
|
||||
IBackRecordRepositories backRecordRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
_boxInventoryService = boxInventoryService;
|
||||
_basicsRepositories = basicsRepositories;
|
||||
_backRecordRepositories = backRecordRepositories;
|
||||
}
|
||||
@@ -66,6 +71,32 @@ namespace WMS.Web.Domain.Services
|
||||
var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction);
|
||||
if (!serialNumber_result.IsSuccess)
|
||||
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();
|
||||
}
|
||||
else
|
||||
|
||||
@@ -10,6 +10,7 @@ using WMS.Web.Core.Dto.ChangeBoxRecord;
|
||||
using WMS.Web.Core.Dto.Erp;
|
||||
using WMS.Web.Core.Dto.InStock;
|
||||
using WMS.Web.Core.Dto.InStockTask;
|
||||
using WMS.Web.Core.Dto.Inventory;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
@@ -32,17 +33,19 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
private readonly IChangeMoveBoxService _changeMoveBoxService;
|
||||
private readonly IBoxRepositories _boxRepositories;
|
||||
private readonly IBoxInventoryService _boxInventoryService;
|
||||
private readonly IBasicsRepositories _basicsRepositories;
|
||||
private readonly IInStockRepositories _inStockRepositories;
|
||||
private readonly IInStockTaskRepositories _inStockTaskRepositories;
|
||||
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,
|
||||
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_erpService = erpService;
|
||||
_loginService = loginService;
|
||||
_boxInventoryService = boxInventoryService;
|
||||
_serialNumberService = serialNumberService;
|
||||
_boxRepositories = boxRepositories;
|
||||
_changeMoveBoxService = changeMoveBoxService;
|
||||
@@ -202,6 +205,33 @@ namespace WMS.Web.Domain.Services
|
||||
var serialNumber_result= await _serialNumberService.InStock(entity, loginInfo, isTransaction);
|
||||
if (!serialNumber_result.IsSuccess)
|
||||
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();
|
||||
}
|
||||
else
|
||||
@@ -340,7 +370,10 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
var isSuccess = await _inStockTaskRepositories.UpdateRange(entitys, isTransaction);
|
||||
if (isSuccess)
|
||||
{
|
||||
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
else
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user