using AutoMapper;
|
using MailKit.Search;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
|
using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.StockEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_DTO.Stock;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_IRecordRepository;
|
using WIDESEA_IRecordService;
|
using WIDESEA_IStockRepository;
|
using WIDESEA_IStockService;
|
using WIDESEA_Model.Models;
|
using WIDESEA_StockRepository;
|
|
namespace WIDESEA_StockService
|
{
|
public partial class StockInfoService : ServiceBase<Dt_StockInfo, IStockInfoRepository>, IStockInfoService
|
{
|
private readonly IMapper _mapper;
|
private readonly IBasicRepository _basicRepository;
|
|
public IStockInfoRepository Repository => BaseDal;
|
|
public StockInfoService(IStockInfoRepository BaseDal, IMapper mapper, IBasicRepository basicRepository) : base(BaseDal)
|
{
|
_mapper = mapper;
|
_basicRepository = basicRepository;
|
}
|
|
|
|
|
public WebResponseContent StockQueryData(SaveModel saveModel)
|
{
|
try
|
{
|
var barcode = saveModel.MainData["barcode"].ToString();
|
var warehouseId = saveModel.MainData["warehouseId"].ObjToInt();
|
Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == barcode && x.WarehouseId == warehouseId).First();
|
if (stockInfo == null) throw new Exception("未找到托盘信息");
|
return WebResponseContent.Instance.OK(data: stockInfo);
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
}
|
|
public List<Dt_StockInfo> GetUseableStocks(string materielCode, string batchNo, int warehoseId)
|
{
|
List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehoseId);
|
|
return BaseDal.GetStockInfos(materielCode, batchNo, locationCodes);
|
}
|
|
public List<Dt_StockInfo> GetUseableStocks(string materielCode, string batchNo, string palletcode, int warehoseId)
|
{
|
Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletcode && x.WarehouseId == warehoseId).First();
|
|
List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(stockInfo.LocationCode);
|
|
return BaseDal.GetStockInfos(materielCode, batchNo, locationCodes);
|
}
|
|
}
|
}
|