From bb56b2b6f21acb7c69c02585e5bc534d2f67715f Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期四, 27 三月 2025 17:13:35 +0800 Subject: [PATCH] WMS首页优化,WCS优化AGV和产线、输送线交互逻辑 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs | 82 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 81 insertions(+), 1 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs" index dc8ce5c..b13506a 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs" @@ -1,4 +1,5 @@ 锘� +using MailKit.Search; using Microsoft.AspNetCore.Http; using SqlSugar; using System; @@ -9,6 +10,7 @@ using System.Reflection; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; @@ -16,6 +18,7 @@ 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; @@ -25,12 +28,14 @@ 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) @@ -163,6 +168,81 @@ } + 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); -- Gitblit v1.9.3