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