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