| | |
| | |  |
| | | using MailKit.Search; |
| | | using Microsoft.AspNetCore.Http; |
| | | using SqlSugar; |
| | | using System; |
| | |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.Utilities; |
| | | using WIDESEA_DTO.Stock; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IStockRepository; |
| | | using WIDESEA_IStockService; |
| | | using WIDESEA_Model.Models; |
| | |
| | | public partial class StockViewService : IStockViewService |
| | | { |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IStockRepository _stockRepository; |
| | | private readonly SqlSugarClient _dbBase; |
| | | |
| | | public StockViewService(IUnitOfWorkManage unitOfWorkManage) |
| | | public StockViewService(IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _dbBase = unitOfWorkManage.GetDbClient(); |
| | | _stockRepository = stockRepository; |
| | | } |
| | | |
| | | public virtual PageGridData<StockViewDTO> GetPageData(PageDataOptions options) |
| | |
| | | |
| | | } |
| | | |
| | | public virtual WebResponseContent GetLocationStockView(int Layer) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | List<LocationStockView> locationStockViews = new List<LocationStockView>(); |
| | | ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>(); |
| | | List<Dt_LocationInfo> dt_LocationInfos = sugarQueryable.ToList(); |
| | | |
| | | ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Where(x => dt_LocationInfos.Select(x => x.LocationCode).ToList().Contains(x.LocationCode)).Includes(x => x.Details); |
| | | List<Dt_StockInfo> StockInfos = sugarQueryable1.OrderBy(x => x.InDate).ToList(); |
| | | foreach (var dt_LocationInfo in dt_LocationInfos) |
| | | { |
| | | LocationStockView locationStockView = new LocationStockView() |
| | | { |
| | | AreaId = dt_LocationInfo.AreaId, |
| | | Column = dt_LocationInfo.Column, |
| | | Depth = dt_LocationInfo.Depth, |
| | | EnalbeStatus = dt_LocationInfo.EnableStatus, |
| | | Layer = dt_LocationInfo.Layer, |
| | | LocationCode = dt_LocationInfo.LocationCode, |
| | | LocationName = dt_LocationInfo.LocationName, |
| | | LocationStatus = dt_LocationInfo.LocationStatus, |
| | | LocationType = dt_LocationInfo.LocationType, |
| | | RoadwayNo = dt_LocationInfo.RoadwayNo, |
| | | Row = dt_LocationInfo.Row |
| | | }; |
| | | List<Dt_StockInfo> dt_StockInfos = StockInfos.Where(x => x.LocationCode == dt_LocationInfo.LocationCode).ToList(); |
| | | if (dt_StockInfos.Count > 0 && dt_StockInfos != null) |
| | | { |
| | | locationStockView.BatchNo = dt_StockInfos.First().Details.First().BatchNo; |
| | | locationStockView.InDate = dt_StockInfos.First().InDate; |
| | | locationStockView.MaterielCode = dt_StockInfos.First().Details.First().MaterielCode; |
| | | locationStockView.MaterielName = dt_StockInfos.First().Details.First().MaterielName; |
| | | locationStockView.OrderNo = dt_StockInfos.First().Details.First().OrderNo; |
| | | locationStockView.PalletCode = string.Join(",", dt_StockInfos.Select(x => x.PalletCode).ToList()); |
| | | locationStockView.Quantity = dt_StockInfos.Count; |
| | | } |
| | | locationStockViews.Add(locationStockView); |
| | | } |
| | | if (locationStockViews.Count > 0) |
| | | { |
| | | #region MyRegion |
| | | List<LocationLayer> layers = new List<LocationLayer>(); |
| | | foreach (var layer in locationStockViews.GroupBy(x => x.Layer)) |
| | | { |
| | | var rows = new List<LocationRow>(); |
| | | var data_rows = layer.GroupBy(t => t.Row); |
| | | foreach (var data_row in data_rows) |
| | | { |
| | | rows.Add(new LocationRow() |
| | | { |
| | | index = data_row.Key, |
| | | cols = data_row.OrderBy(x => x.Column).ToList() |
| | | }); |
| | | } |
| | | //rows=rows.OrderBy(x=>x.index).ToList(); |
| | | layers.Add(new LocationLayer() |
| | | { |
| | | index = layer.Key, |
| | | rows = rows |
| | | }); |
| | | } |
| | | #endregion |
| | | layers = layers.OrderBy(x => x.index).ToList(); |
| | | content.OK(data: layers); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public virtual object GetDetailPage(PageDataOptions pageData) |
| | | { |
| | | Type t = typeof(StockViewDTO); |