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