diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index c6848a43..d09c5178 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Domain/Entitys/InStockDetails.cs b/src/WMS.Web.Domain/Entitys/InStockDetails.cs index c1fca920..6a62a6d6 100644 --- a/src/WMS.Web.Domain/Entitys/InStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/InStockDetails.cs @@ -42,7 +42,10 @@ namespace WMS.Web.Domain.Entitys /// 箱ID /// public int BoxId { get; set; } - + /// + /// 是否解绑 + /// + public bool? UnBind { get; set; } = false; /// /// 对应金蝶的明细ID /// diff --git a/src/WMS.Web.Domain/IService/IInStockService.cs b/src/WMS.Web.Domain/IService/IInStockService.cs index 911d6ed0..d19350ef 100644 --- a/src/WMS.Web.Domain/IService/IInStockService.cs +++ b/src/WMS.Web.Domain/IService/IInStockService.cs @@ -73,5 +73,12 @@ namespace WMS.Web.Domain.IService /// /// Task> Contrast(ContrastMaterialsRequest dto); + /// + /// 解绑-收货的箱子 + /// + /// + /// + /// + Task UnBind(List boxIds, bool isTransaction = true); } } diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs index 5c8a1093..bc297b81 100644 --- a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs @@ -129,5 +129,11 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task> GetInstockBoxIds(List boxIds); + /// + /// 集合:根据boxIDS + /// + /// + /// + Task> GetListBy(List boxIds); } } diff --git a/src/WMS.Web.Domain/Services/BackRecordService.cs b/src/WMS.Web.Domain/Services/BackRecordService.cs index 48da40b3..d068251f 100644 --- a/src/WMS.Web.Domain/Services/BackRecordService.cs +++ b/src/WMS.Web.Domain/Services/BackRecordService.cs @@ -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 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; } /// @@ -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; } //提交事务 diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 08e6a2e5..de3b4c12 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -1122,6 +1122,28 @@ namespace WMS.Web.Domain.Services } } + /// + /// 解绑箱子 + /// + /// + /// + /// + public async Task UnBind(List boxIds, bool isTransaction = true) + { + var delete_ids = new List(); + 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(); + } } } diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index 482036b4..1bfad3c8 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -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> GetListBy(List boxIds) + { + var entitys = await _context.InStockDetails.AsNoTracking() + .Where(x => boxIds.Contains(x.BoxId) && (x.UnBind == null || x.UnBind == false)) + .ToListAsync(); + return entitys; + } } }