using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.Values; namespace WMS.Web.Domain.Services { /// /// 任务单的箱收货记录服务 /// public class InStockTaskBoxService: IInStockTaskBoxService { private readonly IInStockTaskBoxRepositories _inStockTaskBoxRepositories; private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly ILogger _logger; public InStockTaskBoxService(IInStockTaskBoxRepositories inStockTaskBoxRepositories, IBoxInventoryRepositories boxInventoryRepositories, ILogger logger) { _logger = logger; _inStockTaskBoxRepositories = inStockTaskBoxRepositories; _boxInventoryRepositories = boxInventoryRepositories; } /// /// 解绑-收货的箱子 /// /// /// /// public async Task UnBind(List boxIds, bool isTransaction = true) { var delete_ids = new List(); var t_boxIds = boxIds.Distinct().ToList(); var list= await _inStockTaskBoxRepositories.GetListBy(t_boxIds); var boxInvetList = await _boxInventoryRepositories.GetList(t_boxIds); foreach (var item in list) { var isHave= boxInvetList.Where(x => x.BoxId == item.BoxId).Any(); if (!isHave) delete_ids.Add(item.Id); } if (delete_ids.Count != 0) { var isSuccess= await _inStockTaskBoxRepositories.DeleteRange(delete_ids, isTransaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); } return Result.ReSuccess(); } } }