From 86e443e42c4bee972c5b795def4917e02f98ce40 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 11 七月 2025 16:45:08 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 912 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 449 insertions(+), 463 deletions(-) diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index e0f4851..4ab2a27 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -29,6 +29,7 @@ using System.Diagnostics; using System.Drawing.Drawing2D; using Model.ModelDto.LogDto; +using AutoMapper.Internal; namespace WMS.BLL.BllSoServer { @@ -304,26 +305,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(); //鑾峰彇搴撳瓨鏄庣粏 @@ -332,10 +333,10 @@ 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); + var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.customerNo); if (customer == null) { throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!"); @@ -343,12 +344,12 @@ 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,21 +367,21 @@ { var list = new List<BllExportNoticeDetail>(); //娣诲姞鍑哄簱鍗� - foreach (var d in model.SoDetails) + foreach (var d in model.orderDetailList) { - if (d.Qty < 1) + 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("鎵规涓嶅彲涓虹┖!"); } @@ -388,29 +389,29 @@ //搴撳瓨鏄庣粏 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() @@ -419,36 +420,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); } @@ -457,12 +458,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; @@ -470,29 +471,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; @@ -507,18 +508,18 @@ { 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 { @@ -535,9 +536,9 @@ } } } - if (d.Qty > q1) + if (d.skuQty > q1) { - throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.SkuNo} 搴撳瓨鏁伴噺涓嶈冻"); + throw new Exception($"鎬诲簱瀛樹腑鍑哄簱鐗╂枡淇℃伅:{d.skuNo} 搴撳瓨鏁伴噺涓嶈冻"); } foreach (var s in dic) { @@ -545,7 +546,7 @@ var item = new BllExportNoticeDetail() { SONo = billNo, - OrderDetailCode = d.OrderDetailCode, + OrderDetailCode = d.lineNo, SkuNo = sku.SkuNo, SkuName = sku.SkuName, Standard = sku.Standard, @@ -557,14 +558,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, }; @@ -574,7 +575,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; @@ -585,13 +586,13 @@ 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, + CustomerNo = model.customerNo, CustomerName = CustomerName, - LogisticsId = logisticsId, + LogisticsId = null,//logisticsId, IsWave = "0", WaveNo = "", IsDespatch = "0", @@ -1013,10 +1014,11 @@ skuList = skuList.Where(m => m.SkuNo == "100088").ToList(); } skuStrList = skuList.Select(m => m.SkuNo).ToList(); + var areaStr = new List<string>() { "B06", "B07", "B09" }; var stockRst = new StockServer(); var stockDetailRst = new StockDetailServer(); Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() - .And(it => it.WareHouseNo == house) + .And(it => it.WareHouseNo == house || string.IsNullOrWhiteSpace(it.LocatNo) || (it.WareHouseNo == "W04" && !areaStr.Contains(it.AreaNo))) .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus)) .And(m => skuStrList.Contains(m.SkuNo)) .AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓� @@ -1249,7 +1251,7 @@ IsWave = "0", WaveNo = "", IsDespatch = "0", - + WareHouseNo = model.WareHouseNo, CreateUser = userId, }; @@ -2199,17 +2201,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 == 200) { //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// new TaskServer().EditTaskIssueOk(list2, time1, time2); str += "涓嬪彂鎴愬姛"; } - if (wcsModel.StatusCode == -1) + else { - new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); - throw new Exception(wcsModel.Msg); + new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message); + throw new Exception(wcsModel.message); } } catch (Exception ex) @@ -3025,9 +3027,44 @@ try { List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴� + var i = 0; + var outLocatelist1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B02" && m.Flag == "0").ToList(); + var outLocatelist2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B05" && m.Flag == "0").ToList(); //寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔� foreach (var item in list) { + var outModeLocate = ""; + if (outMode == "17") + { + if (i < outLocatelist1.Count) + { + outModeLocate = outLocatelist1[i].LocatNo; + } + else + { + var j = i % outLocatelist1.Count; + + outModeLocate = outLocatelist1[j].LocatNo; + } + } + else if (outMode == "18") + { + if (i < outLocatelist1.Count) + { + outModeLocate = outLocatelist2[i].LocatNo; + } + else + { + var j = i % outLocatelist1.Count; + + outModeLocate = outLocatelist2[j].LocatNo; + } + } + else + { + throw new Exception("鍑哄簱鍙e伐浣嶅紓甯�"); + } + var taskNoStr = ""; // 鍌ㄤ綅鍙� @@ -3050,7 +3087,7 @@ { //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鍒嗛厤淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 item.Status = "2";//鐘舵�� - item.OutMode = outMode;//鍑哄簱鍙� + item.OutMode = outModeLocate;//鍑哄簱鍙� Db.Updateable(item).ExecuteCommand(); var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.SODetailNo); if (noticeDetail != null) //鏇存柊鍑哄簱鍗曟嵁鐨勪笅鍙戞暟閲� @@ -3072,6 +3109,7 @@ } flagList.Add(0); continue; + } var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭� @@ -3102,7 +3140,7 @@ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 StartLocat = locate.LocatNo,//璧峰浣嶇疆 - EndLocat = outMode,//鐩爣浣嶇疆 + EndLocat = outModeLocate,//鐩爣浣嶇疆 PalletNo = item.PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� @@ -3110,25 +3148,24 @@ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - Msg = "浠�" + locate.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "浠�" + locate.LocatNo + "鍒�" + outModeLocate + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 }; Db.Insertable(exTask).ExecuteCommand(); logTaskList.Add(exTask); outDto1.Add(new OutCommandDto() { + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� + PalletNo = item.PalletNo,//鎵樼洏鍙� StartLocate = locate.LocatNo, // 璧峰浣嶇疆 StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾 - EndLocate = outMode, // 鐩爣浣嶇疆 - TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� - OutMode = outMode, //鍑哄簱鍙� - Order = 1, - - //UnstackingMode = "unstackingMode2",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - //CompleteQty = outCount2, //鎷嗙殑浠舵暟 - //BoxexQty = outCount, //鎬讳欢鏁� + EndLocate = outModeLocate, // 鐩爣浣嶇疆 + + Order = 999, + Type = PLCTypeEnum.AGV + }); taskNoStr = exTask.TaskNo; @@ -3157,17 +3194,21 @@ } locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱 Db.Updateable(locate).ExecuteCommand(); + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭� + locate2.Status = "4"; + Db.Updateable(locate2).ExecuteCommand(); item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿 item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� //item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡 - item.OutMode = outMode;//鍑哄簱鍙� + item.OutMode = outModeLocate;//鍑哄簱鍙� //item.LoadingAddre = unstackingMode2 == "0" ? loadingAddre : "";//瑁呰溅鍙� Db.Updateable(item).ExecuteCommand(); #endregion flagList.Add(0); + i++; } else if (locate.Status == "3") //鍑哄簱涓� { @@ -3310,7 +3351,8 @@ #endregion var com = new Common(); - + var allot = new AllotLocation(); + var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0"); if (notice == null) { @@ -3338,11 +3380,12 @@ 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; @@ -3352,11 +3395,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) @@ -3408,8 +3451,6 @@ } #endregion - - if (locate.Status == "1") //鏈夌墿鍝� { @@ -3477,7 +3518,7 @@ 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); @@ -3487,10 +3528,11 @@ PalletNo = item.PalletNo,//鎵樼洏鍙� StartLocate = locate.LocatNo, // 璧峰浣嶇疆 StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾 - EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆 + EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆 TaskNo = ykTaskNo, // 浠诲姟鍙� - TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� + TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� Order = Math.Abs(row2 - rows), + Type = PLCTypeEnum.ShuttleCar }); var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s); @@ -3524,7 +3566,7 @@ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 StartLocat = locate.LocatNo,//璧峰浣嶇疆 - EndLocat = toLocation,//outMode,//鐩爣浣嶇疆 + EndLocat = outMode,//outMode,//鐩爣浣嶇疆 PalletNo = item.PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� @@ -3532,21 +3574,23 @@ 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, outMode); outDto1.Add(new OutCommandDto() { PalletNo = item.PalletNo,//鎵樼洏鍙� StartLocate = locate.LocatNo, // 璧峰浣嶇疆 - StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾 - EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆 + StartRoadway = locate.RoadwayNo,//璧峰宸烽亾 + EndLocate = outMode,//, // 鐩爣浣嶇疆 + EndRoadway = endroad, TaskNo = exTask.TaskNo, // 浠诲姟鍙� TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� - OutMode = toLocation, //鍑哄簱鍙� + OutMode = outMode, //鍑哄簱鍙� Order = Math.Abs(row2 - row1), + Type = PLCTypeEnum.ShuttleCar }); taskNoStr = exTask.TaskNo; @@ -3674,23 +3718,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) { @@ -4100,7 +4144,6 @@ return bl; } - private class addreClass { public string slotCode { get; set; } @@ -4113,6 +4156,289 @@ public string AisleOne { get; set; } } + + /// <summary> + /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛� + /// </summary> + /// <param name="taskNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void ExportSuccess(string taskNo, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); + //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo); + try + { + task.Status = "2";//浠诲姟鐘舵�� + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); + if (locate != null) + { + locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級 + Db.Updateable(locate).ExecuteCommand(); + } + foreach (var item in stockDetail) + { + if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� + { + //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 + var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099"); + + if (stock != null) + { + if (item.LockQty != null) + { + stock.Qty -= item.LockQty.Value; + stock.LockQty -= item.LockQty.Value; + Db.Updateable(stock).ExecuteCommand(); + } + + if (stock.Qty == 0) + { + Db.Deleteable(stock).ExecuteCommand(); + } + } + + //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 + var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo); + if (sCode != null) + { + sCode.Status = "0"; + Db.Updateable(sCode).ExecuteCommand(); + } + Db.Deleteable(item).ExecuteCommand(); + + continue; + } + item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� + 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") + { + item.Status = "5"; + item.CompleteQty += stockDetail[0].Qty; + PalletType = "1"; + } + else + { + item.Status = "2"; + } + + } + + 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") + { + //淇敼鐩爣鍦板潃鐘舵�� + var endLocat = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == task.EndLocat); + endLocat.Status = "1"; + Db.Updateable(endLocat).ExecuteCommand(); + foreach (var item in stockDetail) + { + item.LocatNo = endLocat.LocatNo;//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� + item.WareHouseNo = endLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 + item.RoadwayNo = endLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 + item.AreaNo = endLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 + } + } + Db.Updateable(stockDetail).ExecuteCommand(); + Db.Updateable(allot).ExecuteCommand(); + + if (userId != 0) + { + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); + } + + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + catch (Exception ex) + { + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + /// <summary> + /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛� + /// </summary> + /// <param name="taskNo">浠诲姟鍙�</param> + /// <param name="userId">鎿嶄綔浜�</param> + /// <exception cref="Exception"></exception> + public void RelocationSuccess(string taskNo, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 + //褰撳墠浠诲姟涓殑鍘熷偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); + if (locate == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); + if (locate2 == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + //骞冲簱涓偍浣嶉泦鍚� + var pingKuLocate = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList(); + var pingKuList = pingKuLocate.Select(m => m.LocatNo).ToList(); + try + { + + //task.Status = "5";//浠诲姟鐘舵�� + ////鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱 + //if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat)) + //{ + task.Status = "2"; + //} + + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); + + #region 淇敼鍌ㄤ綅鐘舵�� + + if (!pingKuList.Contains(task.StartLocat)) + { + //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } + + + //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 + locate2.Status = "1"; + Db.Updateable(locate2).ExecuteCommand(); + //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱 + if ( pingKuList.Contains(task.EndLocat)) + { + foreach (var item in stockDetail) + { + item.WareHouseNo = locate2.WareHouseNo; + item.AreaNo = locate2.AreaNo; + item.RoadwayNo = locate2.RoadwayNo; + item.LocatNo = locate2.LocatNo; + } + Db.Updateable(stockDetail).ExecuteCommand(); + } + + + #endregion + + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + catch (Exception ex) + { + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + /// <summary> + /// AGV浠诲姟鍙栬揣瀹屾垚鍙嶉 + /// </summary> + /// <param name="taskNo"></param> + public void AGVQuHuoSuccess(string taskNo) + { + try + { + Db.BeginTran(); + var task = Db.Queryable<LogTask>().First(m=>m.IsDel =="0" && m.TaskNo == taskNo); + if (task == null) + { + throw new Exception("娌℃湁鏌ヨ鍒颁换鍔′俊鎭�"); + } + if (task.Status!="1") + { + throw new Exception("浠诲姟鐘舵�佷笉鏄鍦ㄦ墽琛岋紝璇锋牳瀹�"); + } + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat && m.IsDel == "0"); + if (locate == null) + { + throw new Exception("娌℃湁鏌ヨ鍒拌捣濮嬪偍浣嶄俊鎭�"); + } + if (locate.WareHouseNo!="W04") + { + throw new Exception("璧峰鍌ㄤ綅涓嶆槸骞冲簱鍌ㄤ綅锛岃鏍稿疄"); + } + locate.Status = "0"; //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣� + Db.Updateable(locate).ExecuteCommand(); + //鏌ヨ鍑烘墭鐩樹俊鎭� 鏇存敼搴撳瓨鍌ㄤ綅淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == task.PalletNo).ToList(); + foreach (var item in stockDetail) + { + item.WareHouseNo = ""; + item.AreaNo = ""; + item.RoadwayNo = ""; + item.LocatNo = ""; + } + Db.Updateable(stockDetail).ExecuteCommand(); + Db.CommitTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + #endregion #endregion @@ -5251,9 +5577,6 @@ OutMode = toLocation, //鍑哄簱鍙� Order = 1, - UnstackingMode=unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - CompleteQty= outCount2, //鎷嗙殑浠舵暟 - BoxexQty = outCount, //鎬讳欢鏁� }); taskNoStr = exTask.TaskNo; } @@ -5368,9 +5691,7 @@ OutMode = toLocation, //鐩爣鍦板潃 Order = 1, - UnstackingMode = "1",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - CompleteQty = 0, //鎷嗙殑浠舵暟 - BoxexQty = 0, //鎬讳欢鏁� + }); #endregion @@ -5426,9 +5747,6 @@ OutMode = toLocation, //鐩爣鍦板潃 Order = 1, - UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - CompleteQty = outCount2, //鎷嗙殑浠舵暟 - BoxexQty = outCount, //鎬讳欢鏁� }); taskNoStr = exTask1.TaskNo; #endregion @@ -5599,338 +5917,6 @@ } } - //wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛� - public void ExportSuccess(string taskNo, int userId) - { - try - { - //褰撳墠浠诲姟淇℃伅 - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); - if (task == null) - { - throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); - } - if (task.Status == "2") - { - throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); - } - Db.BeginTran(); - //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); - var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); - //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 - var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo); - try - { - task.Status = "2";//浠诲姟鐘舵�� - task.IsSend = 0; - task.IsCancel = 0; - task.IsFinish = 0; - task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 - Db.Updateable(task).ExecuteCommand(); - if (locate != null) - { - locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級 - Db.Updateable(locate).ExecuteCommand(); - } - foreach (var item in stockDetail) - { - if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� - { - //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 - var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099"); - - if (stock != null) - { - if (item.LockQty != null) - { - stock.Qty -= item.LockQty.Value; - stock.LockQty -= item.LockQty.Value; - Db.Updateable(stock).ExecuteCommand(); - } - - if (stock.Qty == 0) - { - Db.Deleteable(stock).ExecuteCommand(); - } - } - - //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 - var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo); - if (sCode != null) - { - sCode.Status = "0"; - Db.Updateable(sCode).ExecuteCommand(); - } - Db.Deleteable(item).ExecuteCommand(); - - #region 鎷h揣淇℃伅 - - //var pickQty = 0;//鎷h揣鐨勬暟閲� - //var comList = new List<BllCompleteDetail>(); - // //娣诲姞鎷h揣鏄庣粏 - // var completeDetail = new BllCompleteDetail() - // { - // SONo = "", - // SODetailNo = 0, - // ExportAllotId = 0, - // StockId = exportAllot.StockId, - // BoxNo = item.BoxNo, - // BoxNo2 = item.BoxNo2, - // BoxNo3 = item.BoxNo3, - - // LotNo = exportAllot.LotNo, - // LotText = exportAllot.LotText, - // SupplierLot = exportAllot.SupplierLot, - // SkuNo = exportAllot.SkuNo, - // SkuName = exportAllot.SkuName, - // Standard = exportAllot.Standard, - // PalletNo = palletNo, - // CompleteQty = item.Qty, - - // CreateUser = userId - // }; - // comList.Add(completeDetail); - - // //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - // Db.Deleteable(item).ExecuteCommand(); - // pickQty += item.Qty; - - // exportAllot.Status = "5"; //寰呭洖搴� : 宸插畬鎴� - // exportAllot.CompleteQty += item.Qty; //鎷h揣鏁伴噺 - // exportAllot.UpdateUser = userId; //淇敼浜� - // exportAllot.UpdateTime = serverTime; //淇敼鏃堕棿 - - // Db.Updateable(exportAllot).ExecuteCommand(); - - // //楠岃瘉鎷h揣淇℃伅鏄惁涓哄凡瀹屾垚 - // if (exportAllot.Status == "5") - // { - // break; - // } - - - //Db.Insertable(comList).ExecuteCommand(); - - - #endregion - - continue; - } - item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� - item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 - item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 - item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 - Db.Updateable(item).ExecuteCommand(); - } - //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 - 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锛氱┖鎵樼洏鎵� - var soNo = ""; - var sku = ""; - foreach (var item in allot) - { - if (item.SkuNo == "100099") - { - item.Status = "5"; - item.CompleteQty += stockDetail[0].Qty; - PalletType = "1"; - } - else - { - item.Status = "2"; - soNo = item.SONo; - sku = item.SkuNo; - } - - } - //涓嬪彂鍥涙ゼ璋冨害AGV鐨勪换鍔� - if ((task.EndLocat == "outMode" || task.EndLocat == "outMode") && PalletType == "0") - { - foreach (var item in allot) - { - var detail = Db.Queryable<DataStockDetail>().First(m => m.Id == item.StockId); - detail.SONo = item.SONo; - Db.Updateable(detail).ExecuteCommand(); - } - - var locatePing = new AllotLocation().GetPingLocate(soNo, sku); - if (locatePing == null) - { - throw new Exception("骞冲簱鏈煡璇㈠埌绌轰綅缃�"); - } - var exTask = new LogTask //鍑哄簱浠诲姟 - { - TaskNo = new Common().GetMaxNo("TK"), - Sender = "WMS", - Receiver = "AGV", - IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - - StartLocat = task.EndLocat,//璧峰浣嶇疆 - EndLocat = locatePing.LocatNo,//outMode,//鐩爣浣嶇疆 - PalletNo = task.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 = "浠�" + task.EndLocat + "鍒�" + locatePing.LocatNo + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 - }; - Db.Insertable(exTask).ExecuteCommand(); - - var outDto = new List<OutCommandDto> - { - new OutCommandDto() - { - PalletNo = task.PalletNo,//鎵樼洏鍙� - StartLocate = task.EndLocat, // 璧峰浣嶇疆 - StartRoadway = "",//鍏跺疄宸烽亾 - EndLocate = locatePing.LocatNo,//outMode, // 鐩爣浣嶇疆 - TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� - OutMode = "", //鍑哄簱鍙� - Order = 1, - - //UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - //CompleteQty = outCount2, //鎷嗙殑浠舵暟 - //BoxexQty = outCount, //鎬讳欢鏁� - } - }; - // 姝e紡杩愯绋嬪簭鏀惧紑 - var list2 = outDto.Select(m => m.TaskNo).ToList(); - var jsonData = JsonConvert.SerializeObject(outDto); - 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<WcsModel>(response); - //if (wcsModel.StatusCode == 0) - //{ - //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// - new TaskServer().EditTaskIssueOk(list2, time1, time2); - //} - //if (wcsModel.StatusCode == -1) - //{ - // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); - // throw new Exception(wcsModel.Msg); - //} - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - Db.Updateable(allot).ExecuteCommand(); - - if (userId != 0) - { - //娣诲姞鎿嶄綔鏃ュ織璁板綍 - var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); - } - - - - Db.CommitTran(); - } - catch (Exception ex) - { - Db.RollbackTran(); - throw new Exception(ex.Message); - } - } - catch (Exception ex) - { - throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); - } - } - - /// <summary> - /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛� - /// </summary> - /// <param name="taskNo">浠诲姟鍙�</param> - /// <param name="userId">鎿嶄綔浜�</param> - /// <exception cref="Exception"></exception> - public void RelocationSuccess(string taskNo, int userId) - { - try - { - //褰撳墠浠诲姟淇℃伅 - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); - if (task == null) - { - throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); - } - if (task.Status == "2") - { - throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); - } - Db.BeginTran(); - //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); - //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 - //褰撳墠浠诲姟涓殑鍘熷偍浣� - var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); - if (locate == null) - { - throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); - } - var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); - if (locate2 == null) - { - throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); - } - - try - { - task.Status = "2";//浠诲姟鐘舵�� - task.IsSend = 0; - task.IsCancel = 0; - task.IsFinish = 0; - task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 - Db.Updateable(task).ExecuteCommand(); - - #region 淇敼鍌ㄤ綅鐘舵�� - - //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 - locate.Status = "0"; - Db.Updateable(locate).ExecuteCommand(); - - //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 - locate2.Status = "1"; - Db.Updateable(locate2).ExecuteCommand(); - foreach (var item in stockDetail) - { - item.WareHouseNo = locate2.WareHouseNo; - item.AreaNo = locate2.AreaNo; - item.RoadwayNo = locate2.RoadwayNo; - item.LocatNo = locate2.LocatNo; - } - Db.Updateable(stockDetail).ExecuteCommand(); - - #endregion - - Db.CommitTran(); - } - catch (Exception ex) - { - Db.RollbackTran(); - throw new Exception(ex.Message); - } - } - catch (Exception ex) - { - throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); - } - } - - //閲嶆柊涓嬪彂鍑哄簱浠诲姟 public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url) { @@ -5987,17 +5973,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 == 200) { //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// new TaskServer().EditTaskIssueOk(list, time1, time2); } - if (wcsModel.StatusCode == -1) + else { - new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.Msg); - throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.Msg}"); + new TaskServer().EditTaskIssueNo(list, time1, time2, wcsModel.message); + throw new Exception($"wcs杩斿洖鐘舵�佸紓甯革細{wcsModel.message}"); } } catch (Exception ex) -- Gitblit v1.8.0