From d845312bb27972771b566054a906cc25af83e209 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 26 五月 2025 17:32:07 +0800
Subject: [PATCH] 添加货位排图功能

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoRowController.cs |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 0 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoRowController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoRowController.cs"
new file mode 100644
index 0000000..6e016f9
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoRowController.cs"
@@ -0,0 +1,111 @@
+锘縰sing HslCommunication.WebSocket;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System.Collections.Generic;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_Common.LocationEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_Core.Enums;
+using WIDESEA_DTO.Basic;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IBasicService;
+using WIDESEA_ISystemRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Basic
+{
+    /// <summary>
+    /// 璐т綅
+    /// </summary>
+    [Route("api/LocationInfoRow")]
+    [ApiController]
+    public class LocationInfoRowController : ApiBaseController<ILocationInfoService, Dt_LocationInfo>
+    {
+        private readonly ILocationInfoRepository _repository;
+        private readonly ISys_RoleDataPermissionRepository _permissionRepository;
+        private readonly ILocationInfoRepository _locationInfoRepository;
+        public LocationInfoRowController(ILocationInfoService service, ILocationInfoRepository repository, ISys_RoleDataPermissionRepository permissionRepository, ILocationInfoRepository locationInfoRepository) : base(service)
+        {
+            _repository = repository;
+            _permissionRepository = permissionRepository;
+            _locationInfoRepository = locationInfoRepository;
+        }
+        /// <summary>
+        /// 鑾峰彇搴撳尯鏉冮檺
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet, HttpPost, Route("GetArea"), AllowAnonymous]
+        public object GetArea()
+        {
+            List<object> list = new List<object>();
+            List<Dt_LocationInfo>? locations = null;
+            List<Sys_RoleDataPermission> permissions = _permissionRepository.QueryData(x => x.RoleId == App.User.RoleId);
+            if (permissions.Count > 0)
+                locations = _locationInfoRepository.QueryData(x => permissions.Select(k => k.WarehouseId).ToList().Contains(x.WarehouseId));
+            foreach (var permission in permissions)
+            {
+                var Rows = locations.Where(x => x.WarehouseId == permission.WarehouseId).GroupBy(x => x.Row).Select(x => x.Key).OrderBy(x => x).ToList();
+                var obj = new
+                {
+                    house_name = permission.WarehouseName,
+                    shelf_code = permission.WarehouseId,
+                    tunnel = Rows
+                };
+                list.Add(obj);
+            }
+            return list;
+        }
+        /// <summary>
+        /// 鑾峰彇璐т綅淇℃伅
+        /// </summary>
+        /// <param name="area"></param>
+        /// <returns></returns>
+        [HttpPost, Route("GetLocationStatu"), AllowAnonymous]
+        public object GetLocationStatu([FromBody] LocationArea area)
+        {
+            List<LocationLayer> layers = new List<LocationLayer>();
+            var data = _locationInfoRepository.QueryData(x => x.WarehouseId == area.shelf_code && x.Row == area.tunnel);
+            foreach (var layer in data.GroupBy(t => t.Layer))
+            {
+                var rows = new List<LocationRow>();
+                var data_rows = layer.GroupBy(t => t.Row);
+                foreach (var data_row in data_rows)
+                {
+                    var cols = new List<LocationCol>();
+                    foreach (var data_col in data_row)
+                    {
+                        cols.Add(new LocationCol()
+                        {
+                            //鍒�
+                            row = data_col.Row,
+                            layer = data_col.Layer,
+                            index = data_col.Column,
+                            locationCode = data_col.LocationCode,
+                            location_state = data_col.LocationStatus,
+                            location_lock = data_col.EnableStatus,
+                            remark = data_col.Remark
+                        });
+                    }
+                    cols = cols.OrderBy(t => t.index).ToList();
+                    rows.Add(new LocationRow()
+                    {
+                        //琛�
+                        index = data_row.Key,
+                        cols = cols
+                    });
+                }
+                rows = rows.OrderBy(t => t.index).ToList();
+                layers.Add(new LocationLayer()
+                {
+                    //灞�
+                    index = layer.Key,
+                    rows = rows
+                });
+            }
+            layers = layers.OrderBy(t => t.index).ToList();
+            return layers;
+        }
+    }
+}

--
Gitblit v1.9.3