58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 任务单的箱收货记录服务
|
|
/// </summary>
|
|
public class InStockTaskBoxService: IInStockTaskBoxService
|
|
{
|
|
private readonly IInStockTaskBoxRepositories _inStockTaskBoxRepositories;
|
|
private readonly IBoxInventoryRepositories _boxInventoryRepositories;
|
|
private readonly ILogger<InStockTaskBoxService> _logger;
|
|
public InStockTaskBoxService(IInStockTaskBoxRepositories inStockTaskBoxRepositories, IBoxInventoryRepositories boxInventoryRepositories, ILogger<InStockTaskBoxService> logger)
|
|
{
|
|
_logger = logger;
|
|
_inStockTaskBoxRepositories = inStockTaskBoxRepositories;
|
|
_boxInventoryRepositories = boxInventoryRepositories;
|
|
}
|
|
|
|
/// <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 _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();
|
|
}
|
|
}
|
|
}
|