From 19e95f4acc328bbf62a0427fe658d00268019e66 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期一, 07 四月 2025 10:14:34 +0800 Subject: [PATCH] 修改IIS配置 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 337 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 300 insertions(+), 37 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 5d6d22b..e0b0cbc 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -20,6 +20,7 @@ using WMS.Entity.LogEntity; using Model.ModelDto.SysDto; using Model.ModelDto.BllSoDto; +using System.Security.Policy; namespace WMS.BLL.BllPdaServer { @@ -69,11 +70,11 @@ { throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); } - var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo); - if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") - { - throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�"); - } + //var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo); + //if (string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") + //{ + // throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�"); + //} if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁 { var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); @@ -81,6 +82,11 @@ } //鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗� var allotList2 = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); + + if (allotList2.Count == 0) + { + throw new Exception("姝ゆ墭鐩樺凡鎷h揣鎴栨棤鎷h揣浠诲姟"); + } //var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); //鑾峰彇鍑哄簱鍗曟嵁涓嶄负寰呮嫞璐� 鎵ц瀹屾瘯 璁㈠崟鍏抽棴 绛夊緟鎵ц鐨勫崟鎹� @@ -399,8 +405,8 @@ { throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�"); } - var type1 = new List<string>() { "0", "4" }; //鎷h揣涓嶅彲澶氬嚭 - var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//鎷h揣鍙鍑� + var type1 = new List<string>() { "0", "4" }; //鎷h揣涓嶅彲澶氬嚭 鎴愬搧鍑哄簱銆佷笉鍚堟牸鍝佸嚭搴� + var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//鎷h揣鍙鍑� 棰嗘枡鍑哄簱銆佹娊妫�鍑哄簱銆佺墿鏂欏彇鏍峰嚭搴撱�佷腑闂村搧鍑哄簱銆佷唬鍌ㄥ嚭搴撱�佸叾浠栧嚭搴撱�佸瘎瀛樺嚭搴� if (type1.Contains(notice.Type)) { if (notice.Status != "3") @@ -527,6 +533,13 @@ if (pallet == null) { throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); } pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); @@ -756,6 +769,13 @@ } pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; @@ -954,12 +974,19 @@ { throw new Exception("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); } - + //鍒ゆ柇鎵樼洏涓婄墿鏂欐槸鍚︽嫞璐у畬姣� if (isDel == 0) { pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + } + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� @@ -2411,6 +2438,179 @@ } + /// <summary> + /// WMS鐢宠鎷h揣绌烘墭 + /// </summary> + /// <param name="model"> </param> + /// <param name="userId"> </param> + /// <param name="url"> </param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId, string url) + { + try + { + string StartLocate = "" ,EndLocate = ""; + + Db.BeginTran(); + if (model.OutMode == "001") //瑗夸晶鎷h揣浣嶅彨绌烘墭鐩� + { + var xLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")); + if (xLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo; + + //鏍¢獙鏄惁涓虹2灞傛嫞璐ф墭鐩樹綅 + var locate = Db.Queryable<SysStorageLocat>().First(w => w.Row == 2 && w.LocatNo == model.OutCode); + if (locate == null) + { + throw new Exception("璇烽�夋嫨姝g‘鐨勬嫞璐т綅"); + } + //鏍¢獙鐩殑璐т綅鏄惁鍙敤 + var isuse = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && w.LocatNo == model.OutCode); + if (locate == null) + { + throw new Exception("姝ゆ嫞璐т綅鐘舵�佷笉涓虹┖璐т綅"); + } + EndLocate = model.OutCode; + } + else//涓滀晶鎷h揣浣嶅彨绌烘墭鐩� + { + var dLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")); + if (dLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")).LocatNo; + + //鏍¢獙鏄惁涓虹2灞傛嫞璐ф墭鐩樹綅 + var locate = Db.Queryable<SysStorageLocat>().First(w => w.Row == 4 && w.LocatNo == model.OutCode); + if (locate == null) + { + throw new Exception("璇烽�夋嫨姝g‘鐨勬嫞璐т綅"); + } + //鏍¢獙鐩殑璐т綅鏄惁鍙敤 + var isuse = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && w.LocatNo == model.OutCode); + if (locate == null) + { + throw new Exception("姝ゆ嫞璐т綅鐘舵�佷笉涓虹┖璐т綅"); + } + EndLocate = model.OutCode; + } + + //娣诲姞鍑哄簱浠诲姟 + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "AGV", + IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = StartLocate,//璧峰浣嶇疆 + EndLocat = EndLocate,//鐩爣浣嶇疆 + PalletNo = "",//鎵樼洏鐮� + Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", StartLocate, EndLocate), + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + + CreateTime = DateTime.Now + }; + Db.Insertable(exTask).ExecuteCommand(); + + var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == EndLocate); + //淇敼鐩爣鍌ㄤ綅鍦板潃鐘舵�� + if (storageLocatEnd != null) + { + storageLocatEnd.Status = "4";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(storageLocatEnd).ExecuteCommand(); + } + + #region 鍛煎彨灏忚溅浠g爜 + + var endlono = EndLocate; + string tasktype = "D01"; + + //鐐瑰埌鐐规寚浠ら泦鍚� + object[] position = new object[2]; + position[0] = new + { + positionCode = StartLocate, + type = "00" + }; + position[1] = new + { + positionCode = endlono, + type = "00" + }; + + List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>(); + AgvSchedulingTask agvTask = new AgvSchedulingTask(); + Random r = new Random(); + long ran = DateTime.Now.Ticks; + agvTask.ReqCode = ran.ToString(); + agvTask.TaskCode = taskNo; + agvTask.TaskTyp = tasktype; + agvTask.PositionCodePath = position; + agvTask.CtnrTyp = "1"; + + agvTaskList.Add(agvTask); + + string str = ""; + var list2 = agvTaskList.Select(m => m.TaskCode).ToList(); + var jsonData = JsonConvert.SerializeObject(agvTaskList); + jsonData = jsonData.Substring(1, jsonData.Length - 1); + jsonData = jsonData.Substring(0, jsonData.Length - 1); + string response = ""; + + try + { + var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV"); + var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") + + //////瑙f瀽杩斿洖鏁版嵁 + var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); + if (agvModel.Code == "0") + { + //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + new TaskServer().EditTaskIssueOk(list2, time1, time2); + str += "涓嬪彂鎴愬姛"; + } + if (agvModel.Code == "1") + { + new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message); + throw new Exception(agvModel.Message); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + + #endregion + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", "", "绉诲簱", $"PDA鍛煎彨灏忚溅鎷嗙┖鎵樼洏鎷h揣", userId); + Db.CommitTran(); + + return ""; + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + + public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201 鎺�-鍒�-灞�-娣卞害 { string nowAddress = ""; @@ -2670,26 +2870,44 @@ throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); } //鎬庝箞鍒ゆ柇褰撳墠鎵樼洏鏄簱澶栬鍙栨牱鐨勬墭鐩橈紝姝e父鍑哄簱鍓╀綑鎵樼洏鐩墠杩欑鎯呭喌涔熻兘鎷h揣鍟婏紝涔熸病鏈夊垎閰嶄俊鎭� - var allot = Db.Queryable<BllExportAllot>().First(m => - m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6"); - if (allot != null) + //鍏堣幏鍙栧崟鎹垎閰嶄俊鎭紝鍐嶈幏鍙栨墭鐩樺垎閰嶄俊鎭� + var allotnotice = Db.Queryable<BllExportNotice>().Where(m => + m.IsDel == "0" && m.Type == "3").ToList(); + if (allotnotice.Count == 0) { - var soNo = Db.Queryable<BllExportNotice>() - .First(m => m.IsDel == "0" && m.SONo == allot.SONo); - if (soNo == null) + throw new Exception("鏈壘鍒板彇鏍峰崟鎹俊鎭�"); + } + int pano = 0; + var sono = ""; + foreach (var item in allotnotice) + { + var allot = Db.Queryable<BllExportAllot>().First(m => + m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6" && m.SONo == item.SONo); + if (allot != null) { - throw new Exception("鏈壘鍒版墭鐩樹笂鍑哄簱鍗曟嵁淇℃伅"); + pano++; + sono = item.SONo; } - if (soNo.Type != "3") + } + if (pano > 0) + { + var locate = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == palletNo); + if (locate != null) { - throw new Exception("璇ユ墭鐩樹笉鏄彇鏍锋墭鐩�"); + if (locate.WareHouseNo == "w01") + { + type = "0";//搴撳唴鍙栨牱 + } + else + { + type = "1"; + } + } - type = "0";//搴撳唴鍙栨牱 } else { - //鍒ゆ柇褰撳墠鎵樼洏鏄惁鏄湪骞冲簱鎴栧簱澶� - type = "1";//搴撳墠鍙栨牱 + throw new Exception("鏈壘鍒板彇鏍锋墭鐩樹俊鎭�"); } return type; } @@ -3065,6 +3283,13 @@ } pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.Qty += pickQty; @@ -3345,6 +3570,13 @@ } pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; @@ -3631,6 +3863,13 @@ pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); } + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.Qty += decimal.Parse(PickQty); @@ -3814,6 +4053,13 @@ { pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + } + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� @@ -4059,6 +4305,7 @@ LotNo = allot.LotNo, LotText = allot.LotText, SupplierLot = allot.SupplierLot, + SkuNo = allot.SkuNo, SkuName = allot.SkuName, Standard = allot.Standard, @@ -4155,10 +4402,10 @@ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } var boxQty = boxInfos.First().Qty; - if (boxQty > needQty) - { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); - } + //if (boxQty > needQty) + //{ + // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + //} foreach (var item in boxInfos) { @@ -4177,14 +4424,14 @@ throw new Exception("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣"); } decimal boxQty = boxInfo.First().Qty; - if (Convert.ToInt32(pickQty1) > boxQty) + if (decimal.Parse(pickQty1) > boxQty) { throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺"); } - if (Convert.ToInt32(pickQty1) > needQty) - { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); - } + //if (decimal.Parse(pickQty1) > needQty) + //{ + // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺"); + //} biaoShi = "2"; } @@ -4199,10 +4446,10 @@ throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴"); } var boxQty = boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToList(); - if (boxQty[0] > needQty) - { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); - } + //if (boxQty[0] > needQty) + //{ + // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); + //} foreach (var item in boxInfos) { @@ -4300,6 +4547,7 @@ SkuName = item.SkuName, Standard = item.Standard, ProductionTime = item.ProductionTime, + ExpirationTime = item.ExpirationTime, SupplierLot = item.SupplierLot, InspectMark = item.InspectMark, BitBoxMark = "1", @@ -4389,6 +4637,14 @@ } pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } + } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; @@ -4498,10 +4754,10 @@ } //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級 var needQty = allot.Qty - allot.CompleteQty; - if (decimal.Parse(PickQty) > needQty) - { - throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); - } + //if (decimal.Parse(PickQty) > needQty) + //{ + // throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鎵樺唴鍓╀綑寰呮嫞鏁伴噺"); + //} //搴撳瓨鏄庣粏 var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId); @@ -4726,6 +4982,13 @@ pallet.Status = "0"; Db.Updateable(pallet).ExecuteCommand(); + //淇敼鍌ㄤ綅鐘舵�� + var locate = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == stockDetail.LocatNo); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� -- Gitblit v1.8.0