箱库存变更方法
This commit is contained in:
@@ -59,7 +59,7 @@ namespace WMS.Web.Api.Controllers
|
|||||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
return await _backRecordService.BackShelf(dto, loginInfo);
|
return await _backRecordService.BackShelf(dto, BackRecordType.OutstockOn, loginInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -74,7 +74,7 @@ namespace WMS.Web.Api.Controllers
|
|||||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
return await _backRecordService.BackShelf(dto, loginInfo);
|
return await _backRecordService.BackShelf(dto, BackRecordType.InstockOff, loginInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,6 +205,11 @@
|
|||||||
数量
|
数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.StockCode">
|
||||||
|
<summary>
|
||||||
|
仓库code
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SubStockId">
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SubStockId">
|
||||||
<summary>
|
<summary>
|
||||||
仓位ID
|
仓位ID
|
||||||
@@ -220,11 +225,6 @@
|
|||||||
保存出入库回退上下架:请求对象
|
保存出入库回退上下架:请求对象
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest.BackRecordType">
|
|
||||||
<summary>
|
|
||||||
类型:1为入库回退下架,2为出库回退上架
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest.Details">
|
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest.Details">
|
||||||
<summary>
|
<summary>
|
||||||
明细
|
明细
|
||||||
@@ -1945,6 +1945,56 @@
|
|||||||
保存入库单-请求对象
|
保存入库单-请求对象
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto">
|
||||||
|
<summary>
|
||||||
|
出入库回退上下架-箱库存处理对象
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.BackRecordType">
|
||||||
|
<summary>
|
||||||
|
类型:1为入库回退下架,2为出库回退上架
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.BoxId">
|
||||||
|
<summary>
|
||||||
|
箱ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.StockCode">
|
||||||
|
<summary>
|
||||||
|
仓库编码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.SubStockId">
|
||||||
|
<summary>
|
||||||
|
仓位ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.Details">
|
||||||
|
<summary>
|
||||||
|
明细
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryBackDetailsGenerateDto">
|
||||||
|
<summary>
|
||||||
|
出入库回退上下架明细-箱库存处理对象
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackDetailsGenerateDto.MaterialId">
|
||||||
|
<summary>
|
||||||
|
物料ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackDetailsGenerateDto.Qty">
|
||||||
|
<summary>
|
||||||
|
数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackDetailsGenerateDto.SerialNumbers">
|
||||||
|
<summary>
|
||||||
|
序列号集
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryChangeGenerateDto">
|
<member name="T:WMS.Web.Core.Dto.Inventory.BoxInventoryChangeGenerateDto">
|
||||||
<summary>
|
<summary>
|
||||||
改箱-使用
|
改箱-使用
|
||||||
|
|||||||
@@ -80,6 +80,11 @@
|
|||||||
数量
|
数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.BackRecordDetails.StockCode">
|
||||||
|
<summary>
|
||||||
|
仓库code
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.BackRecordDetails.SubStockId">
|
<member name="P:WMS.Web.Domain.Entitys.BackRecordDetails.SubStockId">
|
||||||
<summary>
|
<summary>
|
||||||
仓位ID
|
仓位ID
|
||||||
@@ -1836,11 +1841,12 @@
|
|||||||
出入库回退上下架:服务接口
|
出入库回退上下架:服务接口
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.IService.IBackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Core.Dto.Login.LoginInDto)">
|
<member name="M:WMS.Web.Domain.IService.IBackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
回退上下架
|
回退上下架
|
||||||
</summary>
|
</summary>
|
||||||
<param name="dto"></param>
|
<param name="dto"></param>
|
||||||
|
<param name="type"></param>
|
||||||
<param name="loginInfo"></param>
|
<param name="loginInfo"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
@@ -2841,11 +2847,12 @@
|
|||||||
出入库回退上下架:服务接口
|
出入库回退上下架:服务接口
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.BackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Core.Dto.Login.LoginInDto)">
|
<member name="M:WMS.Web.Domain.Services.BackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
回退上下架
|
回退上下架
|
||||||
</summary>
|
</summary>
|
||||||
<param name="dto"></param>
|
<param name="dto"></param>
|
||||||
|
<param name="type"></param>
|
||||||
<param name="loginInfo"></param>
|
<param name="loginInfo"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
@@ -3084,6 +3091,14 @@
|
|||||||
<param name="isTransaction"></param>
|
<param name="isTransaction"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.Services.InventoryService.GenerateBackBox(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto},System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
入库回退上下架-箱库存的变更
|
||||||
|
</summary>
|
||||||
|
<param name="dtoDatas"></param>
|
||||||
|
<param name="isTransaction"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Services.OutStockService">
|
<member name="T:WMS.Web.Domain.Services.OutStockService">
|
||||||
<summary>
|
<summary>
|
||||||
出库服务
|
出库服务
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ namespace WMS.Web.Core.Dto.BackRecord
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "数量不能为空")]
|
[Required(ErrorMessage = "数量不能为空")]
|
||||||
public decimal Qty { get; set; }
|
public decimal Qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 仓库code
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "仓库不能为空")]
|
||||||
|
public string StockCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 仓位ID
|
/// 仓位ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -10,12 +10,6 @@ namespace WMS.Web.Core.Dto.BackRecord
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class SaveBackRecordRequest
|
public class SaveBackRecordRequest
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 类型:1为入库回退下架,2为出库回退上架
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "回退类型不能为空")]
|
|
||||||
public int BackRecordType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 明细
|
/// 明细
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WMS.Web.Core.Dto.Inventory
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库回退上下架-箱库存处理对象
|
||||||
|
/// </summary>
|
||||||
|
public class BoxInventoryBackGenerateDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 类型:1为入库回退下架,2为出库回退上架
|
||||||
|
/// </summary>
|
||||||
|
public int BackRecordType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 箱ID
|
||||||
|
/// </summary>
|
||||||
|
public int BoxId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 仓库编码
|
||||||
|
/// </summary>
|
||||||
|
public string StockCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 仓位ID
|
||||||
|
/// </summary>
|
||||||
|
public int SubStockId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 明细
|
||||||
|
/// </summary>
|
||||||
|
public List<BoxInventoryBackDetailsGenerateDto> Details { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 出入库回退上下架明细-箱库存处理对象
|
||||||
|
/// </summary>
|
||||||
|
public class BoxInventoryBackDetailsGenerateDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 物料ID
|
||||||
|
/// </summary>
|
||||||
|
public int MaterialId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 数量
|
||||||
|
/// </summary>
|
||||||
|
public decimal Qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 序列号集
|
||||||
|
/// </summary>
|
||||||
|
public List<string> SerialNumbers { get; set; } = new List<string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,21 +19,6 @@ namespace WMS.Web.Core.Dto.Inventory
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int TargetBoxId { get; set; }
|
public int TargetBoxId { get; set; }
|
||||||
|
|
||||||
///// <summary>
|
|
||||||
///// 仓库编码:目标仓库
|
|
||||||
///// </summary>
|
|
||||||
//public string StockCode { get; set; }
|
|
||||||
|
|
||||||
///// <summary>
|
|
||||||
///// 仓位:目标仓位
|
|
||||||
///// </summary>
|
|
||||||
//public int SubStockId { get; set; }
|
|
||||||
|
|
||||||
///// <summary>
|
|
||||||
///// 出入库类型:有个枚举的
|
|
||||||
///// </summary>
|
|
||||||
//public int InventoryInOutType { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 明细
|
/// 明细
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public decimal Qty { get; set; }
|
public decimal Qty { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 仓库code
|
||||||
|
/// </summary>
|
||||||
|
public string StockCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 仓位ID
|
/// 仓位ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int SubStockId { get; set; }
|
public int SubStockId { get; set; }
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
|||||||
using WMS.Web.Core.Dto.BackRecord;
|
using WMS.Web.Core.Dto.BackRecord;
|
||||||
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.Values;
|
||||||
|
|
||||||
namespace WMS.Web.Domain.IService
|
namespace WMS.Web.Domain.IService
|
||||||
{
|
{
|
||||||
@@ -17,8 +18,9 @@ namespace WMS.Web.Domain.IService
|
|||||||
/// 回退上下架
|
/// 回退上下架
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
|
/// <param name="type"></param>
|
||||||
/// <param name="loginInfo"></param>
|
/// <param name="loginInfo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<Result> BackShelf(SaveBackRecordRequest dto, LoginInDto loginInfo);
|
Task<Result> BackShelf(SaveBackRecordRequest dto, BackRecordType type, LoginInDto loginInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,11 @@ namespace WMS.Web.Domain.Mappers
|
|||||||
|
|
||||||
//移箱映射
|
//移箱映射
|
||||||
CreateMap<BoxInventoryMoveGenerateDto, BoxInventory>();
|
CreateMap<BoxInventoryMoveGenerateDto, BoxInventory>();
|
||||||
CreateMap<BoxDetails, BoxInventoryDetails>() ;
|
CreateMap<BoxDetails, BoxInventoryDetails>() ;
|
||||||
|
|
||||||
|
//出入库回退上下架映射
|
||||||
|
CreateMap<BoxInventoryBackGenerateDto, BoxInventory>();
|
||||||
|
CreateMap<BoxInventoryBackDetailsGenerateDto, BoxInventoryDetails>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,16 +40,17 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// 回退上下架
|
/// 回退上下架
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
|
/// <param name="type"></param>
|
||||||
/// <param name="loginInfo"></param>
|
/// <param name="loginInfo"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> BackShelf(SaveBackRecordRequest dto, LoginInDto loginInfo)
|
public async Task<Result> BackShelf(SaveBackRecordRequest dto, BackRecordType type, LoginInDto loginInfo)
|
||||||
{
|
{
|
||||||
IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
|
IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
|
||||||
bool isRollback = false;
|
bool isRollback = false;
|
||||||
bool isTransaction = false;
|
bool isTransaction = false;
|
||||||
|
|
||||||
var entity = new BackRecord();
|
var entity = new BackRecord();
|
||||||
entity.Type = (BackRecordType)dto.BackRecordType;
|
entity.Type = type;
|
||||||
entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details);
|
entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details);
|
||||||
entity.Create(loginInfo.UserInfo.StaffId);
|
entity.Create(loginInfo.UserInfo.StaffId);
|
||||||
entity = await _backRecordRepositories.Add(entity, isTransaction);
|
entity = await _backRecordRepositories.Add(entity, isTransaction);
|
||||||
|
|||||||
@@ -231,5 +231,100 @@ namespace WMS.Web.Domain.Services
|
|||||||
}
|
}
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库回退上下架-箱库存的变更
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dtoDatas"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Result> GenerateBackBox(List<BoxInventoryBackGenerateDto> dtoDatas, bool isTransaction)
|
||||||
|
{
|
||||||
|
//1.判断来源数据是否存在
|
||||||
|
if (dtoDatas != null || dtoDatas.Count == 0)
|
||||||
|
return Result.ReFailure(ResultCodes.InventoryNoSourceError);
|
||||||
|
|
||||||
|
var update_entitys = new List<BoxInventory>();
|
||||||
|
var add_entitys = new List<BoxInventory>();
|
||||||
|
|
||||||
|
//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)
|
||||||
|
{
|
||||||
|
//上架
|
||||||
|
if (dto.BackRecordType == (int)BackRecordType.OutstockOn)
|
||||||
|
{
|
||||||
|
//3.1上架的时候:箱一定是不存在于箱库存当中的,有则返回提示“已有箱库存,不需要再扫上架”
|
||||||
|
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<BoxInventory>(dto);
|
||||||
|
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(box.Details);
|
||||||
|
|
||||||
|
add_entitys.Add(addEntity);
|
||||||
|
|
||||||
|
|
||||||
|
}//下架
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//3.1下架的时候:箱一定是存在于箱库存当中的,没有则返回提示“箱不存在于库存,请扫其它箱”
|
||||||
|
var boxInventory = boxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault();
|
||||||
|
if (boxInventory==null)
|
||||||
|
return Result.ReFailure(ResultCodes.BoxInventoryNoDataError);
|
||||||
|
//3.2创建更新对象
|
||||||
|
var update_entity = new BoxInventory();
|
||||||
|
update_entity.Details = new List<BoxInventoryDetails>();
|
||||||
|
|
||||||
|
//3.3遍历dto明细
|
||||||
|
foreach (var dtoItem in dto.Details)
|
||||||
|
{
|
||||||
|
//找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题
|
||||||
|
var updateDetail = boxInventory.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
|
||||||
|
if (updateDetail == null)
|
||||||
|
return Result.ReFailure(ResultCodes.BoxInventoryNoDataError);
|
||||||
|
//箱物料的库存数量不足;小于要拿出来的数量
|
||||||
|
if (updateDetail.Qty < dtoItem.Qty)
|
||||||
|
return Result.ReFailure(ResultCodes.BoxInventoryNoInventoryError);
|
||||||
|
|
||||||
|
var update_entity_det = new BoxInventoryDetails();
|
||||||
|
update_entity_det.SerialNumbers = new List<string>();
|
||||||
|
update_entity_det.Qty = updateDetail.Qty - dtoItem.Qty;
|
||||||
|
|
||||||
|
//先把现有的序列号复制过来
|
||||||
|
update_entity_det.SerialNumbers = updateDetail.SerialNumbers;
|
||||||
|
//再移除要改箱的序列号;最后就是原箱库存的新序列号
|
||||||
|
update_entity_det.SerialNumbers.RemoveAll(x => dtoItem.SerialNumbers.Contains(x));
|
||||||
|
|
||||||
|
update_entity.Details.Add(update_entity_det);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var isSuccess = true;
|
||||||
|
//4.数据库更新操作:更新和添加
|
||||||
|
if (add_entitys.Count != 0)
|
||||||
|
{
|
||||||
|
isSuccess = await _boxInventoryRepositories.AddRange(add_entitys, isTransaction);
|
||||||
|
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
}
|
||||||
|
if (update_entitys.Count != 0)
|
||||||
|
{
|
||||||
|
isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction);
|
||||||
|
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
}
|
||||||
|
return Result.ReSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user