using WIDESEA_Common.StockEnum;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
namespace WIDESEA_StockService
{
///
/// 库存信息服务实现类
///
public partial class StockInfoService : ServiceBase>, IStockInfoService
{
///
/// 获取库存信息仓储接口
///
public IRepository Repository => BaseDal;
///
/// 构造函数
///
/// 基础数据访问对象
public StockInfoService(IRepository baseDal) : base(baseDal)
{
}
///
/// 获取库存信息列表(出库日期小于当前时间且库存状态为入库完成的记录)
///
/// 库存信息列表
public async Task> GetStockInfoAsync()
{
return await BaseDal.QueryDataAsync(x =>
x.OutboundDate < DateTime.Now &&
x.StockStatus == StockStatusEmun.入库完成.GetHashCode());
}
///
/// 获取库存信息列表(出库日期小于当前时间且库存状态为入库完成的记录,且仓库ID匹配)
///
/// 仓库ID
/// 库存信息列表
public async Task> GetStockInfoAsync(int warehouseId)
{
return await BaseDal.QueryDataAsync(x =>
x.OutboundDate < DateTime.Now &&
x.StockStatus == StockStatusEmun.入库完成.GetHashCode() &&
x.WarehouseId == warehouseId);
}
///
/// 获取库存信息(根据托盘码查询)
///
/// 托盘编码
/// 库存信息
public async Task GetStockInfoAsync(string palletCode)
{
return await BaseDal.QueryDataNavFirstAsync(x => x.PalletCode == palletCode);
}
///
/// 更新库存数据
///
/// 库存信息对象
/// 更新是否成功
public async Task UpdateStockAsync(Dt_StockInfo stockInfo)
{
return await BaseDal.UpdateDataAsync(stockInfo);
}
///
/// 检索指定托盘在给定位置的库存详细信息
///
/// 托盘编码
/// 货位编码
/// 库存信息
public async Task GetStockInfoAsync(string palletCode, string locationCode)
{
return await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode && x.LocationCode == locationCode);
}
}
}