From 84c580cccb118f5ec4a039d0009255935c3c2490 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 17 六月 2025 17:31:40 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs   |  121 ++++++-------
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs |   17 -
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs  |   90 +++++++--
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs   |  179 +------------------
 ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs  |   79 ++++++++
 5 files changed, 221 insertions(+), 265 deletions(-)

diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs
index 7493131..cd54819 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs
@@ -682,6 +682,85 @@
             CMMLog.Debug($"WriteItemInfo:End!");
         }
 
+        /// <summary>
+        /// 鍐欏叆鍖呰鏈虹墿鏂欎俊鎭�+        /// </summary>
+        /// <param name="plcInfo"></param>
+        public static void WriteItemInfoTwo(Settings.PlcInfo plcInfo)
+        {
+            CMMLog.Debug($"WriteItemInfo:Start!");
+
+            try
+            {
+                //璇诲彇銆愮炕椤点�閫氶亾鏁版嵁
+                var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                {
+                    dataNum = 1,
+                    addr = plcInfo.FyReadAddr,
+                    host = plcInfo.ip,
+                    port = plcInfo.port
+                });
+                CMMLog.Debug($"WriteItemInfo:璇诲彇銆愮炕椤点�閫氶亾鏁版嵁涓猴細{JsonConvert.SerializeObject(result)}!");
+                if (true) // result != null && result.errCode == 0
+                {
+                    // 绀轰緥锛氳鍑哄�涓� 鑾峰彇1~5缂栧彿鐨勭墿鏂欐暟鎹�璇诲嚭鍊间负2 鑾峰彇6~10缂栧彿鐨勭墿鏂欐暟鎹�瑙勫垯 result.result[0] * 5 - 4 璧峰缂栧彿
+                    //int startItemNo = 1;
+                    int startItemNo = result.result[0] * 5 - 4;
+                    CMMLog.Debug($"WriteItemInfo:缈婚〉鏁版嵁涓猴細{startItemNo}!");
+                    var reLocationTask = MongoDBSingleton.Instance.Find<ERPItemTable>(Query.And(Query.In("item_no", new List<MongoDB.Bson.BsonValue>() { startItemNo, startItemNo + 1, startItemNo + 2, startItemNo + 3, startItemNo + 4 })), "ERPItemTable").ToList();
+                    int reLocationTaskNum = reLocationTask != null ? reLocationTask.Count : 0;
+                    CMMLog.Debug($"WriteItemInfo:鏌ヨ鍑篍RP鐗╂枡琛ㄦ暟鎹暟閲忎负锛歿reLocationTaskNum}!澶囨敞锛氬彧鏈夋暟閲忎负5鎵嶄細鍐欏叆鏁版嵁");
+                    if (reLocationTaskNum == 5)
+                    {
+                        int no = 0;
+                        reLocationTask.ForEach(a =>
+                        {
+                            int writeAddr = plcInfo.FyWriteAddr + no * 50;
+                            if (no > 0) writeAddr = writeAddr + 40;
+                            no++;
+                            // 瑙f瀽鐗╂枡鏁版嵁骞跺啓鍏�鏈夋晥鏁版嵁閫氶亾 50,50(浜у搧鍨嬪彿-10 鐗╂枡缂栫爜-15 鐗╂枡鍚嶇О-20 璁¢噺鍗曚綅-5)
+                            int[] num = new int[50];
+                            // 鍐呭瓨鍦板潃 0~19 鍗忚鍦板潃 1~20  鎵规鍙�浜哄伐杈撳叆,涓嶉渶瑕佺▼搴忓啓鍏�+                            for (int i = 0; i <= 19; i++) num[i] = 0;
+                            // 鍐呭瓨鍦板潃 20~29 鍗忚鍦板潃 21~30 浜у搧鍨嬪彿
+                            // HandleItemInfo(a.item_spec, 20, 29, num);
+                            HandleItemInfoChina(a.item_spec, 0, 9, num);
+                            CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_spec},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}");
+                            // 鍐呭瓨鍦板潃 30~49 鍗忚鍦板潃 31~50 鐗╂枡缂栫爜
+                            HandleItemInfo(a.item_code, 10, 24, num);
+                            CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_code},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}");
+                            // 鍐呭瓨鍦板潃 50~64 鍗忚鍦板潃 51~65 鐗╂枡鍚嶇О
+                            // HandleItemInfo(a.item_name, 50, 64, num);
+                            HandleItemInfoChina(a.item_name, 25, 44, num);// 涓枃澶勭悊
+                            CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_name},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}");
+                            // 鍐呭瓨鍦板潃 65~69 鍗忚鍦板潃 66~70 璁¢噺鍗曚綅
+                            HandleItemInfo(a.item_uom, 45, 49, num);
+                            CMMLog.Debug($"WriteItemInfo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_uom},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}");
+
+                            CMMLog.Debug($"WriteItemInfo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},ip:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}");
+
+                            var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+                            {
+                                addr = writeAddr,
+                                host = plcInfo.ip,
+                                port = plcInfo.port,
+                                data = num
+                            });
+                            int writeResult = wirteall01 != null ? wirteall01.errCode : 1;
+                            CMMLog.Debug($"WriteItemInfo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},鍐欏叆缁撴灉锛歿writeResult}銆俰p:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}");
+                        });
+                    }
+                }
+                else CMMLog.Debug($"WriteItemInfo:鏈鍙栥�缈婚〉銆戦�閬撴暟鎹�");
+            }
+            catch (Exception ex)
+            {
+                CMMLog.Debug($"WriteItemInfo Error:{ex.Message}");
+            }
+
+            CMMLog.Debug($"WriteItemInfo:End!");
+        }
+
         public static void HandleItemInfo(string itemInfo,int startIndex, int endIndex , int[] num)
         {
             string data = itemInfo;// 瑕佸啓鍏ョ殑澶勭悊鍚庢暟鎹�diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
index 56acb2c..6cc5262 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/EnentListen.cs
@@ -166,15 +166,7 @@
                     {
                         list.ForEach(a =>
                         {
-                            if(a.deviceType == "1")
-                            {
-                                PLCControl.PickUpBlank(a);
-                            }
-                            else
-                            {
-                                PLCControl.PickUpBlankTwo(a);
-                            }
-                            
+                            PLCControl.PickUpBlankTwo(a);
                         });
                     }
                 }
@@ -322,7 +314,7 @@
                         list.ForEach(a =>
                         {
                             // 鍖呰鏈哄惎鍔ㄦ椂璇诲彇銆愮炕椤甸�閬撱�锛屾牴鎹〉鍙疯幏鍙栦簲鏉℃暟鎹紝鐒跺悗鍐欏叆鍖呰鏈�-                            //ERPService.WriteItemInfo(a);
+                            //ERPService.WriteItemInfoTwo(a);
 
                             PLCControl.CheckPackingMachineTetracobalt(a);
                         });
@@ -338,7 +330,7 @@
             {
                 lock (lock10015)
                 {
-                    ERPService.insertMidTable();
+                    //ERPService.insertMidTable();
                 }
             }
             #endregion
@@ -352,7 +344,8 @@
                 {
                     if (CheckStartFree(plc.location))
                     {
-                        PLCControl.CheckPackingLineFullTwo(plc);
+                        //PLCControl.CheckPackingLineFullTwo(plc);
+                        PLCControl.CheckPackingLineFullThree(plc);
                     }
                 }
                 //Thread.Sleep(500);
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
index 316631d..0e5f1a7 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/MESHelper.cs
@@ -249,10 +249,6 @@
                     int productTime = Convert.ToInt32(Completion(result[(i - 1) * 24 + 20]) + Completion(result[(i - 1) * 24 + 21]), 2);//鐢熶骇鏃ユ湡
                     string timeCuoTwo = Convert.ToInt32(Completion(result[(i - 1) * 24 + 22]) + Completion(result[(i - 1) * 24 + 23]), 2).ToString(); //鏃堕棿鎴� 
-                    //娉ㄦ剰锛氳繖閲岃祴鍊间腑闂磋〃鍙傛暟璇峰鐓т俊鎭氦浜掕〃鍏蜂綋閫氶亾鍊煎搴�-                    //UpdateBuilder update = Update.Set("employeeId" + i.ToString(), empCode).Set("trayCode" + i.ToString(), trayCode).Set("packingMachineNumber" + i.ToString(), machineCode).Set("needWeight" + i.ToString(), needWeight)
-                    //    .Set("oneWeight" + i.ToString(), oneWeight).Set("realWeight" + i.ToString(), readWeight).Set("FCWeight" + i.ToString(), fcWeight).Set("trayType" + i.ToString(), trayType)
-                    //    .Set("isFold" + i.ToString(), addState).Set("bagNumber" + i.ToString(), bagNumber).Set("productData" + i.ToString(), productTime).Set("timeCuo" + i.ToString(), timeCuoTwo);
                     UpdateBuilder updateBuilder = Update.Set("employeeId" + i.ToString(), empCode).Set("trayCode" + i.ToString(), trayCode).Set("packingMachineNumber" + i.ToString(), machineCode).Set("needWeight" + i.ToString(), needWeight)
                                             .Set("oneWeight" + i.ToString(), oneWeight).Set("realWeight" + i.ToString(), readWeight).Set("FCWeight" + i.ToString(), fcWeight).Set("trayType" + i.ToString(), trayType)
                                             .Set("isFold" + i.ToString(), addState).Set("bagNumber" + i.ToString(), bagNumber).Set("productData" + i.ToString(), productTime).Set("timeCuo" + i.ToString(), timeCuoTwo);
@@ -1135,201 +1131,51 @@
             /// <summary>
             /// 鍛樺伐缂栧彿1
             /// </summary>
-            public string employeeId1 { get; set; }
+            public string employeeId { get; set; }
             /// <summary>
             /// 鎵樼洏鐮�
             /// </summary>
-            public string trayCode1 { get; set; }
+            public string trayCode { get; set; }
             /// <summary>
             /// 鍖呰鏈哄彿1
             /// </summary>
-            public string packingMachineNumber1 { get; set; }
+            public string packingMachineNumber { get; set; }
             /// <summary>
             /// 浜у搧闇�眰閲嶉噺1锛�2浣嶆暣鏁�             /// </summary>
-            public int needWeight1 { get; set; }
+            public int needWeight { get; set; }
             /// <summary>
             /// 鍗曟墭姣涢噸1锛�2浣嶆暣鏁�             /// </summary>
-            public int oneWeight1 { get; set; }
+            public int oneWeight { get; set; }
             /// <summary>
             /// 鍗曟墭瀹為檯閲嶉噺1锛�2浣嶆暣鏁�             /// </summary>
-            public int realWeight1 { get; set; }
+            public int realWeight { get; set; }
             /// <summary>
             /// 鍗曟墭澶嶇О閲嶉噺1锛�2浣嶆暣鏁�             /// </summary>
-            public int FCWeight1 { get; set; }
+            public int FCWeight { get; set; }
             /// <summary>
             /// 鎵樼洏绫诲瀷1
             /// </summary>
-            public string trayType1 { get; set; }
+            public string trayType { get; set; }
             /// <summary>
             /// 鍙犲寘灞傛暟1
             /// </summary>
-            public int isFold1 { get; set; }
+            public int isFold { get; set; }
             /// <summary>
             /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�10) 鏁存暟1
             /// </summary>
-            public int bagNumber1 { get; set; }
+            public int bagNumber { get; set; }
             /// <summary>
             /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級1
             /// </summary>
-            public string productData1 { get; set; }
+            public string productData { get; set; }
             /// <summary>
             /// 鍗曞寘涓嬫枡鏃堕棿鎴�             /// </summary>
-            public string timeCuo1 { get; set; }
-
-
-            /// <summary>
-            /// 鍛樺伐缂栧彿2
-            /// </summary>
-            public string employeeId2 { get; set; }
-            /// <summary>
-            /// 鎵樼洏鐮�
-            /// </summary>
-            public string trayCode2 { get; set; }
-            /// <summary>
-            /// 鍖呰鏈哄彿2
-            /// </summary>
-            public string packingMachineNumber2 { get; set; }
-            /// <summary>
-            /// 浜у搧闇�眰閲嶉噺2锛�2浣嶆暣鏁�-            /// </summary>
-            public int needWeight2 { get; set; }
-            /// <summary>
-            /// 鍗曟墭姣涢噸2锛�2浣嶆暣鏁�-            /// </summary>
-            public int oneWeight2 { get; set; }
-            /// <summary>
-            /// 鍗曟墭瀹為檯閲嶉噺2锛�2浣嶆暣鏁�-            /// </summary>
-            public int realWeight2 { get; set; }
-            /// <summary>
-            /// 鍗曟墭澶嶇О閲嶉噺2锛�2浣嶆暣鏁�-            /// </summary>
-            public int FCWeight2 { get; set; }
-            /// <summary>
-            /// 鎵樼洏绫诲瀷2
-            /// </summary>
-            public string trayType2 { get; set; }
-            /// <summary>
-            /// 鍙犲寘灞傛暟2
-            /// </summary>
-            public int isFold2 { get; set; }
-            /// <summary>
-            /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�20) 鏁存暟2
-            /// </summary>
-            public int bagNumber2 { get; set; }
-            /// <summary>
-            /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級2
-            /// </summary>
-            public string productData2 { get; set; }
-            /// <summary>
-            /// 鍗曞寘涓嬫枡鏃堕棿鎴�-            /// </summary>
-            public string timeCuo2 { get; set; }
-
-
-            /// <summary>
-            /// 鍛樺伐缂栧彿3
-            /// </summary>
-            public string employeeId3 { get; set; }
-            /// <summary>
-            /// 鎵樼洏鐮�
-            /// </summary>
-            public string trayCode3 { get; set; }
-            /// <summary>
-            /// 鍖呰鏈哄彿3
-            /// </summary>
-            public string packingMachineNumber3 { get; set; }
-            /// <summary>
-            /// 浜у搧闇�眰閲嶉噺3锛�3浣嶆暣鏁�-            /// </summary>
-            public int needWeight3 { get; set; }
-            /// <summary>
-            /// 鍗曟墭姣涢噸3锛�2浣嶆暣鏁�-            /// </summary>
-            public int oneWeight3 { get; set; }
-            /// <summary>
-            /// 鍗曟墭瀹為檯閲嶉噺3锛�2浣嶆暣鏁�-            /// </summary>
-            public int realWeight3 { get; set; }
-            /// <summary>
-            /// 鍗曟墭澶嶇О閲嶉噺3锛�2浣嶆暣鏁�-            /// </summary>
-            public int FCWeight3 { get; set; }
-            /// <summary>
-            /// 鎵樼洏绫诲瀷3
-            /// </summary>
-            public string trayType3 { get; set; }
-            /// <summary>
-            /// 鍙犲寘灞傛暟3
-            /// </summary>
-            public int isFold3 { get; set; }
-            /// <summary>
-            /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�30) 鏁存暟3
-            /// </summary>
-            public int bagNumber3 { get; set; }
-            /// <summary>
-            /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級3
-            /// </summary>
-            public string productData3 { get; set; }
-            /// <summary>
-            /// 鍗曞寘涓嬫枡鏃堕棿鎴�-            /// </summary>
-            public string timeCuo3 { get; set; }
-
-
-            /// <summary>
-            /// 鍛樺伐缂栧彿4
-            /// </summary>
-            public string employeeId4 { get; set; }
-            /// <summary>
-            /// 鎵樼洏鐮�
-            /// </summary>
-            public string trayCode4 { get; set; }
-            /// <summary>
-            /// 鍖呰鏈哄彿4
-            /// </summary>
-            public string packingMachineNumber4 { get; set; }
-            /// <summary>
-            /// 浜у搧闇�眰閲嶉噺4锛�2浣嶆暣鏁�-            /// </summary>
-            public int needWeight4 { get; set; }
-            /// <summary>
-            /// 鍗曟墭姣涢噸4锛�2浣嶆暣鏁�-            /// </summary>
-            public int oneWeight4 { get; set; }
-            /// <summary>
-            /// 鍗曟墭瀹為檯閲嶉噺4锛�2浣嶆暣鏁�-            /// </summary>
-            public int realWeight4 { get; set; }
-            /// <summary>
-            /// 鍗曟墭澶嶇О閲嶉噺4锛�2浣嶆暣鏁�-            /// </summary>
-            public int FCWeight4 { get; set; }
-            /// <summary>
-            /// 鎵樼洏绫诲瀷4
-            /// </summary>
-            public string trayType4 { get; set; }
-            /// <summary>
-            /// 鍙犲寘灞傛暟4
-            /// </summary>
-            public int isFold4 { get; set; }
-            /// <summary>
-            /// 鏈壒娆″唴琚嬪彿锛氾紙1锛�锛�鈥︹�40) 鏁存暟4
-            /// </summary>
-            public int bagNumber4 { get; set; }
-            /// <summary>
-            /// 鐢熶骇鏃ユ湡锛�2浣嶆暣鏁帮級4
-            /// </summary>
-            public string productData4 { get; set; }
-            /// <summary>
-            /// 鍗曞寘涓嬫枡鏃堕棿鎴�-            /// </summary>
-            public string timeCuo4 { get; set; }
+            public string timeCuo { get; set; }
 
             /// <summary>
             /// 澶嶇О鎬婚噸閲�@@ -1359,6 +1205,7 @@
             /// 璁¢噺鍗曚綅
             /// </summary>
             public string measurementUnit { get; set; }
+            public DateTime createTime { get; set; }
         }
 
         /// <summary>
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
index e356c85..afa5106 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/PLCControl.cs
@@ -1751,6 +1751,7 @@
                     host = plc.ip,
                     port = plc.port
                 });
+                CMMLog.Info($"鍙犵洏涓嬬嚎璇诲彇閫氶亾{plc.ip}锛宲ort锛歿plc.port},鍦板潃锛歿plc.readAddr + 1}鐨勫�涓簕JsonConvert.SerializeObject(result)}");
                 if (result != null && result.errCode == 0)
                 {
                     //1.婊℃墭涓嬬嚎
@@ -1762,7 +1763,14 @@
                             string wmstaskno = "";
                             string traycode = "";
                             string trayType = "";
-                            if(plc.deviceType == "25") trayType = result.result[1] == 1 ? "宸濆瓧鎵� : "鐢板瓧鎵�;
+                            if (plc.deviceType == "25")
+                            {
+                                trayType = result.result[1] == 1 ? "宸濆瓧鎵� : result.result[1] == 2 ? "鐢板瓧鎵� : "";
+                                if (string.IsNullOrEmpty(trayType))
+                                {
+                                    return;
+                                }
+                            }
                             bool req = WMSHelper.WMSIn(plc.location, "", ref wmstaskno, ref traycode,"","",false, trayType);
                             if (req)
                             {
@@ -2058,9 +2066,9 @@
                                 if (timecuo != null)
                                 {
                                     string timeStamp = timecuo.TimeCuo;
-                                    string employeeId = timecuo.employeeId1;
-                                    // ERP鍙樻洿-璋冪敤ERP鎺ュ彛浼犺緭鐩稿叧鏁版嵁
-                                    WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeStamp, timeStamp, employeeId,true);
+                                    //string employeeId = timecuo.employeeId1;
+                                    //// ERP鍙樻洿-璋冪敤ERP鎺ュ彛浼犺緭鐩稿叧鏁版嵁
+                                    //WMSHelper.WMSIn(plc.location, "time", ref wmstaskno, ref timeStamp, timeStamp, employeeId,true);
                                 }
                                 else CMMLog.Info($"鏃堕棿鎴虫帴鍙h繑鍥炲�涓虹┖锛�);
                             }
@@ -3977,7 +3985,7 @@
                 if (result != null && result.errCode == 0)
                 {
                     //3锛氫汉宸ュ彨绌烘墭鐩�宸濆瓧)  4:浜哄伐鍙┖鎵樼洏(鐢板瓧)
-                    if (result.result[0] == 3 || result.result[0] == 4)
+                    if ((pmInfo.deviceType == "1" && result.result[0] == 3)|| (pmInfo.deviceType == "21" &&(result.result[0] == 3 || result.result[0] == 4)))
                     {
                         //鍖呰绾胯ˉ绌烘祦绋�                         //鍒ゆ柇绌烘墭缂撳瓨鐐癸紙5 瀵�2锛夋槸鍚︽湁绌烘墭锛屾湁绌烘墭鍒ゆ柇鏄惁鏈変换鍔★紝鏈変换鍔″垯鍒ゆ柇鍙︿竴涓偣浣�@@ -3990,9 +3998,9 @@
                             {
                                 CMMLog.Info($"鍛ㄨ浆鎵樼洏浣嶏細{a}");
                                 var ddInfo = Settings.GetDDSiteList().Where(b => b.ddLoc == a && b.Enable == 1).FirstOrDefault();
-                                if(ddInfo != null)
+                                if (ddInfo != null)
                                 {
-                                    if(ddInfo.trayType == result.result[0] - 2)
+                                    if (ddInfo.trayType == result.result[0] - 2)
                                     {
                                         if (ProcessHelper.PickUpEndFree(pmInfo.location) && ProcessHelper.PickUpStartFree(a))
                                         {
@@ -4017,21 +4025,6 @@
                             CMMLog.Info("閰嶇疆鏂囦欢鏈厤缃寘瑁呮満绌烘墭缂撳瓨鐐�);
                         }
                     }
-                    //娴佺▼鏈鎺ュソ锛屾槸鍚﹁繖鏍蜂娇鐢�寰呭畾
-                    //if (result.result[0] == 4)
-                    //{
-                    //    //璋冪敤wms鍑哄簱鎺ュ彛
-                    //    var tasks = MongoDBSingleton.Instance.Find<TN_I_TASK_MST>(Query.EQ("CN_S_END_BIT", pmInfo.location), "TN_I_TASK_MST");
-                    //    //鍒ゆ柇涓�笅褰撳墠鍙犳墭鐐规槸鍚︽湁浠诲姟鍗犵敤
-                    //    if (ProcessHelper.CheckEndFree(pmInfo.location) && tasks.Count == 0)
-                    //    {
-                    //        //鍙互鐢熸垚浠诲姟锛岃皟WMS鎺ュ彛鑾峰彇浠诲姟淇℃伅
-                    //        bool req = WMSHelper.WMSOut(pmInfo.location, "");
-                    //        if (req) CMMLog.Debug($"璋冪敤WMS鑾峰彇杈呮潗鍑哄簱鐢熸垚浠诲姟鎴愬姛锛�);//鐜板湪浠诲姟鐢盬MS鑷繁涓嬪彂锛孉MS鍋氭嫤鎴鐞嗭紙鏌ヨext1閲岄潰瀵瑰簲鐨勪换鍔$被鍨嬶紝骞舵洿鏀逛换鍔$被鍨嬶級
-                    //        else CMMLog.Debug($"璋冪敤WMS鑾峰彇杈呮潗鍑哄簱鐢熸垚浠诲姟澶辫触锛�);
-                    //    }
-                    //    else CMMLog.Debug($"妫�煡褰撳墠鍙犳墭鐐规槸鍚︽湁浠诲姟鍗犵敤锛屾垨鑰匨ST涓昏〃涓湁缂撳瓨鏋跺叆鍙犵洏鏈虹殑浠诲姟锛�);
-                    //}
                 }
                 else
                 {
@@ -4204,6 +4197,59 @@
             }
             Thread.Sleep(100000);
         }
+
+        internal static void CheckPackingLineFullThree(Settings.PlcInfo plc)
+        {
+            var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+            {
+                dataNum = 25,
+                addr = plc.readAddr,
+                host = plc.ip,
+                port = plc.port
+            });
+            if(result != null && result.errCode == 0)
+            {
+                if (result.result[0] == 1)
+                {
+                    //鑾峰彇鐗╂枡淇℃伅 鏍规嵁鎵樼洏鐮佸尯鍒�+                    string trayCode = RemoveNull(GetTrayCode(result.result.Skip(6).Take(3).ToArray()));//鎵樼洏鐮�+
+
+                    var infoPack = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.And(Query.EQ("trayCode", trayCode)), "TimeCuoInfoComTwo");
+                    if (infoPack != null)
+                    {
+                        string empCode = RemoveNull(GetTrayCode(result.result.Skip(1).Take(5).ToArray()));//鍛樺伐缂栫爜
+                        string machineCode = RemoveNull(GetTrayCode(result.result.Skip(9).Take(1).ToArray()));//鍖呰鏈哄彿
+                        int needWeight = Convert.ToInt32(Completion(result.result[10]) + Completion(result.result[11]), 2);//浜у搧闇�眰閲嶉噺
+                        int oneWeight = Convert.ToInt32(Completion(result.result[12]) + Completion(result.result[13]), 2);//鍗曟墭姣涢噸
+                        int readWeight = Convert.ToInt32(Completion(result.result[14]) + Completion(result.result[15]), 2);//鍗曟墭鍑�噸
+                        int fcWeight = Convert.ToInt32(Completion(result.result[16]) + Completion(result.result[17]), 2);//鍗曟墭澶嶇О閲嶉噺
+                        int trayType = Convert.ToInt32(Completion(result.result[18]), 2);//鎵樼洏绫诲瀷
+                        int addState = Convert.ToInt32(Completion(result.result[19]), 2);//鍙犲寘灞傛暟
+                        int bagNumber = Convert.ToInt32(Completion(result.result[20]), 2);//琚嬪彿
+                        int productTime = Convert.ToInt32(Completion(result.result[21]) + Completion(result.result[22]), 2);//鐢熶骇鏃ユ湡
+                        string timeCuoTwo = Convert.ToInt32(Completion(result.result[23]) + Completion(result.result[24]), 2).ToString(); //鏃堕棿鎴�+
+                        UpdateBuilder updateBuilder = Update.Set("employeeId", empCode).Set("trayCode", trayCode).Set("packingMachineNumber", machineCode).Set("needWeight", needWeight)
+                                                .Set("oneWeight", oneWeight).Set("realWeight", readWeight).Set("FCWeight", fcWeight).Set("trayType", trayType)
+                                                .Set("isFold", addState).Set("bagNumber", bagNumber).Set("productData", productTime);
+                        //浜у搧鎵规鍙� 浜у搧鍨嬪彿 鐗╂枡鍚嶇О 璁¢噺鍗曚綅鍧囧彲鍦╡rp琛ㄤ腑鏍规嵁鐗╂枡缂栫爜鑾峰彇
+
+                        result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                        {
+                            dataNum = 15,
+                            addr = plc.readAddr + 131,
+                            host = plc.ip,
+                            port = plc.port
+                        });
+
+                        string materialCode = RemoveNull(GetTrayCode(result.result.Skip(0).Take(15).ToArray()).Trim().ToString());
+                        UpdateBuilder update = Update.Set("materialCode", materialCode);
+                        MongoDBSingleton.Instance.Update<TimeCuoInfoComTwo>(Query.EQ("trayCode", trayCode), update, UpdateFlags.None);
+                    }
+                }
+            }
+        }
         #endregion
     }
 }
diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
index e38c750..9754fb4 100644
--- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
+++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/WMSHelper.cs
@@ -423,40 +423,31 @@
                         }
                         else
                         {
-                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
-                            CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
-                            if (ItemCode == "time" && time != null)
-                            {
-                                CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�);
-                                model.data.Add(new ItemData()
-                                {
-                                    //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
-                                    //isFold = time.isFold,
-                                    //packingMachineNumber = time.packingMachineNumber,
-                                    itemCode = time.productModel,
-                                    lotNo = time.lotNo,
-                                    machineNo = time.packingMachineNumber1.ToString(),
-                                    packageCode = time.bagNumber1.ToString(),
-                                    //palletLayers = time.bagNumber1.ToString(),
-                                    foldingbag = time.isFold1.ToString(),
-                                    //totalWeight = time.totalWeight,
-                                    timeStamp = int.Parse(time.TimeCuo),
-                                    //productType = time.productModel,
-                                    //bagNumber = time.bagNumber,
-                                    //needWeight = time.needWeight,
-                                    realWeight = time.realWeight1,
-                                    //batchNumber = time.batchNumber,
-                                    //totalCount = time.totalCount,
-
-                                    Jm_Item_Code = time.materialCode,
-                                    Jm_Item_Name = time.materialName,
-                                    Jm_Item_Model = time.productModel,
-                                    Jm_Item_Unit = time.measurementUnit,
-                                    Jm_Item_Staff = employee_id
-                                });
-                            }
+                            //var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
+                            //CMMLog.Info($"WMSIn-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
+                            //var erpItemTableInfo = MongoDBSingleton.Instance.FindOne<ERPItemTable>(Query.EQ("item_code", time.materialCode), "ERPItemTable");
+                            //CMMLog.Info($"WMSIn-{startBit}:鏌ヨ鏉′欢锛歩tem_code={time.materialCode},璇诲嚭 ERPItemTable 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(erpItemTableInfo)}");
+                            //if (ItemCode == "time" && time != null && erpItemTableInfo != null)
+                            //{
+                            //    CMMLog.Info($"WMSIn-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�);
+                            //    model.data.Add(new ItemData()
+                            //    {
+                            //        itemCode = time.productModel,
+                            //        lotNo = time.lotNo,
+                            //        machineNo = time.packingMachineNumber1.ToString(),
+                            //        packageCode = time.bagNumber1.ToString(),
+                            //        foldingbag = time.isFold1.ToString(),
+                            //        timeStamp = int.Parse(time.TimeCuo),
+                            //        realWeight = time.realWeight1,
+                            //
+                            //        Jm_Item_Code = time.materialCode,
+                            //        Jm_Item_Name = time.materialName,
+                            //        Jm_Item_Model = time.productModel,
+                            //        Jm_Item_Unit = time.measurementUnit,
+                            //        Jm_Item_Staff = employee_id
+                            //    });
+                            //}
                         }
-                        
                     }
                     else
                     {
@@ -644,38 +635,38 @@
                         }
                         else
                         {
-                            var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
-                            CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
-                            if (ItemCode == "time" && time != null)
-                            {
-                                CMMLog.Info($"WMSInTwo-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�);
-                                model.data.Add(new ItemData()
-                                {
-                                    //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
-                                    //isFold = time.isFold,
-                                    //packingMachineNumber = time.packingMachineNumber,
-                                    itemCode = time.productModel,
-                                    lotNo = time.lotNo,
-                                    machineNo = time.packingMachineNumber1.ToString(),
-                                    packageCode = time.bagNumber1.ToString(),
-                                    //palletLayers = time.bagNumber1.ToString(),
-                                    foldingbag = time.isFold1.ToString(),
-                                    //totalWeight = time.totalWeight,
-                                    timeStamp = int.Parse(time.TimeCuo),
-                                    //productType = time.productModel,
-                                    //bagNumber = time.bagNumber,
-                                    //needWeight = time.needWeight,
-                                    realWeight = time.realWeight1,
-                                    //batchNumber = time.batchNumber,
-                                    //totalCount = time.totalCount,
-
-                                    Jm_Item_Code = time.materialCode,
-                                    Jm_Item_Name = time.materialName,
-                                    Jm_Item_Model = time.productModel,
-                                    Jm_Item_Unit = time.measurementUnit,
-                                    Jm_Item_Staff = employee_id
-                                });
-                            }
+                            //var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoComTwo>(Query.EQ("timeStamp", timeStamp), "TimeCuoInfoCom");
+                            //CMMLog.Info($"WMSInTwo-{startBit}:{ItemCode}锛氭煡璇㈡潯浠讹細timeStamp={timeStamp},璇诲嚭 TimeCuoInfoComTwo 琛ㄦ暟鎹负锛歿JsonConvert.SerializeObject(time)}");
+                            //if (ItemCode == "time" && time != null)
+                            //{
+                            //    CMMLog.Info($"WMSInTwo-{startBit}:time鑾峰彇鏃堕棿鎴虫暟鎹负锛歿time.TimeCuo}锛�);
+                            //    model.data.Add(new ItemData()
+                            //    {
+                            //        //1妤兼媶鐩樻満璋僕MS鑾峰彇鍏ュ簱缁堢偣锛屼紶杈撴椂闂存埑鏁版嵁锛堟殏瀹氾級
+                            //        //isFold = time.isFold,
+                            //        //packingMachineNumber = time.packingMachineNumber,
+                            //        itemCode = time.productModel,
+                            //        lotNo = time.lotNo,
+                            //        machineNo = time.packingMachineNumber1.ToString(),
+                            //        packageCode = time.bagNumber1.ToString(),
+                            //        //palletLayers = time.bagNumber1.ToString(),
+                            //        foldingbag = time.isFold1.ToString(),
+                            //        //totalWeight = time.totalWeight,
+                            //        timeStamp = int.Parse(time.TimeCuo),
+                            //        //productType = time.productModel,
+                            //        //bagNumber = time.bagNumber,
+                            //        //needWeight = time.needWeight,
+                            //        realWeight = time.realWeight1,
+                            //        //batchNumber = time.batchNumber,
+                            //        //totalCount = time.totalCount,
+                            //
+                            //        Jm_Item_Code = time.materialCode,
+                            //        Jm_Item_Name = time.materialName,
+                            //        Jm_Item_Model = time.productModel,
+                            //        Jm_Item_Unit = time.measurementUnit,
+                            //        Jm_Item_Staff = employee_id
+                            //    });
+                            //}
                         }
 
                     }

--
Gitblit v1.9.1