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>, IStockService { private readonly IRepository _StockInfo_htyRepository; public StockService(IRepository BaseDal, IRepository StockInfo_htyRepository) : base(BaseDal) { _StockInfo_htyRepository = StockInfo_htyRepository; } public IRepository Repository => BaseDal; //查询物料数量 public int MaterielNum(string MaterielName) { List stockInfo = BaseDal.QueryData(x=>x.MaterielName == MaterielName); int k = stockInfo.Count(); return k; } //优先出满 public List PriorityBig(int Num, int Type) { List stockInfo = new List(); List 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 PriorityLittle(int Num, int Type) { List 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; } } }