From 4b2a864dfba4038feb6a3887724f6446f72a83a3 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期日, 13 十月 2024 08:47:56 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |   70 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 908c485..594ae57 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1370,6 +1370,16 @@
                                         #endregion
 
                                         #region 娣诲姞绉诲簱浠诲姟淇℃伅
+                                        var stkModel = Db.Queryable<DataStockDetail>().First(m => m.LocatNo == slotBefore.LocatNo);
+                                        string PalletNo = "LN000000";   // 榛樿婕旂ず鎵樼洏
+                                        string SkuNo = "";
+                                        if (stkModel != null)
+                                        {
+                                            PalletNo = stkModel.PalletNo;
+                                            SkuNo = stkModel.SkuNo;
+                                        }
+                                        //鑾峰彇绉诲簱鐨勫簱浣�
+                                        var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, SkuNo, slotBefore.AreaNo);
 
                                         var taskNo = new Common().GetMaxNo("TK");
                                         var exTask = new LogTask    //鍑哄簱浠诲姟
@@ -1379,9 +1389,9 @@
                                             Receiver = "PDA",
                                             IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
 
-                                            StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
-                                            EndLocat = model.OutMode,//鐩爣浣嶇疆
-                                            PalletNo = s.PalletNo,//鎵樼洏鐮�
+                                            StartLocat = slotBefore.LocatNo,//璧峰浣嶇疆
+                                            EndLocat = newSlot,//鐩爣浣嶇疆
+                                            PalletNo = PalletNo,//鎵樼洏鐮�
                                             IsSend = 1,//鏄惁鍙啀娆′笅鍙�
                                             IsCancel = 1,//鏄惁鍙彇娑�
                                             IsFinish = 1,//鏄惁鍙畬鎴�
@@ -1390,7 +1400,7 @@
                                             OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
                                             CreateTime = serverTime, //鍒涘缓鏃堕棿
                                             CreateUser = userId, //鍒涘缓浜�
-                                            Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+                                            Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
                                                                                                                              //FinishDate = serverTime, //瀹屾垚鏃堕棿
                                         };
                                         moveDto.Add(new OutCommandDto()
@@ -1398,10 +1408,10 @@
                                             PalletNo = exTask.PalletNo,//鎵樼洏鍙�
                                             StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
                                             StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
-                                            EndLocate = model.OutMode, // 鐩爣浣嶇疆 
+                                            EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆 
                                             TaskNo = exTask.TaskNo, // 浠诲姟鍙�
                                             TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)
-                                            OutMode = model.OutMode,  //鐩爣鍦板潃
+                                            OutMode = "",  //鐩爣鍦板潃
                                             Order = 1
                                         });
                                         Db.Insertable(exTask).ExecuteCommand();
@@ -1731,7 +1741,7 @@
                     }
 
                     ////鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓�
-                    //locat.Status = "3"; //3 鍑哄簱涓�
+                    //locat.Status = "3"; //   1 鏈夌墿鍝�
                     //locat.UpdateTime = serverTime; //淇敼鏃堕棿
                     //locat.UpdateUser = userId; //淇敼浜�
                     ////淇敼鍌ㄤ綅淇℃伅
@@ -2082,18 +2092,28 @@
                                         #endregion
 
                                         #region 娣诲姞绉诲簱浠诲姟淇℃伅
+                                        var stkModel = Db.Queryable<DataStockDetail>().First(m=>m.LocatNo == slotBefore.LocatNo);
+                                        string PalletNo = "LN000000";   // 榛樿婕旂ず鎵樼洏
+                                        string SkuNo = "";
+                                        if (stkModel != null)
+                                        {
+                                            PalletNo = stkModel.PalletNo;
+                                            SkuNo= stkModel.SkuNo;
+                                        }
+                                        //鑾峰彇绉诲簱鐨勫簱浣�
+                                        var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, SkuNo, slotBefore.AreaNo);
 
                                         var taskNo = new Common().GetMaxNo("TK");
-                                        var exTask = new LogTask    //鍑哄簱浠诲姟
+                                        var exTask = new LogTask    // 绉诲簱浠诲姟
                                         {
                                             TaskNo = taskNo,
                                             Sender = "WMS",
                                             Receiver = "WCS",
                                             IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
 
-                                            StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆
-                                            EndLocat = model.OutMode,//鐩爣浣嶇疆
-                                            PalletNo = s.PalletNo,//鎵樼洏鐮�
+                                            StartLocat = slotBefore.LocatNo,//璧峰浣嶇疆
+                                            EndLocat = newSlot,//鐩爣浣嶇疆
+                                            PalletNo = PalletNo,//鎵樼洏鐮�
                                             IsSend = 1,//鏄惁鍙啀娆′笅鍙�
                                             IsCancel = 1,//鏄惁鍙彇娑�
                                             IsFinish = 1,//鏄惁鍙畬鎴�
@@ -2102,7 +2122,7 @@
                                             OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
                                             CreateTime = serverTime, //鍒涘缓鏃堕棿
                                             CreateUser = userId, //鍒涘缓浜�
-                                            Msg = "WCS绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+                                            Msg = "WCS绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + newSlot + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
                                                                                                                              //FinishDate = serverTime, //瀹屾垚鏃堕棿
                                         };
                                         moveDto.Add(new OutCommandDto()
@@ -2110,10 +2130,10 @@
                                             PalletNo = exTask.PalletNo,//鎵樼洏鍙�
                                             StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
                                             StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
-                                            EndLocate = model.OutMode, // 鐩爣浣嶇疆 
+                                            EndLocate = exTask.EndLocat, // 鐩爣浣嶇疆 
                                             TaskNo = exTask.TaskNo, // 浠诲姟鍙�
                                             TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)
-                                            OutMode = model.OutMode,  //鐩爣鍦板潃
+                                            OutMode = "",  //鐩爣鍦板潃
                                             Order = 1
                                         });
                                         Db.Insertable(exTask).ExecuteCommand();
@@ -2355,20 +2375,31 @@
         }
 
 
-        public string MoveAddress(string oldAddress, string roadWay, string skuNo)//01020201  鎺�-鍒�-灞�-娣卞害
+        public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201  鎺�-鍒�-灞�-娣卞害
         {
             string nowAddress = "";
 
-            //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙
-            var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First();
-            var category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo);
+            var category = new SysMaterialCategory();
+            if (!string.IsNullOrEmpty(skuNo))
+            {
+                //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙
+                var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First();
+                category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo);
+
+                areaNo = category.AreaNo;
+            }
+            else
+            {
+                //todo 寰呴獙璇�
+                category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.AreaNo == areaNo);
+            }
 
             // 鑾峰彇绉诲簱鐩爣鍌ㄤ綅
             var row = int.Parse(oldAddress.Substring(0, 2));
             var lie = int.Parse(oldAddress.Substring(2, 2));
             var ceng = int.Parse(oldAddress.Substring(4, 2));
 
-            var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{category.AreaNo}') order by distNum;";
+            var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng}))  as distNum from SysStorageLocat where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in ('{areaNo}') order by distNum;";
 
             var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
             if (addressModels.Count > 0)   // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅
@@ -3300,6 +3331,7 @@
             }
         }
 
+
         //鍙栨牱鍑哄簱鎷h揣(鏃犳爣绛�)
         public void SampleSoSetQtyPick(string soType, string soNo, string soDetailId, string palletNo, string PickQty, string asnNo, int userId)
         {

--
Gitblit v1.8.0