From d1a2afa67032339c2eb1019a02c6b6d036c0bdb1 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期一, 23 九月 2024 09:09:40 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs |   50 +++++++++++++++++++++++++++-----------------------
 1 files changed, 27 insertions(+), 23 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index 5b0b8d9..1a043f5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -18,9 +18,7 @@
 {
     public class LocationInfoService : ServiceBase<Dt_LocationInfo, ILocationInfoRepository>, ILocationInfoService
     {
-        private readonly IAreaInfoRepository _areaInfoRepository;
-        private readonly IWarehouseRepository _warehouseRepository;
-        private readonly IRoadwayInfoRepository _roadwayInfoRepository;
+        private readonly IBasicRepository _basicRepository;
 
         private Dictionary<string, OrderByType> _emptyAssignOrderBy = new Dictionary<string, OrderByType>()
         {
@@ -32,11 +30,9 @@
 
         public ILocationInfoRepository Repository => BaseDal;
 
-        public LocationInfoService(ILocationInfoRepository BaseDal, IAreaInfoRepository areaInfoRepository, IWarehouseRepository warehouseRepository, IRoadwayInfoRepository roadwayInfoRepository) : base(BaseDal)
+        public LocationInfoService(ILocationInfoRepository BaseDal, IBasicRepository basicRepository) : base(BaseDal)
         {
-            _areaInfoRepository = areaInfoRepository;
-            _warehouseRepository = warehouseRepository;
-            _roadwayInfoRepository = roadwayInfoRepository;
+            _basicRepository = basicRepository;
         }
 
         public override WebResponseContent AddData(SaveModel saveModel)
@@ -48,17 +44,17 @@
         {
             try
             {
-                Dt_RoadwayInfo roadwayInfo = _roadwayInfoRepository.QueryFirst(x => x.InStationCode == stationCode) ?? throw new Exception("鏈壘鍒拌绔欏彴瀵瑰簲鐨勫贩閬擄紝璇锋鏌ュ熀纭�閰嶇疆淇℃伅");
-                if (roadwayInfo.EnalbeStatus != RoadwayStatusEnum.Normal.ObjToInt() && roadwayInfo.EnalbeStatus != RoadwayStatusEnum.OnlyIn.ObjToInt())
+                Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == stationCode) ?? throw new Exception("鏈壘鍒拌绔欏彴瀵瑰簲鐨勫贩閬擄紝璇锋鏌ュ熀纭�閰嶇疆淇℃伅");
+                if (roadwayInfo.EnableStatus != RoadwayStatusEnum.Normal.ObjToInt() && roadwayInfo.EnableStatus != RoadwayStatusEnum.OnlyIn.ObjToInt())
                 {
                     throw new Exception("璇ュ贩閬撲笉鍙叆搴擄紝璇锋鏌ュ贩閬撶鐢ㄤ俊鎭�");
                 }
-                if (roadwayInfo.WarehouseId > 0)
+                if (roadwayInfo.AreaId > 0)
                 {
-                    Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.Id == roadwayInfo.WarehouseId);
-                    if (warehouse != null && warehouse.WarehouseStatus == EnableEnum.Disable.ObjToInt())
+                    Dt_AreaInfo areaInfo = _basicRepository.AreaInfoRepository.QueryFirst(x => x.Id == roadwayInfo.AreaId);
+                    if (areaInfo != null && areaInfo.AreaStatus == EnableEnum.Disable.ObjToInt())
                     {
-                        throw new Exception("浠撳簱琚鐢紝涓嶅彲鍏ュ簱");
+                        throw new Exception("鍖哄煙琚鐢紝涓嶅彲鍏ュ簱");
                     }
                 }
                 if (inboundType == TaskTypeEnum.PalletInbound.ObjToInt())//绌虹洏鍏ュ簱鍒嗛厤閫昏緫
@@ -80,34 +76,42 @@
 
         private Dt_LocationInfo EmptyAssignLocation(string roadway)
         {
-            List<LocationGroupDTO> locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.Free, LocationStatusEnum.Pallet);
+            List<LocationGroupDTO> locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.Pallet, LocationStatusEnum.Free);
             if (locationGroups != null && locationGroups.Count > 0)
             {
-                return BaseDal.QueryFirst(x => x.Id == locationGroups.FirstOrDefault().IdA);
+                LocationGroupDTO? locationGroup = locationGroups.FirstOrDefault(x => x.EnableStatusA == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusA == LocationEnalbeStatusEnum.Normal.ObjToInt());
+                int id = locationGroup?.IdA ?? 0;
+                return BaseDal.QueryFirst(x => x.Id == id);
             }
             locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.Free, LocationStatusEnum.Free);
             if (locationGroups != null && locationGroups.Count > 0)
             {
-                return BaseDal.QueryFirst(x => x.Id == locationGroups.FirstOrDefault().IdB);
+                LocationGroupDTO? locationGroup = locationGroups.FirstOrDefault(x => x.EnableStatusB == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusB == LocationEnalbeStatusEnum.Normal.ObjToInt());
+                int id = locationGroup?.IdB ?? 0;
+                return BaseDal.QueryFirst(x => x.Id == id);
             }
 
-            return BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnalbeStatus == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnalbeStatus == LocationEnalbeStatusEnum.Normal.ObjToInt() && x.RoadwayNo == roadway), _emptyAssignOrderBy);
+            return BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == LocationEnalbeStatusEnum.Normal.ObjToInt() && x.RoadwayNo == roadway), _emptyAssignOrderBy);
         }
 
         private Dt_LocationInfo StoredAssignLocation(string roadway)
         {
-            List<LocationGroupDTO> locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.Free, LocationStatusEnum.InStock);
-            if (locationGroups != null && locationGroups.Count > 0)
+            List<LocationGroupDTO> locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.InStock, LocationStatusEnum.Free);
+            if (locationGroups != null)
             {
-                return BaseDal.QueryFirst(x => x.Id == locationGroups.FirstOrDefault().IdA);
+                LocationGroupDTO? locationGroup = locationGroups.FirstOrDefault(x => x.EnableStatusA == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusA == LocationEnalbeStatusEnum.Normal.ObjToInt());
+                int id = locationGroup?.IdA ?? 0;
+                return BaseDal.QueryFirst(x => x.Id == id);
             }
             locationGroups = BaseDal.GetLocationGroups(roadway, LocationStatusEnum.Free, LocationStatusEnum.Free);
             if (locationGroups != null && locationGroups.Count > 0)
             {
-                return BaseDal.QueryFirst(x => x.Id == locationGroups.FirstOrDefault().IdB);
+                LocationGroupDTO? locationGroup = locationGroups.FirstOrDefault(x => x.EnableStatusB == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusB == LocationEnalbeStatusEnum.Normal.ObjToInt());
+                int id = locationGroup?.IdB ?? 0;
+                return BaseDal.QueryFirst(x => x.Id == id);
             }
 
-            return BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnalbeStatus == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnalbeStatus == LocationEnalbeStatusEnum.Normal.ObjToInt() && x.RoadwayNo == roadway), _emptyAssignOrderBy);
+            return BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == LocationEnalbeStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == LocationEnalbeStatusEnum.Normal.ObjToInt() && x.RoadwayNo == roadway), _emptyAssignOrderBy);
         }
 
         public Dt_LocationInfo AdjacentDepthLocation(string locationCode)
@@ -140,7 +144,7 @@
                             {
                                 AreaId = 0,
                                 Column = j + 1,
-                                EnalbeStatus = LocationEnalbeStatusEnum.Normal.ObjToInt(),
+                                EnableStatus = LocationEnalbeStatusEnum.Normal.ObjToInt(),
                                 Layer = k + 1,
                                 LocationStatus = LocationStatusEnum.Free.ObjToInt(),
                                 LocationType = LocationTypeEnum.Cube.ObjToInt(),

--
Gitblit v1.9.3