using Mapster; using WIDESEA_Core.HttpContextUser; using WIDESEA_Core.Seed; namespace WIDESEA_StorageBasicService; public class StockInfoService : ServiceBase, IStockInfoService { public StockInfoService(IStockInfoRepository BaseDal) : base(BaseDal) { } /// /// 分页 /// /// /// public override PageGridData GetPageData(PageDataOptions options) { var data = base.GetPageData(options); foreach (var item in data.Rows) { if (item.IsFull) item.Remark = item.StockInfoDetails.Count().ToString(); else item.Remark = "0"; } return data; } /// /// 批量删除 /// /// /// public override WebResponseContent DeleteData(object[] keys) { try { List stockInfos = new List(); List locationInfos = new List(); foreach (var item in keys) { var stock = BaseDal.QueryFirstNavAsync(x => x.Id == item.ObjToInt()).Result; var stockHty = stock.Adapt(); stockInfos.Add(stockHty); var location = SqlSugarHelper.DbWMS.Queryable().FirstAsync(x => x.Id == stock.LocationId).Result; location.LocationStatus = (int)LocationEnum.Free; locationInfos.Add(location); } var hty = BaseDal.Db.InsertNav(stockInfos) .Include(x => x.StockInfoDetails) .ExecuteCommand(); var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange(); return base.DeleteData(keys); } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } // 根据传入库存类型获取不同巷道的库存 public async Task> GetLocationByStockType(bool stockType,string areaCode) { var stockInfos = await BaseDal.Db.Queryable().Where(x => x.IsFull == stockType && x.AreaCode == areaCode) .Includes(x => x.LocationInfo).ToListAsync(); var result = stockInfos .GroupBy(x => x.LocationInfo.RoadwayNo) .ToDictionary(x => x.Key, x => x.Count()); return result; } }