From 379bdd05d0b7ede3a161115b7a6fedfef104a37a Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期五, 14 二月 2025 10:33:52 +0800 Subject: [PATCH] 小车入库前等待 --- Wms/Wms/Controllers/UpApiController.cs | 30 ++++ Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 8 Wms/Wms/Controllers/PdaCrController.cs | 2 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 22 +- Wms/WMS.BLL/LogServer/TaskServer.cs | 26 ++++ Wms/WMS.IBLL/ILogServer/ITaskServer.cs | 2 Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 2 Wms/WMS.BLL/DataServer/StockServer.cs | 44 +++++++ Wms/Wms/appsettings.json | 4 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 28 ++++ Wms/Model/InterFaceModel/HttpModel.cs | 72 +++++++++++ Wms/WMS.IBLL/IDataServer/IStockServer.cs | 10 + Wms/Wms/Controllers/DownApiController.cs | 54 +++++++- 13 files changed, 269 insertions(+), 35 deletions(-) diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index c4b9322..fcb9260 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -110,6 +110,15 @@ public int StatusCode { get; set; } public string Msg { get; set; } } + + /// <summary> + /// 鎺ユ敹wcs鍙斁淇″彿model + /// </summary> + public class PutModel + { + public string TaskNo { get; set; } + + } /// <summary> /// Wms涓撶敤 涓嬪彂鎸囦护Dto /// </summary> @@ -1090,7 +1099,68 @@ /// </summary> public int MinLevelCount { get; set; } } - + + #endregion + + #region 鏁板瓧瀛敓 + public class DigitalTwinModel + { + ///// <summary> + ///// 搴撳尯 + ///// </summary> + //public string WareHouse { get; set; } + + ///// <summary> + ///// 瀛樺偍鍖哄煙 + ///// </summary> + //public string AreaNo { get; set; } + + ///// <summary> + ///// 鐗╂枡绫诲瀷 + ///// </summary> + //public string Skytype { get; set; } + + /// <summary> + /// 璇锋眰鏉ユ簮 + /// </summary> + public string Origin { get; set; } + } + + public class ReLocateData + { + /// <summary> + /// 搴撲綅 + /// </summary> + public string LocatNo { get; set; } + /// <summary> + /// 鎵樼洏鍙� + /// </summary> + public string PalletNo { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string SkuName { get; set; } + /// <summary> + /// 瑙勬牸 + /// </summary> + public string Stadard { get; set; } + /// <summary> + /// 鎵规 + /// </summary> + public string LotNo { get; set; } + /// <summary> + /// 璐ㄩ噺鐘舵�� + /// </summary> + public string InspectStatus { get; set; } + /// <summary> + /// 搴撳瓨鏁伴噺 + /// </summary> + public string Qty { get; set; } + /// <summary> + /// 鏈夋晥鏈� + /// </summary> + public string Warranty { get; set; } + } #endregion } diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 90d2952..d163829 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -355,18 +355,18 @@ continue; } } - if (model.Type != "7") - { - if (!TypeLot.Contains(model.Type)) - { - if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) - { - strMessage = "-1:杩涘巶缂栧彿浣嶆暟闀垮害鏈夎;"; - continue; - } - } + //if (model.Type != "7") + //{ + // if (!TypeLot.Contains(model.Type)) + // { + // if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) + // { + // strMessage = "-1:杩涘巶缂栧彿浣嶆暟闀垮害鏈夎;"; + // continue; + // } + // } - } + //} if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //閲囪喘鍒拌揣鍗曞師鍘傛壒鍙凤紙渚涜揣鎵规锛変笉鑳戒负绌� { diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index f9f6655..5f6f123 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -579,10 +579,10 @@ { throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅"); } - if (asnList.LotNo.Length != 10 && asnList.LotNo.Length != 11 && asnList.LotNo.Length != 12) - { - throw new Exception("鍗曟嵁杩涘巶缂栧彿浣嶆暟闀垮害閿欒"); - } + //if (asnList.LotNo.Length != 10 && asnList.LotNo.Length != 11 && asnList.LotNo.Length != 12) + //{ + // throw new Exception("鍗曟嵁杩涘巶缂栧彿浣嶆暟闀垮害閿欒"); + //} var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0"); if (asn == null) { diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index 3691b1b..89f5243 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -890,7 +890,7 @@ /// <param name="palletNo"></param> /// <param name="areaNo"></param> /// <param name="ruku"></param> - public void AgvTransport(string palletNo, string areaNo, string ruku, int userId, string url) + public void AgvTransport(string palletNo, string areaNo, string ruku, int userId, string url, string wcsurl) { if (string.IsNullOrEmpty(palletNo)) { @@ -907,7 +907,7 @@ try { string EndLocat = string.Empty,OrderTy = "";//鐩爣浣嶇疆 - + var tasktype = "D00"; //灏忚溅浠诲姟绫诲瀷锛岄粯璁や负鐐瑰埌鐐逛换鍔� var log = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && (w.Status == "0" || w.Status == "1")); if (log != null) @@ -969,6 +969,24 @@ //寮�鍚簨鍔� Db.BeginTran(); + //璇锋眰WCS鍏ュ簱鍙f斁璐х‘璁� + try + { + var res = HttpHelper.DoPost(wcsurl, EndLocat, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS"); + + //////瑙f瀽杩斿洖鏁版嵁 + var ret = JsonConvert.DeserializeObject<WcsModel>(res); + if (ret.StatusCode == -1) + { + throw new Exception(EndLocat + "鍏ュ簱鍙e凡鏈夊叾浠栦换鍔″崰鐢�,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�"); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + + //娣诲姞鍑哄簱浠诲姟 var taskNo = new Common().GetMaxNo("TK"); var exTask = new LogTask @@ -1017,7 +1035,7 @@ #region 鍛煎彨灏忚溅浠g爜 var endlono = EndLocat; - var tasktype = "D00"; //榛樿涓虹偣鍒扮偣浠诲姟 + //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷 switch (storageLocatEnd.AreaNo) { @@ -1028,6 +1046,10 @@ tasktype = "D01"; // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛� break; } + if (OrderTy == "0") + { + tasktype = "RK0"; //鍏ュ簱浠诲姟 + } //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001锛孻003_002锛孻003_003 1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖� 1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖� if (storageLocatEnd.AreaNo == "B12") diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index 7bb082d..89ca694 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -5,6 +5,7 @@ using System.Runtime.Intrinsics.X86; using System.Security.Claims; using System.Text; +using Model.InterFaceModel; using Model.ModelDto; using Model.ModelDto.DataDto; using Model.ModelDto.SysDto; @@ -1024,7 +1025,7 @@ } #endregion - #region AGV灏忚溅浠诲姟瀹屾垚 + #region AGV灏忚溅浠诲姟瀹屾垚鏇存柊搴撳瓨 /// <summary> /// AGV鍏ュ簱瀹屾垚 @@ -1174,5 +1175,46 @@ } } #endregion + + #region 鏁板瓧瀛敓绯荤粺鑾峰彇搴撳瓨淇℃伅 + + /// <summary> + /// 鍙嶉鏁板瓧瀛敓绯荤粺搴撳瓨淇℃伅 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<ReLocateData> GetLocateList() + { + try + { + List<ReLocateData> list = new List<ReLocateData>(); + + //搴撳瓨淇℃伅 + var stockDetailsList = Db.Queryable<StockDetailDto>().ToList(); + + if (stockDetailsList.Count == 0) + { + return list; + } + for (int i = 0; i < stockDetailsList.Count; i++) + { + list[i].LocatNo = stockDetailsList[i].LocatNo; //搴撲綅 + list[i].PalletNo = stockDetailsList[i].PalletNo; //鎵樼洏鍙� + list[i].SkuName = stockDetailsList[i].SkuName; //鐗╂枡鍚嶇О + list[i].Stadard = stockDetailsList[i].Standard; //瑙勬牸 + list[i].LotNo = stockDetailsList[i].LotNo; //鎵规 + list[i].InspectStatus = stockDetailsList[i].InspectStatus; //璐ㄩ噺鐘舵�� + list[i].Qty = stockDetailsList[i].Qty.ToString(); //搴撳瓨鏁伴噺 + list[i].Warranty = stockDetailsList[i].ExpirationTime.ToString(); //鏈夋晥鏈� ??杩囨湡鏃堕棿锛屾槸鍚﹁鏇存敼 + } + return list; + } + catch (Exception ex) + { + + throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex); + } + } + #endregion } } diff --git a/Wms/WMS.BLL/LogServer/TaskServer.cs b/Wms/WMS.BLL/LogServer/TaskServer.cs index 2228a6e..9da8836 100644 --- a/Wms/WMS.BLL/LogServer/TaskServer.cs +++ b/Wms/WMS.BLL/LogServer/TaskServer.cs @@ -3,9 +3,12 @@ using System.Linq; using System.Linq.Expressions; using System.Text; +using Model.InterFaceModel; using Model.ModelDto.BllSoDto; using Model.ModelDto.LogDto; +using Newtonsoft.Json; using SqlSugar; +using Utility.Tools; using WMS.DAL; using WMS.Entity.Context; using WMS.Entity.LogEntity; @@ -158,5 +161,28 @@ throw new Exception(e.Message); } } + + /// <summary> + /// AGV鍏ュ簱鏀捐揣璇锋眰涓嬪彂鑷砏CS + /// </summary> + /// <param name="port"></param> 鍏ュ簱鍙� + /// <param name="url"></param> 璇锋眰鍦板潃 + /// <returns></returns> + public string GetWcsPuttype(string port,string url) + { + try + { + var res = HttpHelper.DoPost(url, port, "璇锋眰WCS"+ port+"鍏ュ簱鍙f斁璐�", "WCS"); + + //////瑙f瀽杩斿洖鏁版嵁 + var ret = JsonConvert.DeserializeObject<WcsModel>(res); + return ret.Msg.ToString(); + } + catch (Exception ex) + { + + throw ex; + } + } } } diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs index f3733db..d3b04bf 100644 --- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs +++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs @@ -1,4 +1,5 @@ -锘縰sing Model.ModelDto.DataDto; +锘縰sing Model.InterFaceModel; +using Model.ModelDto.DataDto; using System; using System.Collections.Generic; using System.Text; @@ -143,5 +144,12 @@ /// <returns></returns> public void MoveFinish(string TaskCode); #endregion + + /// <summary> + /// 鍙嶉鏁板瓧瀛敓搴撳瓨淇℃伅 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + List<ReLocateData> GetLocateList(); } } diff --git a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs index 158c04e..9f30cc3 100644 --- a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs +++ b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs @@ -52,5 +52,7 @@ /// <param name="taskNo">浠诲姟鍙�</param> /// <returns>0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2绉诲簱浠诲姟</returns> public string GetTaskType(string taskNo); + + public string GetWcsPuttype(string port,string url); } } diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs index 55e32dc..780e321 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs @@ -130,7 +130,7 @@ /// <param name="palletNo"></param> /// <param name="areaNo"></param> /// <param name="ruku"></param> - void AgvTransport(string palletNo, string areaNo, string ruku, int userId,string url); + void AgvTransport(string palletNo, string areaNo, string ruku, int userId,string url,string wcsurl); /// <summary> /// agv杞繍鍛煎彨灏忚溅鍙栬揣 /// </summary> diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index 8b596bf..c513a72 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -751,6 +751,10 @@ } + + + #endregion + #region AGV /// <summary> @@ -774,7 +778,7 @@ var time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //娴嬭瘯鎺ュ彛鐢� - var orderType = _taskSvc.GetTaskOrderType(model.TaskCode,"0");// 鍒ゆ柇鍗曟嵁绫诲瀷鍏ュ嚭绉� + var orderType = _taskSvc.GetTaskOrderType(model.TaskCode, "0");// 鍒ゆ柇鍗曟嵁绫诲瀷鍏ュ嚭绉� var taskType = _taskSvc.GetTaskType(model.TaskCode);//鏍规嵁浠诲姟鍙疯幏鍙栦换鍔$被鍨� switch (orderType) @@ -783,13 +787,19 @@ if (model.TaskTyp == "mid") //AGV鍒拌揪鍏ュ簱鍙o紝璇锋眰鏀捐揣 { //涓嬪彂WCS鏀捐揣璇锋眰 - + var ret = _taskSvc.GetWcsPuttype(model.CurrentCallCode,_config.WcsHost + _config.MesBeiLiaoUrl); + if (ret.Contains("-1")) + { + logStr = $@".\log\WCS\浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + LogFile.SaveLogToFile($"鏀捐揣璇锋眰WCS澶辫触锛屽弽棣堟墽琛岄�氱煡锛�( {model.CurrentCallCode} ),", logStr); + return Ok(new OutCommanAgvDto { Code = "1", Message = "澶辫触", ReqCode = model.ReqCode }); + } } else if (model.TaskTyp == "end")//AGV鏀捐揣鍒板叆搴撳彛瀹屾垚 { _stockSvc.ArriveFinish(model.TaskCode); } - + break; case "1"://鍑哄簱浠诲姟鎵ц @@ -811,20 +821,46 @@ } catch (Exception ex) { - return Ok(new WcsModel + return Ok(new OutCommanAgvDto { - StatusCode = -1, - Msg = ex.Message + Code = "1", + Message = ex.Message }); } } + /// <summary> + /// 浠诲姟缁х画鎵ц鎺ュ彛 + /// 璋冪敤AGV浠诲姟妯℃澘continueTask锛學CS璋冪敤鎺ュ彛杩斿洖璇ュ伐浣嶅彲鏀句俊鍙� + /// </summary> + /// <param name="model">鍏ュ簱鍙d俊鎭�</param> + /// <returns></returns> + public IActionResult AgcontinueTask(PutModel model) + { + try + { + //璁板綍log + var logStr = $@".\log\WCS\浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"WCS浠诲姟鍙嶉鎵ц閫氱煡锛�( {jsonData} ),", logStr); + + //涓嬪彂AGV鍏ュ簱浠诲姟 + var taskType = _taskSvc.GetTaskType(model.TaskNo); + + + return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛"}); + + } + catch (Exception) + { + + throw; + } + } + #endregion - - #endregion - #region PDA diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs index cf4cc6b..1e65402 100644 --- a/Wms/Wms/Controllers/PdaCrController.cs +++ b/Wms/Wms/Controllers/PdaCrController.cs @@ -363,7 +363,7 @@ } var uId = int.Parse(userId); - _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId, _config.AgvHost + _config.GenAgvSchedulingTask); + _pdaCrSvc.AgvTransport(model.PalletNo, model.AreaNo, model.Ruku, uId, _config.AgvHost + _config.GenAgvSchedulingTask,_config.WcsHost + _config.BoxHost); return Ok(new { data = "", code = 0, msg = "鎴愬姛" }); } diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs index 45bbd85..3235fe0 100644 --- a/Wms/Wms/Controllers/UpApiController.cs +++ b/Wms/Wms/Controllers/UpApiController.cs @@ -14,6 +14,9 @@ using Model.ModelVm.BllCheckVm; using Microsoft.Extensions.Logging; using WMS.IBLL.IPdaServer; +using WMS.IBLL.IDataServer; +using Model.ModelDto.DataDto; +using System.Collections.Generic; namespace Wms.Controllers { @@ -30,13 +33,15 @@ private readonly IArrivalNoticeServer _arrivalNoticeSvc; private readonly IStockCheckServer _stockCheckSvc;//鐩樼偣鍗昐vc private readonly IPdaCrServer _daCrSvc;//PDA - public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc,IPdaCrServer daCrSvc) + private readonly IStockServer _stock; //搴撳瓨 + public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc,IPdaCrServer daCrSvc,IStockServer stock) { _config = setting.Value; _exNoticeSvc = exNoticeSvc; _arrivalNoticeSvc = arrivalNoticeServer; _stockCheckSvc = stockCheckSvc; _daCrSvc = daCrSvc; + _stock = stock; } #endregion @@ -425,6 +430,29 @@ //鍖呰淇℃伅鎺ュ彛 + /// <summary> + /// 鏁板瓧瀛敓绯荤粺搴撳瓨璐ㄩ噺鐘舵�佸弽棣� + /// </summary> + /// <returns></returns> + public IActionResult ReLocateData(DigitalTwinModel model) + { + //璁板綍log + var logStr = ""; + logStr = $@".\log\鏁板瓧瀛敓\搴撲綅淇℃伅鍙婅川閲忕姸鎬佸弽棣�" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"搴撲綅淇℃伅鍙婅川閲忕姸鎬佸弽棣堬細( {jsonData} ),", logStr); + + //鑾峰彇搴撳瓨淇℃伅 + List<ReLocateData> stocks = _stock.GetLocateList(); + + if (stocks.Count == 0) + { + var data = new HttpReturnModel { Success = "0", Message = "褰撳墠鏃犲簱瀛�" }; + return Ok(data); + } + return Ok(stocks); + } + #endregion } diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json index c28319d..92bb1cf 100644 --- a/Wms/Wms/appsettings.json +++ b/Wms/Wms/appsettings.json @@ -11,8 +11,8 @@ //"ConnectionString": "Server=47.95.120.93;Database=WMS_JC09;User ID=sa;password=boxline!@#; Integrated Security=True;", //"ConnectionString": "Server=47.95.120.53;Database=WMS_JC09;User ID=sa;Password=boxline!@#;Integrated Security=False;", //"ConnectionString": "Server=192.168.62.106;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;", - "ConnectionString": "Server=192.168.62.200;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;" - // "ConnectionString": "Server=10.18.99.10;Database=WMS_JC24;User ID=sa;Password=sql2024;Integrated Security=False;" + //"ConnectionString": "Server=192.168.62.200;Database=WMS_JC24;User ID=sa;Password=sql2019;Integrated Security=False;" + "ConnectionString": "Server=10.18.99.10;Database=WMS_JC24;User ID=sa;Password=sql2024;Integrated Security=False;" //"ConnectionString": "Server=.;Database=WMS_JC24;User ID=sa;Password=sql2022;Integrated Security=False;" //"ConnectionString": "Data Source=DESKTOP-0EJDG95\\MSSQLSERVER1;Initial Catalog=WMS_V01;Integrated Security=True;" }, -- Gitblit v1.8.0