入库回退后反写入库单
This commit is contained in:
Binary file not shown.
@@ -42,7 +42,10 @@ namespace WMS.Web.Domain.Entitys
|
||||
/// 箱ID
|
||||
/// </summary>
|
||||
public int BoxId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否解绑
|
||||
/// </summary>
|
||||
public bool? UnBind { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 对应金蝶的明细ID
|
||||
/// </summary>
|
||||
|
||||
@@ -73,5 +73,12 @@ namespace WMS.Web.Domain.IService
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result<ContrastMaterialsResponse>> Contrast(ContrastMaterialsRequest dto);
|
||||
/// <summary>
|
||||
/// 解绑-收货的箱子
|
||||
/// </summary>
|
||||
/// <param name="boxIds"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> UnBind(List<int> boxIds, bool isTransaction = true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,5 +129,11 @@ namespace WMS.Web.Domain.Infrastructure
|
||||
/// <param name="boxIds"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<int>> GetInstockBoxIds(List<int> boxIds);
|
||||
/// <summary>
|
||||
/// 集合:根据boxIDS
|
||||
/// </summary>
|
||||
/// <param name="boxIds"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<InStockDetails>> GetListBy(List<int> boxIds);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly IChangeMoveBoxService _changeMoveBoxService;
|
||||
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
|
||||
private readonly IInStockTaskBoxService _inStockTaskBoxService;
|
||||
private readonly IInStockService _inStockService;
|
||||
public BackRecordService(IMapper mapper, ILoginService loginService,
|
||||
ILogger<BackRecordService> logger,
|
||||
IBasicsRepositories basicsRepositories,
|
||||
@@ -43,7 +44,8 @@ namespace WMS.Web.Domain.Services
|
||||
IChangeMoveBoxService changeMoveBoxService,
|
||||
ISerialNumbersRepositories serialNumbersRepositories,
|
||||
IBackRecordRepositories backRecordRepositories,
|
||||
IInStockTaskBoxService inStockTaskBoxService)
|
||||
IInStockTaskBoxService inStockTaskBoxService,
|
||||
IInStockService inStockService)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_logger = logger;
|
||||
@@ -55,6 +57,7 @@ namespace WMS.Web.Domain.Services
|
||||
_basicsRepositories = basicsRepositories;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
_backRecordRepositories = backRecordRepositories;
|
||||
_inStockService = inStockService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -123,6 +126,10 @@ namespace WMS.Web.Domain.Services
|
||||
return unBindResult;
|
||||
|
||||
_logger.LogInformation("入库回退下架-结果:" + unBindResult.IsSuccess);
|
||||
//入库单解绑
|
||||
unBindResult = await _inStockService.UnBind(boxIds, isTransaction);
|
||||
if (!unBindResult.IsSuccess)
|
||||
return unBindResult;
|
||||
}
|
||||
|
||||
//提交事务
|
||||
|
||||
@@ -1122,6 +1122,28 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 解绑箱子
|
||||
/// </summary>
|
||||
/// <param name="boxIds"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> UnBind(List<int> boxIds, bool isTransaction = true)
|
||||
{
|
||||
var delete_ids = new List<int>();
|
||||
var t_boxIds = boxIds.Distinct().ToList();
|
||||
var list = await _inStockRepositories.GetListBy(t_boxIds);
|
||||
|
||||
//解绑
|
||||
list.ForEach(x => { x.UnBind = true; });
|
||||
|
||||
if (list.Count != 0)
|
||||
{
|
||||
var isSuccess = await _inStockRepositories.UpdateRange(list, isTransaction);
|
||||
if (!isSuccess)
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
}
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,5 +501,13 @@ namespace WMS.Web.Repositories
|
||||
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
||||
.Where(x => boxIds.Contains(x.detail.BoxId) && x.order.Type != InstockType.Purchase).Select(s => s.detail.BoxId).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<List<InStockDetails>> GetListBy(List<int> boxIds)
|
||||
{
|
||||
var entitys = await _context.InStockDetails.AsNoTracking()
|
||||
.Where(x => boxIds.Contains(x.BoxId) && (x.UnBind == null || x.UnBind == false))
|
||||
.ToListAsync();
|
||||
return entitys;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user