From 9684140a5802b35c1b8f38a3c936748c5e6abd7c Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期三, 05 十一月 2025 15:19:50 +0800
Subject: [PATCH] 格式化代码

---
 Wms/WMS.BLL/HttpServer.cs |  260 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 173 insertions(+), 87 deletions(-)

diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs
index 3158a57..1b7e2a7 100644
--- a/Wms/WMS.BLL/HttpServer.cs
+++ b/Wms/WMS.BLL/HttpServer.cs
@@ -6,6 +6,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
+using System.Threading.Tasks;
 using Utility.Tools;
 using WMS.BLL.Logic;
 using WMS.BLL.LogServer;
@@ -21,7 +22,7 @@
 
 namespace WMS.BLL
 {
-    public class HttpServer:IHttpServer
+    public class HttpServer : IHttpServer
     {
         private static readonly SqlSugarScope Db = DataContext.Db;
         public HttpServer() { }
@@ -35,7 +36,7 @@
                 #region 鍒ゆ柇
                 if (string.IsNullOrEmpty(palletNo))
                 {
-                    throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+                    throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�!");
                 }
                 if (string.IsNullOrEmpty(houseNo))
                 {
@@ -86,8 +87,8 @@
                 {
                     throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒扮┖鎵樼洏鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱");
                 }
-                var pNum = 0;
-                var bNum = 0;
+                var pNum = 0m;
+                var bNum = 0m;
 
                 new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
 
@@ -144,7 +145,12 @@
                 for (int i = 1; i <= 2; i++)
                 {
                     var iStr = i.ToString();
-                    locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr);
+                    try
+                    {
+                        locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr);
+                    }
+                    catch (Exception e)
+                    { }
                     if (locate != null)
                     {
                         break;
@@ -315,7 +321,7 @@
 
                 #endregion
 
-                
+
                 Db.CommitTran();
 
                 #endregion
@@ -337,7 +343,7 @@
         /// <param name="ceng"></param>
         /// <returns></returns>
         /// <exception cref="Exception"></exception>
-        public OutCommandDto RequestLocation(string palletNo, string houseNo,string ceng)
+        public OutCommandDto RequestLocation(string palletNo, string houseNo, string ceng)
         {
             try
             {
@@ -368,8 +374,8 @@
                     throw new Exception("鎵樼洏鏉$爜涓嶅彈WMS绠$悊锛屼笉鍙叆搴擄紒");
 
                 #region 
-                
-                
+
+
                 var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                 //鐗╂枡绫诲埆淇℃伅
                 var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList();
@@ -407,7 +413,7 @@
                             StartLocate = beingTask.StartLocat, // 璧峰浣嶇疆
                             EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆
                             EndRoadway = beingTask.EndRoadway,                           //  鐩爣宸烽亾
-                            
+
                             Order = 999,
                             Type = PLCTypeEnum.AGV
                         };
@@ -426,7 +432,7 @@
                                 Db.Updateable(upShelfOld).ExecuteCommand();
                             }
                         }
-                        
+
                         return comDto;
                     }
                     else
@@ -480,7 +486,7 @@
                             if (beingTask.IsSuccess == 0)
                             {
                                 beingTask.IsSuccess = 1;
-                               
+
                             }
                             beingTask.Status = "1";
                             Db.Updateable(beingTask).ExecuteCommand();
@@ -522,7 +528,7 @@
                 #region 鐢宠鍌ㄤ綅
 
                 SysStorageLocat locate;
-                                var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
+                var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
                 if (sku == null)
                 {
                     throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒板叆搴撳崟鏄庣粏鍖呭惈鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱");
@@ -546,16 +552,14 @@
                     areaList.Add(item);
                 }
 
-                locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "",ceng);
-                
+                locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", ceng);
+
 
                 #endregion
 
                 Db.BeginTran();
                 try
                 {
-
-                    
                     //娣诲姞宸烽亾浣跨敤璁板綍
                     var log = new SysRoadwayUseLog
                     {
@@ -587,7 +591,6 @@
                         Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
                         OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
                         Msg = "鍏ュ簱鍙e埌=>>" + locate.LocatNo + "鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅
-
                     };
                     Db.Insertable(inTask).ExecuteCommand();
                     var asnNo = "";
@@ -595,7 +598,7 @@
                     foreach (DataStockDetail stockModel in stockDetail)
                     {
                         var bindModel = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2"
-                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m=>m.CreateTime).First();
+                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m => m.CreateTime).First();
                         if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo))
                         {
                             bindModel.TaskNo = taskNo;
@@ -628,11 +631,11 @@
                         };
                         Db.Insertable(upShelf).ExecuteCommand();
                     }
-                     
-                    
+
+
                     locate.Status = "2";
                     Db.Updateable(locate).ExecuteCommand();
-                     
+
                     Db.CommitTran();
                     comDto = new OutCommandDto()
                     {
@@ -644,7 +647,7 @@
                         StartLocate = inTask.StartLocat, // 璧峰浣嶇疆
                         EndLocate = inTask.EndLocat, // 鐩爣浣嶇疆 
                         EndRoadway = inTask.EndRoadway,   // 鐩爣宸烽亾
-                        
+
                         Order = 999,
                         Type = PLCTypeEnum.AGV
                     };
@@ -656,7 +659,6 @@
                     throw new Exception(ex.Message);
                 }
                 #endregion
-
 
                 return comDto;
             }
@@ -705,14 +707,14 @@
                 #endregion
 
                 OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠�
-                
+
                 #region 浠g爜鍧�
 
                 //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱/姝e湪鎵ц鐨�)
-                
+
                 var skuNo = ""; //鍏ュ簱鐗╂枡
                 var lotNo = ""; //鍏ュ簱鎵规
-                
+
                 //鐗╂枡淇℃伅
                 var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                 //鐗╂枡绫诲埆淇℃伅
@@ -790,11 +792,11 @@
 
                     #region 鍒ゆ柇璇ユ墭鐩橈紝鏄惁绗﹀悎鍥炲簱鍔熻兘璁惧畾鐨勫洖搴撹鍒�
                     //鑾峰彇瀵瑰簲鍥炲簱瑙勫垯
-                    var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0"&& a.FunSetNo == "Fun041" && a.IsEnable == "NO");
+                    var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun041" && a.IsEnable == "NO");
                     if (function != null)
                     {
                         //鎷h揣瀹屾垚鍚庡厑璁告墭鐩樺洖搴�
-                        var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0"&& a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo);
+                        var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo);
 
                         //楠岃瘉鎷h揣鏄庣粏鏄惁瀛樺湪
                         if (allot != null)
@@ -810,7 +812,7 @@
                 }
 
                 var allotLocate = new AllotLocation();
-                
+
                 #region 鏍规嵁sku纭鍖哄煙鍒掑垎
 
                 //鐗╂枡淇℃伅
@@ -837,10 +839,18 @@
                 {
                     areaList.Add(item);
                 }
-                var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m=>m.RoadwayNo).ToList();
+                var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m => m.RoadwayNo).ToList();
                 //宸烽亾缁勪俊鎭�
                 var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo) && roadStr.Contains(m.RoadwayNo))
-                    .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
+                    .GroupBy(m => m.RoadwayNo)
+                    .Select(m => m.RoadwayNo)
+                    .ToList()
+                    .OrderBy(roadwayNo =>
+                    {
+                        // 绉婚櫎鎵�鏈夐潪鏁板瓧瀛楃锛屽彧淇濈暀鏁板瓧
+                        var numbersOnly = new string(roadwayNo.Where(char.IsDigit).ToArray());
+                        return int.TryParse(numbersOnly, out int result) ? result : 0;
+                    }).ToList();
 
                 #endregion
 
@@ -894,11 +904,11 @@
 
                     var asnNo = "";
                     // 娣诲姞鎵樼洏缁戝畾琛ㄦ墭鐩樺叆搴撲换鍔″彿  liudl
-                    
+
                     foreach (DataStockDetail stockModel in stockDetail)
                     {
                         var bindModel = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2"
-                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m=>m.CreateTime).First();
+                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m => m.CreateTime).First();
                         if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo))
                         {
                             bindModel.TaskNo = taskNo;
@@ -909,7 +919,7 @@
                         }
 
                     }
-                    
+
                     foreach (DataStockDetail stockModel in stockDetail)
                     {
                         //娣诲姞鎵樼洏涓婃灦璁板綍
@@ -945,7 +955,7 @@
                         StartLocate = inTask.StartLocat, // 璧峰浣嶇疆
                         EndLocate = inTask.EndLocat, // 鐩爣浣嶇疆 
                         EndRoadway = inTask.EndRoadway,   // 鐩爣宸烽亾
-                       
+
                         Order = 999,
                         Type = PLCTypeEnum.ConveyorLine
                     };
@@ -1016,12 +1026,12 @@
                 #region 
 
                 //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱鐨�)
-               
+
 
                 var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                 //鐗╂枡绫诲埆淇℃伅
                 var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList();
-                
+
                 var skuNo = "";//鍏ュ簱鐗╂枡
                 var isAddTask = true; //鏄惁娣诲姞鏂颁换鍔�
                 var oldTaskNo = "";  //鏃т换鍔″彿
@@ -1039,12 +1049,12 @@
                 //        throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
                 //    }
                 //}
-                
+
                 var upShelfOld = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
 
                 if (upShelfOld != null) //鏈変笂鏋跺叆搴撲俊鎭�
                 {
-                    
+
                     var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == upShelfOld.TaskNo);
                     if (beingTask == null)
                     {
@@ -1062,7 +1072,7 @@
                             StartLocate = beingTask.StartRoadway, // 璧峰浣嶇疆
                             EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆
                             EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾
-                                 
+
                             Order = 999,
                             Type = PLCTypeEnum.ShuttleCar,
                         };
@@ -1084,7 +1094,7 @@
                         oldTaskNo = beingTask.TaskNo;
                         skuNo = upShelfOld.SkuNo;//鍏ュ簱鐗╂枡
                     }
-                    
+
                 }
                 else //鐢宠鍏ュ簱
                 {
@@ -1128,7 +1138,7 @@
                 #region 鐢宠鍌ㄤ綅
 
                 SysStorageLocat locate;
-               
+
                 var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
                 if (sku == null)
                 {
@@ -1275,7 +1285,7 @@
 
                     locate.Status = "2";
                     Db.Updateable(locate).ExecuteCommand();
-                   
+
                     Db.CommitTran();
                     comDto = new OutCommandDto()
                     {
@@ -1333,7 +1343,7 @@
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
                     var k = new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
                 }
-                
+
                 var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
                 if (locate == null)
                 {
@@ -1468,7 +1478,7 @@
 
                 var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
                 //鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴�
-                if (!stockDetail.Any() && task.EndLocat!= "B100101")//B100101鏄┖鎵樼洏鏀堕泦鍣紝涓嶇敤鏍¢獙搴撳瓨
+                if (!stockDetail.Any() && task.EndLocat != "B100101")//B100101鏄┖鎵樼洏鏀堕泦鍣紝涓嶇敤鏍¢獙搴撳瓨
                 {
                     throw new Exception("娌℃湁鏌ヨ鍒板簱瀛樹俊鎭�");
                 }
@@ -1484,7 +1494,7 @@
                 {
                     throw new Exception($"鏈煡璇㈠埌浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅");
                 }
-                
+
                 task.Status = "2";//浠诲姟鐘舵��
                 task.IsSend = 0;
                 task.IsCancel = 0;
@@ -1525,7 +1535,7 @@
                     locate.Status = "0";
                     Db.Updateable(locate).ExecuteCommand();
                 }
-                
+
                 if (locate2.LocatNo == "B040101")
                 {
                     locate2.Status = "0";
@@ -1536,7 +1546,7 @@
                     locate2.Status = "1";
                     Db.Updateable(locate2).ExecuteCommand();
                 }
-                
+
                 Db.Updateable(stockDetail).ExecuteCommand();
                 Db.CommitTran();
 
@@ -1615,7 +1625,7 @@
                     //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
                     locate2.Status = "1";
                     Db.Updateable(locate2).ExecuteCommand();
-                    
+
                     foreach (var item in stockDetail)
                     {
                         item.WareHouseNo = locate2.WareHouseNo;
@@ -1624,7 +1634,7 @@
                         item.LocatNo = locate2.LocatNo;
                     }
                     Db.Updateable(stockDetail).ExecuteCommand();
-                    
+
 
 
                     #endregion
@@ -1657,13 +1667,13 @@
         /// <param name="str"></param>
         /// <returns></returns>
         /// <exception cref="Exception"></exception>
-        public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId,string outMode, string palletNo, int userId, string url, out string str)
+        public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId, string outMode, string palletNo, int userId, string url, out string str)
         {
             try
             {
                 var outDto1 = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚堬紙娣卞害涓�1鐨勫偍浣嶏級
-                //璁板綍閿欒淇℃伅鐨勯泦鍚� //1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
-                 
+                                                         //璁板綍閿欒淇℃伅鐨勯泦鍚� //1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
+
 
                 var com = new Common();
                 var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0");
@@ -1676,12 +1686,12 @@
                     throw new Exception("浠撳簱鍙烽敊璇�");
                 }
                 var intDetailId = int.Parse(detailId);
-                if (intDetailId <=0) 
+                if (intDetailId <= 0)
                 {
                     throw new Exception("閫夋嫨鐨勫嚭搴撳崟鏄庣粏鍙傛暟閿欒");
                 }
                 //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�)
-                var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.PalletNo == palletNo && a.Status == "0" );
+                var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.PalletNo == palletNo && a.Status == "0");
                 if (item == null) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按
                 {
                     throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
@@ -1704,9 +1714,9 @@
                     var outLocatelist1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B02" && m.Flag == "0").ToList();
                     var outLocatelist2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B05" && m.Flag == "0").ToList();
                     //寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
-                     
+
                     var outModeLocate = outMode;
-                        
+
                     var taskNoStr = "";
 
                     // 鍌ㄤ綅鍙�
@@ -1763,9 +1773,9 @@
                     {
                         throw new Exception("鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱");
                     }
-                    if (locate.WareHouseNo != "W02")
+                    if (locate.WareHouseNo != "W02" && locate.WareHouseNo != "W04")
                     {
-                        throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂");
+                        throw new Exception("鎵樼洏涓嶅湪璐ф灦搴撲笂涔熶笉鍦ㄥ钩搴�");
                     }
                     var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭�
                     if (locateEnd == null)
@@ -1774,11 +1784,20 @@
                     }
                     else if (locateEnd.Status != "0")
                     {
-                        throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+                        var logEnd = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.EndLocat == locateEnd.LocatNo);
+                        if (logEnd != null && logEnd.PalletNo != palletNo)
+                        {
+                            throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+                        }
+                        var detailEnd = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == locateEnd.LocatNo);
+                        if (detailEnd != null && detailEnd.PalletNo != palletNo)
+                        {
+                            throw new Exception("鐩爣鍌ㄤ綅鐘舵�佷笉鏄┖鍌ㄤ綅");
+                        }
                     }
                     #endregion
 
-                    if (locate.Status == "1") //鏈夌墿鍝�
+                    if (locate.WareHouseNo == "W02" && locate.Status == "1") //鏈夌墿鍝�
                     {
                         #region 娣诲姞鍑哄簱浠诲姟
 
@@ -1857,9 +1876,9 @@
                         Db.Updateable(item).ExecuteCommand();
 
                         #endregion
-                        
+
                     }
-                    else if (locate.Status == "3") //鍑哄簱涓�
+                    else if (locate.Status == "3" || locate.WareHouseNo == "W04") //鍑哄簱涓垨宸插湪骞冲簱
                     {
                         #region 鏀瑰彉鏁版嵁
                         //鍒ゆ柇鏄惁鏄凡缁忓嚭杩囧簱鍙堝洖搴擄紙鐘舵�佷负寰呮嫞璐х殑 1锛�
@@ -1883,33 +1902,43 @@
                                 }
                             }
                         }
-                        var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
-                        if (taskNo == null)
+                        if (locate.WareHouseNo == "W04")
                         {
-                            taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱
+                            item.TaskNo = "";
+                            item.Status = "2"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                            item.OutMode = item.OutMode;//鍑哄簱鍙�
+                            //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
+                            Db.Updateable(item).ExecuteCommand();
                         }
-                        if (taskNo == null)
+                        else
                         {
-                            throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父");
+                            var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
+                            if (taskNo == null)
+                            {
+                                taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱
+                            }
+                            if (taskNo == null)
+                            {
+                                throw new Exception($"鎵樼洏鍙凤細{item.PalletNo},鍑哄簱寮傚父");
+                            }
+                            item.TaskNo = taskNo.TaskNo;
+                            item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
+                            item.OutMode = item.OutMode;//鍑哄簱鍙�
+                            //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
+                            Db.Updateable(item).ExecuteCommand();
                         }
-                        item.TaskNo = taskNo.TaskNo;
-                        item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
-                        item.OutMode = item.OutMode;//鍑哄簱鍙�
-                        //item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
-                        Db.Updateable(item).ExecuteCommand();
-                        
                         #endregion
                     }
                     else if (locate.Status == "5") //绉诲嚭涓�
                     {
                         throw new Exception("褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭");
                     }
-                    
+
 
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
                     var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "涓嬪彂鍑哄簱", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId);
                     Db.CommitTran();
-                    
+
                     if (outDto1.Count > 0)
                     {
                         // 姝e紡杩愯绋嬪簭鏀惧紑
@@ -1960,7 +1989,64 @@
                 throw new Exception(e.Message);
             }
         }
+        /// <summary>
+        /// PDA骞冲簱涓嬪彂鍑哄簱
+        /// </summary>
+        /// <param name="soNo"></param>
+        /// <param name="detailId"></param>
+        /// <param name="palletNo"></param>
+        /// <param name="userId"></param>
+        /// <exception cref="Exception"></exception>
+        public void IssueOutHousePk(string soNo, string detailId, string palletNo, int userId)
+        {
+            try
+            {
+                var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0");
+                if (notice == null)
+                {
+                    throw new Exception($"鏈壘鍒皗soNo}鍑哄簱鍗曚俊鎭�");
+                }
+                var detail = Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+                if (detail.WareHouseNo != "W04")
+                {
+                    throw new Exception("浠撳簱鍙烽敊璇�");
+                }
+                var intDetailId = int.Parse(detailId);
+                if (intDetailId <= 0)
+                {
+                    throw new Exception("閫夋嫨鐨勫嚭搴撳崟鏄庣粏鍙傛暟閿欒");
+                }
+                //寮�鍚簨鍔�
+                Db.BeginTran();
 
+                notice.Status = "3";//姝e湪杩涜
+                Db.Updateable(notice).ExecuteCommand();
+
+                //鎵�鏈夎鍑哄簱鐨勫嚭搴撳垎閰嶄俊鎭�(鏈笅鍙戠殑淇℃伅鍜屽緟鎷h揣鐨勪俊鎭�)
+                var allot = Db.Queryable<BllExportAllot>().Where(a => a.IsDel == "0" && a.PalletNo == palletNo && a.Status == "0").ToList();
+                if (allot == null || allot.Count <= 0) //鍒ゆ柇鏄惁鏈夐渶瑕佷笅鍙戠殑鍑哄簱娴佹按
+                {
+                    throw new Exception("褰撳墠鍑哄簱鍗曟嵁鏃犻渶瑕佷笅鍙戠殑鎵樼洏");
+                }
+                //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
+                foreach (var item in allot)
+                {
+                    item.Status = "2";
+                    Db.Updateable(item).ExecuteCommand();
+                }
+
+                //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "涓嬪彂鍑哄簱", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId);
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
+            }
+            catch (Exception e)
+            {
+                //鍥炴粴浜嬪姟
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
 
         #region MyRegion
 
@@ -2008,15 +2094,15 @@
                 //Db.Insertable(exTask).ExecuteCommand();
 
 
-                // 璋冪敤Limes鎺ュ彛鍙戣捣璇烽獙
-                var sendModel = new SendLimesModel()
+                // 璋冪敤Sqp鎺ュ彛鍙戣捣璇烽獙
+                var sendModel = new SendSapQcDetailVm()
                 {
                     QcNo = data.QcNo,
-                    SkuNo = data.SkuNo,
-                    Qty = data.Qty.ToString(),
-                    LotNo = data.LotNo,
-                    SupplierLot = data.SupplierLot,
-                    RequestUser = userName,                       // 璇烽獙浜�
+                    skuNo = data.SkuNo,
+                    skuName = data.SkuNo,
+                    lotNo = data.LotNo,
+                    Qty = Convert.ToDecimal(data.Qty),
+                    SupplierLot = data.SupplierLot
                 };
                 var jsonData = JsonConvert.SerializeObject(sendModel);
                 string response = "";
@@ -2024,14 +2110,14 @@
                 try
                 {
                     var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                    //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Limes绯荤粺鍙戣捣璇烽獙", "Limes");
+                    //response = HttpHelper.DoPost(url, jsonData, "涓婁紶Sap绯荤粺鍙戣捣璇烽獙", "Sap");
                     var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
 
                     ////瑙f瀽杩斿洖鏁版嵁 
                     //var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
                     //if (limesModel.Success == 0)
                     //{
-                    
+
 
                     // 鏇存柊璇烽獙鍗曚俊鎭�
                     data.Status = "1";
@@ -2045,7 +2131,7 @@
                     //}
                     //if (limesModel.Success == -1)
                     //{
-                    
+
                     //    throw new Exception(limesModel.Message);
                     //}
                 }

--
Gitblit v1.8.0