using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.LocationEnum;
|
using WIDESEA_Common.StockEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseRepository;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_IStockService;
|
using WIDESEA_Model.Models;
|
using WIDESEA_Model.Models.Stock;
|
using WIDESEAWCS_Model.Models.TaskInfo;
|
|
namespace WIDESEA_StockService
|
{
|
public class StockService : ServiceBase<Dt_StockInfo, IRepository<Dt_StockInfo>>, IStockService
|
{
|
|
private readonly IRepository<Dt_StockInfo_hty> _StockInfo_htyRepository;
|
|
public StockService(IRepository<Dt_StockInfo> BaseDal, IRepository<Dt_StockInfo_hty> StockInfo_htyRepository) : base(BaseDal)
|
{
|
_StockInfo_htyRepository = StockInfo_htyRepository;
|
}
|
|
public IRepository<Dt_StockInfo> Repository => BaseDal;
|
|
|
//查询物料数量
|
public int MaterielNum(string MaterielName)
|
{
|
List<Dt_StockInfo> stockInfo = BaseDal.QueryData(x=>x.MaterielName == MaterielName);
|
int k = stockInfo.Count();
|
return k;
|
}
|
|
//优先出满
|
public List<Dt_StockInfo> PriorityBig(int Num, int Type)
|
{
|
List<Dt_StockInfo> stockInfo = new List<Dt_StockInfo>();
|
List<Dt_StockInfo> stockInfos = BaseDal.QueryData(x => x.StockType == Type && !x.MaterielCode1.Equals("") && !x.MaterielCode2.Equals("") && !x.MaterielCode3.Equals("") && !x.MaterielCode4.Equals("")).ToList();
|
//分配数量
|
int k = stockInfos.Count();
|
if (k >= Num)
|
{
|
stockInfo.AddRange(stockInfos.Take(Num));
|
}
|
else
|
{
|
throw new Exception(string.Format("库存数量不足"));
|
}
|
//锁定库存
|
int s = stockInfo.Count() - 1;
|
for (int i = 0; i <= s; i++)
|
{
|
stockInfo[i].StockStatus = (int)StockStatusEmun.出库锁定;
|
}
|
|
return stockInfo;
|
}
|
|
//优先出残
|
public List<Dt_StockInfo> PriorityLittle(int Num, int Type)
|
{
|
List<Dt_StockInfo> stockInfo = BaseDal.QueryData(x => x.StockType == Type && x.MaterielCode4.Equals("")).ToList();
|
int k = stockInfo.Count();
|
|
//分配数量
|
if (k >= Num)
|
{
|
//锁定库存
|
for (int i = 0; i <= k - 1; i++)
|
{
|
stockInfo[i].StockStatus = (int)StockStatusEmun.出库锁定;
|
}
|
}
|
else
|
{
|
throw new Exception(string.Format("库存数量不足"));
|
}
|
|
return stockInfo;
|
}
|
}
|
}
|