From 3a5257be69608f4301fe1a1e207db7d95cc4178c Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期日, 11 五月 2025 16:31:40 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/HttpServer.cs                     |  129 ++++++++++++++++++
 Wms/WMS.IBLL/IHttpServer.cs                   |    7 +
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |   10 -
 Pda/View/HouseDataSetting/agvTransport.html   |    5 
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs       |   44 +++--
 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs       |   34 ++--
 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs      |  112 ++++++++--------
 Wms/WMS.BLL/Logic/AllotLocation.cs            |   54 +++---
 Wms/Wms/Controllers/DownApiController.cs      |    4 
 Pda/View/SoSetting/palletOut.html             |    6 
 10 files changed, 266 insertions(+), 139 deletions(-)

diff --git a/Pda/View/HouseDataSetting/agvTransport.html b/Pda/View/HouseDataSetting/agvTransport.html
index 6151fab..09a4011 100644
--- a/Pda/View/HouseDataSetting/agvTransport.html
+++ b/Pda/View/HouseDataSetting/agvTransport.html
@@ -143,10 +143,7 @@
                             <div class="layui-input-block" id="selectRuku">
                                 <select id="Ruku" lay-filter="getRuku" lay-search>
                                     <option value=""></option>
-                                    <option value="A">A</option>
-                                    <option value="B">B</option>
-                                    <option value="C">C</option>
-                                    <option value="D">D</option>
+                                    <option value="B040101">宸ヤ綅9</option>
                                 </select>
                                 <img src="/assets/down_arraw.png">
                             </div>
diff --git a/Pda/View/SoSetting/palletOut.html b/Pda/View/SoSetting/palletOut.html
index a539625..2a8cf87 100644
--- a/Pda/View/SoSetting/palletOut.html
+++ b/Pda/View/SoSetting/palletOut.html
@@ -69,10 +69,8 @@
 							<div class="layui-input-block" id="selectDiv">
 								<select id="bar" lay-filter="getbar" lay-verify="required" lay-search>
 									<option value=""></option>
-									<option value="1">1</option>
-									<option value="2">2</option>
-									<option value="3">3</option>
-									<option value="4">4</option>
+									<option value="17">17</option>
+									<option value="18">18</option> 
 								</select>
 								<!-- <img src="/assets/down_arraw.png" > -->
 							</div>
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index c5960a5..b0f88b6 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -2313,35 +2313,35 @@
                 };
                 var id = Db.Insertable(modelpb).ExecuteReturnIdentity();
 
-                var modelbb = new BllBoxInfo
-                {
-                    ASNNo = "",
-                    ASNDetailNo = null,
-                    BindNo = id,
-                    PalletNo = model.PalletNo,
-                    PalletNo2 = model.PalletNo2,
-                    PalletNo3 = model.PalletNo3,
-                    Status = "2",
-                    CompleteTime = DateTime.Now,
-                    Qty = (int)model.Qty,
-                    FullQty = pNum,
-                    SkuNo = sku.SkuNo,
-                    SkuName = sku.PackagNo,
-                    LotNo = "",
-                    LotText = "",
-                    SupplierLot = "",
-                    InspectStatus = sku.IsInspect,
-                    Origin = "PDA",
-                    BoxNo = "",
-                    BoxNo2 = "",
-                    BoxNo3 = "",
-                    InspectMark = "",
-                    BitBoxMark = "0",
+                //var modelbb = new BllBoxInfo
+                //{
+                //    ASNNo = "",
+                //    ASNDetailNo = null,
+                //    BindNo = id,
+                //    PalletNo = model.PalletNo,
+                //    PalletNo2 = model.PalletNo2,
+                //    PalletNo3 = model.PalletNo3,
+                //    Status = "2",
+                //    CompleteTime = DateTime.Now,
+                //    Qty = (int)model.Qty,
+                //    FullQty = pNum,
+                //    SkuNo = sku.SkuNo,
+                //    SkuName = sku.SkuName,
+                //    LotNo = "",
+                //    LotText = "",
+                //    SupplierLot = "",
+                //    InspectStatus = sku.IsInspect,
+                //    Origin = "PDA",
+                //    BoxNo = "",
+                //    BoxNo2 = "",
+                //    BoxNo3 = "",
+                //    InspectMark = "",
+                //    BitBoxMark = "0",
 
-                    CreateUser = (int)model.CreateUser,
-                    CreateTime = datetime
-                };
-                Db.Insertable(modelbb).ExecuteCommand();
+                //    CreateUser = (int)model.CreateUser,
+                //    CreateTime = datetime
+                //};
+                //Db.Insertable(modelbb).ExecuteCommand();
 
                 //娣诲姞搴撳瓨
 
@@ -2389,35 +2389,35 @@
 
                 #region 搴撳瓨绠辩爜鏄庣粏
 
-                var box2 = new DataBoxInfo()
-                {
-                    StockDetailId = sdId1,
-                    BindNo = modelpb.Id,
-                    BoxNo = modelbb.BoxNo,
-                    BoxNo2 = modelbb.BoxNo2,
-                    BoxNo3 = modelbb.BoxNo3,
-                    PalletNo = modelbb.PalletNo,
-                    PalletNo2 = modelbb.PalletNo2,
-                    PalletNo3 = modelbb.PalletNo3,
-                    Qty = modelbb.Qty,
-                    FullQty = modelbb.FullQty,
-                    Status = "2",
-                    LotNo = modelbb.LotNo,
-                    LotText = modelbb.LotText,
-                    SkuNo = modelbb.SkuNo,
-                    SkuName = modelbb.SkuName,
-                    Standard = sku.Standard,
-                    ProductionTime = modelbb.ProductionTime,
-                    SupplierLot = modelbb.SupplierLot,
-                    InspectStatus = sku.IsInspect,
-                    InspectMark = modelbb.InspectMark,
-                    BitBoxMark = modelbb.BitBoxMark,
-                    ExpirationTime = modelbb.ExpirationTime,
+                //var box2 = new DataBoxInfo()
+                //{
+                //    StockDetailId = sdId1,
+                //    BindNo = modelpb.Id,
+                //    BoxNo = modelbb.BoxNo,
+                //    BoxNo2 = modelbb.BoxNo2,
+                //    BoxNo3 = modelbb.BoxNo3,
+                //    PalletNo = modelbb.PalletNo,
+                //    PalletNo2 = modelbb.PalletNo2,
+                //    PalletNo3 = modelbb.PalletNo3,
+                //    Qty = modelbb.Qty,
+                //    FullQty = modelbb.FullQty,
+                //    Status = "2",
+                //    LotNo = modelbb.LotNo,
+                //    LotText = modelbb.LotText,
+                //    SkuNo = modelbb.SkuNo,
+                //    SkuName = modelbb.SkuName,
+                //    Standard = sku.Standard,
+                //    ProductionTime = modelbb.ProductionTime,
+                //    SupplierLot = modelbb.SupplierLot,
+                //    InspectStatus = sku.IsInspect,
+                //    InspectMark = modelbb.InspectMark,
+                //    BitBoxMark = modelbb.BitBoxMark,
+                //    ExpirationTime = modelbb.ExpirationTime,
 
-                    CreateUser = 0,
-                    CreateTime = datetime
-                };
-                Db.Insertable(box2).ExecuteCommand();
+                //    CreateUser = 0,
+                //    CreateTime = datetime
+                //};
+                //Db.Insertable(box2).ExecuteCommand();
                 #endregion
 
                 #region 搴撳瓨 
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
index 142058b..01554be 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -839,23 +839,22 @@
                     throw Oops.Bah("鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!");
                 }
                 //鐩爣鍌ㄤ綅淇℃伅
-                var storageLocatEnd = new SysStorageLocat();
-                if (!string.IsNullOrEmpty(areaNo))
+                //var storageLocatEnd = new SysStorageLocat();
+
+                var storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0");
+                if (storageLocatEnd == null)
                 {
-                    storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0");
-                    if (storageLocatEnd == null)
-                    {
-                        throw Oops.Bah("鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!");
-                    }
+                    throw Oops.Bah("鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!");
                 }
+                
 
                 //娣诲姞鍑哄簱浠诲姟
                 var taskNo = new Common().GetMaxNo("TK");
-                var exTask = new LogTask
+                var moveTask = new LogTask
                 {
                     TaskNo = taskNo,
                     Sender = "WMS",
-                    Receiver = "AGV",
+                    Receiver = "WCS",
                     IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
 
                     StartLocat = stockDetail.LocatNo,//璧峰浣嶇疆
@@ -871,7 +870,7 @@
 
                     CreateTime = DateTime.Now
                 };
-                await Db.Insertable(exTask).ExecuteCommandAsync();
+                await Db.Insertable(moveTask).ExecuteCommandAsync();
 
                 //淇敼搴撳瓨鏄庣粏淇℃伅
                 //stockDetail.Status = "4";//绉诲簱閿佸畾
@@ -897,14 +896,15 @@
                 var outDto = new List<OutCommandDto>();
                 outDto.Add(new OutCommandDto()
                 {
-                    PalletNo = exTask.PalletNo,//鎵樼洏鍙�
-                    StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
-                    StartRoadway = storageLocat.RoadwayNo,//鍏跺疄宸烽亾
+                    TaskNo = moveTask.TaskNo, // 浠诲姟鍙�
+                    TaskType = "2",// 浠诲姟绫诲瀷 0鍏� 1鍑� 2绉� 
+                    PalletNo = moveTask.PalletNo,//鎵樼洏鍙�
+
+                    StartLocate = moveTask.StartLocat, // 璧峰浣嶇疆
                     EndLocate = EndLocat, // 鐩爣浣嶇疆 
-                    TaskNo = exTask.TaskNo, // 浠诲姟鍙�
-                    TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� 
-                    OutMode = "",  //鍑哄簱鍙� 
-                    Order = 1
+                    
+                    Order = 999,
+                    Type = PLCTypeEnum.AGV
 
                 });
 
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 3b9a7d0..95cee66 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -22,6 +22,7 @@
 using WMS.Entity.BllAsnEntity;
 using System.Threading.Tasks;
 using Utility;
+using WMS.BLL.Logic;
 
 namespace WMS.BLL.BllPdaServer
 {
@@ -1770,8 +1771,7 @@
                 //鑾峰彇褰撳墠鏃堕棿
                 DateTime serverTime = Db.GetDate();
                 //鑾峰彇搴撳瓨鏄庣粏鏄惁灏忎簬绛変簬璇ュ灈鏁�
-                //string str = "select * from DataStockDetail where IsDel = '0' and SkuNo = '100099' and Status = '0' ";
-                //var stockDetail = Db.Ado.SqlQuery<DataStockDetail>(str);
+                 
                 var stockDetail = await Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.SkuNo == "100099" && s.Status == "0").ToListAsync();
                 if (stockDetail.Count > 0)
                 {
@@ -1797,7 +1797,7 @@
                 foreach (var s in stockDetail)
                 {
                     //鑾峰彇鍌ㄤ綅淇℃伅
-                    var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W02");
+                    var locat = await Db.Queryable<SysStorageLocat>().FirstAsync(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && (l.WareHouseNo == "W01"||l.WareHouseNo == "W02"));
 
                     if (locat == null)
                     {
@@ -1872,10 +1872,10 @@
                     {
                         TaskNo = taskNo,
                         Sender = "WMS",
-                        Receiver = "PDA",
+                        Receiver = "WCS",
                         IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
 
-                        StartLocat = locat == null ? "闆剁搴�" : s.LocatNo,//璧峰浣嶇疆
+                        StartLocat = s.LocatNo,//璧峰浣嶇疆
                         EndLocat = model.OutMode,//鐩爣浣嶇疆
                         PalletNo = s.PalletNo,//鎵樼洏鐮�
                         IsSend = 1,//鏄惁鍙啀娆′笅鍙�
@@ -1886,20 +1886,28 @@
                         OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗�  2 鐩樼偣鍗�  3 绉诲簱鍗�
                         CreateTime = serverTime, //鍒涘缓鏃堕棿
                         CreateUser = userId, //鍒涘缓浜�
-                        Msg = "Pda绌烘墭浠�" + locat == null ? "闆剁搴�" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+                        Msg = "Pda绌烘墭浠�" + s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
                         //FinishDate = serverTime, //瀹屾垚鏃堕棿
                     };
+                    var endroad = "";
+                    if (locat.WareHouseNo == "W01")
+                    {
+                        endroad = new AllotLocation().RoadwayToStationNum(locat.RoadwayNo, model.OutMode);
+                    }
+                    
                     outDtoList.Add(new OutCommandDto()
                     {
-                        PalletNo = exTask.PalletNo,//鎵樼洏鍙�
-                        StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
-                        StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
-                        EndLocate = "", // 鐩爣浣嶇疆 
                         TaskNo = exTask.TaskNo, // 浠诲姟鍙�
                         TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
-                        OutMode = model.OutMode,  //鐩爣鍦板潃
-                        Order = 1,
-                        Type = PLCTypeEnum.AGV
+                        PalletNo = exTask.PalletNo,//鎵樼洏鍙�
+
+                        StartLocate = exTask.StartLocat, // 璧峰浣嶇疆
+                        StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬�
+                        EndLocate = model.OutMode, // 鐩爣浣嶇疆 
+                        EndRoadway = endroad,
+
+                        Order = 999,
+                        Type = locat.WareHouseNo == "W01"?PLCTypeEnum.ShuttleCar : PLCTypeEnum.AGV
                     });
                     await Db.Insertable(exTask).ExecuteCommandAsync();
 
@@ -1926,17 +1934,17 @@
                         var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
 
                         ////瑙f瀽杩斿洖鏁版嵁 
-                        var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response);
-                        if (wcsModel.StatusCode == 0)
+                        var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+                        if (wcsModel.code == 0)
                         {
                             //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
                             new TaskServer().EditTaskIssueOk(list2, time1, time2);
                             //str += "涓嬪彂鎴愬姛";
                         }
-                        if (wcsModel.StatusCode == -1)
+                        if (wcsModel.code == -1)
                         {
-                            new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg);
-                            throw Oops.Bah(wcsModel.Msg);
+                            new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+                            throw Oops.Bah(wcsModel.message);
                         }
                     }
                     catch (AppFriendlyException e)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index c42c3f5..247ff88 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -5574,9 +5574,6 @@
                                     OutMode = toLocation,  //鍑哄簱鍙� 
                                     Order = 1,
 
-                                    UnstackingMode=unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑�  1 浜哄伐鎷h揣鍑�
-                                    CompleteQty= outCount2,  //鎷嗙殑浠舵暟
-                                    BoxexQty = outCount,      //鎬讳欢鏁�
                                 });
                                 taskNoStr = exTask.TaskNo;
                             }
@@ -5691,9 +5688,7 @@
                                                     OutMode = toLocation,  //鐩爣鍦板潃
                                                     Order = 1,
 
-                                                    UnstackingMode = "1",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑�  1 浜哄伐鎷h揣鍑�
-                                                    CompleteQty = 0,  //鎷嗙殑浠舵暟
-                                                    BoxexQty = 0,      //鎬讳欢鏁�
+                                                    
                                                 });
                                                 #endregion
 
@@ -5749,9 +5744,6 @@
                                     OutMode = toLocation,  //鐩爣鍦板潃
                                     Order = 1,
 
-                                    UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑�  1 浜哄伐鎷h揣鍑�
-                                    CompleteQty = outCount2,  //鎷嗙殑浠舵暟
-                                    BoxexQty = outCount,      //鎬讳欢鏁�
                                 });
                                 taskNoStr = exTask1.TaskNo;
                                 #endregion
diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs
index 61228b3..4175a56 100644
--- a/Wms/WMS.BLL/HttpServer.cs
+++ b/Wms/WMS.BLL/HttpServer.cs
@@ -416,6 +416,10 @@
                 foreach (var item in stockDetail)
                 {
                     var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
+                    if (skuItem.SkuNo == "100099")
+                    {
+                        continue;
+                    }
                     if (skuItem.Type != "2")
                     {
                         throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
@@ -528,7 +532,7 @@
                 }
 
                 //宸烽亾缁勪俊鎭�
-                var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo))
+                var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo))
                     .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
 
                 #endregion
@@ -719,6 +723,10 @@
                 foreach (var item in stockDetail)
                 {
                     var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
+                    if (skuItem.SkuNo == "100099")
+                    {
+                        continue;
+                    }
                     if (skuItem.Type != "2")
                     {
                         throw new Exception("鎵樼洏涓婃湁涓嶆槸鎴愬搧鐨勭墿鏂�");
@@ -839,7 +847,10 @@
                 }
 
                 locate = allotLocate.GetMiJiSuiTableLocate(roadwayNo, areaList);
-                
+                if (locate == null)
+                {
+                    throw new Exception($"娌℃湁绌哄偍浣�");
+                }
 
                 #endregion
 
@@ -1021,12 +1032,21 @@
                 {
                     throw new Exception($"鏈煡璇㈠埌浠诲姟涓殑鍌ㄤ綅淇℃伅");
                 }
-                var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList();
+                var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04").Select(m => m.AreaNo).ToList();
                 var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locate.LocatNo && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0");
                 if (pingLocateInfo == null)
                 {
                     throw new Exception("褰撳墠浠诲姟璧峰鍌ㄤ綅涓嶅湪骞冲簱鍌ㄤ綅");
                 }
+                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == task.PalletNo).ToList();
+                foreach (var item in stockDetail)
+                {
+                    item.WareHouseNo = "";
+                    item.RoadwayNo = "";
+                    item.AreaNo = "";
+                    item.LocatNo = "";
+                }
+                Db.Updateable(stockDetail).ExecuteCommand();
                 locate.Status = "0";
                 Db.Updateable(locate).ExecuteCommand();
             }
@@ -1118,6 +1138,109 @@
         }
 
 
+        /// <summary>
+        /// 绉诲簱浠诲姟瀹屾垚JC34
+        /// </summary>
+        /// <param name="taskNo"></param>
+        /// <param name="userId"></param>
+        /// <exception cref="Exception"></exception>
+        public void MoveSuccess(string taskNo, int userId)
+        {
+            try
+            {
+                Db.BeginTran();
+                //姝e父鍏ュ簱 
+                var task = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == taskNo);
+                if (task == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅");
+                }
+                if (task.Status == "2")
+                {
+                    throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
+                }
+
+                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+                //鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴�
+                if (!stockDetail.Any())
+                {
+                    throw new Exception("娌℃湁鏌ヨ鍒板簱瀛樹俊鎭�");
+                }
+                //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
+                var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
+                if (locate == null)
+                {
+                    throw new Exception($"鏈煡璇㈠埌浠诲姟涓殑璧峰鍌ㄤ綅淇℃伅");
+                }
+                //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
+                var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
+                if (locate2 == null)
+                {
+                    throw new Exception($"鏈煡璇㈠埌浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅");
+                }
+                
+                task.Status = "2";//浠诲姟鐘舵��
+                task.IsSend = 0;
+                task.IsCancel = 0;
+                task.IsFinish = 0;
+                task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
+                Db.Updateable(task).ExecuteCommand();
+                if (userId != 0)
+                {
+                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                    var k = new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                }
+
+                foreach (var item in stockDetail)
+                {
+                    if (locate2.LocatNo == "B040101")
+                    {
+                        item.WareHouseNo = "";
+                        item.RoadwayNo = "";
+                        item.AreaNo = "";
+                        item.LocatNo = "";
+                    }
+                    else
+                    {
+                        item.WareHouseNo = locate2.WareHouseNo;
+                        item.RoadwayNo = locate2.RoadwayNo;
+                        item.AreaNo = locate2.AreaNo;
+                        item.LocatNo = locate2.LocatNo;
+                    }
+                    item.UpdateTime = DateTime.Now;
+                    if (userId != 0)
+                    {
+                        item.UpdateUser = userId;
+                    }
+                }
+
+                if (locate.WareHouseNo != "W04")
+                {
+                    locate.Status = "0";
+                    Db.Updateable(locate).ExecuteCommand();
+                }
+                
+                if (locate2.LocatNo == "B040101")
+                {
+                    locate2.Status = "0";
+                    Db.Updateable(locate2).ExecuteCommand();
+                }
+                else
+                {
+                    locate2.Status = "1";
+                    Db.Updateable(locate).ExecuteCommand();
+                }
+                
+                Db.Updateable(stockDetail).ExecuteCommand();
+                Db.CommitTran();
+
+            }
+            catch (Exception e)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
 
 
     }
diff --git a/Wms/WMS.BLL/Logic/AllotLocation.cs b/Wms/WMS.BLL/Logic/AllotLocation.cs
index 190b34e..8817d57 100644
--- a/Wms/WMS.BLL/Logic/AllotLocation.cs
+++ b/Wms/WMS.BLL/Logic/AllotLocation.cs
@@ -38,8 +38,8 @@
                 dataStock = dataStock.Where(m => m.LotNo == lotNo);
             }
             //搴撳瓨鏌ユ壘鐩稿悓鐗╂枡/鎵规鐨勫贩閬�
-            var yiYouRoad = dataStock.GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).OrderBy(m => m).ToList();
-            foreach (var l in yiYouRoad)
+            var yiYouRoad = dataStock.GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
+            foreach (var l in yiYouRoad.OrderBy(m=>m).ToList())
             {
                 // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣�
                  
@@ -78,18 +78,18 @@
                             
                         }
                     }
-                    if (bl)
+                }
+                if (bl)
+                {
+                    // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣�
+
+                    var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l);
+
+                    var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l)
+                                .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+                    if (locateCount - bindNum > 0)
                     {
-                        // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣�
-
-                        var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l);
-
-                        var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l)
-                                    .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
-                        if (locateCount - bindNum > 0)
-                        {
-                            return l;
-                        }
+                        return l;
                     }
                 }
             }
@@ -110,7 +110,7 @@
             var db = DataContext.Db;
             
             // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣�
-            var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadwayNo && areaList.Contains(m.AreaNo)).ToList();
+            var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadwayNo && areaList.Contains(m.AreaNo) && m.Status == "0").ToList();
             if (locateList.Count(m => m.Status == "0") > 0)
             {
                 var bl = GetLocateASCOrDesc(roadwayNo);
@@ -145,7 +145,7 @@
             var locate = db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.RoadwayNo == roadStr);
             var a = locate.LocatNo.Substring(2,2);//鍌ㄤ綅鍒�
             var b = locate.AisleOne.Substring(2, 2);//閫氶亾鍙e垪
-            return int.Parse(a) < int.Parse(b);  
+            return int.Parse(a) > int.Parse(b);  
         }
 
         /// <summary>
@@ -165,6 +165,17 @@
             var locatList2 = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == locate.RoadwayNo && m.Column > a).ToList();
             if (bl)
             {
+                if (locatList1.Count(m => str2.Contains(m.Status)) > 0)
+                {
+                    return false;
+                }
+                if (locatList2.Count(m => str1.Contains(m.Status)) > 0)
+                {
+                    return false;
+                }
+            }
+            else
+            {
                 if (locatList1.Count(m => str1.Contains(m.Status)) > 0)
                 {
                     return false;
@@ -173,17 +184,6 @@
                 {
                     return false;
                 }
-            }
-            else
-            {
-                if (locatList1.Count(m => str2.Contains(m.Status)) > 0)
-                {
-                    return false;
-                }
-                if (locatList2.Count(m => str1.Contains(m.Status)) > 0)
-                {
-                    return false;
-                } 
             }
             return true;
                 
@@ -380,7 +380,7 @@
         /// <param name="areaList">鍖哄煙闆嗗悎</param>
         /// <param name="isRoadway">鏄惁鎸囧畾宸烽亾</param>
         /// <returns></returns>
-        private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W01")
+        private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W02")
         {
             try
             {
diff --git a/Wms/WMS.IBLL/IHttpServer.cs b/Wms/WMS.IBLL/IHttpServer.cs
index ec7aed5..a7ba5cf 100644
--- a/Wms/WMS.IBLL/IHttpServer.cs
+++ b/Wms/WMS.IBLL/IHttpServer.cs
@@ -47,5 +47,12 @@
         /// <param name="userId">鎿嶄綔浜�(涓嬫父绯荤粺鏃朵负绌�)</param> 
         void ArrivalSuccess2(string taskNo, int userId);
 
+        /// <summary>
+        /// 绉诲簱瀹屾垚
+        /// </summary>
+        /// <param name="taskNo"></param>
+        /// <param name="userId"></param>
+        void MoveSuccess(string taskNo, int userId);
+
     }
 }
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 9418cc4..c9ba34d 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -436,9 +436,11 @@
                         }
                         break;
                     case "3"://绉诲簱瀹屾垚浠诲姟銆佷紭鍖栧偍浣�
-                        if (model.TaskType == "3") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
+                        if (model.TaskType == "2") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴�
                         {
                             //濉啓绉诲簱瀹屾垚浠g爜
+                            _http.MoveSuccess(model.TaskNo, 0);
+                            return Ok(new WcsModel { StatusCode = 0, Msg = "绉诲簱瀹屾垚" });
                         }
                         break;
                     default:

--
Gitblit v1.8.0