优化接口

This commit is contained in:
tongfei
2024-01-03 14:55:44 +08:00
parent e991071d67
commit 52dc793d50
4 changed files with 104 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Internal.Results;
namespace WMS.Web.Domain.IService
{
/// <summary>
/// 任务单的箱收货记录服务
/// </summary>
public interface IInStockTaskBoxService
{
/// <summary>
/// 解绑-收货的箱子
/// </summary>
/// <param name="boxIds"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
Task<Result> UnBind(List<int> boxIds, bool isTransaction = true);
}
}

View File

@@ -0,0 +1,54 @@
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;
public InStockTaskBoxService(IInStockTaskBoxRepositories inStockTaskBoxRepositories, IBoxInventoryRepositories boxInventoryRepositories)
{
_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();
}
}
}