From fee025c0d4fb4fd41d9dbf81b6435fd8e6229d5c Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期一, 16 六月 2025 17:33:05 +0800 Subject: [PATCH] 11111 --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs | 42 +++++++- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs | 14 ++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs | 38 +++++++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs | 13 ++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs | 91 +++++++++--------- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml | 13 ++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs | 32 ++++++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs | 34 ++++++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs | 15 +++ 9 files changed, 239 insertions(+), 53 deletions(-) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs index ef0c19f..9b5ef31 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs @@ -165,5 +165,19 @@ result = ApiHelper.Bzxx(model); return result; } + + /// <summary> + /// 鐢甸挻鍖呰涓嬬嚎 + /// </summary> + /// <returns></returns> + [HttpGet] + [Route("DGPackingLineFull")] + public SimpleResult DGPackingLineFull(string trayCode) + { + SimpleResult result = new SimpleResult(); + CMMLog.Debug("DGPackingLineFull Request锛� + trayCode); + result = ApiHelper.DGPackingLineFull(trayCode); + return result; + } } } diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs index 9080940..86dda83 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs @@ -588,6 +588,37 @@ return result; } + /// <summary> + /// 鐢甸挻杞﹂棿鍖呰涓嬬嚎鑾峰彇wms浼犲叆鐨勬墭鐩�+ /// </summary> + /// <param name="trayCode"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + internal static SimpleResult DGPackingLineFull(string trayCode) + { + SimpleResult result = new SimpleResult() { success = false,errCode = -1 }; + + if (!string.IsNullOrEmpty(trayCode)){ + var DGInfo = MongoDBSingleton.Instance.FindOne<DGPackingLineFullModel>(Query.EQ("trayCode", trayCode), "DGPackingLineFullModel"); + if (DGInfo == null) + { + MongoDBSingleton.Instance.Insert<DGPackingLineFullModel>(new DGPackingLineFullModel() { trayCode = trayCode, createTime = DateTime.Now }, "DGPackingLineFullModel"); + result.success = true; + result.errCode = 0; + } + else + { + result.errMsg = $"褰撳墠鎵樼洏鍙凤紝宸插瓨鍦ㄤ簬ams涓棿琛ㄤ腑锛屾墭鐩樺彿锛歿trayCode}"; + } + } + else + { + result.errMsg = $"褰撳墠鎵樼洏鍙蜂负绌�; + } + + return result; + } + public class mesInfo { public int code { get; set; } @@ -728,6 +759,13 @@ public int haveItem { get; set; } } + public class DGPackingLineFullModel + { + public ObjectId _id { get; set; } + public string trayCode { get; set; } + public DateTime createTime { get; set; } + } + public class secondResultCache { /// <summary> diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs index 2d8dea4..98481ec 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs @@ -414,6 +414,21 @@ } #endregion + #region 10019-鐢甸挻鎺ラ┏浣嶅叆绔嬪簱 + if (currActionModel.CN_N_ACTION_CODE == 10019) + { + var conInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList(); + if (conInfo != null) + { + foreach (var a in conInfo) + { + CMMLog.Info(JsonConvert.SerializeObject(a)); + PLCControl.DGInWarehouse(a.locCode); + } + } + } + #endregion + #endregion return bResult; } diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs index 7298a28..8a086bc 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs @@ -731,7 +731,7 @@ internal static void PickUpFullDoorComplete(string ip, string taskNo) { var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault(); - if (plc != null && !plc.location.Contains("FLZT")) + if (plc != null) { if (plc.location.Contains("FLZT")) { @@ -3978,6 +3978,38 @@ } } + /// <summary> + /// 鍥涢挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟 + /// </summary> + /// <param name="locCode"></param> + internal static void DGInWarehouse(string locCode) + { + try + { + var locInfo = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", locCode), "DGConnectingBits"); + if (locInfo != null) + { + if (locInfo.state == "1") + { + CMMLog.Info("DGInWarehouse:" + JsonConvert.SerializeObject(locInfo)); + string wmstaskno = ""; + string trayCode = ""; + bool req = WMSHelper.WMSIn(locCode, "鐢甸挻鎵撳寘涓嬬嚎", ref wmstaskno, ref trayCode, "", "CKHJ"); + if (req) + { + CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟鎴愬姛锛�); + MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "DGConnectingBits", UpdateFlags.None); + } + else CMMLog.Info($"鐢甸挻鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�); + } + } + } + catch (Exception ex) + { + CMMLog.Info("DGInWarehouse" + ex.Message); + } + } + internal static void outWare(string taskNo,bool flage) { var plc = Settings.GetPlcInfo().Where(a => a.Extend == "2" && a.enable == 1).FirstOrDefault(); @@ -4702,7 +4734,7 @@ //鎴愬搧涓嬬嚎浠诲姟鐢熸垚鍒版帴椹冲钩鍙� string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", ""); //鍙敓鎴愪换鍔�- var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList(); + var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList(); if (CBInfo != null) { //string timeStamp = timecuo.data.First().timeStamp.ToString(); @@ -4712,7 +4744,7 @@ if (!string.IsNullOrEmpty(a.locCode)) { //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�- var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits"); + var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits"); if (CBTable != null) { if (string.IsNullOrEmpty(CBTable.trayCode)) @@ -4722,7 +4754,7 @@ if (amsResult.success) { CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�); - MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None); + MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None); break; } @@ -4738,7 +4770,7 @@ CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�); //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹� - MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp }); + MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp }); break; } else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒"); diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs index 1e4237b..89db716 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs @@ -697,51 +697,52 @@ if (plc.Count > 0) { #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴 - //bool action = true; - //foreach(var a in plc) - //{ - // var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel - // { - // dataNum = 1, - // addr = a.readAddr + 3, - // host = a.ip, - // port = a.port - // }); - // if (modeResult != null && modeResult.errCode == 0) - // { - // CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{modeResult.result[0]}"); - // if (modeResult.result[0] == 2) - // { - // action = false; - // CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}"); - // break; - // } - // else - // { - // //璇诲彇涓棿琛ㄦā寮�- // var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList"); - // if (modelInfo != null) - // { - // if (modelInfo.Mode == "鍏ュ簱妯″紡") - // { - // action = false; - // CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡"); - // break; - // } - // } - // else - // { - // action = false; - // CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖"); - // break; - // } - // } - // } - //}; - //if (!action) - //{ - // return false; - //} + + foreach(var a in plc) + { + bool action = false; + var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 1, + addr = a.readAddr + 3, + host = a.ip, + port = a.port + }); + if (modeResult != null && modeResult.errCode == 0) + { + CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{modeResult.result[0]}"); + if (modeResult.result[0] == 2) + { + CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}"); + break; + } + else + { + //璇诲彇涓棿琛ㄦā寮�+ var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList"); + if (modelInfo != null) + { + if (modelInfo.Mode == "鍏ュ簱妯″紡") + { + CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡"); + } + else + { + action = true; + } + } + else + { + CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖"); + } + } + } + if (!action) + { + return false; + } + }; + #endregion diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs index 350756e..8bee715 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs @@ -387,7 +387,10 @@ { //鎵撳寘涓嬬嚎鍙栬揣瀹屾垚锛屽皢鏁版嵁鍐欏叆涓棿琛� } - + if (mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱") + { + MongoDBSingleton.Instance.Remove<DGPackingLineFullModel>(Query.EQ("trayCode", mst.CN_S_BATCH_NO),RemoveFlags.None); + } } if (action.CN_N_ACTION_CODE == 6) { @@ -821,6 +824,33 @@ /// </summary> //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴 } + + public class DGConnectingBits + { + public ObjectId _id { get; set; } + /// <summary> + /// 璐т綅缂栫爜 + /// </summary> + public string Bit { get; set; } + /// <summary> + /// 鎵樼洏鍙�+ /// </summary> + public string trayCode { get; set; } + /// <summary> + /// 璐т綅鐘舵� 0 鏃犺揣 1 鏈夎揣 + /// </summary> + public string state { get; set; } + /// <summary> + /// 鏃堕棿鎴�+ /// </summary> + public string timeCuo { get; set; } + /// <summary> + /// 浜屾浠诲姟鐨勭粓鐐硅揣浣�+ /// </summary> + //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴 + } + + #endregion public class InAndOutQuantity { public ObjectId _id { get; set; } @@ -857,8 +887,6 @@ public string Day { get; set; } public int Quntity { get; set; } } - - #endregion internal void writeAGVState(TN_I_TASK_DTL_ACTION action) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs index d205ab0..5159882 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs @@ -499,6 +499,38 @@ } #endregion + #region SGConnectingbits + private static string _SGConnectingbits = ""; + private static string SGConnectingbitsList + { + get + { + if (_SGConnectingbits == "") + { + _SGConnectingbits = XmlHelper.GetElementValue("SGConnectingbits"); + } + return _SGConnectingbits; + } + } + + private static List<SGConnectingbitsModel> SGconnectingbits = new List<SGConnectingbitsModel>(); + public static List<SGConnectingbitsModel> GetDGConnectingbitsList() + { + if (SGconnectingbits.Count == 0 && SGConnectingbitsList != "") + { + SGconnectingbits = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SGConnectingbitsModel>>(SGConnectingbitsList); + } + return SGconnectingbits; + } + + public class SGConnectingbitsModel + { + public string locCode { get; set; } + public int[] agvSite { get; set; } + public int enable { get; set; } + } + #endregion + #region ThirdUrl private static string _ThirdUrl = ""; private static string ThirdUrlList diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs index 624e6db..a0430f9 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs @@ -12,6 +12,7 @@ using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; +using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper; using static Hanhe.iWCS.JingmenGEMTwoProtocol.ERPService; using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper; using static System.Runtime.CompilerServices.RuntimeHelpers; @@ -509,6 +510,18 @@ //灏嗘暟鎹彃鍏ヤ腑闂磋〃 ERPService.senderpTask(time, startBit); } + else if (ItemCode == "鍥涢挻鎵撳寘涓嬬嚎") + { + var DGinfoList = MongoDBSingleton.Instance.FindAll<DGPackingLineFullModel>("DGPackingLineFullModel"); + if(DGinfoList.Count > 0){ + var DGinfo = DGinfoList.OrderBy(a => a.createTime).First(); + model.trayCode = DGinfo.trayCode; + //model.endArea = endArea; + } + + //灏嗘暟鎹彃鍏ヤ腑闂磋〃 + //ERPService.senderpTask(time, startBit); + } } else { diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml index b17b52b..fc54f34 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml @@ -289,6 +289,19 @@ </Connectingbits> <!-- + 鎴愬搧鍏ュ簱鐨勬帴椹充綅-鍥涢挻 + 鍙傛暟璇存槑锛�+ locCode:璐т綅缂栫爜 + --> + <SGConnectingbits> + <![CDATA[ + [ + {"locCode":"1","agvSite":[],"enable":1}, + {"locCode":"2","agvSite":[],"enable":1} + ]]]> + </SGConnectingbits> + + <!-- 绗笁鏂规帴鍙RL閰嶇疆椤� 鍙傛暟璇存槑锛� UrlNo锛歎RL鏍囪瘑(鍞竴锛屽紑鍙戞寚瀹氾紝涓嶅厑璁镐慨鏀� -- Gitblit v1.9.1