From 21dfb86aa0d5c1477ae7e3919172bcf82788eb44 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期一, 15 九月 2025 18:46:02 +0800
Subject: [PATCH] 修改托盘出库功能,可出库成品库托盘,修改成品库移库功能

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 1177 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 772 insertions(+), 405 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 507c75b..139e9d3 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -30,6 +30,7 @@
 using System.Drawing.Drawing2D;
 using Model.ModelDto.LogDto;
 using AutoMapper.Internal;
+using System.Diagnostics.Contracts;
 
 namespace WMS.BLL.BllSoServer
 {
@@ -305,26 +306,26 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        public SoResInfo ErpAddExportNotice(SoInfo model)
+        public SoResInfo ErpAddExportNotice(SendSoVm model)
         {
             try
             {
-                if (string.IsNullOrEmpty(model.SoType))
+                if (string.IsNullOrEmpty(model.orderType))
                 {
                     throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
                 }
-                if (string.IsNullOrEmpty(model.OrderCode))
+                if (string.IsNullOrEmpty(model.orderNo))
                 {
-                    throw new Exception("绯荤粺鍗曞彿涓嶅彲涓虹┖!");
+                    throw new Exception("鍑哄簱鍗曞彿涓嶅彲涓虹┖!");
                 }
-                if (model.SoDetails.Count <= 0)
+                if (model.orderDetailList.Count <= 0)
                 {
                     throw new Exception("鍑哄簱鍗曟槑缁嗕笉鍙负绌�!");
                 }
                 //杩斿洖淇℃伅
                 SoResInfo result = new SoResInfo();
 
-                var skuNos = model.SoDetails.Select(a => a.SkuNo).Distinct().ToList();
+                var skuNos = model.orderDetailList.Select(a => a.skuNo).Distinct().ToList();
                 //鏍规嵁鐗╂枡鍙疯幏鍙栫墿鏂欎俊鎭�
                 var skuList = Db.Queryable<SysMaterials>().Where(a => skuNos.Contains(a.SkuNo) && a.IsDel == "0").ToList();
                 //鑾峰彇搴撳瓨鏄庣粏
@@ -333,23 +334,24 @@
                 var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
 
                 string CustomerName = string.Empty;
-                if (!string.IsNullOrEmpty(model.Customer))
+                if (!string.IsNullOrEmpty(model.customerNo))
                 {
                     //瀹㈡埛淇℃伅
-                    var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.Customer);
-                    if (customer == null)
+                    var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.customerNo);
+                    if (customer != null)
                     {
-                        throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!");
+                        //throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!");
+                        CustomerName = customer.CustomerName;
                     }
-                    CustomerName = customer.CustomerName;
-                }               
-                //鎵胯繍鍟嗕俊鎭�
-                var logistics = Db.Queryable<SysLogisticsInfo>().First(m => m.IsDel == "0" && m.CarrierName == model.LogisticsNo);
-                int? logisticsId = null;
-                if (logistics != null)
-                {
-                    logisticsId = logistics.Id;
                 }
+
+                //鎵胯繍鍟嗕俊鎭�
+                //var logistics = Db.Queryable<SysLogisticsInfo>().First(m => m.IsDel == "0" && m.CarrierName == model.LogisticsNo);
+                //int? logisticsId = null;
+                //if (logistics != null)
+                //{
+                //    logisticsId = logistics.Id;
+                //}
                 var billNo = "";
                 var bl = true;
                 do
@@ -366,52 +368,64 @@
                 try
                 {
                     var list = new List<BllExportNoticeDetail>();
+                    var houseNo = string.Empty;
                     //娣诲姞鍑哄簱鍗�
-                    foreach (var d in model.SoDetails)
+                    foreach (var d in model.orderDetailList)
                     {
-                        if (d.Qty < 1)
+                        if (!string.IsNullOrEmpty(houseNo))
+                        {
+                            if (houseNo != d.wareHouseNo)
+                            {
+                                throw new Exception("鍚屼釜鍑哄簱鍗曚笅鏄庣粏鍒楄〃鍙戝嚭浠撳簱涓嶄竴鑷�!");
+                            }
+                        }
+                        else
+                        {
+                            houseNo = d.wareHouseNo;
+                        }
+                        if (d.skuQty < 1)
                         {
                             throw new Exception("鍑哄簱鏁伴噺蹇呴』澶т簬0");
                         }
-                        var sku = skuList.FirstOrDefault(a => a.SkuNo == d.SkuNo);
+                        var sku = skuList.FirstOrDefault(a => a.SkuNo == d.skuNo);
                         if (sku == null)
                         {
-                            throw new Exception($"鐗╂枡淇℃伅涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.SkuNo}");
+                            throw new Exception($"鐗╂枡淇℃伅涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.skuNo}");
                         }
                         //0:鎴愬搧鍑哄簱銆�1:棰嗘枡鍑哄簱銆�3锛氱墿鏂欏彇鏍峰嚭搴撱��4:涓嶅悎鏍煎搧鍑哄簱銆�6:浠e偍鍑哄簱銆�7:鍏朵粬鍑哄簱銆� ///2:鎶芥鍑哄簱銆�5:涓棿鍝佸嚭搴撱��8:瀵勫瓨鍑哄簱
-                        if (model.SoType == "0" || model.SoType == "3" || model.SoType == "4" || model.SoType == "7")
+                        if (model.orderType == "0" || model.orderType == "3" || model.orderType == "4" || model.orderType == "7")
                         {
-                            if (string.IsNullOrWhiteSpace(d.LotNo))
+                            if (string.IsNullOrWhiteSpace(d.lotNo))
                             {
                                 throw new Exception("鎵规涓嶅彲涓虹┖!");
                             }
-                        }                        
+                        }
                         //搴撳瓨鏄庣粏
                         List<DataStockDetail> stockDetails;
                         //鎸囧畾鎵规
-                        if (!string.IsNullOrWhiteSpace(d.LotNo))
+                        if (!string.IsNullOrWhiteSpace(d.lotNo))
                         {
-                            stockDetails = stockDetailList.Where(s => s.SkuNo == d.SkuNo && s.LotNo == d.LotNo).ToList();
+                            stockDetails = stockDetailList.Where(s => s.SkuNo == d.skuNo && s.LotNo == d.lotNo).ToList();
                             if (stockDetails.Count < 1)
                             {
-                                throw new Exception($"搴撳瓨涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.SkuNo}");
+                                throw new Exception($"搴撳瓨涓湭鏌ヨ鍒板嚭搴撶墿鏂欎俊鎭�:{d.skuNo}");
                             }
                             //鍒ゆ柇鏁伴噺
                             var qty = stockDetails.Sum(s => s.Qty - s.FrozenQty - s.LockQty);
-                            if (d.Qty > qty)
+                            if (d.skuQty > qty)
                             {
-                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}銆亄d.LotNo} 搴撳瓨鏁伴噺涓嶈冻");
+                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.skuNo}銆亄d.lotNo} 搴撳瓨鏁伴噺涓嶈冻");
                             }
                             //搴撳瓨淇℃伅
-                            var stockInfo = stockList.First(w => w.SkuNo == d.SkuNo && w.LotNo == d.LotNo);
+                            var stockInfo = stockList.First(w => w.SkuNo == d.skuNo && w.LotNo == d.lotNo);
                             if (stockInfo == null)
                             {
-                                throw new Exception($"鎬诲簱瀛樹腑鏈煡璇㈠埌鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}");
+                                throw new Exception($"鎬诲簱瀛樹腑鏈煡璇㈠埌鍑哄簱鐗╂枡淇℃伅:{d.skuNo}");
                             }
                             //鍒ゆ柇鎬诲簱瀛樻暟閲�
-                            if (d.Qty > stockInfo.Qty - stockInfo.FrozenQty - stockInfo.LockQty)
+                            if (d.skuQty > stockInfo.Qty - stockInfo.FrozenQty - stockInfo.LockQty)
                             {
-                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo}銆亄d.LotNo} 搴撳瓨鏁伴噺涓嶈冻");
+                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.skuNo}銆亄d.lotNo} 搴撳瓨鏁伴噺涓嶈冻");
                             }
                             //娣诲姞鍑哄簱鍗曟槑缁�
                             var noticeDetail = new BllExportNoticeDetail()
@@ -420,36 +434,36 @@
                                 SkuNo = sku.SkuNo,
                                 SkuName = sku.SkuName,
                                 Standard = sku.Standard,
-                                LotNo = d.LotNo,
+                                LotNo = d.lotNo,
                                 LotText = stockInfo.LotText,
-                                Qty = d.Qty,
+                                Qty = d.skuQty,
                                 AllotQty = 0,
                                 FactQty = 0,
                                 CompleteQty = 0,
                                 PackagNo = sku.PackagNo,
                                 Price = sku.Price,
-                                Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty,
+                                Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.skuQty,
                                 IsBale = "",
                                 IsBelt = "",
                                 SupplierLot = stockInfo.SupplierLot,
                                 IsWave = "0",
                                 WaveNo = "",
-                                IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo) ? "0" : "1",
-                                IsMixBox = d.IsMixBox,
+                                IsIssueLotNo = string.IsNullOrWhiteSpace(d.lotNo) ? "0" : "1",
+                                IsMixBox = "0",
 
-                                OrderDetailCode = d.OrderDetailCode,
+                                OrderDetailCode = d.lineNo,
 
                                 CreateUser = 0,
                             };
                             list.Add(noticeDetail);
                             //鏇存柊搴撳瓨閿佸畾鏁伴噺
-                            stockInfo.LockQty += d.Qty;
+                            stockInfo.LockQty += d.skuQty;
                             var i = Db.Updateable(stockInfo).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
 
                             SoDetailInfo soDetail = new SoDetailInfo();
-                            soDetail.OrderDetailCode = d.OrderDetailCode;
-                            soDetail.LockQty = d.Qty;
-                            soDetail.LotNo = d.LotNo;
+                            soDetail.OrderDetailCode = d.lineNo;
+                            soDetail.LockQty = d.skuQty;
+                            soDetail.LotNo = d.lotNo;
 
                             soDetailList.Add(soDetail);
                         }
@@ -458,12 +472,12 @@
                             Dictionary<int, decimal> dic = new Dictionary<int, decimal>();
                             decimal q1 = 0;
                             //棣栧厛鏌ヨ褰撳墠杩欑鐗╂枡鎵规鍙蜂负绌虹殑
-                            stockDetails = stockDetailList.Where(s => s.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList();
+                            stockDetails = stockDetailList.Where(s => s.SkuNo == d.skuNo && string.IsNullOrWhiteSpace(s.LotNo)).ToList();
                             if (stockDetails.Count > 0)
                             {
                                 q1 = (decimal)stockDetails.Sum(s => s.Qty - s.FrozenQty - s.LockQty);
                                 //搴撳瓨淇℃伅
-                                var stockInfo = stockList.FirstOrDefault(w => w.SkuNo == d.SkuNo && string.IsNullOrWhiteSpace(w.LotNo));
+                                var stockInfo = stockList.FirstOrDefault(w => w.SkuNo == d.skuNo && string.IsNullOrWhiteSpace(w.LotNo));
                                 if (stockInfo != null)
                                 {
                                     var q2 = stockInfo.Qty - stockInfo.FrozenQty - stockInfo.LockQty;
@@ -471,29 +485,29 @@
                                     {
                                         q1 = q2;
                                     }
-                                    if (d.Qty > q1)
+                                    if (d.skuQty > q1)
                                     {
                                         dic.Add(stockInfo.Id, q1);
                                     }
                                     else
                                     {
-                                        dic.Add(stockInfo.Id, d.Qty);
+                                        dic.Add(stockInfo.Id, d.skuQty);
                                     }
                                 }
                             }
                             //濡傛灉鎵规鍙蜂负绌虹殑鏁伴噺涓嶅锛屾牴鎹壒娆″厛杩涘厛鍑哄師鍒欐煡鎵惧叾瀹冩壒娆$殑
-                            if (d.Qty > q1)
+                            if (d.skuQty > q1)
                             {
-                                stockDetails = stockDetailList.Where(m => m.SkuNo == d.SkuNo && !string.IsNullOrWhiteSpace(m.LotNo)).OrderBy(s => s.LotNo).ToList();
+                                stockDetails = stockDetailList.Where(m => m.SkuNo == d.skuNo && !string.IsNullOrWhiteSpace(m.LotNo)).OrderBy(s => s.LotNo).ToList();
                                 foreach (var demo in stockDetails)
                                 {
-                                    if (q1 >= d.Qty)
+                                    if (q1 >= d.skuQty)
                                     {
                                         break;
                                     }
                                     var q2 = demo.Qty - demo.FrozenQty - demo.LockQty;
                                     //搴撳瓨淇℃伅
-                                    var stockInfo = stockList.FirstOrDefault(w => w.SkuNo == d.SkuNo && w.LotNo == demo.LotNo);
+                                    var stockInfo = stockList.FirstOrDefault(w => w.SkuNo == d.skuNo && w.LotNo == demo.LotNo);
                                     if (stockInfo == null)
                                     {
                                         continue;
@@ -508,21 +522,21 @@
                                     {
                                         q2 = q3;
                                     }
-                                    if (q2 > d.Qty - q1)
-                                    {                                        
+                                    if (q2 > d.skuQty - q1)
+                                    {
                                         if (!dic.ContainsKey(stockInfo.Id))
                                         {
-                                            dic.Add(stockInfo.Id, d.Qty - q1);
+                                            dic.Add(stockInfo.Id, d.skuQty - q1);
                                         }
                                         else
                                         {
                                             //鏇存柊鍊�
-                                            dic[stockInfo.Id] += d.Qty - q1;
+                                            dic[stockInfo.Id] += d.skuQty - q1;
                                         }
-                                        q1 += d.Qty - q1;
+                                        q1 += d.skuQty - q1;
                                     }
                                     else
-                                    {                                       
+                                    {
                                         if (!dic.ContainsKey(stockInfo.Id))
                                         {
                                             dic.Add(stockInfo.Id, (decimal)q2);
@@ -536,9 +550,9 @@
                                     }
                                 }
                             }
-                            if (d.Qty > q1)
+                            if (d.skuQty > q1)
                             {
-                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo} 搴撳瓨鏁伴噺涓嶈冻");
+                                throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.skuNo} 搴撳瓨鏁伴噺涓嶈冻");
                             }
                             foreach (var s in dic)
                             {
@@ -546,7 +560,7 @@
                                 var item = new BllExportNoticeDetail()
                                 {
                                     SONo = billNo,
-                                    OrderDetailCode = d.OrderDetailCode,
+                                    OrderDetailCode = d.lineNo,
                                     SkuNo = sku.SkuNo,
                                     SkuName = sku.SkuName,
                                     Standard = sku.Standard,
@@ -558,14 +572,14 @@
                                     CompleteQty = 0,
                                     PackagNo = sku.PackagNo,
                                     Price = sku.Price,
-                                    Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty,
+                                    Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.skuQty,
                                     IsBale = "",
                                     IsBelt = "",
                                     SupplierLot = st.SupplierLot,
                                     IsWave = "0",
                                     WaveNo = "",
-                                    IsIssueLotNo = string.IsNullOrWhiteSpace(d.LotNo) ? "0" : "1",
-                                    IsMixBox = d.IsMixBox,
+                                    IsIssueLotNo = string.IsNullOrWhiteSpace(d.lotNo) ? "0" : "1",
+                                    IsMixBox = "0",
 
                                     CreateUser = 0,
                                 };
@@ -575,7 +589,7 @@
                                 var i = Db.Updateable(st).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
 
                                 SoDetailInfo soDetail = new SoDetailInfo();
-                                soDetail.OrderDetailCode = d.OrderDetailCode;
+                                soDetail.OrderDetailCode = d.lineNo;
                                 soDetail.LockQty = s.Value;
                                 soDetail.LotNo = st.LotNo;
 
@@ -586,19 +600,38 @@
                     var notice = new BllExportNotice()
                     {
                         SONo = billNo,
-                        OrderCode=model.OrderCode,
-                        Type = model.SoType,
+                        OrderCode = model.orderNo,
+                        Type = model.orderType,
                         Status = "0",
-                        Origin = "WMS",
-                        CustomerNo = model.Customer,
+                        Origin = "SAP",
+                        CustomerNo = model.customerNo,
                         CustomerName = CustomerName,
-                        LogisticsId = logisticsId,
+                        LogisticsId = null,//logisticsId,
                         IsWave = "0",
                         WaveNo = "",
                         IsDespatch = "0",
 
                         CreateUser = 0,
                     };
+                    if (houseNo == "1000" || houseNo == "1001" || houseNo == "2000" || houseNo == "2002" || houseNo == "2003" || houseNo == "2004")
+                    {
+                        notice.WareHouseNo = "W02";
+                    }
+                    else if (houseNo == "4000")
+                    {
+                        notice.WareHouseNo = "W01";
+                    }
+                    else
+                    {
+                        // houseNo鎶涘紓甯革紝閬垮厤鍑虹幇闈濿01锛學02鐨勫��
+                        throw new Exception($"涓嶆敮鎸佺殑鍙戝嚭浠撳簱缂栧彿锛歿houseNo}锛屼粎鏀寔鐢熸垚W01鍜學02浠撳簱鐨勫崟鎹�");
+                    }
+                    //棰濆鏍¢獙锛堝彲閫夛紝鍙岄噸淇濋殰锛�
+                    if (notice.WareHouseNo != "W01" && notice.WareHouseNo != "W02")
+                    {
+                        throw new Exception($"浠撳簱缂栧彿寮傚父锛歿notice.WareHouseNo}锛屼粎鍏佽W01鍜學02");
+                    }
+
 
                     var n = Db.Insertable<BllExportNotice>(notice).ExecuteCommand();
                     var m = Db.Insertable<BllExportNoticeDetail>(list).ExecuteCommand();
@@ -630,7 +663,7 @@
         }
 
         //鍥炰紶鍑哄簱鍗�
-        public bool FinishSo(int id, string url, int userId)
+        public bool FinishSo(int id, string url, string url2, int userId)
         {
             try
             {
@@ -652,34 +685,83 @@
                 {
                     throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
                 }
-                var list = new List<SoDetail>();
-                foreach (var d in detail)
+                if (notice.Type == "2")//鎶芥鍑哄簱
                 {
-                    var item = new SoDetail()
+                    var list = new List<SendSampleSku>();
+                    foreach (var d in detail)
                     {
-                        SkuNo = d.SkuNo,
-                        LotNo = d.LotNo,
-                        Qty = (decimal)d.CompleteQty
-                    };
-                    list.Add(item);
-                }
-                var soInfo = new SoInfo()
-                {
-                    OrderCode = notice.OrderCode,
-                    SoDetails = list
-                };
-                #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
-                //绯荤粺瀵规帴鍚庢斁寮�
-                /*var jsonData = JsonConvert.SerializeObject(soInfo);
+                        var item = new SendSampleSku()
+                        {
+                            skuNo = d.SkuNo,
+                            skuName = d.SkuName,
+                            lotNo = d.LotNo,
+                            skuQty = Convert.ToDecimal(d.CompleteQty)
+                        };
+                        list.Add(item);
+                    }
+                    SendSampleVm sendSampleVm = new SendSampleVm();
+                    sendSampleVm.pallDataList = list;
 
-                var response = HttpHelper.DoPost(url, jsonData, "鍑哄簱鍗曞畬鎴愪笂浼�", "ERP");
-                
-                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                if (obj.Success != 0)
+                    SapSampleVm sapSampleVm = new SapSampleVm();
+                    sapSampleVm.data = sendSampleVm;
+
+                    #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+                    //绯荤粺瀵规帴鍚庢斁寮�
+                    /*var jsonData = JsonConvert.SerializeObject(sapSampleVm);
+
+                    var response = HttpHelper.DoPost(url2, jsonData, "鎶芥鍑哄簱瀹屾垚涓婁紶", "ERP");
+
+                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                    if (obj.Success != 0)
+                    {
+                        throw new Exception("涓婁紶澶辫触" + obj.Message);
+                    }*/
+                    #endregion
+                }
+                else
                 {
-                    throw new Exception("涓婁紶澶辫触" + obj.Message);
-                }*/
-                #endregion
+                    var list = new List<BackSoDetail>();
+                    foreach (var d in detail)
+                    {
+                        var mater = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == d.SkuNo);
+                        if (mater == null)
+                        {
+                            throw new Exception($"澶嶆牳澶辫触锛岀墿鏂欑紪鐮�:{d.SkuNo}鐨勭墿鏂欎俊鎭笉瀛樺湪");
+                        }
+                        var item = new BackSoDetail()
+                        {
+                            POSNR = d.OrderDetailCode,
+                            MATNR = d.SkuNo,
+                            CHARG = d.LotNo,
+                            LFIMG = d.CompleteQty.ToString(),
+                            MEINS = mater.UnitNo,
+                            HSDAT = "",
+                            VFDAT = ""
+                        };
+                        list.Add(item);
+                    }
+                    var soInfo = new BackSoVm()
+                    {
+                        ZUUID = Guid.NewGuid().ToString(),
+                        VBELN = notice.OrderCode,
+                        WERKS = notice.CustomerNo,
+                        LFART = notice.Type,
+                        WADAT_IST = Convert.ToDateTime(notice.CompleteTime).ToString("yyyy-MM-dd"),
+                        ITEM = list
+                    };
+                    #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+                    //绯荤粺瀵规帴鍚庢斁寮�
+                    var jsonData = JsonConvert.SerializeObject(soInfo);
+
+                    var response = HttpHelper.DoPost(url, jsonData, "鍑哄簱鍗曞畬鎴愪笂浼�", "ERP");
+
+                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                    if (obj.Success != 0)
+                    {
+                        throw new Exception("涓婁紶澶辫触" + obj.Message);
+                    }
+                    #endregion
+                }
 
                 notice.Status = "6";
                 notice.CheckTime = DateTime.Now;
@@ -694,14 +776,14 @@
                 throw new Exception(e.Message);
             }
         }
-        
+
         //鐢熶骇鍙枡
         public bool MESProductionCall(ProductionCallVm model)
         {
             try
             {
                 //楠岃瘉鏄惁澶囨枡瀹屾垚
-                var notice = Db.Queryable<BllExportNotice>().First(m=>m.IsDel == "0" && m.OrderCode == model.OrderCode);
+                var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.OrderCode == model.OrderCode);
                 if (notice == null)
                 {
                     throw new Exception("鏈煡璇㈠埌姝ゅ伐鍗曞彿");
@@ -722,7 +804,7 @@
                     throw new Exception("褰撳墠鍗曟嵁鐗╂枡鍦ㄦ鎶曟枡鍙e彨鏂欎俊鎭凡鏀跺埌锛屾棤闇�閲嶅涓嬪彂");
                 }
                 //鍒ゆ柇褰撳墠鎶曟枡鍙f槸鍚︽湁鍏跺畠宸ュ崟鎶曟枡
-                var call2 = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == model.PutInLocation && m.OrderCode != model.OrderCode );
+                var call2 = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == model.PutInLocation && m.OrderCode != model.OrderCode);
                 if (call2 != null)
                 {
                     throw new Exception("姝ゆ姇鏂欏彛鏈夊叾瀹冨崟鎹墿鏂欏彨鏂欎俊鎭�");
@@ -753,7 +835,7 @@
                     foreach (var pro in proCallList)
                     {
                         foreach (var item in locateList)
-                        { 
+                        {
                             //鑾峰彇澶囧ソ鏂欑殑鎵樼洏淇℃伅
                             var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.SkuNo == pro.SkuNo && !list.Contains(m.Id)).Select(m => m.PalletNo).ToList();
 
@@ -781,7 +863,7 @@
                             };
                             Db.Insertable(exTask).ExecuteCommand();
                             //鏇存敼鍒嗛厤琛ㄧ殑浠诲姟鍙峰垪
-                            var allot = Db.Queryable<BllExportAllot>().First(m=>m.IsDel == "0" && m.Status =="2" && m.SONo == notice.SONo &&  m.StockId == stockDetail.Id);
+                            var allot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.StockId == stockDetail.Id);
                             allot.TaskNo = taskNo;
                             Db.Updateable(allot).ExecuteCommand();
                             list.Add(allot.Id);
@@ -790,14 +872,14 @@
                             item.PalletNo = stockDetail.PalletNo;
                             Db.Updateable(item).ExecuteCommand();
 
-                            var locate = Db.Queryable<SysStorageLocat>().First(m=>m.LocatNo == stockDetail.LocatNo);
+                            var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == stockDetail.LocatNo);
                             locate.Status = "5";
                             Db.Updateable(locate).ExecuteCommand();
 
                             break;
                         }
                     }
-                    
+
 
                     Db.CommitTran();
                 }
@@ -806,7 +888,7 @@
                     Db.RollbackTran();
                     throw new Exception(e.Message);
                 }
-                
+
                 return true;
             }
             catch (Exception e)
@@ -846,8 +928,8 @@
                 .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
                 .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
                 .LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
-                .LeftJoin<SysWareHouse>((a, b, c, d, e,f) => a.WareHouseNo == f.WareHouseNo)
-                .Select((a, b, c, d, e,f) => new ExportNoticeDto()
+                .LeftJoin<SysWareHouse>((a, b, c, d, e, f) => a.WareHouseNo == f.WareHouseNo)
+                .Select((a, b, c, d, e, f) => new ExportNoticeDto()
                 {
                     Id = a.Id,
                     SONo = a.SONo,
@@ -906,7 +988,7 @@
                 switch (type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
                 {
                     case "0"://鎴愬搧鍑哄簱
-                        if (house !="W01")
+                        if (house != "W01")
                         {
                             throw new Exception("鎴愬搧鍑哄簱鍙兘閫夋嫨鎴愬搧搴�");
                         }
@@ -1014,7 +1096,7 @@
                     skuList = skuList.Where(m => m.SkuNo == "100088").ToList();
                 }
                 skuStrList = skuList.Select(m => m.SkuNo).ToList();
-                var areaStr = new List<string>() { "B02", "B05", "B08" };
+                var areaStr = new List<string>() { "B06", "B07", "B09" };
                 var stockRst = new StockServer();
                 var stockDetailRst = new StockDetailServer();
                 Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
@@ -1105,7 +1187,7 @@
                 switch (model.WareHouseNo)
                 {
                     case "W01"://鎴愬搧搴�
-                        if (skuList.Any(m=>m.Type !="2"))
+                        if (skuList.Any(m => m.Type != "2"))
                         {
                             throw new Exception("浠撳簱涓庡嚭搴撶墿鏂欎笉绗�");
                         }
@@ -1874,10 +1956,10 @@
                         //    }
                         //}
 
-                        if (d.Qty != d.CompleteQty)
-                        {
-                            throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
-                        }
+                        //if (d.Qty != d.CompleteQty)
+                        //{
+                        //    throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
+                        //}
                         #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡)
                         /*var sq = stocks.Where(s => s.SkuNo == d.SkuNo);
                         if (!string.IsNullOrWhiteSpace(d.LotNo))
@@ -1998,7 +2080,7 @@
                    .AndIF(!string.IsNullOrWhiteSpace(model.BitPalletMark), m => m.BitPalletMark == model.BitPalletMark)
                    .And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
                    .And(a => a.Status == "0")
-                   .And(a => a.WareHouseNo == "W01")
+                   .And(a => a.WareHouseNo == "W01" || a.WareHouseNo == "W02")
                    .ToExpression();
             var data = await Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToPageListAsync(model.Page, model.Limit, count);
             //data.Select(m => m.Status == "0" && m.IsDel == "0");
@@ -2038,6 +2120,12 @@
                 if (detailGroup.Count > 1)
                 {
                     throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+                }
+
+                var locatStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == outMode && w.Status == "0");
+                if (locatStart == null)
+                {
+                    throw new Exception($"鐩爣鍌ㄤ綅涓嶅瓨鍦ㄦ垨闈炵┖闂诧紝璇锋鏌�");
                 }
 
 
@@ -2151,14 +2239,16 @@
 
                     outDtoList.Add(new OutCommandDto()
                     {
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+
                         PalletNo = palletNo,//鎵樼洏鍙�
                         StartLocate = locate.LocatNo, // 璧峰浣嶇疆
                         StartRoadway = locate.RoadwayNo,
                         EndLocate = outMode, // 鐩爣浣嶇疆 
-                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
-                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
-                        OutMode = outMode,  //鐩爣鍦板潃
-                        Order = 1
+
+                        Order = 999,
+                        Type = PLCTypeEnum.AGV
                     });
                     #endregion
 
@@ -2179,6 +2269,8 @@
                     Db.Updateable(locate).ExecuteCommand();
 
 
+                    locatStart.Status = "2";//瑕佸叆搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍏ュ簱
+                    Db.Updateable(locate).ExecuteCommand();
                     #endregion
 
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
@@ -2222,6 +2314,264 @@
                     }
 
                     return outDtoList;
+                }
+                catch (Exception e)
+                {
+                    Db.RollbackTran();
+                    throw new Exception(e.Message);
+                }
+
+
+                #endregion
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
+
+        /// <summary>
+        /// 鎵樼洏鍑哄簱锛堝瘑闆嗗簱锛�
+        /// </summary>
+        /// <param name="palletNo"></param>
+        /// <param name="outMode"></param>
+        /// <param name="userId"></param>
+        /// <param name="url"></param>
+        /// <param name="str"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public List<OutCommandDto> IssuePalletNoOutMk(string palletNo, string outMode, int userId, string url, out string str)
+        {
+            try
+            {
+                //鍒ゆ柇鎵樼洏鍙锋槸鍚︿负绌�
+                if (string.IsNullOrWhiteSpace(palletNo))
+                {
+                    throw new Exception($"鎵樼洏鍙蜂笉鑳戒负绌猴紝璇锋牳瀹�");
+                }
+
+                str = "";
+                var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0").ToList();
+
+                if (stockDetailList.Count == 0)
+                {
+                    throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+                }
+                var stocka = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetailList[0].SkuNo);
+
+
+                //楠岃瘉搴撳瓨鎵樼洏鐘舵��
+                if (stockDetailList[0].Status != "0")
+                {
+                    throw new Exception($"褰撳墠鎵樼洏鏈浜庡緟鍒嗛厤鐘舵�侊紝璇锋牳瀹烇紒");
+                }
+                //鍒ゆ柇鎵樼洏搴撳瓨淇℃伅鍒嗙粍鍚庢槸鍚﹀ぇ浜�1鏉�
+                var detailGroup = stockDetailList.GroupBy(m => new { m.SkuNo, m.PalletNo, m.WareHouseNo, m.LocatNo }).ToList();
+                if (detailGroup.Count > 1)
+                {
+                    throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+                }
+
+                var locatStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == stockDetailList[0].LocatNo && w.Status == "1");
+                if (locatStart == null)
+                {
+                    throw new Exception($"璧峰鍌ㄤ綅涓嶅瓨鍦ㄦ垨闈炵┖闂诧紝璇锋鏌�");
+                }
+                #region 闆嗗悎 
+
+                var outDto1 = new List<OutCommandDto>(); //鍏堝嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负1鐨勫偍浣嶏級
+                var outDto2 = new List<OutCommandDto>(); //鍚庡嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负2鐨勫偍浣嶏級
+                var moveDto = new List<OutCommandDto>(); //瑕佺Щ搴撴暟鎹殑闆嗗悎
+
+                #endregion
+                var com = new Common();
+                var allot = new AllotLocation();
+
+                #region 闆嗗悎 
+              
+                Db.BeginTran();
+                try
+                {
+                    List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
+
+                    var taskNoStr = "";
+
+                    // 鍌ㄤ綅鍙�
+                    var locateNo = locatStart.LocatNo;
+                    List<string> locateListStrs = new List<string>();
+                    locateListStrs.Add(locateNo);
+
+                    var row1 = int.Parse(locatStart.LocatNo.Substring(2, 2));
+                    var row2 = int.Parse(locatStart.AisleOne.Substring(2, 2));
+                    //闇�瑕佺Щ搴撶殑淇℃伅 
+                    var NeedMoveInfo = IsNeedMoveLocate(locatStart, locateListStrs, out int isOut);
+                    if (isOut == 1)
+                    {
+                        //宸烽亾缁勪腑鏈夊叆搴撴垨绉诲叆鐨勫偍浣嶏紝鎴栬�呮槸褰撳墠鍌ㄤ綅鍓嶆湁鍌ㄤ綅鏈笅鍙戞垚鍔熺殑浠诲姟
+                        throw new Exception($"宸烽亾缁勪腑鏈夊叆搴撴垨绉诲叆鐨勫偍浣嶏紝璇风◢鍚庡啀璇�");
+                    }
+                    if (NeedMoveInfo.Count > 0)//闇�瑕佺Щ搴�
+                    {
+                        //鍒ゆ柇搴撳唴绌哄偍浣嶆槸鍚﹀
+                        var okRoad = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0" && m.WareHouseNo == locatStart.WareHouseNo).Select(m => m.RoadwayNo).ToList();
+                        var nullSlotNum = Db.Queryable<SysStorageLocat>().Count(m => m.RoadwayNo != locatStart.RoadwayNo && okRoad.Contains(m.RoadwayNo) && m.Status == "0");
+                        //鍒ゆ柇绌哄偍浣嶇殑鏁伴噺鏄惁澶т簬闇�瑕佺Щ搴撶殑鏁伴噺
+                        if (nullSlotNum >= NeedMoveInfo.Count)
+                        {
+                            foreach (var s in NeedMoveInfo)
+                            {
+                                //鍌ㄤ綅鍒�
+                                var rows = int.Parse(s.Substring(2, 2));
+
+                                //鑾峰彇绉诲簱鍌ㄤ綅
+                                var moveAddress = GetMiJiMoveAddress(s, locatStart.AisleOne);
+                                var tary = Db.Queryable<DataStockDetail>().First(m => m.LocatNo == s);
+                                if (string.IsNullOrWhiteSpace(moveAddress)) // 鍒ゆ柇鏄惁鑾峰彇鍒扮Щ搴撶殑搴撲綅
+                                {
+                                    throw new Exception($"鍑哄簱鍓嶆湁璐х墿锛岄渶绉诲簱浣嗘湭鏌ヨ鍒扮┖鍌ㄤ綅");
+                                }
+                                else
+                                {
+                                    var ykTaskNo = new Common().GetMaxNo("TK");
+                                    var ykTask = new LogTask    //鍑哄簱浠诲姟
+                                    {
+                                        TaskNo = ykTaskNo,
+                                        Sender = "WMS",
+                                        Receiver = "WCS",
+                                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+                                        StartLocat = s,//璧峰浣嶇疆
+                                        EndLocat = moveAddress,//outMode,//鐩爣浣嶇疆
+                                        PalletNo = tary.PalletNo,//鎵樼洏鐮�
+                                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                                        IsCancel = 1,//鏄惁鍙彇娑�
+                                        IsFinish = 1,//鏄惁鍙畬鎴�
+                                        Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                                        OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                                        Msg = "浠�" + s + "鍒�" + moveAddress + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+                                    };
+                                    Db.Insertable(ykTask).ExecuteCommand();
+                                    logTaskList.Add(ykTask);
+
+                                    outDto1.Add(new OutCommandDto()
+                                    {
+                                        PalletNo = ykTask.PalletNo,//鎵樼洏鍙�
+                                        StartLocate = ykTask.StartLocat, // 璧峰浣嶇疆
+                                        StartRoadway = locatStart.RoadwayNo,//鍏跺疄宸烽亾
+                                        EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆 
+                                        TaskNo = ykTaskNo, // 浠诲姟鍙�
+                                        TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�  
+                                        Order = Math.Abs(row2 - rows),
+                                        Type = PLCTypeEnum.ShuttleCar
+
+                                    });
+                                    var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s);
+                                    var slotChange2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == moveAddress);
+
+                                    slotChange.Status = "5"; //鏀瑰彉鐘舵�侊紙姝e湪鍑哄簱锛�
+                                    slotChange2.Status = "4"; // 鏀瑰彉鐘舵�侊紙姝e湪绉诲叆锛�
+                                    Db.Updateable(slotChange).ExecuteCommand();
+                                    Db.Updateable(slotChange2).ExecuteCommand();
+                                }
+                            }
+                        }
+                        else
+                        {
+                            throw new Exception($"鍑哄簱鍓嶆湁璐х墿锛岄渶绉诲簱浣嗙┖鍌ㄤ綅涓嶅绉诲簱");
+                        }
+                    }
+                    #region 娣诲姞鍑哄簱浠诲姟
+
+                    var taskNo = new Common().GetMaxNo("TK");
+                    var exTask = new LogTask    //鍑哄簱浠诲姟
+                    {
+                        TaskNo = taskNo,
+                        Sender = "WMS",
+                        Receiver = "WCS",
+                        IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+                        StartLocat = locatStart.LocatNo,//璧峰浣嶇疆
+                        EndLocat = outMode,//outMode,//鐩爣浣嶇疆
+                        PalletNo = palletNo,//鎵樼洏鐮�
+                        IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+                        IsCancel = 1,//鏄惁鍙彇娑�
+                        IsFinish = 1,//鏄惁鍙畬鎴�
+                        Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
+                        Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+                        OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
+                        Msg = "浠�" + locatStart.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+                    };
+                    Db.Insertable(exTask).ExecuteCommand();
+                    logTaskList.Add(exTask);
+                    var endroad = allot.RoadwayToStationNum(locatStart.RoadwayNo, outMode);
+                    outDto1.Add(new OutCommandDto()
+                    {
+                        PalletNo = palletNo,//鎵樼洏鍙�
+                        StartLocate = locatStart.LocatNo, // 璧峰浣嶇疆
+                        StartRoadway = locatStart.RoadwayNo,//璧峰宸烽亾
+                        EndLocate = outMode,//, // 鐩爣浣嶇疆 
+                        EndRoadway = endroad,
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� 
+                        OutMode = outMode,  //鍑哄簱鍙� 
+                        Order = Math.Abs(row2 - row1),
+                        Type = PLCTypeEnum.ShuttleCar
+
+                    });
+                    taskNoStr = exTask.TaskNo;
+
+                    #endregion
+
+                    #region 鏀瑰彉鏁版嵁
+
+                    locatStart.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
+                    Db.Updateable(locatStart).ExecuteCommand();
+
+                    #endregion
+
+
+                    outDto1.AddRange(moveDto);
+                    outDto1.AddRange(outDto2);
+                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                    new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鎵樼洏鍑哄簱", palletNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鎵樼洏涓猴細{palletNo}", userId);
+                    Db.CommitTran();
+
+                    if (outDto1.Count > 0)
+                    {
+                        // 姝e紡杩愯绋嬪簭鏀惧紑
+                        var list2 = outDto1.Select(m => m.TaskNo).ToList();
+                        var jsonData = JsonConvert.SerializeObject(outDto1);
+                        string response = "";
+
+                        try
+                        {
+                            var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                            response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+                            var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+                            ////瑙f瀽杩斿洖鏁版嵁 
+                            var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+                            if (wcsModel.code == 200)
+                            {
+                                //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                                new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                                str += "涓嬪彂鎴愬姛";
+                            }
+                            else
+                            {
+                                new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+                                throw new Exception(wcsModel.message);
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            throw new Exception(ex.Message);
+                        }
+
+                    }
+
+                    return outDto1;
                 }
                 catch (Exception e)
                 {
@@ -2425,7 +2775,7 @@
                         Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//鎵樺嚭搴撶墿鍝佹暟
                         var qty = 0m;
                         var house = "";
-                        
+
                         //鍒嗛厤璐х墿
                         qty += assign.AllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic, notice.WareHouseNo);
                         foreach (var sc in stockQtyDic)
@@ -2976,7 +3326,7 @@
         {
             try
             {
-                var notcie = Db.Queryable<BllExportNotice>().First(m=>m.IsDel == "0" && m.SONo == soNo);
+                var notcie = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
                 if (notcie == null)
                 {
                     throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曚俊鎭�");
@@ -3034,7 +3384,7 @@
                     foreach (var item in list)
                     {
                         var outModeLocate = "";
-                        if (outMode == "1")
+                        if (outMode == "17")
                         {
                             if (i < outLocatelist1.Count)
                             {
@@ -3043,11 +3393,11 @@
                             else
                             {
                                 var j = i % outLocatelist1.Count;
-                                
+
                                 outModeLocate = outLocatelist1[j].LocatNo;
                             }
                         }
-                        else if(outMode == "2")
+                        else if (outMode == "18")
                         {
                             if (i < outLocatelist1.Count)
                             {
@@ -3060,9 +3410,13 @@
                                 outModeLocate = outLocatelist2[j].LocatNo;
                             }
                         }
-                        
+                        else
+                        {
+                            throw new Exception("鍑哄簱鍙e伐浣嶅紓甯�");
+                        }
+
                         var taskNoStr = "";
-                                           
+
                         // 鍌ㄤ綅鍙�
                         var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
 
@@ -3105,7 +3459,7 @@
                             }
                             flagList.Add(0);
                             continue;
-                            
+
                         }
 
                         var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
@@ -3126,7 +3480,7 @@
                         if (locate.Status == "1") //鏈夌墿鍝�
                         {
                             #region 娣诲姞鍑哄簱浠诲姟
-                            
+
                             var taskNo = new Common().GetMaxNo("TK");
                             var exTask = new LogTask    //鍑哄簱浠诲姟
                             {
@@ -3158,13 +3512,13 @@
                                 StartLocate = locate.LocatNo, // 璧峰浣嶇疆
                                 StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
                                 EndLocate = outModeLocate, // 鐩爣浣嶇疆 
-                                
+
                                 Order = 999,
-                                Type  = PLCTypeEnum.AGV
-                                 
+                                Type = PLCTypeEnum.AGV
+
                             });
                             taskNoStr = exTask.TaskNo;
-                            
+
                             #endregion
 
                             #region 鏀瑰彉鏁版嵁
@@ -3252,7 +3606,7 @@
                             flagList.Add(1);
                         }
                     }
-                    
+
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
                     var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId);
                     Db.CommitTran();
@@ -3300,8 +3654,8 @@
                             //if (wcsModel.StatusCode == 0)
                             //{
                             //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                                new TaskServer().EditTaskIssueOk(list2, time1, time2);
-                                str += "涓嬪彂鎴愬姛";
+                            new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                            str += "涓嬪彂鎴愬姛";
                             //}
                             //if (wcsModel.StatusCode == -1)
                             //{
@@ -3367,7 +3721,7 @@
                 //瑕佸嚭搴撶殑鏄庣粏闆嗗悎
                 var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList();
                 //鎵�鏈夎鍑哄簱鐨勫偍浣嶉泦鍚�
-                var locateListStrs = outStockDetail.Where(m=> !string.IsNullOrWhiteSpace(m.LocatNo)).Select(m => m.LocatNo).Distinct().ToList();
+                var locateListStrs = outStockDetail.Where(m => !string.IsNullOrWhiteSpace(m.LocatNo)).Select(m => m.LocatNo).Distinct().ToList();
                 //鐗╂枡缂栫爜琛�
                 var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
                 //鍖呰琛�
@@ -3376,12 +3730,13 @@
                 try
                 {
                     List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
+
+
                     //寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
                     foreach (var item in list)
                     {
                         var taskNoStr = "";
-                        string toLocation = string.Empty;//鐩爣浣嶇疆
-                       
+
                         // 鍌ㄤ綅鍙�
                         var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
 
@@ -3390,11 +3745,11 @@
                         //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
                         if (string.IsNullOrWhiteSpace(locateNo)) //搴撳
                         {
-                            if (notice.Type == "0")
-                            {
-                                flagList.Add(5);
-                                continue;
-                            }
+                            //if (notice.Type == "0")
+                            //{
+                            //    flagList.Add(5);
+                            //    continue;
+                            //}
                             //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ叆搴撲腑
                             var imBl = com.GetImTask(item.PalletNo);
                             if (imBl != null)
@@ -3432,7 +3787,7 @@
                         }
 
                         //鍒ゆ柇鍌ㄤ綅
-                        var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
+                        var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0" && m.WareHouseNo == "W01");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
                         if (locate == null)
                         {
                             flagList.Add(2);
@@ -3447,11 +3802,9 @@
 
                         #endregion
 
-                        
-
                         if (locate.Status == "1") //鏈夌墿鍝�
                         {
-                            var row1 = int.Parse(locate.LocatNo.Substring(2,2));
+                            var row1 = int.Parse(locate.LocatNo.Substring(2, 2));
                             var row2 = int.Parse(locate.AisleOne.Substring(2, 2));
                             //闇�瑕佺Щ搴撶殑淇℃伅 
                             var NeedMoveInfo = IsNeedMoveLocate(locate, locateListStrs, out int isOut);
@@ -3473,7 +3826,7 @@
                                     foreach (var s in NeedMoveInfo)
                                     {
                                         //鍌ㄤ綅鍒�
-                                        var rows = int.Parse(s.Substring(2,2));
+                                        var rows = int.Parse(s.Substring(2, 2));
 
                                         //鑾峰彇绉诲簱鍌ㄤ綅
                                         var moveAddress = GetMiJiMoveAddress(s, locate.AisleOne);
@@ -3515,15 +3868,15 @@
                                                 Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
                                                 Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
                                                 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
-                                                Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+                                                Msg = "浠�" + locate.LocatNo + "鍒�" + moveAddress + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
                                             };
                                             Db.Insertable(ykTask).ExecuteCommand();
                                             logTaskList.Add(ykTask);
 
                                             outDto1.Add(new OutCommandDto()
                                             {
-                                                PalletNo = item.PalletNo,//鎵樼洏鍙�
-                                                StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+                                                PalletNo = ykTask.PalletNo,//鎵樼洏鍙�
+                                                StartLocate = ykTask.StartLocat, // 璧峰浣嶇疆
                                                 StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
                                                 EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆 
                                                 TaskNo = ykTaskNo, // 浠诲姟鍙�
@@ -3531,7 +3884,7 @@
                                                 Order = Math.Abs(row2 - rows),
                                                 Type = PLCTypeEnum.ShuttleCar
 
-                                            }); 
+                                            });
                                             var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s);
                                             var slotChange2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == moveAddress);
 
@@ -3553,7 +3906,7 @@
                                 }
                             }
                             #region 娣诲姞鍑哄簱浠诲姟
-                            
+
                             var taskNo = new Common().GetMaxNo("TK");
                             var exTask = new LogTask    //鍑哄簱浠诲姟
                             {
@@ -3563,7 +3916,7 @@
                                 IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
 
                                 StartLocat = locate.LocatNo,//璧峰浣嶇疆
-                                EndLocat = toLocation,//outMode,//鐩爣浣嶇疆
+                                EndLocat = outMode,//outMode,//鐩爣浣嶇疆
                                 PalletNo = item.PalletNo,//鎵樼洏鐮�
                                 IsSend = 1,//鏄惁鍙啀娆′笅鍙�
                                 IsCancel = 1,//鏄惁鍙彇娑�
@@ -3571,11 +3924,11 @@
                                 Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟  2 绉诲簱浠诲姟
                                 Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
                                 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
-                                Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+                                Msg = "浠�" + locate.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
                             };
                             Db.Insertable(exTask).ExecuteCommand();
                             logTaskList.Add(exTask);
-                            var endroad = allot.RoadwayToStationNum(locate.RoadwayNo, toLocation);
+                            var endroad = allot.RoadwayToStationNum(locate.RoadwayNo, outMode);
                             outDto1.Add(new OutCommandDto()
                             {
                                 PalletNo = item.PalletNo,//鎵樼洏鍙�
@@ -3591,7 +3944,7 @@
 
                             });
                             taskNoStr = exTask.TaskNo;
-                            
+
                             #endregion
 
                             #region 鏀瑰彉鏁版嵁
@@ -3715,23 +4068,23 @@
 
                         try
                         {
-                            //var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
-                            //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
-                            //var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+                            var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+                            response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+                            var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
 
-                            //////瑙f瀽杩斿洖鏁版嵁 
-                            //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
-                            //if (wcsModel.StatusCode == 0)
-                            //{
-                            //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                            //    new TaskServer().EditTaskIssueOk(list2, time1, time2);
-                            //    str += "涓嬪彂鎴愬姛";
-                            //}
-                            //if (wcsModel.StatusCode == -1)
-                            //{
-                            //    new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
-                            //    throw new Exception(wcsModel.Msg);
-                            //}
+                            ////瑙f瀽杩斿洖鏁版嵁 
+                            var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+                            if (wcsModel.code == 200)
+                            {
+                                //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+                                new TaskServer().EditTaskIssueOk(list2, time1, time2);
+                                str += "涓嬪彂鎴愬姛";
+                            }
+                            else
+                            {
+                                new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+                                throw new Exception(wcsModel.message);
+                            }
                         }
                         catch (Exception ex)
                         {
@@ -3765,26 +4118,26 @@
         /// <param name="addressList">瑕佸嚭鍙g殑鍌ㄤ綅闆嗗悎</param>
         /// <param name="isOut">鏄惁鍑哄簱 1:鏈夋湭涓嬪彂鐨勪换鍔″湪鍓嶉潰</param>
         /// <returns>闇�瑕佺Щ搴撶殑闆嗗悎锛堝鏋滀负绌哄垯涓嶉渶绉诲簱锛�</returns>
-        private List<string> IsNeedMoveLocate(SysStorageLocat lcoate,List<string> locateStrList, out int isOut)
+        private List<string> IsNeedMoveLocate(SysStorageLocat lcoate, List<string> locateStrList, out int isOut)
         {
             var nowAddress = new List<string>(); //闇�瑕佺Щ搴撶殑闆嗗悎
-            // 010101 娲惧垪灞�
-            //var bol = String.CompareOrdinal(lcoate.LocatNo, lcoate.AisleOne);
-            
-            var sArray = lcoate.LocatNo.Substring(4,2);
+                                                 // 010101 娲惧垪灞�
+                                                 //var bol = String.CompareOrdinal(lcoate.LocatNo, lcoate.AisleOne);
+
+            var sArray = lcoate.LocatNo.Substring(2, 2);
             var row = int.Parse(sArray);//鍌ㄤ綅鍒�
-            var sArray2 = lcoate.AisleOne.Substring(4, 2);
+            var sArray2 = lcoate.AisleOne.Substring(2, 2);
             var row2 = int.Parse(sArray2); //閫氶亾鍙e垪
 
             isOut = 0;
-           
+
             var bol = row2 - row > 0;
-                
+
             //鍚岀粍鐨勫偍浣嶉泦鍚�
             var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == lcoate.RoadwayNo).ToList();
             List<string> list;
-            
-            
+
+
             if (bol)
             {
                 //鍌ㄤ綅灏忎簬閫氶亾鍙�   鍊掑簭
@@ -3837,7 +4190,7 @@
             {
                 return nowAddress;
             }
-            
+
 
             return nowAddress;
         }
@@ -3860,7 +4213,7 @@
             // 鑾峰彇绉诲簱鐩爣鍌ㄤ綅
 
             //
-            var sArray = oldAddress.Substring(4,2);
+            var sArray = oldAddress.Substring(4, 2);
             var ceng = int.Parse(sArray);
             //
             var sArray2 = slotOut.Substring(2, 2);
@@ -3891,206 +4244,220 @@
             //鏍规嵁鍗佸瓧鍙e樊鍊兼渶灏忕殑鎺掑簭
             shiKou3 = shiKou3.OrderBy(m => m.distNum).ToList();
 
-                /**
-                //1 绉诲姩鍒版渶杩戠殑绌哄偍浣嶏紝蹇呴』鍥炵Щ銆�
-                //鏍规嵁鍥涘悜杞︾Щ鍔ㄨ建杩硅绠楀嚭鏈�杩戠┖鍌ㄤ綅銆�
-                //鍑哄簱瀹屾垚鍚庢牴鎹壒娆″彿 鐢熶骇鏃ユ湡 鍑哄彛璁$畻鍥炵Щ鍌ㄤ綅銆�
+            /**
+            //1 绉诲姩鍒版渶杩戠殑绌哄偍浣嶏紝蹇呴』鍥炵Щ銆�
+            //鏍规嵁鍥涘悜杞︾Щ鍔ㄨ建杩硅绠楀嚭鏈�杩戠┖鍌ㄤ綅銆�
+            //鍑哄簱瀹屾垚鍚庢牴鎹壒娆″彿 鐢熶骇鏃ユ湡 鍑哄彛璁$畻鍥炵Щ鍌ㄤ綅銆�
 
-                //2 绉诲姩閫傚悎瀛樻斁鐨勭粍锛岀郴缁熻嚜鍔ㄨ绠楁槸鍚﹀洖绉汇�� 
-                //鏍规嵁鎵规鍙� 鐢熶骇鏃ユ湡 鍑哄彛 鐗╂枡绛夎绠楀嚭绉诲簱鐩爣鍌ㄤ綅
-                //鍑哄簱瀹屾垚鍚庯紝鍒ゆ柇鏄惁鏈夋瘮褰撳墠搴撲綅鏇村悎閫傜殑瀛樺偍鍌ㄤ綅锛屾湁绉诲姩锛屾棤涓嶇Щ鍔ㄣ��
-                */
+            //2 绉诲姩閫傚悎瀛樻斁鐨勭粍锛岀郴缁熻嚜鍔ㄨ绠楁槸鍚﹀洖绉汇�� 
+            //鏍规嵁鎵规鍙� 鐢熶骇鏃ユ湡 鍑哄彛 鐗╂枡绛夎绠楀嚭绉诲簱鐩爣鍌ㄤ綅
+            //鍑哄簱瀹屾垚鍚庯紝鍒ゆ柇鏄惁鏈夋瘮褰撳墠搴撲綅鏇村悎閫傜殑瀛樺偍鍌ㄤ綅锛屾湁绉诲姩锛屾棤涓嶇Щ鍔ㄣ��
+            */
 
-                var oldSlot = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldAddress);
-                if (oldSlot == null)
+            var oldSlot = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldAddress);
+            if (oldSlot == null)
+            {
+                throw new Exception("鏈兘鎵惧埌鍌ㄤ綅淇℃伅");
+            }
+            #region 1涓嶉渶瑕佸洖绉荤殑
+
+            //鍚庢湡搴撳瓨鎵樼洏琛ㄦ敼浜嗗悗闇�瑕佸姞绛涢�夋潯浠舵墭鐩樼殑鐘舵�侊紙閫�璐�/棰勬嫞锛�
+            var tray1 = Db.Queryable<DataStockDetail>().Where(m => m.LocatNo == oldAddress).ToList();
+            //鏍规嵁鐗╂枡銆佹壒娆°�佹墭鐩樼姸鎬侊紙閫�璐�/棰勬嫞/鏆傚瓨绛夛級鍒嗙粍鍒ゆ柇
+            var d = tray1.GroupBy(m => new { m.SkuNo, m.LotNo, m.PalletTags });
+            var location = string.Empty;
+            if (d.Any())
+            {
+                //鏃у偍浣嶅悓缁勭殑鍌ㄤ綅闆嗗悎
+                var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == oldSlot.RoadwayNo).Select(m => m.LocatNo).ToList();
+                foreach (var item in d)
                 {
-                    throw new Exception("鏈兘鎵惧埌鍌ㄤ綅淇℃伅");
-                }
-                #region 1涓嶉渶瑕佸洖绉荤殑
-
-                //鍚庢湡搴撳瓨鎵樼洏琛ㄦ敼浜嗗悗闇�瑕佸姞绛涢�夋潯浠舵墭鐩樼殑鐘舵�侊紙閫�璐�/棰勬嫞锛�
-                var tray1 = Db.Queryable<DataStockDetail>().Where(m => m.LocatNo == oldAddress).ToList();
-                //鏍规嵁鐗╂枡銆佹壒娆°�佹墭鐩樼姸鎬侊紙閫�璐�/棰勬嫞/鏆傚瓨绛夛級鍒嗙粍鍒ゆ柇
-                var d = tray1.GroupBy(m => new { m.SkuNo, m.LotNo, m.PalletTags });
-                var location = string.Empty;
-                if (d.Any())
-                {
-                    //鏃у偍浣嶅悓缁勭殑鍌ㄤ綅闆嗗悎
-                    var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == oldSlot.RoadwayNo).Select(m => m.LocatNo).ToList();
-                    foreach (var item in d)
+                    foreach (var item2 in item)
                     {
-                        foreach (var item2 in item)
+                        var okLan = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0" && m.WareHouseNo == item2.WareHouseNo).Select(m => m.RoadwayNo).ToList();
+                        //褰撳墠鎵樼洏鎵�鍦ㄦゼ灞�
+                        if (oldSlot.Layer == 1)
                         {
-                            var okLan = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0").Select(m => m.RoadwayNo).ToList();
-                            var tray2 = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == item2.SkuNo
+                            okLan = okLan.Where(m => Convert.ToInt32(m.Replace("MR", "")) <= 56).ToList();
+                        }
+                        else if (oldSlot.Layer == 2)
+                        {
+                            okLan = okLan.Where(m => Convert.ToInt32(m.Replace("MR", "")) > 56).ToList();
+                        }
+                        else
+                        {
+                            throw new Exception("褰撳墠鎵樼洏鎵�鍦ㄦゼ灞傚紓甯�");
+                        }
+
+                        var tray2 = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == item2.SkuNo
                             && m.LotNo == item2.LotNo && !slotList.Contains(m.LocatNo) && m.PalletTags == item2.PalletTags && okLan.Contains(m.RoadwayNo)).ToList();
-                            foreach (var s in tray2)
+                        foreach (var s in tray2)
+                        {
+                            if (string.IsNullOrWhiteSpace(s.RoadwayNo))//鍒ゆ柇鏄惁鍦ㄥ簱澶栵紝濡傛槸璺宠繃
                             {
-                                if (string.IsNullOrWhiteSpace(s.RoadwayNo))//鍒ゆ柇鏄惁鍦ㄥ簱澶栵紝濡傛槸璺宠繃
+                                continue;
+                            }
+                            var lan = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == s.RoadwayNo).OrderBy(m => m.LocatNo).ToList();
+                            //鍒ゆ柇鏄惁鏈夊叆搴撲腑銆佸嚭搴撲腑銆佺Щ鍏ヤ腑銆佺Щ鍑轰腑
+                            if (lan.Count(m => m.Status == "2" || m.Status == "3" || m.Status == "4" || m.Status == "5") > 0)
+                            {
+                                continue;
+                            }
+                            if (lan.Count(m => m.Status == "0") > 0)
+                            {
+
+                                var bol = GetBecomingLocation(s.RoadwayNo, ref location);
+                                if (bol && !string.IsNullOrWhiteSpace(location))
                                 {
-                                    continue;
-                                }
-                                var lan = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == s.RoadwayNo).OrderBy(m => m.LocatNo).ToList();
-                                //鍒ゆ柇鏄惁鏈夊叆搴撲腑銆佸嚭搴撲腑銆佺Щ鍏ヤ腑銆佺Щ鍑轰腑
-                                if (lan.Count(m => m.Status == "2" || m.Status == "3" || m.Status == "4" || m.Status == "5") > 0)
-                                {
-                                    continue;
-                                }
-                                if (lan.Count(m => m.Status == "0") > 0)
-                                {
-                                    
-                                    var bol = GetBecomingLocation(s.RoadwayNo, ref location);
-                                    if (bol && !string.IsNullOrWhiteSpace(location))
-                                    {
-                                        newAddress = location;
-                                        return newAddress;
-                                        
-                                    }
+                                    newAddress = location;
+                                    return newAddress;
 
                                 }
+
                             }
                         }
                     }
-
                 }
 
-                #endregion
+            }
 
-                #region 2闇�瑕佸洖绉荤殑
+            #endregion
 
-                ////濡傛灉娌℃湁鎵惧埌鍚堥�傜殑鍌ㄤ綅
-                //if (string.IsNullOrWhiteSpace(newAddress))
-                //{
-                //    foreach (var s in shiKou3)
-                //    {
-                         
-                //        var r = int.Parse(s.slotCode.Substring(0, 2));
-                //        var l = int.Parse(s.slotCode.Substring(2, 2));
-                //        var c = int.Parse(s.slotCode.Substring(4, 2));
-                //        //鏌ヨ绌哄偍浣�
-                //        var sqlString = $@"select LocatNo,Row,Column,Layer,(ABS(Row-{r}) + ABS(Column-{l}) ) as distNum 
-                //                from SysStorageLocat where (AisleOneRow  = {r} or AisleTwoRow = {r}) and Status in (0) and
-                //                 RoadwayNo !='{oldSlot.RoadwayNo}' and RoadwayNo not in(select RoadwayNo from SysStorageRoadway where Status = 1) order by distNum,SlotCode";
+            #region 2闇�瑕佸洖绉荤殑
 
-                //        var addressModels = dataContext.ExecuteQuery<addreClass>(sqlString).ToList();
-                //        foreach (var item in addressModels)
-                //        {                            銆�
-                            
-                            
-                //            newAddress = item.slotCode;
-                //            var dz = newAddress.Split(new char[] { '-' });
-                //            var l1 = dz[1];
-                //            var c1 = dz[0];
-                //            newLaneWayAddress = $"{c1}-{l1}-{a[2]}";
-                //            flags = newLaneWayAddress;
+            ////濡傛灉娌℃湁鎵惧埌鍚堥�傜殑鍌ㄤ綅
+            //if (string.IsNullOrWhiteSpace(newAddress))
+            //{
+            //    foreach (var s in shiKou3)
+            //    {
 
-                //            var slotModel = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == item.slotCode);
+            //        var r = int.Parse(s.slotCode.Substring(0, 2));
+            //        var l = int.Parse(s.slotCode.Substring(2, 2));
+            //        var c = int.Parse(s.slotCode.Substring(4, 2));
+            //        //鏌ヨ绌哄偍浣�
+            //        var sqlString = $@"select LocatNo,Row,Column,Layer,(ABS(Row-{r}) + ABS(Column-{l}) ) as distNum 
+            //                from SysStorageLocat where (AisleOneRow  = {r} or AisleTwoRow = {r}) and Status in (0) and
+            //                 RoadwayNo !='{oldSlot.RoadwayNo}' and RoadwayNo not in(select RoadwayNo from SysStorageRoadway where Status = 1) order by distNum,SlotCode";
 
-                //            var lan = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
-                //            if (slotModel.SlotRow > int.Parse(a[2]))
-                //            {
-                //                // 鍙栨渶涓婇潰涓�鎺�
-                //                lan = lan.OrderBy(m => m.SlotCode).ToList();
-                //                for (int i = 0; i < lan.Count; i++)
-                //                {
-                //                    var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
-                //                    if (slot.SlotStatus == 0)
-                //                    {
-                //                        if (i == lan.Count - 1)
-                //                        {
-                //                            newAddress = lan[lan.Count - 1].SlotCode;
+            //        var addressModels = dataContext.ExecuteQuery<addreClass>(sqlString).ToList();
+            //        foreach (var item in addressModels)
+            //        {                            銆�
 
-                //                            break;
-                //                        }
-                //                        else
-                //                        {
-                //                            continue;
-                //                        }
 
-                //                    }
-                //                    else
-                //                    {
-                //                        newAddress = lan[i - 1].SlotCode;
-                //                        break;
-                //                    }
-                //                }
+            //            newAddress = item.slotCode;
+            //            var dz = newAddress.Split(new char[] { '-' });
+            //            var l1 = dz[1];
+            //            var c1 = dz[0];
+            //            newLaneWayAddress = $"{c1}-{l1}-{a[2]}";
+            //            flags = newLaneWayAddress;
 
-                //            }
-                //            else
-                //            {
-                //                // 鍙栨渶涓嬮潰涓�鎺�
-                //                lan = lan.OrderByDescending(m => m.SlotCode).ToList();
-                //                for (int i = 0; i < lan.Count; i++)
-                //                {
-                //                    var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
-                //                    if (slot.SlotStatus == 0)
-                //                    {
-                //                        if (i == lan.Count - 1)
-                //                        {
-                //                            newAddress = lan[lan.Count - 1].SlotCode;
-                //                            break;
-                //                        }
-                //                        else
-                //                        {
-                //                            continue;
-                //                        }
+            //            var slotModel = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == item.slotCode);
 
-                //                    }
-                //                    else
-                //                    {
-                //                        newAddress = lan[i - 1].SlotCode;
-                //                        break;
-                //                    }
-                //                }
-                //            }
-                //            //娣诲姞鍥炵Щ浠诲姟
-                //            AddHyTask(oldAddress, newAddress, newLaneWayAddress, oldSlot.SlotLanewayId, slotOut, billCode);
-                //            refLanWayId = slotModel.SlotLanewayId;
-                //            refLanOutCode = newLaneWayAddress;
-                //            //9锛氶攣瀹氬偍浣� 
-                //            var updateSlot = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
-                //            var newAddressRow = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == newAddress);
-                //            if (newAddressRow.SlotRow > int.Parse(a[2]))
-                //            {
-                //                updateSlot = updateSlot.Where(m => m.SlotRow < newAddressRow.SlotRow && m.SlotRow > int.Parse(a[2])).OrderBy(m => m.SlotCode).ToList();
-                //            }
-                //            else
-                //            {
-                //                updateSlot = updateSlot.Where(m => m.SlotRow > newAddressRow.SlotRow && m.SlotRow < int.Parse(a[2])).OrderByDescending(m => m.SlotCode).ToList();
+            //            var lan = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
+            //            if (slotModel.SlotRow > int.Parse(a[2]))
+            //            {
+            //                // 鍙栨渶涓婇潰涓�鎺�
+            //                lan = lan.OrderBy(m => m.SlotCode).ToList();
+            //                for (int i = 0; i < lan.Count; i++)
+            //                {
+            //                    var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
+            //                    if (slot.SlotStatus == 0)
+            //                    {
+            //                        if (i == lan.Count - 1)
+            //                        {
+            //                            newAddress = lan[lan.Count - 1].SlotCode;
 
-                //            }
-                //            foreach (var source in updateSlot)
-                //            {
-                //                if (source.SlotCode == newAddress)
-                //                {
-                //                    continue;
-                //                }
-                //                if (source.SlotStatus == 0)
-                //                {
-                //                    source.SlotStatus = 8;
-                //                }
-                //            }
+            //                            break;
+            //                        }
+            //                        else
+            //                        {
+            //                            continue;
+            //                        }
 
-                //            if (updateSlot.Count <= 0)
-                //            {
-                //                refLanWayId = "";
-                //                refLanOutCode = "";
-                //            }
-                //            dataContext.SubmitChanges();
-                //            return newAddress;
-                            
+            //                    }
+            //                    else
+            //                    {
+            //                        newAddress = lan[i - 1].SlotCode;
+            //                        break;
+            //                    }
+            //                }
 
-                            
-                //        }
+            //            }
+            //            else
+            //            {
+            //                // 鍙栨渶涓嬮潰涓�鎺�
+            //                lan = lan.OrderByDescending(m => m.SlotCode).ToList();
+            //                for (int i = 0; i < lan.Count; i++)
+            //                {
+            //                    var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
+            //                    if (slot.SlotStatus == 0)
+            //                    {
+            //                        if (i == lan.Count - 1)
+            //                        {
+            //                            newAddress = lan[lan.Count - 1].SlotCode;
+            //                            break;
+            //                        }
+            //                        else
+            //                        {
+            //                            continue;
+            //                        }
 
-                //    }
+            //                    }
+            //                    else
+            //                    {
+            //                        newAddress = lan[i - 1].SlotCode;
+            //                        break;
+            //                    }
+            //                }
+            //            }
+            //            //娣诲姞鍥炵Щ浠诲姟
+            //            AddHyTask(oldAddress, newAddress, newLaneWayAddress, oldSlot.SlotLanewayId, slotOut, billCode);
+            //            refLanWayId = slotModel.SlotLanewayId;
+            //            refLanOutCode = newLaneWayAddress;
+            //            //9锛氶攣瀹氬偍浣� 
+            //            var updateSlot = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
+            //            var newAddressRow = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == newAddress);
+            //            if (newAddressRow.SlotRow > int.Parse(a[2]))
+            //            {
+            //                updateSlot = updateSlot.Where(m => m.SlotRow < newAddressRow.SlotRow && m.SlotRow > int.Parse(a[2])).OrderBy(m => m.SlotCode).ToList();
+            //            }
+            //            else
+            //            {
+            //                updateSlot = updateSlot.Where(m => m.SlotRow > newAddressRow.SlotRow && m.SlotRow < int.Parse(a[2])).OrderByDescending(m => m.SlotCode).ToList();
 
-                //}
+            //            }
+            //            foreach (var source in updateSlot)
+            //            {
+            //                if (source.SlotCode == newAddress)
+            //                {
+            //                    continue;
+            //                }
+            //                if (source.SlotStatus == 0)
+            //                {
+            //                    source.SlotStatus = 8;
+            //                }
+            //            }
 
-                return newAddress;
-                #endregion
+            //            if (updateSlot.Count <= 0)
+            //            {
+            //                refLanWayId = "";
+            //                refLanOutCode = "";
+            //            }
+            //            dataContext.SubmitChanges();
+            //            return newAddress;
 
-            
+
+
+            //        }
+
+            //    }
+
+            //}
+
+            return newAddress;
+            #endregion
+
+
         }
 
         /// <summary>
@@ -4102,14 +4469,14 @@
         private bool GetBecomingLocation(string laneWayId, ref string location)
         {
             bool bl = false;
-            
+
             // 寰幆鍒ゆ柇褰撳墠缁勬槸鍚︽湁鍓╀綑鍌ㄤ綅
             string sqlString = string.Empty;
             location = "";
-            
+
             // 鍒ゆ柇鍌ㄤ綅缁勬槸鍚︽湁绌哄偍浣�   鍏宠仈搴撳瓨鏄庣粏琛ㄥ彲闃叉鍌ㄤ綅鐘舵�佷笉鍑嗙‘閬垮厤閫犳垚婊″叆寮傚父//not in ('1','2','4','6','7','8')
-            sqlString = $"select LocatNo,Column,AisleOne from SysStorageLocat where RoadwayNo = {laneWayId} and Status in ('0') and LocatNo not in (select LocatNo from DataStockDetail where RoadwayNo = { laneWayId}) order by Row;";
-            var slotModel =Db.SqlQueryable<LocateInfo>(sqlString).ToList();
+            sqlString = $"select LocatNo,[Column],AisleOne from SysStorageLocat where IsDel=0 and WareHouseNo='W01' and RoadwayNo = '{laneWayId}' and Status in ('0') and LocatNo not in (select LocatNo from DataStockDetail where RoadwayNo = '{laneWayId}') order by Row;";
+            var slotModel = Db.SqlQueryable<LocateInfo>(sqlString).ToList();
             if (slotModel.Count == 0)
             {
                 bl = false;
@@ -4117,7 +4484,7 @@
             else  // 瀛樺湪绌哄偍浣�
             {
                 // 鍒ゆ柇褰撳墠缁勫悎閫傜殑鍌ㄤ綅鍦板潃
-                var numstr = slotModel[0].AisleOne.Substring(4,2);
+                var numstr = slotModel[0].AisleOne.Substring(4, 2);
                 int aisleRow = int.Parse(numstr);
 
                 if (slotModel[0].Column > aisleRow)
@@ -4132,11 +4499,11 @@
 
                     location = slotModel[slotModel.Count - 1].LocatNo;
                 }
-                
+
                 bl = true;
             }
 
-            
+
 
             return bl;
         }
@@ -4151,7 +4518,7 @@
             public string LocatNo { get; set; }
             public int Column { get; set; }
             public string AisleOne { get; set; }
-             
+
         }
 
         /// <summary>
@@ -4230,12 +4597,12 @@
                         item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
                         item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
                         item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                        
+
                     }
                     //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
                     var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
                     var PalletType = "0"; //0锛氱墿鏂欐墭  1锛氱┖鎵樼洏鎵�
-                    
+
                     foreach (var item in allot)
                     {
                         if (item.SkuNo == "100099")
@@ -4251,9 +4618,9 @@
 
                     }
 
-                    var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m=>m.LocatNo).ToList();
+                    var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m => m.LocatNo).ToList();
                     //鍒ゆ柇鏄惁鏄師杈呮枡鍑哄簱浠诲姟  璐ф灦鍌ㄤ綅=銆嬪钩搴撳偍浣�
-                    if ( endLocateList.Contains(task.EndLocat) && PalletType == "0")
+                    if (endLocateList.Contains(task.EndLocat) && PalletType == "0")
                     {
                         //淇敼鐩爣鍦板潃鐘舵��
                         var endLocat = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == task.EndLocat);
@@ -4335,9 +4702,9 @@
                     ////鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱  
                     //if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat))
                     //{
-                        task.Status = "2";
+                    task.Status = "2";
                     //}
-                    
+
                     task.IsSend = 0;
                     task.IsCancel = 0;
                     task.IsFinish = 0;
@@ -4352,13 +4719,13 @@
                         locate.Status = "0";
                         Db.Updateable(locate).ExecuteCommand();
                     }
-                    
+
 
                     //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
                     locate2.Status = "1";
                     Db.Updateable(locate2).ExecuteCommand();
                     //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱  
-                    if ( pingKuList.Contains(task.EndLocat))
+                    if (pingKuList.Contains(task.EndLocat))
                     {
                         foreach (var item in stockDetail)
                         {
@@ -4369,7 +4736,7 @@
                         }
                         Db.Updateable(stockDetail).ExecuteCommand();
                     }
-                    
+
 
                     #endregion
 
@@ -4396,12 +4763,12 @@
             try
             {
                 Db.BeginTran();
-                var task = Db.Queryable<LogTask>().First(m=>m.IsDel =="0" && m.TaskNo == taskNo);
+                var task = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == taskNo);
                 if (task == null)
                 {
                     throw new Exception("娌℃湁鏌ヨ鍒颁换鍔′俊鎭�");
                 }
-                if (task.Status!="1")
+                if (task.Status != "1")
                 {
                     throw new Exception("浠诲姟鐘舵�佷笉鏄鍦ㄦ墽琛岋紝璇锋牳瀹�");
                 }
@@ -4410,7 +4777,7 @@
                 {
                     throw new Exception("娌℃湁鏌ヨ鍒拌捣濮嬪偍浣嶄俊鎭�");
                 }
-                if (locate.WareHouseNo!="W04")
+                if (locate.WareHouseNo != "W04")
                 {
                     throw new Exception("璧峰鍌ㄤ綅涓嶆槸骞冲簱鍌ㄤ綅锛岃鏍稿疄");
                 }
@@ -4435,7 +4802,7 @@
             }
         }
 
-        
+
         #endregion
 
         #endregion
@@ -4457,7 +4824,7 @@
                     throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曚俊鎭�");
                 }
                 var task = Db.Queryable<BllExportTimingTask>().Count(m => m.SoNo == soNo);
-                if (task>0)
+                if (task > 0)
                 {
                     throw new Exception("褰撳墠鍑哄簱鍗曞凡鐢熸垚澶囨枡浠诲姟锛屾棤闇�閲嶅鐐瑰嚮");
                 }
@@ -4469,7 +4836,7 @@
                 };
                 Db.Insertable(exTask).ExecuteCommand();
                 notice.Status = "3";//淇敼鍗曟嵁鐘舵�佹湭姝e湪鎵ц
-                notice.UpdateTime = DateTime.Now; 
+                notice.UpdateTime = DateTime.Now;
                 notice.UpdateUser = userId;
 
                 Db.Updateable(notice).ExecuteCommand();
@@ -4481,7 +4848,7 @@
                 throw new Exception(e.Message);
             }
         }
-        
+
         // JC23 澶囨枡瀹氭椂浠诲姟寮�濮� 棰嗘枡鍗曞鏂欎笅鍙戝嚭搴擄紙璋冪敤wcs鎺ュ彛缁欎粬搴撲綅鍦板潃锛�
         public List<OutCommandDto> BeiLiaoIssueOutHouse(string url)
         {
@@ -4575,7 +4942,7 @@
                                 if (notice.Status == "0" || notice.Status == "1" || notice.Status == "2")
                                 {
                                     var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo).ToList();
-                                    if (detailList.Count(m => m.FactQty>0) > 0)
+                                    if (detailList.Count(m => m.FactQty > 0) > 0)
                                     {
                                         notice.Status = "3"; //鍙樻洿鐘舵�佷负姝e湪鎵ц
                                         Db.Updateable(notice).ExecuteCommand();
@@ -4602,7 +4969,7 @@
                                 if (notice.Status == "0" || notice.Status == "1" || notice.Status == "2")
                                 {
                                     var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo).ToList();
-                                    if (detailList.Count(m => m.FactQty>0) > 0)
+                                    if (detailList.Count(m => m.FactQty > 0) > 0)
                                     {
                                         notice.Status = "3"; //鍙樻洿鐘舵�佷负姝e湪鎵ц
                                         Db.Updateable(notice).ExecuteCommand();
@@ -4991,7 +5358,7 @@
             {
                 //鍏堟煡璇换鍔¤〃涓鏈変换鍔$殑鎶曟枡鍙d俊鎭�
                 var proCallList = Db.Queryable<BllProductionCallTask>().Where(m => m.IsDel == "0").ToList();
-                var proLocationList = proCallList.Select(m=>m.PutInLocation).ToList();
+                var proLocationList = proCallList.Select(m => m.PutInLocation).ToList();
                 if (proCallList.Count == 0)
                 {
                     return null;
@@ -5004,12 +5371,12 @@
                 {
                     //褰撳墠鎶曟枡鍙e寘鍚殑宸ヤ綅
                     var list = locate.Where(m => m.AreaNo == item).ToList();
-                    var listStr = locate.Where(m => m.AreaNo == item).Select(m=>m.LocatNo).ToList();
+                    var listStr = locate.Where(m => m.AreaNo == item).Select(m => m.LocatNo).ToList();
                     //鍒ゆ柇鎶曟枡鍙g殑宸ヤ綅涓槸鍚︽湁鏈笅鍙戞垚鍔熺殑浠诲姟
-                    var task = Db.Queryable<LogTask>().Where(m => m.Type == "1" && m.IsSuccess == 0 && m.Status == "0" && listStr.Contains(m.EndLocat) ).OrderBy(m=>m.TaskNo).ToList();
-                    if(task.Count > 0)
+                    var task = Db.Queryable<LogTask>().Where(m => m.Type == "1" && m.IsSuccess == 0 && m.Status == "0" && listStr.Contains(m.EndLocat)).OrderBy(m => m.TaskNo).ToList();
+                    if (task.Count > 0)
                     {
-                        
+
                         foreach (var item2 in task)
                         {
                             //娣诲姞涓嬪彂浠诲姟鐨勪俊鎭�
@@ -5029,12 +5396,12 @@
                             //item2.Status = "1";
                             //Db.Updateable(item2).ExecuteCommand();
                         }
-                        
+
                         //return outlist;
                     }
 
                 }
-                if (outlist.Count>0)
+                if (outlist.Count > 0)
                 {
                     //灏嗕换鍔″彂閫佽嚦AGV
                     // 姝e紡杩愯绋嬪簭鏀惧紑
@@ -5053,8 +5420,8 @@
                         //if (wcsModel.StatusCode == 0)
                         //{
                         //    //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
-                           new TaskServer().EditTaskIssueOk(list2, time1, time2);
-                            
+                        new TaskServer().EditTaskIssueOk(list2, time1, time2);
+
                         //}
                         //if (wcsModel.StatusCode == -1)
                         //{
@@ -5067,7 +5434,7 @@
                         throw new Exception(ex.Message);
                     }
                 }
-                
+
                 return null;
             }
             catch (Exception e)
@@ -5092,7 +5459,7 @@
                 {
                     throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
                 }
-                
+
                 Db.BeginTran();
                 //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
                 var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
@@ -5130,11 +5497,11 @@
                         var exTime = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == locate.AreaNo && m.SkuNo == locate.SkuNo);
                         if (exTime != null)
                         {
-                            var notice = Db.Queryable<BllExportNotice>().First(m=>m.IsDel =="0" && m.SONo == exTime.OrderCode);
+                            var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == exTime.OrderCode);
                             //鑾峰彇澶囧ソ鏂欑殑鎵樼洏淇℃伅
                             var taskStr = Db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.Receiver == "AGV").Select(m => m.TaskNo).ToList();
                             var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.SkuNo == locate.SkuNo && !taskStr.Contains(m.TaskNo)).Select(m => m.PalletNo).ToList();
-                            if (allotList.Count >0)
+                            if (allotList.Count > 0)
                             {
                                 var stockDetail2 = Db.Queryable<DataStockDetail>().Where(m => allotList.Contains(m.PalletNo)).OrderBy(m => m.LocatNo).First();
 
@@ -5172,7 +5539,7 @@
                             else
                             {
                                 var listLocate = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == locate.AreaNo).ToList();
-                                if (listLocate.Count(m=>m.SkuNo == locate.SkuNo && m.Status != "0") == 0)
+                                if (listLocate.Count(m => m.SkuNo == locate.SkuNo && m.Status != "0") == 0)
                                 {
                                     Db.Deleteable(exTime).ExecuteCommand();
                                 }
@@ -5229,7 +5596,7 @@
                                 //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
                                 Db.Deleteable(item2).ExecuteCommand();
                             }
-                            if (comList.Count>0)
+                            if (comList.Count > 0)
                             {
                                 Db.Insertable(comList).ExecuteCommand();
                             }
@@ -5258,9 +5625,9 @@
                             #endregion
 
                             #region 鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
-                           
+
                             allot.Status = "5";
-                            
+
                             if (stockInfoList.Count == 0)
                             {
                                 allot.CompleteQty += item.LockQty;
@@ -5274,7 +5641,7 @@
 
                             #region 鍑哄簱鍗曞強鏄庣粏
                             var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.Id == allot.SODetailNo && m.IsDel == "0");
-                            
+
                             if (stockInfoList.Count == 0)
                             {
                                 noticeDetail.CompleteQty += item.LockQty;
@@ -5289,9 +5656,9 @@
                             {
                                 var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == noticeDetail.SONo);
                                 notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�//淇敼鍑哄簱鍗曚俊鎭�
-                                                     
+
                                 Db.Updateable(notice).ExecuteCommand();
-                                
+
                             }
                             #endregion
 
@@ -5314,7 +5681,7 @@
                                 }
                             }
                         }
-                        
+
                         item.LocatNo = locate2.LocatNo;//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
                         item.WareHouseNo = locate2.WareHouseNo;//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
                         item.RoadwayNo = locate2.RoadwayNo;//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
@@ -5688,7 +6055,7 @@
                                                     OutMode = toLocation,  //鐩爣鍦板潃
                                                     Order = 1,
 
-                                                    
+
                                                 });
                                                 #endregion
 
@@ -5778,7 +6145,7 @@
                             item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
                             item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
                             item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡
-                            item.OutMode =  outMode ;//鍑哄簱鍙�
+                            item.OutMode = outMode;//鍑哄簱鍙�
                             //item.LoadingAddre = unstackingMode2 == "0" ? loadingAddre : "";//瑁呰溅鍙�
                             Db.Updateable(item).ExecuteCommand();
 
@@ -5822,7 +6189,7 @@
                             item.TaskNo = taskNo.TaskNo;
                             item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� 
                             item.OutMode = item.OutMode;//鍑哄簱鍙�
-                            item.UnstackingMode = unstackingMode2 ;//鎷嗗灈妯″紡
+                            item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
                             Db.Updateable(item).ExecuteCommand();
                             flagList.Add(0);
                             #endregion
@@ -5913,7 +6280,7 @@
                 throw new Exception(e.Message);
             }
         }
-        
+
         //閲嶆柊涓嬪彂鍑哄簱浠诲姟
         public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url)
         {
@@ -6236,7 +6603,7 @@
         }
         #endregion
 
-        
+
 
         /// <summary>
         /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
@@ -6355,7 +6722,7 @@
                 {
                     sqlPub += $"AND tb1.IsDespatch = '{isDespatch}' ";
                 }
-                if (logisticsId != null) 
+                if (logisticsId != null)
                 {
                     sqlPub += $"AND tb1.LogisticsId = '{logisticsId}' ";
                 }

--
Gitblit v1.8.0