From d7f5e3607825e621b40820d505b8ed0bb4e06125 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 26 十二月 2024 15:19:30 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllTransServer/RcsServer.cs  |  113 +++++++++++++++++++++++++++----------
 Wms/Model/InterFaceModel/RCSModel.cs     |    2 
 Wms/Wms/Controllers/DownApiController.cs |   14 ++--
 3 files changed, 91 insertions(+), 38 deletions(-)

diff --git a/Wms/Model/InterFaceModel/RCSModel.cs b/Wms/Model/InterFaceModel/RCSModel.cs
index 9178884..a210cb3 100644
--- a/Wms/Model/InterFaceModel/RCSModel.cs
+++ b/Wms/Model/InterFaceModel/RCSModel.cs
@@ -28,7 +28,7 @@
         public class Pallnetmsg
         {
             /// <summary>
-            /// 璁惧鎵�鍦ㄤ綅缃紙璧峰浣嶇疆/鐩爣浣嶇疆锛夛紝璁惧缂栫爜
+            /// 璁惧缂栫爜
             /// </summary>
             public string Location { get; set; }
             /// <summary>
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index 6913032..9802cee 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -392,43 +392,49 @@
             try
             {
                 string taskMsg = "";
-                //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
-                var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == model.PalletNo);
-                if (tasking != null)
-                {
-                    throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{model.PalletNo}");
-                }
+                
                 //閫氳繃璁惧鍙锋煡鎵惧埌鎵�灞炶澶囷紙鍖哄煙锛�
                 var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location));
                 if (deviceInfo == null)
                 {
                     throw new Exception("璁惧淇℃伅涓嶅瓨鍦�");
                 }
-                var houseNo = deviceInfo.WareHouseNo;//鐢宠鍌ㄤ綅璁惧鎵�鍦ㄨ溅闂寸紪鍙�
+                //鐢宠鍌ㄤ綅璁惧鎵�鍦ㄨ溅闂寸紪鍙�
+                var houseNo = deviceInfo.WareHouseNo;
                 //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
-                var deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
-                if (deviceLocatInfo == null)
-                {
-                    throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
-                }
-                
-                var noticeno = "0";//鍑哄叆搴撳崟鎹槑缁咺D
+                var deviceLocatInfo = new SysStorageLocat();
+                //鍑哄叆搴撳崟鎹槑缁咺D
+                var noticeno = "0";
+                //鐩爣鍌ㄤ綅淇℃伅
+                var loction = new SysStorageLocat();
                 //妗跺簱瀛樹俊鎭�
-                var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo);
-                if (palletInfo == null)
-                {
-                    throw new Exception($"鏈煡璇㈠埌璇ユ《鐨勫簱瀛樹俊鎭紝PalletNo:{model.PalletNo}");
-                }
+                var palletInfo = new DataStockDetail();
 
-                var storageLocat = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0");
                 //寮�鍚簨鍔�
                 Db.BeginTran();
-
-                SysStorageLocat loction = new SysStorageLocat();//鐩爣鍌ㄤ綅淇℃伅
                 switch (model.Type)
                 {
                     case "3"://娓呮礂璁惧鐢宠鍌ㄤ綅锛堝噣妗剁敵璇峰偍浣嶏級
                         {
+                            //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
+                            var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅 
+                            if (deviceLocatInfo2 == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+                            }
+                            //鏌ユ壘妗跺簱瀛樹俊鎭�
+                            palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
+                            if (palletInfo == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+                            }
+                            //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+                            var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+                            if (tasking != null)
+                            {
+                                throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+                            }
+
                             //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
                             deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);// Column=1 娓呮礂鍌ㄤ綅锛孋olumn=2 娓呮礂瀹屾枡鍌ㄤ綅 
                             if (deviceLocatInfo == null)
@@ -453,6 +459,23 @@
                             {
                                 throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
                             }
+                            //鏌ユ壘妗跺簱瀛樹俊鎭�
+                            palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
+                            if (palletInfo == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+                            }
+                            palletInfo.LotNo = model.LotNo;//鎵规鍙�
+                            //鏇存柊妗跺簱瀛樹俊鎭�
+                            Db.Updateable(palletInfo).ExecuteCommand();
+
+                            //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+                            var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+                            if (tasking != null)
+                            {
+                                throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+                            }
+
                             //鍒ゆ柇鏄惁鏈夋壒娆″彿
                             if (string.IsNullOrWhiteSpace(model.LotNo))
                             {
@@ -464,9 +487,7 @@
                             {
                                 throw new Exception("璇ヨ溅闂撮娣峰尯鏆傛棤绌轰綑鍌ㄤ綅");
                             }
-                            palletInfo.LotNo = model.LotNo;//鎵规鍙�
-                                                           //鏇存柊妗跺簱瀛樹俊鎭�
-                            Db.Updateable(palletInfo).ExecuteCommand();
+                            
 
                             taskMsg = "鎺ユ枡璁惧锛堥娣锋枡妗讹級鐢宠鍌ㄤ綅浠诲姟";
                         }
@@ -479,6 +500,19 @@
                             {
                                 throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
                             }
+                            //鏌ユ壘妗跺簱瀛樹俊鎭�
+                            palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
+                            if (palletInfo == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+                            }
+                            //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+                            var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+                            if (tasking != null)
+                            {
+                                throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+                            }
+
                             //鍒ゆ柇鏄惁鏈夋壒娆″彿
                             if (string.IsNullOrWhiteSpace(model.LotNo))
                             {
@@ -498,7 +532,7 @@
                                 throw new Exception("璇ユ壒娆℃病鏈夊搴旂殑鍏ュ簱鍗�");
                             }
                             notice.Status = "1";//姝e湪鎵ц
-                                                //鏇存柊鍏ュ簱鍗曠姸鎬�
+                            //鏇存柊鍏ュ簱鍗曠姸鎬�
                             Db.Updateable(notice).ExecuteCommand();
 
                             //鏌ユ壘鍒拌杞﹂棿鍗婃垚鍝佸尯
@@ -513,10 +547,28 @@
                         break;
                     case "2"://涓嬫枡璁惧鐢宠鍌ㄤ綅锛堣剰妗剁敵璇峰偍浣嶏級
                         {
+                            //璁惧鏀炬《鍌ㄤ綅淇℃伅锛堝師濮嬪彨妗剁洰鏍囧偍浣嶏級
+                            var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 鎶曟枡鍌ㄤ綅锛孋olumn=2 鎶曞畬鏂欏偍浣�
+                            if (deviceLocatInfo2 == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囨墍鍦ㄥ偍浣嶄俊鎭紝Location:{model.Location}");
+                            }
+                            //鏌ユ壘妗跺簱瀛樹俊鎭�
+                            palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First();
+                            if (palletInfo == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌璇ヨ澶囦笂妗剁殑搴撳瓨淇℃伅");
+                            }
+                            //鏌ユ壘璇ユ《鏈夋病鏈夋鍦ㄦ墽琛岀殑浠诲姟
+                            var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo);
+                            if (tasking != null)
+                            {
+                                throw new Exception($"璇ユ《鏈夋鍦ㄦ墽琛岀殑浠诲姟锛孭alletNo:{palletInfo.PalletNo}");
+                            }
                             if (houseNo == "M04")//闄や簡鍠峰共杞﹂棿涓嬫枡鍙i兘鏄�2涓偍浣嶏紙鎶曟枡鍌ㄤ綅銆佹姇瀹屾枡鍌ㄤ綅锛�
                             {
                                 //璁惧鎵�鍦ㄥ偍浣嶄俊鎭紙璧峰鍌ㄤ綅锛�
-                                deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo);
+                                deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);
                             }
                             else
                             {
@@ -551,7 +603,7 @@
                     //BackDate = DateTime.Now,  //杩斿洖鏃堕棿
                     StartLocat = deviceLocatInfo.LocatNo,//璧峰浣嶇疆
                     EndLocat = loction.LocatNo,//鐩爣浣嶇疆
-                    PalletNo = model.PalletNo,//妗跺彿
+                    PalletNo = palletInfo.PalletNo,//妗跺彿
                     IsSend = 1,//鏄惁鍙啀娆′笅鍙�
                     IsCancel = 1,//鏄惁鍙彇娑�
                     IsFinish = 1,//鏄惁鍙畬鎴�
@@ -566,7 +618,7 @@
                     Taskno = taskNo,//浠诲姟鍙�
                     Startport = deviceLocatInfo.LocatNo,
                     Endport = loction.LocatNo,
-                    Pallno = model.PalletNo,
+                    Pallno = palletInfo.PalletNo,
                     Crtype = "0",//鍏ュ簱
                     WareHouseNo = houseNo
                 };
@@ -807,7 +859,8 @@
                 stockDetail.WareHouseNo = endLocatInfo.WareHouseNo;//鎵�灞炰粨搴�
                 stockDetail.RoadwayNo = endLocatInfo.RoadwayNo;//鎵�灞炲贩閬�
                 stockDetail.AreaNo = endLocatInfo.AreaNo;//鎵�灞炲尯鍩�
-                stockDetail.LocatNo = endLocatInfo.LocatNo;//鍌ㄤ綅鍦板潃               
+                stockDetail.LocatNo = endLocatInfo.LocatNo;//鍌ㄤ綅鍦板潃
+                stockDetail.UpdateTime = DateTime.Now;//鏇存柊鏃堕棿
                 if (endAreaInfo.Type == "0")//娲佸噣鍖�
                 {
                     stockDetail.PalletStatus = "0";
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 42bd8ac..a4e3fb8 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -730,13 +730,13 @@
                     LogFile.SaveLogToFile($"AGV鐢宠鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData3} ),", logStr);
                     return Ok(resultModel);
                 }
-                if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
-                {
-                    resultModel = new AgvResultModel { code = "1", message = "鐢宠妗跺彿涓虹┖!", data = "", reqCode = "" };
-                    var jsonData3 = JsonConvert.SerializeObject(resultModel);
-                    LogFile.SaveLogToFile($"AGV鐢宠鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData3} ),", logStr);
-                    return Ok(resultModel);
-                }
+                //if (string.IsNullOrWhiteSpace(pallmsg.PalletNo))
+                //{
+                //    resultModel = new AgvResultModel { code = "1", message = "鐢宠妗跺彿涓虹┖!", data = "", reqCode = "" };
+                //    var jsonData3 = JsonConvert.SerializeObject(resultModel);
+                //    LogFile.SaveLogToFile($"AGV鐢宠鍌ㄤ綅-杩斿洖鎶ユ枃锛�( {jsonData3} ),", logStr);
+                //    return Ok(resultModel);
+                //}
                 string taskNo = "";
                 //鍏蜂綋澶勭悊鏂规硶
                 _rcsserver.ApplyLocatNo(pallmsg, _config.AgvHost + _config.GenAgvSchedulingTask, out taskNo);

--
Gitblit v1.8.0