From 823a7818345dedc7e460b3009c7ee2a89fa03e03 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期一, 23 六月 2025 17:29:33 +0800 Subject: [PATCH] 11 --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs | 45 +++++++++++++++------- ams/Hanhe.iWCS.JingmenGEMTwoTCP/.vs/Hanhe.iWCS.JingmenGEMTwoTCP/v17/DocumentLayout.json | 2 ams/Hanhe.iWCS.JingmenGEMTwoTCP/WCSServer.cs | 10 +++- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs | 51 +++++++++++++++++++++---- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs | 4 +- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml | 2 6 files changed, 83 insertions(+), 31 deletions(-) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs index 0613efb..fe87d5a 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs @@ -1,4 +1,5 @@ 锘縰sing Hanhe.iWCS.Common; +using Hanhe.iWCS.DeviceDriver; using Hanhe.iWCS.MData; using Hanhe.iWCS.Model; using MongoDB.Bson; @@ -14,10 +15,13 @@ using System.Net.NetworkInformation; using System.Net.Sockets; using System.Security.Cryptography; +using System.Security.Policy; using System.Text; using System.Threading.Tasks; using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper; using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper; +using static Hanhe.iWCS.JingmenGEMTwoProtocol.PLCControl; +using static Hanhe.iWCS.JingmenGEMTwoProtocol.ProtocolAnalysis; namespace Hanhe.iWCS.JingmenGEMTwoProtocol { @@ -35,6 +39,7 @@ static WebApiHelper api = new WebApiHelper(); public const string ERPSwitch01 = "1";// ERP鍙樻洿娴佺▼寮�叧 + public static HardwareAccessObject hao = HardwareAccessHelper.Instance.GetEquipmentsHAO(Constants.WMS_DEVICE_TYPE_WMS); public static List<string> SendERPTaskType = Settings.SendERPTaskType.Split(',').ToList();//鍥炴姤浠诲姟绫诲瀷 public static List<string> LoginInfo = Settings.LoginInfo.Split(',').ToList();// ERP鐧诲綍鎺ュ彛浼犺緭淇℃伅 @@ -2035,26 +2040,54 @@ } - internal static void senderpTaskDG(string startBit) + internal static void senderpTaskDG(string startBit, string trayCode) { try { //閫氳繃鎵樼洏鍙疯皟鐢╳ms鎺ュ彛鑾峰彇鐗╂枡淇℃伅 - CMMLog.Info("鎻掑叆SendErpTaskInfoTable 琛�寮�:" + startBit); - var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTable>(Query.EQ("Bit", startBit), "SendErpTaskInfoTable"); + CMMLog.Info("SendErpTaskInfoTableDG 琛�寮�:" + startBit); + var url = hao.WebUrl + "GlmTrayItemSet"; + var erpInfo = MongoDBSingleton.Instance.FindOne<SendErpTaskInfoTableDG>(Query.EQ("Bit", startBit), "SendErpTaskInfoTableDG"); if (erpInfo == null) { //string fEntryId = time.FEntryID_1.ToString() + (time.FEntryID_2 == 0 ? "" : ";" + time.FEntryID_2.ToString()) + (time.FEntryID_3 == 0 ? "" : ";" + time.FEntryID_3.ToString()) + (time.FEntryID_4 == 0 ? "" : ";" + time.FEntryID_4.ToString()); + string materiCode = ""; + string lotCode = ""; + int totalWeight = 0; + string productTime = ""; - CMMLog.Info("鎻掑叆SendErpTaskInfoTable 琛�1"); - MongoDBSingleton.Instance.Insert<SendErpTaskInfoTable>(new SendErpTaskInfoTable + //鏍规嵁鎵樼洏鍙疯幏鍙栧叆搴撶墿鏂欎俊鎭�+ CJWareNum model = new CJWareNum + { + TrayCode = trayCode + }; + + string msgData = JsonConvert.SerializeObject(model); + + var feedback = helper.WebPost(url, msgData).Replace(@"\", "").Trim(); + CMMLog.Info($"SendErpTaskInfoTableDG:銆愯皟鐢╳ms鑾峰彇鐗╂枡淇℃伅銆�鎺ユ敹鏁版嵁锛� + feedback); + if (!string.IsNullOrEmpty(feedback)) + { + var wmsResponse = JsonConvert.DeserializeObject<LKInfoResModel>(feedback); + if (wmsResponse.Success == true) + { + materiCode = wmsResponse.Data.CN_S_MATERI_CODE; + lotCode = wmsResponse.Data.CN_S_LOT_NO; + totalWeight = wmsResponse.Data.CN_N_WEIGHT; + productTime = wmsResponse.Data.CN_S_Data; + } + } + + CMMLog.Info("SendErpTaskInfoTableDG 琛�1"); + MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableDG>(new SendErpTaskInfoTableDG { Bit = startBit, - //materiCode = time.materialCode, - //lotCode = time.batchNumber, - //productTime = Convert.ToDateTime(time.ProductionDate).AddHours(8), - //invalidationTime = Convert.ToDateTime(time.ProductionDate).AddHours(8).AddDays(365), + materiCode = materiCode, + lotCode = lotCode, + totalWeight = totalWeight, + productTime = Convert.ToDateTime(productTime).AddHours(8), + invalidationTime = Convert.ToDateTime(productTime).AddHours(8).AddDays(365), dateTime = DateTime.Now.AddHours(8), //鍙樻洿娉ㄩ噴 mesSucess = "0" diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs index be76331..6e5a535 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs @@ -3979,7 +3979,7 @@ } /// <summary> - /// 鍥涢挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟 + /// 鐢甸挻鎺ラ┏浣嶅叆绔嬪簱浠诲姟 /// </summary> /// <param name="locCode"></param> internal static void DGInWarehouse(string locCode) @@ -4525,7 +4525,7 @@ } /// <summary> - /// 鍥涢挻A锛堟礂鏉跨儤骞叉満缁勶級璁惧涓婄┖涓嬫弧 + /// 鐢甸挻A锛堟礂鏉跨儤骞叉満缁勶級璁惧涓婄┖涓嬫弧 /// </summary> /// <param name="plc"></param> /// <exception cref="NotImplementedException"></exception> @@ -4548,8 +4548,8 @@ { //閫佺┖ bool req = WMSHelper.WMSOut(plc.location, "", ""); - if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 - else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); + if (req) CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇绌烘墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); } if (result.result[0] == 2) { @@ -4557,20 +4557,20 @@ string wmstaskno = ""; string traycode = ""; bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode); - if (req) CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 - else CMMLog.Debug($"鍥涢挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); + if (req) CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鐢甸挻A璁惧 璋冪敤WMS鑾峰彇婊℃墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); } } } catch (Exception ex) { - CMMLog.Info($"鍥涢挻A璁惧 err:{ex.Message}"); + CMMLog.Info($"鐢甸挻A璁惧 err:{ex.Message}"); } } } /// <summary> - /// 鍥涢挻C锛堥挻鏉垮壀鍒囨満缁勶級璁惧涓婃弧涓嬬┖ + /// 鐢甸挻C锛堥挻鏉垮壀鍒囨満缁勶級璁惧涓婃弧涓嬬┖ /// </summary> /// <param name="a"></param> /// <exception cref="NotImplementedException"></exception> @@ -4593,8 +4593,8 @@ { //閫佹弧 bool req = WMSHelper.WMSOut(plc.location, "", ""); - if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 - else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); + if (req) CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇婊℃墭鍑哄簱鐢熸垚浠诲姟澶辫触锛�); } if (result.result[0] == 2) { @@ -4602,14 +4602,14 @@ string wmstaskno = ""; string traycode = ""; bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode); - if (req) CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 - else CMMLog.Debug($"鍥涢挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); + if (req) CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級 + else CMMLog.Debug($"鐢甸挻C璁惧 璋冪敤WMS鑾峰彇绌烘墭鍏ュ簱鐢熸垚浠诲姟澶辫触锛�); } } } catch (Exception ex) { - CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}"); + CMMLog.Info($"鐢甸挻C璁惧 err:{ex.Message}"); } } } @@ -4785,7 +4785,7 @@ } catch (Exception ex) { - CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}"); + CMMLog.Info($"鐢甸挻C璁惧 err:{ex.Message}"); } } } @@ -4834,13 +4834,28 @@ public string Msg { get; set; } public LKData Data { get; set; } public int AffectedRows { get; set; } - public bool Success { get; set; } } public class LKData { + /// <summary> + /// 鎵规鍙�+ /// </summary> public string CN_S_LOT_NO { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public string CN_S_MATERI_CODE { get; set; } + /// <summary> + /// 妗堕噸閲忥紙鍗曚釜妗堕噸閲�妗舵暟閲忥級 + /// </summary> + public int CN_N_WEIGHT { get; set; } + /// <summary> + /// 鐢熶骇鏃ユ湡 + /// </summary> + public string CN_S_Data { get; set; } + public int CN_S_EXT8 { get; set; } } diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs index dc42c2a..349acb2 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs @@ -510,14 +510,14 @@ //灏嗘暟鎹彃鍏ヤ腑闂磋〃 ERPService.senderpTask(time, startBit); } - else if (ItemCode == "鍥涢挻鎵撳寘涓嬬嚎") + 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; //灏嗘暟鎹彃鍏ヤ腑闂磋〃 - ERPService.senderpTaskDG(startBit); + ERPService.senderpTaskDG(startBit, DGinfo.trayCode); } } } diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml index fc54f34..b16dac8 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml @@ -289,7 +289,7 @@ </Connectingbits> <!-- - 鎴愬搧鍏ュ簱鐨勬帴椹充綅-鍥涢挻 + 鎴愬搧鍏ュ簱鐨勬帴椹充綅-鐢甸挻 鍙傛暟璇存槑锛� locCode:璐т綅缂栫爜 --> diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoTCP/.vs/Hanhe.iWCS.JingmenGEMTwoTCP/v17/DocumentLayout.json b/ams/Hanhe.iWCS.JingmenGEMTwoTCP/.vs/Hanhe.iWCS.JingmenGEMTwoTCP/v17/DocumentLayout.json index 870b24e..911576c 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoTCP/.vs/Hanhe.iWCS.JingmenGEMTwoTCP/v17/DocumentLayout.json +++ b/ams/Hanhe.iWCS.JingmenGEMTwoTCP/.vs/Hanhe.iWCS.JingmenGEMTwoTCP/v17/DocumentLayout.json @@ -1,6 +1,6 @@ { "Version": 1, - "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoTCP\\", + "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\WCS\\Hanhe.iWCS.3.3\\\u8346\u95E8\u683C\u6797\u7F8E\\Hanhe.iWCS.JingmenGEMTwoTCP\\", "Documents": [], "DocumentGroupContainers": [ { diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoTCP/WCSServer.cs b/ams/Hanhe.iWCS.JingmenGEMTwoTCP/WCSServer.cs index 64510fe..0bcfa3f 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoTCP/WCSServer.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoTCP/WCSServer.cs @@ -120,15 +120,15 @@ //10017-鐢甸挻A鍙� IEnentListen AMachine = DataAccess.CreateEnentListen(); AMachine.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10017 }); - + //10018-鐢甸挻C鍙� IEnentListen CMachine = DataAccess.CreateEnentListen(); CMachine.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10018 }); - + //10019-鐢甸挻D鍙� IEnentListen DMachine = DataAccess.CreateEnentListen(); DMachine.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10019 }); - + //10020-鐢甸挻鎺ラ┏浣嶅叆绔嬪簱 IEnentListen DGInWarehouse = DataAccess.CreateEnentListen(); DGInWarehouse.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10020 }); @@ -137,6 +137,10 @@ IEnentListen SendERPTaskCompleteFuncThree = DataAccess.CreateEnentListen(); SendERPTaskCompleteFuncThree.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10021 }); + //10022-鍙嶉erp 鎻掑叆绠�崟鐢熶骇鍏ュ簱琛�鐢甸挻) + IEnentListen SendERPTaskCompleteFuncDG = DataAccess.CreateEnentListen(); + SendERPTaskCompleteFuncDG.EnentSubscribe(new TN_I_TASK_DTL_ACTION() { CN_N_ACTION_CODE = 10021 }); + } public class YourReceiveFilter : IReceiveFilterFactory<BinaryRequestInfo> { public IReceiveFilter<BinaryRequestInfo> CreateFilter(IAppServer appServer, IAppSession appSession, System.Net.IPEndPoint remoteEndPoint) { -- Gitblit v1.9.1