From 37454e625df68d40897112b2e8c2e3cf4d7163e3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期三, 25 三月 2026 11:43:10 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
index 82bbeeb..c93a8eb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_BasicService/LocationInfoService.cs"
@@ -140,23 +140,62 @@
 
                 List<string> lockLocationCodes = locationCaches.Select(x => x.LocationCode).ToList();
 
-                Dictionary<string, OrderByType> orderBy = new Dictionary<string, OrderByType>()
+                //Dictionary<string, SqlSugar.OrderByType> orderBy = new Dictionary<string, OrderByType>()
+                //{
+                //    { nameof(Dt_LocationInfo.RoadwayNo),OrderByType.Asc },
+                //    { nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
+                //    { nameof(Dt_LocationInfo.Column),OrderByType.Asc },
+                //    { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
+                //    { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
+                //};
+
+                Dictionary<string, SqlSugar.OrderByType> orderBy = new Dictionary<string, OrderByType>()
                 {
-                    { nameof(Dt_LocationInfo.RoadwayNo),OrderByType.Asc },
+                    //{ nameof(Dt_LocationInfo.RoadwayNo),OrderByType.Asc },                       
                     { nameof(Dt_LocationInfo.Layer),OrderByType.Asc },
+                    { nameof(Dt_LocationInfo.Row),OrderByType.Asc },
                     { nameof(Dt_LocationInfo.Column),OrderByType.Asc },
                     { nameof(Dt_LocationInfo.Depth),OrderByType.Desc },
-                    { nameof(Dt_LocationInfo.Row),OrderByType.Asc }
+
                 };
+
 
                 var first = BaseDal.QueryFirst(x => x.LocationType == locationType && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
                 if (first != null)
                 {
                     locationCaches.Add(new LocationCache { LocationCode = first?.LocationCode, DateTime = DateTime.Now });
+
+                    using (var sugarClient = new SqlSugarClient(new ConnectionConfig
+                    {
+                        ConnectionString = DBContext.ConnectionString,
+                        DbType = DBContext.DbType, 
+                        IsAutoCloseConnection = true,  
+                        InitKeyType = InitKeyType.Attribute 
+                    }))
+                    {
+                        sugarClient.Updateable<Dt_LocationInfo>().SetColumns(x => new Dt_LocationInfo
+                        {
+                            LocationStatus = (int)LocationStatusEnum.InStockLock,
+                        }).Where(x => x.Id == first.Id).ExecuteCommand();
+                    }             
+                   
                 }
 
                 return first;
             }
+        }
+
+        public bool QueryLocationCount(int locationType)
+        {
+            try
+            {
+                return BaseDal.QueryData(x => x.LocationType == locationType && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableStatusEnum.Normal).Any();
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+
         }
         public Dt_LocationInfo? AssignLocation()
         {
@@ -182,8 +221,14 @@
                 };
 
                 var first = BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.Disable.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode), orderBy);//鏌ヨ绌鸿揣浣嶄俊鎭苟鎺掗櫎5鍒嗛挓鍐呭垎閰嶇殑璐т綅,鏍规嵁灞傘�佸垪銆佹繁搴︺�佽鎺掑簭
-
-                locationCaches.Add(new LocationCache { LocationCode = first.LocationCode, DateTime = DateTime.Now });
+                if (first != null)
+                {
+                    locationCaches.Add(new LocationCache { LocationCode = first.LocationCode, DateTime = DateTime.Now });
+                    Db.Updateable<Dt_LocationInfo>().SetColumns(x => new Dt_LocationInfo
+                    {
+                        LocationStatus = (int)LocationStatusEnum.InStockLock,
+                    }).Where(x => x.Id == first.Id).ExecuteCommand();
+                }
 
                 return first;
             }

--
Gitblit v1.9.3