修改盘点报物料库存不足的问题。
This commit is contained in:
Binary file not shown.
@@ -3983,7 +3983,7 @@
|
||||
即时库存-服务接口
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.IInventoryDetailsService.GenerateInventoryDetails(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto},System.Boolean)">
|
||||
<member name="M:WMS.Web.Domain.IService.IInventoryDetailsService.GenerateInventoryDetails(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto},System.Boolean,System.String)">
|
||||
<summary>
|
||||
生成:即时库存明细
|
||||
</summary>
|
||||
@@ -5794,7 +5794,7 @@
|
||||
即时库存-服务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.InventoryDetailsService.GenerateInventoryDetails(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto},System.Boolean)">
|
||||
<member name="M:WMS.Web.Domain.Services.InventoryDetailsService.GenerateInventoryDetails(System.Collections.Generic.List{WMS.Web.Core.Dto.Inventory.InventoryDetailsGenerateDto},System.Boolean,System.String)">
|
||||
<summary>
|
||||
生成:即时库存明细
|
||||
</summary>
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace WMS.Web.Domain.IService
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> GenerateInventoryDetails(List<InventoryDetailsGenerateDto> dtos, bool isTransaction);
|
||||
Task<Result> GenerateInventoryDetails(List<InventoryDetailsGenerateDto> dtos, bool isTransaction,string isPandian);
|
||||
|
||||
/// <summary>
|
||||
/// 获取即时库存明细汇总
|
||||
|
||||
@@ -888,7 +888,7 @@ namespace WMS.Web.Domain.Services
|
||||
invDetGenDtos.AddRange(invDetGenDtos_out);
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction,"0");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1035,7 +1035,7 @@ namespace WMS.Web.Domain.Services
|
||||
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1305,7 +1305,7 @@ namespace WMS.Web.Domain.Services
|
||||
invDetGenDtos.AddRange(invDetGenDtos_out);
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1514,7 +1514,7 @@ namespace WMS.Web.Domain.Services
|
||||
invDetGenDtos.AddRange(invDetGenDtos_out);
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1565,7 +1565,8 @@ namespace WMS.Web.Domain.Services
|
||||
inventoryDet.OrgCode = item.OrgCode;
|
||||
inventoryDet.StockCode = item.StockCode;
|
||||
inventoryDet.SubStockCode = item.SubStockCode;
|
||||
inventoryDet.Qty = current_sers_info.Count;
|
||||
//inventoryDet.Qty = current_sers_info.Count;
|
||||
inventoryDet.Qty = current_sers_infoCount.Count;
|
||||
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
|
||||
//3.2.2即时库存:修改的集合
|
||||
InventoryDetailsGenerateDto1.Add(inventoryDet);
|
||||
@@ -1612,7 +1613,7 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
if (InventoryDetailsGenerateDto1.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto1, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto1, isTransaction, "1");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1811,7 +1812,7 @@ namespace WMS.Web.Domain.Services
|
||||
_logger.LogInformation($"入库对应即时库存:{JsonConvert.SerializeObject(invDetGenDtos)} 操作时间:{DateTime.Now.ToString()}");
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0");
|
||||
if (!InventoryDetailsGenerate_result.IsSuccess)
|
||||
return InventoryDetailsGenerate_result;
|
||||
}
|
||||
@@ -1964,7 +1965,7 @@ namespace WMS.Web.Domain.Services
|
||||
}).ToList();
|
||||
if (invDetGenDtos.Count != 0)
|
||||
{
|
||||
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction);
|
||||
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0");
|
||||
if (!inventoryDetails_result.IsSuccess)
|
||||
return inventoryDetails_result;
|
||||
}
|
||||
@@ -2099,7 +2100,7 @@ namespace WMS.Web.Domain.Services
|
||||
//5.即时库存:变更处理
|
||||
if (InventoryDetailsGenerateDto.Count != 0)
|
||||
{
|
||||
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction);
|
||||
var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction, "0");
|
||||
if (!inventoryDetails_result.IsSuccess)
|
||||
return inventoryDetails_result;
|
||||
}
|
||||
|
||||
@@ -96,17 +96,18 @@ namespace WMS.Web.Domain.Services
|
||||
var boxs = await _boxInventoryRepositories.GetList(srcIds);
|
||||
var destIds_boxs = await _boxInventoryRepositories.GetList(destIds);
|
||||
|
||||
var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList();
|
||||
var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).ToList();
|
||||
var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).Distinct().ToList();
|
||||
var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).Distinct().ToList();
|
||||
serialNumbers.AddRange(TwoserialNumbers);
|
||||
serialNumbers.Sort();
|
||||
|
||||
var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
|
||||
foreach (var d in dto)
|
||||
{
|
||||
if (d.SrcBoxId == 0)
|
||||
{
|
||||
//没有原箱的情况下需要验证序列号是否有箱子绑定
|
||||
var s = d.Details.SelectMany(s => s.SerialNumbers).ToList();
|
||||
var s = d.Details.SelectMany(s => s.SerialNumbers).Distinct().ToList();
|
||||
var sCount = serialNumberList.Where(w => s.Contains(w.SerialNumber) && w.BoxId != 0).Count();
|
||||
if (sCount > 0)
|
||||
return Result.ReFailure(ResultCodes.SerialNumbersBoxError);
|
||||
@@ -119,7 +120,7 @@ namespace WMS.Web.Domain.Services
|
||||
else
|
||||
{
|
||||
//有原箱的情况下验证序列号和原箱是否一致(排除没有绑定箱的老ops条码数据)
|
||||
var s = d.Details.SelectMany(s => s.SerialNumbers).ToList();
|
||||
var s = d.Details.SelectMany(s => s.SerialNumbers).Distinct().ToList();
|
||||
var boxCount = serialNumberList.Where(w => !(w.BoxId == 0 && w.Creator == "ops")).Where(w => s.Contains(w.SerialNumber)).GroupBy(s => s.BoxId).Select(s => s.Key).ToList();
|
||||
if (boxCount.Count() > 1 || (boxCount.Count() == 1 && boxCount[0] != d.SrcBoxId))
|
||||
return Result.ReFailure(ResultCodes.SerialNumbersSrcBoxError);
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> GenerateInventoryDetails(List<InventoryDetailsGenerateDto> dtos,bool isTransaction)
|
||||
public async Task<Result> GenerateInventoryDetails(List<InventoryDetailsGenerateDto> dtos,bool isTransaction,string isPanDian)
|
||||
{
|
||||
//找到物料对应的即时库存明细
|
||||
var orgCodes = dtos.Select(x => x.OrgCode).ToList();
|
||||
@@ -86,10 +86,28 @@ namespace WMS.Web.Domain.Services
|
||||
else
|
||||
{
|
||||
//出库的时候,判断是否有库存,没有就返回错误
|
||||
if (entity.Qty<dto.Qty)
|
||||
return Result.ReFailure(ResultCodes.InventoryDetailsNoInventoryError);
|
||||
//减库存
|
||||
entity.Qty = entity.Qty - dto.Qty;
|
||||
if (isPanDian == "1")
|
||||
{
|
||||
if (entity.Qty < dto.Qty)
|
||||
{
|
||||
entity.Qty = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// return Result.ReFailure(ResultCodes.InventoryDetailsNoInventoryError);
|
||||
//减库存
|
||||
entity.Qty = entity.Qty - dto.Qty;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (entity.Qty < dto.Qty)
|
||||
return Result.ReFailure(ResultCodes.InventoryDetailsNoInventoryError);
|
||||
//减库存
|
||||
entity.Qty = entity.Qty - dto.Qty;
|
||||
}
|
||||
}
|
||||
update_entitys.Add(entity);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user