From 8fcd7a67e4391a5f1fbdb590c2a3f913aeb2a0a0 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 31 三月 2026 14:11:23 +0800
Subject: [PATCH] PP平库功能上线,PDA优化,部分问题点优化

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/LocationInfoRepository.cs |   85 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 71 insertions(+), 14 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/LocationInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/LocationInfoRepository.cs"
index 7508d1f..334ea93 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/LocationInfoRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/LocationInfoRepository.cs"
@@ -5,6 +5,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
@@ -14,6 +15,9 @@
 
 namespace WIDESEA_BasicRepository
 {
+    /// <summary>
+    /// 璐т綅浠撳偍瀹炵幇灞�
+    /// </summary>
     public class LocationInfoRepository : RepositoryBase<Dt_LocationInfo>, ILocationInfoRepository
     {
         public LocationInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
@@ -21,36 +25,48 @@
 
         }
 
+        /// <summary>
+        /// 鑾峰彇鍒嗙粍鎵�鏈夎揣浣�
+        /// </summary>
+        /// <param name="roadway"></param>
+        /// <returns></returns>
         public List<LocationGroupDTO> GetAllLocationGroups(string roadway)
         {
             return QueryTabs<Dt_LocationInfo, Dt_LocationInfo, LocationGroupDTO>((a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1, (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType }, a => a.Depth == 1 && a.RoadwayNo == roadway, b => b.Depth == 2 && b.RoadwayNo == roadway, x => true);
         }
 
+        /// <summary>
+        /// 鏍规嵁鐘舵�佽幏鍙栧垎缁勮揣浣�
+        /// </summary>
+        /// <param name="roadway"></param>
+        /// <param name="locationAStatus"></param>
+        /// <param name="locationBStatus"></param>
+        /// <returns></returns>
         public List<LocationGroupDTO> GetLocationGroups(string roadway, LocationStatusEnum locationAStatus, LocationStatusEnum locationBStatus)
         {
             return QueryTabs<Dt_LocationInfo, Dt_LocationInfo, LocationGroupDTO>(
-                (a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1, 
-                (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType }, 
-                a => a.Depth == 1 && a.RoadwayNo == roadway && a.LocationStatus == locationAStatus.ObjToInt(), 
-                b => b.Depth == 2 && b.RoadwayNo == roadway && b.LocationStatus == locationBStatus.ObjToInt(), 
+                (a, b) => a.Column == b.Column && a.Layer == b.Layer && a.Row != b.Row && SqlFunc.Abs(a.Row - b.Row) == 1,
+                (a, b) => new LocationGroupDTO { DepthA = a.Depth, DepthB = b.Depth, EnableStatusA = a.EnableStatus, EnableStatusB = b.EnableStatus, IdA = a.Id, IdB = b.Id, LocationCodeA = a.LocationCode, LocationCodeB = b.LocationCode, LocationStatusA = a.LocationStatus, LocationStatusB = b.LocationStatus, LocationTypeA = a.LocationType, LocationTypeB = b.LocationType },
+                a => a.Depth == 1 && a.RoadwayNo == roadway && a.LocationStatus == locationAStatus.ObjToInt(),
+                b => b.Depth == 2 && b.RoadwayNo == roadway && b.LocationStatus == locationBStatus.ObjToInt(),
                 x => true);
         }
 
-        public override bool UpdateData(Dt_LocationInfo entity)
-        {
-            return base.UpdateData(entity);
-        }
-
-        public List<string> GetCanOutLocationCodes(List<string> roadways, List<int> areaIds)
-        {
-            return QueryData(x => x.LocationCode, x => roadways.Contains(x.RoadwayNo) && (areaIds.Contains(x.AreaId) || x.AreaId == 0) && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList();
-        }
-
+        /// <summary>
+        /// 鏍规嵁璐т綅缂栧彿闆嗗悎鑾峰彇璐т綅淇℃伅
+        /// </summary>
+        /// <param name="locationCodes"></param>
+        /// <returns></returns>
         public List<Dt_LocationInfo> GetLocationInfos(List<string> locationCodes)
         {
             return QueryData(x => locationCodes.Contains(x.LocationCode));
         }
 
+        /// <summary>
+        /// 鎵归噺淇敼璐т綅鐘舵��
+        /// </summary>
+        /// <param name="locationInfos"></param>
+        /// <param name="locationStatus"></param>
         public void UpdateLocationStatus(List<Dt_LocationInfo> locationInfos, LocationStatusEnum locationStatus)
         {
             locationInfos.ForEach(x =>
@@ -59,5 +75,46 @@
             });
             UpdateData(locationInfos);
         }
+
+        /// <summary>
+        /// 鑾峰彇鍙嚭搴撹揣浣嶇紪鍙�
+        /// </summary>
+        /// <param name="warehouseId"></param>
+        /// <returns></returns>
+        public List<string> GetCanOutLocationCodes(int warehouseId)
+        {
+            return QueryData(x => x.LocationCode, x => x.WarehouseId == warehouseId && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList();
+        }
+        /// <summary>
+        /// PP澶у嵎鍑哄簱锛屽钩搴撲紭鍏堬紝绔嬪簱琛ュ伩鍑哄簱鐨勮揣浣嶇紪鍙烽泦鍚�
+        /// </summary>
+        /// <param name="warehouseId"></param>
+        /// <returns></returns>
+        public List<string> GetCanOutPPLocationCodes(int warehouseId)
+        {
+            //鏌ュ钩搴撹揣浣�
+            Dt_Warehouse warehouse = Db.Queryable<Dt_Warehouse>().Where(x => x.WarehouseCode == WarehouseEnum.HA581.ToString()).First();
+            return QueryData(x => x.LocationCode, x => (x.WarehouseId == warehouseId || x.WarehouseId == warehouse.WarehouseId) && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList();
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙嚭搴撹揣浣嶇紪鍙�
+        /// </summary>
+        /// <param name="warehouseId"></param>
+        /// <returns></returns>
+        public List<string> PPGetCanOutLocationCodes(int warehouseId)
+        {
+            return QueryData(x => x.LocationCode, x => x.WarehouseId == warehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList();
+        }
+
+        /// <summary>
+        /// 鑾峰彇MES鎸囧畾鍙嚭搴撹揣浣嶇紪鍙�
+        /// </summary>
+        /// <param name="warehouseId"></param>
+        /// <returns></returns>
+        public List<string> GetCanOutLocationCodes(string locationcode)
+        {
+            return QueryData(x => x.LocationCode, x => x.LocationCode == locationcode && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt())).Distinct().ToList();
+        }
     }
 }

--
Gitblit v1.9.3