From c1b448e302ae76d129eb136b698308754bf783c5 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 06 六月 2025 17:01:13 +0800
Subject: [PATCH] 优化AGV站点分配逻辑

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/CachePointService.cs |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/CachePointService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/CachePointService.cs"
index d700413..9314dbc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/CachePointService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/CachePointService.cs"
@@ -27,18 +27,18 @@
 
         public Dt_CachePoint? AssignCachePoint(int areaId)
         {
-            List<CachePointGroupDTO> cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.InStock, LocationStatusEnum.Free);
+            List<CachePointGroupDTO> cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.InStock);
             if (cachePointGroups != null && cachePointGroups.Count > 0)
             {
-                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusB == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt());
-                int id = pointGroupDTO?.IdB ?? 0;
+                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatusA == EnableStatusEnum.OnlyIn.ObjToInt()));
+                int id = pointGroupDTO?.IdA ?? 0;
                 return BaseDal.QueryFirst(x => x.Id == id);
             }
             cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.Free);
             if (cachePointGroups != null && cachePointGroups.Count > 0)
             {
-                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusA == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt());
-                int id = pointGroupDTO?.IdA ?? 0;
+                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusB == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatusB == EnableStatusEnum.OnlyIn.ObjToInt()));
+                int id = pointGroupDTO?.IdB ?? 0;
                 return BaseDal.QueryFirst(x => x.Id == id);
             }
 
@@ -50,15 +50,24 @@
             List<CachePointGroupDTO> cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.InStock, LocationStatusEnum.Free);
             if (cachePointGroups != null && cachePointGroups.Count > 0)
             {
-                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusA == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt());
+                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt()));
                 int id = pointGroupDTO?.IdA ?? 0;
                 return BaseDal.QueryFirst(x => x.Id == id);
             }
+
+            cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.InStock);
+            if (cachePointGroups != null && cachePointGroups.Count > 0)
+            {
+                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusB == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusB == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt()));
+                int id = pointGroupDTO?.IdB ?? 0;
+                return BaseDal.QueryFirst(x => x.Id == id);
+            }
+
             cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.InStock, LocationStatusEnum.InStock);
             if (cachePointGroups != null && cachePointGroups.Count > 0)
             {
-                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusB == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt());
-                int id = pointGroupDTO?.IdB ?? 0;
+                CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt()));
+                int id = pointGroupDTO?.IdA ?? 0;
                 return BaseDal.QueryFirst(x => x.Id == id);
             }
 

--
Gitblit v1.9.3