From d567d9d6926abb103f3ab73402134daa6a09ef11 Mon Sep 17 00:00:00 2001 From: chengsc <Demo@DESKTOP-CPA90BF> Date: 星期六, 02 十一月 2024 18:28:13 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 164 insertions(+), 0 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index 4b30086..1583573 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -1,15 +1,19 @@ 锘縰sing System; using System.Collections.Generic; using System.Linq; +using System.Security.Policy; using System.Text; +using System.Threading.Tasks; using Model.InterFaceModel; using Model.ModelDto.BllCheckDto; using Model.ModelDto.PdaDto; +using Model.ModelDto.SysDto; using Model.ModelVm; using Newtonsoft.Json; using SqlSugar; using Utility.Tools; using WMS.BLL.LogServer; +using WMS.BLL.SysServer; using WMS.DAL; using WMS.Entity.BllAsnEntity; using WMS.Entity.BllCheckEntity; @@ -1333,6 +1337,166 @@ } #endregion + #region 浜哄伐杞繍 + + //浜哄伐杞繍 + public void ArtificialTransport(string palletNo, string locatNo, string endLocatNo, string mesTokenUrl, string mesUrl,int userId) + { + if (string.IsNullOrEmpty(palletNo)) + { + throw new Exception("璇锋壂鎻忔墭鐩樻潯鐮侊紒"); + } + if (string.IsNullOrEmpty(locatNo)) + { + throw new Exception("璇烽�夋嫨璧峰鍦板潃锛�"); + } + if (string.IsNullOrEmpty(endLocatNo)) + { + throw new Exception("璇疯緭鍏ョ洰鏍囧湴鍧�锛�"); + } + + try + { + #region 鍒ゆ柇淇℃伅 + + var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo).ToList(); + if (stockDetail.Count == 0) + { + throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!"); + } + + if (string.IsNullOrEmpty(stockDetail.First().LocatNo)) + { + throw new Exception("鎵樼洏鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); + } + if (stockDetail.First().WareHouseNo != "W02") + { + throw new Exception("璇ユ墭鐩樻湭鍦ㄥ钩搴撳唴,璇锋鏌�!"); + } + //璧峰鍌ㄤ綅淇℃伅 + var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo); + if (storageLocat == null) + { + throw new Exception("璧峰鍦板潃鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); + } + //鐩爣鍌ㄤ綅淇℃伅 + var EndLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == endLocatNo); + if (EndLocat == null) + { + throw new Exception("鐩爣鍦板潃鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); + } + + #endregion + + //寮�鍚簨鍔� + Db.BeginTran(); + + //闇�鍏堝垽鏂洰鏍囧湴鍧�鍓嶆柟鏄惁鏈夌┖鍌ㄤ綅 + + storageLocat.Status = "0"; //鏇存敼璧峰鍌ㄤ綅 + Db.Updateable(storageLocat).ExecuteCommand(); + EndLocat.Status = "1"; //鏇存敼鐩爣鍌ㄤ綅 + Db.Updateable(storageLocat).ExecuteCommand(); + + var data = new List<RequertBeiliaoInfoModel>(); + + //鏇存敼搴撳瓨鏄庣粏 + foreach (var item in stockDetail) + { + item.LocatNo = EndLocat.LocatNo;//鍌ㄤ綅鏇存敼 + item.WareHouseNo = EndLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀� + item.RoadwayNo = EndLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀� + item.AreaNo = EndLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀� + + Db.Updateable(item).ExecuteCommand(); + + if (EndLocat != null && EndLocat.AreaNo == "B12") //鏄惁鏄�3妤肩紦瀛樺尯 鏄細鍒犻櫎搴撳瓨 + { + if (string.IsNullOrWhiteSpace(item.SONo)) + { + throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏"); + } + //璁板綍鎵樼洏涓婁俊鎭粰MES + + data.Add(new RequertBeiliaoInfoModel() + { + materiel_no = item.SkuNo, + materiel_name = item.SkuName, + qty = item.Qty, + batch = item.LotNo, + producttime = item.ProductionTime, + expiry = item.ExpirationTime + + }); + //搴撳瓨绠辩爜鏄庣粏鍒犻櫎 + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList(); + Db.Deleteable(boxInfo).ExecuteCommand(); + //鍒犻櫎搴撳瓨鎵樼洏淇℃伅 + Db.Deleteable(item).ExecuteCommand(); + //鏇存敼搴撳瓨鎬昏〃 + var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); + stock.LockQty -= (decimal)item.Qty; + stock.Qty -= (decimal)item.Qty; + Db.Updateable(stock).ExecuteCommand(); + //鏇存敼鎵樼洏鐘舵�� + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (pallet != null) + { + pallet.Status = "0"; + Db.Updateable(pallet).ExecuteCommand(); + } + } + } + + + if (EndLocat != null && EndLocat.AreaNo == "B12") + { + //鑾峰彇浠ょ墝 + var token = new Token().GetMesToken(mesTokenUrl); + Dictionary<string, string> mesDic = new Dictionary<string, string>() + { + {"Authorization",token } + }; + var mesData = new RequertBeiliaoModel() + { + morder_no = stockDetail.First().SONo, + pallet = stockDetail.First().PalletNo, + layer_no = EndLocat.LocatNo, + items = data + }; + var jsonData = JsonConvert.SerializeObject(mesData); + //璋冪敤鎺ュ彛 + var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); + + var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.status != "0") + { + throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); + } + + } + + + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", palletNo, "绉诲簱", $"PDA鍛煎彨灏忚溅瀵规墭鐩樺彿锛歿palletNo}鍙戣捣杞繍", userId); + + //鎻愪氦浜嬪姟 + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + + + + + } + + #endregion + #region 绠辩爜鏌ヨ /// <summary> /// 绠辩爜鏌ヨ -- Gitblit v1.8.0