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