From bde09c027eee16a7b05b82e71dea4d3405d6d52d Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期四, 22 一月 2026 17:05:09 +0800
Subject: [PATCH] 前端页面优化,日志记录,日志展示
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs | 150 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 134 insertions(+), 16 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index abe2c87..2398b4d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -1,4 +1,5 @@
锘縰sing HslCommunication.WebSocket;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
@@ -10,6 +11,7 @@
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.StockEnum;
+using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
@@ -156,24 +158,39 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
-
-
+
+
public string AccessingTunnel(int WarehouseId, int LocationType)
{
List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId);
- var roadwayGroups = locationData
- .Where(x => x.LocationType == LocationType)
- .GroupBy(x => x.RoadwayNo)
- .Select(g => new
- {
- RoadwayNo = g.Key,
- LocationCount = g.Count(),
- AllLocations = g.ToList()
- })
- .OrderByDescending(g => g.LocationCount) // 鏀逛负闄嶅簭鎺掑簭
- .FirstOrDefault(); // 鍙栫涓�涓紙鏁伴噺鏈�澶氱殑锛�
+ var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo)
+ .Select(g => new
+ {
+ RoadwayNo = g.Key,
+ LocationCount = g.Count(),
+ }).OrderByDescending(g => g.LocationCount).ToList();
- return roadwayGroups.RoadwayNo;
+ int minRequired = 15;
+ if(WarehouseId== (int)WarehouseEnum.YMYL)
+ {
+ if (LocationType == 2) minRequired = 6;
+
+ var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
+ if(selectedRoadway!=null) return selectedRoadway.RoadwayNo;
+
+ }
+ else
+ {
+ var selectedRoadway = roadwayGroups.FirstOrDefault(g => g.LocationCount >= minRequired);
+ if(selectedRoadway == null)
+ {
+ selectedRoadway = roadwayGroups.FirstOrDefault(g => g.RoadwayNo == "5" && g.LocationCount != 0);
+
+ }
+ if(selectedRoadway != null) return selectedRoadway.RoadwayNo;
+ }
+
+ return "0";
}
@@ -209,7 +226,8 @@
if (emptyLocations[i].Depth == 1)//鍒ゆ柇鏄惁1娣辫揣浣�
{
//鏌ヨ娣卞簱浣�
- int emprow = emptyLocations[i].Row == 2 ? 1 : 4;
+ //int emprow = emptyLocations[i].Row == 2 ? 1 : 4;
+ int emprow = judgmentRow(emptyLocations[i].RoadwayNo,emptyLocations[i].Row);
Dt_LocationInfo? sencondDepthLocationShen = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);
if (sencondDepthLocationShen != null && sencondDepthLocationShen.LocationStatus == LocationStatusEnum.Free.ObjToInt())
@@ -224,13 +242,18 @@
{
locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode });
return emptyLocations[i];
+ }else if (emptyLocations[i].RoadwayNo=="5" && emptyLocations[i].LocationStatus == LocationStatusEnum.Free.ObjToInt())
+ {
+ locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode });
+ return emptyLocations[i];
}
}
}
else
{
//鏌ヨ2娣辫揣浣嶅搴旂殑1娣辫揣浣嶆槸鍚︿负绌�
- int emprow = emptyLocations[i].Row == 4 ? 3 : 2;
+ //int emprow = emptyLocations[i].Row == 4 ? 3 : 2;
+ int emprow = judgmentRow(emptyLocations[i].RoadwayNo, emptyLocations[i].Row);
Dt_LocationInfo? sencondDepthLocationQian = emptyLocations.FirstOrDefault(x => x.Row == emprow && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);
if (sencondDepthLocationQian != null && sencondDepthLocationQian.LocationStatus == LocationStatusEnum.Free.ObjToInt())
@@ -244,11 +267,106 @@
}
}
+ private int judgmentRow(string RoadwayNo, int locrow)
+ {
+ if (RoadwayNo == "1" || RoadwayNo == "3")
+ {
+ if(locrow==1 || locrow == 4)
+ {
+ return locrow == 1 ? 2 : 3;
+ }
+ else
+ {
+ return locrow == 2 ? 1 : 4;
+ }
+
+ }
+ else if (RoadwayNo == "2" || RoadwayNo == "4")
+ {
+ if (locrow == 5 || locrow == 8)
+ {
+ return locrow == 5 ? 6 : 7;
+ }
+ else
+ {
+ return locrow == 6 ? 5 : 8;
+ }
+
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
public class LocationCache
{
public string LocationCode { get; set; }
public DateTime DateTime { get; set; }
}
+
+
+
+ public WebResponseContent GetArea()
+ {
+ // WarehouseId鍒嗙粍锛岀劧鍚庢槸RoadwayNo
+ var result = BaseDal.QueryData()
+ .GroupBy(x => x.WarehouseId)
+ .Select(g => new {
+ WarehouseId = g.Key,
+ RoadwayNo = g.Select(x => x.RoadwayNo).Distinct().ToList()
+ })
+ .ToList();
+ return WebResponseContent.Instance.OK("鎴愬姛", result);
+ }
+
+ public WebResponseContent GetLocationStatus(int WarehouseId, string RoadwayNo)
+ {
+ // 鏍煎紡{灞�,{杩欎竴灞傜殑鍒楁暟鎹畗}
+ var locations = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.RoadwayNo == RoadwayNo)
+ .Select(x => new
+ {
+ x.RoadwayNo,
+ x.WarehouseId,
+ x.Row,
+ x.Column,
+ x.Layer,
+ x.Depth,
+ x.LocationType,
+ x.LocationStatus,
+ x.EnableStatus
+ })
+ .ToList();
+
+ // 濡傛灉娌℃湁鎵惧埌鏁版嵁锛岃繑鍥炵┖鍒楄〃鑰屼笉鏄痭ull
+ if (locations == null || !locations.Any())
+ {
+ return WebResponseContent.Instance.OK("鏈壘鍒板搴斿贩閬撶殑璐т綅鏁版嵁", new List<object>());
+ }
+
+ // 淇敼涓哄眰涓嬮潰鏀炬墍鏈夊垪鐨勪俊鎭�
+ var result = locations
+ .GroupBy(x => x.Layer) // 鎸夊眰鍒嗙粍
+ .Select(layerGroup => new
+ {
+ layer = layerGroup.Key,
+ columns = layerGroup.GroupBy(x => x.Column) // 姣忓眰涓寜鍒楀垎缁�
+ .Select(columnGroup => new
+ {
+ column = columnGroup.Key,
+ depths = columnGroup.Select(d => new
+ {
+ row = d.Row,
+ depth = d.Depth,
+ locationType = d.LocationType,
+ locationStatus = d.LocationStatus,
+ enableStatus = d.EnableStatus
+ }).ToList()
+ }).ToList()
+ }).ToList();
+
+ return WebResponseContent.Instance.OK("鎴愬姛", result);
+ }
}
}
--
Gitblit v1.9.3