From ff48949f706e899725c1ef7d0426c12c2b3e674f Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 17 七月 2025 17:18:16 +0800
Subject: [PATCH] 1

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs                                                       |   82 ++++++--
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json |   22 --
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json        |   24 ++
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs                                                        |   44 ++--
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs                                                        |   10 +
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs                                                    |  295 ++++++++++++++++++--------------
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/MESHelper.cs                                                        |    6 
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs                                                 |    9 
 8 files changed, 289 insertions(+), 203 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json
index b353696..3042840 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json
@@ -1,12 +1,7 @@
 {
   "Version": 1,
   "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\",
-  "Documents": [
-    {
-      "AbsoluteMoniker": "D:0:0:{BCE5B4FC-C2CD-459E-AAD0-34D4900B4528}|Hanhe.iWCS.JingmenGEMTwoProtocol.csproj|c:\\software\\a-\u5DE5\u4F5C\\\u6E90\u7801\\git\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\hanhe.iwcs.jingmengemtwoprotocol\\enentlisten.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BCE5B4FC-C2CD-459E-AAD0-34D4900B4528}|Hanhe.iWCS.JingmenGEMTwoProtocol.csproj|solutionrelative:enentlisten.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    }
-  ],
+  "Documents": [],
   "DocumentGroupContainers": [
     {
       "Orientation": 0,
@@ -14,7 +9,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 16,
-          "SelectedChildIndex": 7,
+          "SelectedChildIndex": -1,
           "Children": [
             {
               "$type": "Bookmark",
@@ -43,19 +38,6 @@
             {
               "$type": "Bookmark",
               "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "EnentListen.cs",
-              "DocumentMoniker": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\EnentListen.cs",
-              "RelativeDocumentMoniker": "EnentListen.cs",
-              "ToolTip": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\EnentListen.cs",
-              "RelativeToolTip": "EnentListen.cs",
-              "ViewState": "AgIAACIAAAAAAAAAAAAcwE0BAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-14T00:36:42.299Z",
-              "EditorCaption": ""
             }
           ]
         },
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json
index 3042840..8532650 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json
@@ -1,7 +1,12 @@
 {
   "Version": 1,
-  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\",
-  "Documents": [],
+  "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\WCS\\Hanhe.iWCS.3.3\\\u8346\u95E8\u683C\u6797\u7F8E\\Hanhe.iWCS.JingmenGEMTwoProtocol\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{BCE5B4FC-C2CD-459E-AAD0-34D4900B4528}|Hanhe.iWCS.JingmenGEMTwoProtocol.csproj|c:\\software\\a-\u5DE5\u4F5C\\\u6E90\u7801\\wcs\\hanhe.iwcs.3.3\\\u8346\u95E8\u683C\u6797\u7F8E\\hanhe.iwcs.jingmengemtwoprotocol\\enentlisten.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BCE5B4FC-C2CD-459E-AAD0-34D4900B4528}|Hanhe.iWCS.JingmenGEMTwoProtocol.csproj|solutionrelative:enentlisten.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    }
+  ],
   "DocumentGroupContainers": [
     {
       "Orientation": 0,
@@ -9,7 +14,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 16,
-          "SelectedChildIndex": -1,
+          "SelectedChildIndex": 7,
           "Children": [
             {
               "$type": "Bookmark",
@@ -38,6 +43,19 @@
             {
               "$type": "Bookmark",
               "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "EnentListen.cs",
+              "DocumentMoniker": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\WCS\\Hanhe.iWCS.3.3\\\u8346\u95E8\u683C\u6797\u7F8E\\Hanhe.iWCS.JingmenGEMTwoProtocol\\EnentListen.cs",
+              "RelativeDocumentMoniker": "EnentListen.cs",
+              "ToolTip": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\WCS\\Hanhe.iWCS.3.3\\\u8346\u95E8\u683C\u6797\u7F8E\\Hanhe.iWCS.JingmenGEMTwoProtocol\\EnentListen.cs",
+              "RelativeToolTip": "EnentListen.cs",
+              "ViewState": "AgIAAOYAAAAAAAAAAAAgwFEBAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-07-14T00:36:42.299Z",
+              "EditorCaption": ""
             }
           ]
         },
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
index 2736558..aa44d84 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
@@ -453,10 +453,8 @@
                         var req = JsonConvert.DeserializeObject<mesInfo>(res);
                         if(req != null)
                         {
-                            if (req.isSucess)
+                            if (req.isSuccess)
                             {
-                                var mesCodeLen = req.data.mesCode.Length;
-                                var mesCodeTwo = int.Parse(req.data.mesCode.Substring(0, mesCodeLen - 3));
                                 var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("packingMachineNumber", models.machineNo), "TimeCuoInfoCom");
                                 if (timeCuo == null)
                                 {
@@ -471,7 +469,7 @@
                                         productModel = req.data.materialSpec,
                                         bagNumber_1 = req.data.bagNum,
                                         totalCount = 1,
-                                        timeStamp = mesCodeTwo,
+                                        timeStampMES = req.data.mesCode,
                                         photoURL = req.data.barCode,
                                         ProductionDate = req.data.ywDate,
                                         // ERP鍙樻洿-鐓х浉鏈烘柊澧炲瓧娈�@@ -497,7 +495,7 @@
                                     //鍙樻洿娉ㄩ噴
                                     UpdateBuilder update = Update.Set("isFold", 1).Set("packingMachineNumber", models.machineNo).Set("needWeight", (int)req.data.FMustQty)
                                         .Set("realWeight", (int)req.data.FMustQty).Set("totalWeight", (int)req.data.FMustQty).Set("batchNumber", req.data.Flot)
-                                        .Set("productModel", req.data.materialSpec).Set("bagNumber_1", req.data.bagNum).Set("totalCount", 1).Set("timeStamp", mesCodeTwo)
+                                        .Set("productModel", req.data.materialSpec).Set("bagNumber_1", req.data.bagNum).Set("totalCount", 1).Set("timeStampMES", req.data.mesCode)
                                         .Set("photoURL", req.data.barCode).Set("ProductionDate", req.data.ywDate).Set("materialCode", req.data.FMaterialNumber)
                                         .Set("materialName", req.data.materialName).Set("measurementUnit", req.data.FUnit)
                                         .Set("createOrganization", req.data.FPrdOrgNumber).Set("WarehouseCode", req.data.FStockNumber).Set("workshopCode", req.data.FWorkShopNumber)
@@ -508,7 +506,6 @@
 
                                 //鐢熸垚鍒版帴椹冲钩鍙扮殑浠诲姟
                                 string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
-                                string timeCuo2 = mesCodeTwo.ToString();
                                 var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
                                 if (CBInfo != null)
                                 {
@@ -529,11 +526,7 @@
                                                     {
                                                         result.success = true;
                                                         CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API鎴愬姛锛�);
-                                                        MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeCuo2), UpdateFlags.None);
-
-                                                        //涓婃姤鏉$爜琛�-                                                        CMMLog.Info($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
-                                                        new SqlHelper<object>().ExecuteSql($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')", false);
+                                                        MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", req.data.mesCode), UpdateFlags.None);
 
                                                         break;
                                                     }
@@ -549,16 +542,29 @@
                                                     result.success = true;
                                                     CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API鎴愬姛锛�);
                                                     //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�-
-                                                    MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeCuo2 });
-
-                                                    //涓婃姤鏉$爜琛�-                                                    CMMLog.Info($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
-                                                    new SqlHelper<object>().ExecuteSql($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')", false);
-
+                                                    MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = req.data.mesCode });
+                                                    
                                                     break;
                                                 }
                                                 else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                            }
+                                            if (amsResult != null && amsResult.success)
+                                            {
+                                                //涓婃姤鏉$爜琛�+                                                CMMLog.Info($"INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
+                                                new SqlHelper<object>().ExecuteSql($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')", false);
+                                                //var plc = Settings.GetPlcInfo().Where(b => b.location == models.machineNo && b.enable == 1).First();
+                                                //if(plc != null)
+                                                //{
+                                                //    var wirteall01 = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                                                //    {
+                                                //        addr = plc.writeAddr,
+                                                //        host = plc.ip,
+                                                //        port = plc.port,
+                                                //        data = 4
+                                                //    });
+                                                //}
+
                                             }
                                         }
                                         else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
@@ -634,7 +640,7 @@
             public int code { get; set; }
             public string msg { get; set; }
             public mesData data { get; set; }
-            public bool isSucess { get; set; }
+            public bool isSuccess { get; set; }
         }
 
         public class mesData
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/MESHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/MESHelper.cs
index 5a5b2c6..0629bae 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/MESHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/MESHelper.cs
@@ -752,7 +752,11 @@
             /// <summary>
             /// 鏃堕棿鎴�             /// </summary>
-            public int timeStamp { get; set; }
+            public int timeStamp { get; set; }            
+            /// <summary>
+            /// 鏃堕棿鎴�+            /// </summary>
+            public string timeStampMES { get; set; }
             /// <summary>
             /// 鐓х墖url
             /// </summary>
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
index 5eb3b3d..6fa8241 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -596,11 +596,15 @@
         /// 灏忚溅鍒拌揪鍖呰鏈哄畨鍏ㄩ棬鍙h姹傝繘鍏�         /// </summary>
         /// <param name="ips"></param>
-        internal static void PickUpFullDoorUnload(string ip, string taskNo)
+        internal static void PickUpFullDoorUnload(string ip, string taskNo, string type)
         {
             var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault();
             //ASM鍐欏叆閫氶亾0灏忚溅鍔ㄤ綔锛�-鍙栨枡
             int[] num = new int[2] { 1, 1 };
+            //if(type == "PDA鎵撳寘涓嬬嚎")
+            //{
+            //    num[0] = 4;
+            //}
             var writeRes0 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
             {
                 host = ip,
@@ -3930,8 +3934,8 @@
                     if (locInfo.state == "1")
                     {
                         //鍙樻洿娉ㄩ噴
-                        //if (string.IsNullOrEmpty(locInfo.END_LOC))
-                        //{
+                        if (string.IsNullOrEmpty(locInfo.END_LOC))
+                        {
                             CMMLog.Info("InWarehouse:" + JsonConvert.SerializeObject(locInfo));
                             string wmstaskno = "";
                             string trayCode = locInfo.timeCuo;
@@ -3956,19 +3960,16 @@
                                 }
                             }
                             else CMMLog.Info($"鎺ラ┏浣嶅叆绔嬪簱娴佺▼锛歐MS鐢熸垚浠诲姟澶辫触锛�);
-                        //}
-                        //else
-                        //{
-                        //    //闃叉杈呮潗鍥炲簱鐨勭粓鐐硅揣浣嶆暟鎹病鍒狅紝瀵艰嚧鍏ュ簱浠诲姟璁$畻鎴愪簡杈呮潗浠诲姟锛岃繖閲岄渶瑕佷簩娆″垽鏂�-                        //    if(locInfo.trayCode.Substring(0,3) == "SWT")
-                        //    {
-                        //        HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), locCode, locInfo.END_LOC, "杈呮潗杞繍", 0, locInfo.trayCode);
-                        //    }
-                        //    else
-                        //    {
-                        //        MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("_id", locInfo._id), Update.Set("END_LOC", ""), UpdateFlags.None);
-                        //    }
-                        //}
+                        }
+                        else
+                        {
+                            //闃叉杈呮潗鍑哄簱鐨勭粓鐐硅揣浣嶆暟鎹病鍒狅紝瀵艰嚧鍏ュ簱浠诲姟璁$畻鎴愪簡杈呮潗浠诲姟锛岃繖閲岄渶瑕佷簩娆″垽鏂�+                            HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), locCode, locInfo.END_LOC, "杈呮潗鍑哄簱锛堜簩娈碉級", 0, locInfo.trayCode);
+                            if (req.success)
+                            {
+                                MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", locCode), Update.Set("state", "2"), "ConnectingBits", UpdateFlags.None);
+                            }
+                        }
                     }
                 }
             }
@@ -4523,17 +4524,48 @@
             else CMMLog.Info("绔嬪簱閫氶亾鏈厤缃�);
         }
 
-        internal static void fcrk(Settings.PlcInfo plc)
+        internal static void fcrk(Settings.PlcInfo plc,bool action, string taskNo = "")
         {
-            int[] num = new int[1] { 2 };
-            var wirte1 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+            if (action)
             {
-                addr = plc.writeAddr + 2,
-                host = plc.ip,
-                port = plc.port,
-                data = num
-            });
-            CMMLog.Info($"鍦ㄩ�閬搟plc.writeAddr + 2}涓啓鍏JsonConvert.SerializeObject(num)}锛宨p锛歿plc.ip}锛岀鍙o細{plc.port}");
+                var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                {
+                    host = plc.ip,
+                    addr = plc.writeAddr,
+                    data = 1,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�.");
+
+                var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                {
+                    dataNum = 2,
+                    addr = plc.readAddr,
+                    host = plc.ip,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鏌ヨ璁惧{plc.location}閫氶亾{plc.readAddr}閲岄潰鏁版嵁涓簕result.result[0]}銆亄result.result[1]}.");
+                if (result != null && result.errCode == 0)
+                {
+                    if (result.result[0] == 1 && result.result[1] == 2)
+                    {
+                        //鎺ㄩ�灏忚溅杩涘叆
+                        TSHelper.GoToAGV(taskNo, 10, 1);
+                    }
+                }
+            }
+            else
+            {
+                int[] num = new int[1] { 2 };
+                var wirte1 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+                {
+                    addr = plc.writeAddr + 2,
+                    host = plc.ip,
+                    port = plc.port,
+                    data = num
+                });
+                CMMLog.Info($"鍦ㄩ�閬搟plc.writeAddr + 2}涓啓鍏JsonConvert.SerializeObject(num)}锛宨p锛歿plc.ip}锛岀鍙o細{plc.port}");
+            }
         }
 
         /// <summary>
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
index 3a74ae0..7199b41 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -15,6 +15,7 @@
 using System.Linq;
 using System.Net.Configuration;
 using System.Text;
+using System.Threading;
 using System.Web.UI.WebControls.WebParts;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.EnentListen;
@@ -131,22 +132,6 @@
             if(mst.CN_S_STATUS=="鏈墽琛� || mst.CN_S_STATUS == "寰呮帹閫�)
             {
                 mst = MongoDBSingleton.Instance.FindOne<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), "TN_I_TASK_MST");
-                if (mst.CN_S_BUSS_TYPE == "杈呮潗鍥炲簱")
-                {
-                    var CBTableList = MongoDBSingleton.Instance.FindAll<ConnectingBits>("ConnectingBits");
-                    foreach (var a in CBTableList)
-                    {
-                        if (string.IsNullOrEmpty(a.trayCode))
-                        {
-                            string cntrType = mst.transportInfo[0].trayCode;
-                            MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.Bit), Update.Set("trayCode", cntrType).Set("END_LOC", mst.CN_S_END_BIT), UpdateFlags.None);
-                
-                            MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), Update.Set("CN_S_END_BIT", a.Bit), UpdateFlags.None);
-                
-                            new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{a.Bit}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(a.Bit)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
-                        }
-                    }
-                }
 
                 StringBuilder sbMsg = new StringBuilder();
                 var start = StockInstance.Instance.GetLocationInfoTwo(mst.CN_S_START_BIT);
@@ -158,11 +143,27 @@
                     //涓や釜鎺ラ┏骞冲彴
                     if (mst.CN_S_START_BIT == conn[0].locCode || mst.CN_S_START_BIT == conn[1].locCode)
                     {
-                        start.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        if(mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱锛堜簩娈碉級")
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[0];
+                        }
+                        else
+                        {
+                            start.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
+                        }
+                        
                     }
                     if (mst.CN_S_END_BIT == conn[0].locCode || mst.CN_S_END_BIT == conn[1].locCode)
                     {
-                        end.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        if(mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱锛堜簩娈碉級")
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[1];
+                        }
+                        else
+                        {
+                            end.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
+                        }
+                        
                     }
                 }
                 if (conn.Count == 1)
@@ -280,7 +281,7 @@
                 var endLoc = MongoDBSingleton.Instance.FindOne<MongoTN_AB_STOCK_LOCATION>(Query.EQ("CN_S_LOCATION_CODE", mst.CN_S_END_BIT), "MongoTN_AB_STOCK_LOCATION");
                 if(startLoc != null && endLoc != null)
                 {
-                    if(startLoc.CN_S_AREA_CODE == "CKHJ" || endLoc.CN_S_AREA_CODE == "CKHJ")
+                    if(startLoc.CN_S_AREA_CODE == "CKHJ" || endLoc.CN_S_AREA_CODE == "CKHJ" || endLoc.CN_S_AREA_CODE == "CPTPFCHJ" || startLoc.CN_S_AREA_CODE == "CPTPFCHJ")
                     {
                         TRow = "1";
                     }
@@ -424,11 +425,12 @@
                 if (code == 1012)
                 {
                     //鍗歌揣鐢宠锛屽厛鍒ゆ柇璁惧鏄惁鍏佽杩涙枡锛屽鏋滄槸鐩存帴鏀瑰弬鏁帮紝骞堕�鐭ヨ澶�-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎") PLCControl.PickUpFullDoorUnload(plc.ip, mst.CN_S_TASK_NO);//杩涘叆3妤煎寘瑁呭彇鏂欐祦绋�012,ip:{plc.ip},task:{mst.CN_S_TASK_NO}
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎") PLCControl.PickUpFullDoorUnload(plc.ip, mst.CN_S_TASK_NO, mst.CN_S_BUSS_TYPE);//杩涘叆3妤煎寘瑁呭彇鏂欐祦绋�012,ip:{plc.ip},task:{mst.CN_S_TASK_NO}
                     if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G") PLCControl.SecondWeightInCache1012(plc.ip, mst.CN_S_TASK_NO);//浜屾湡锛氱洿鎺ユ敼鍙傛暟
                     if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) TSHelper.GoToAGV(mst.CN_S_TASK_NO, 10, 1);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾�) PLCControl.StackingReqUnload(plc.deviceType, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineUnload1012(plc.ip, mst.CN_S_TASK_NO);
+                    if (mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱") PLCControl.fcrk(plc, true, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�) PLCControl.DGMachine(plc,mst.CN_S_TASK_NO,true);
                 }
                 if (code == 4)
@@ -440,7 +442,7 @@
                     if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.PackingLineComplete4(plc.ip, mst.CN_S_SOURCE_NO);
                     if (mst.CN_S_BUSS_TYPE != "3妤煎寘瑁呭彇鏂�) WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, 4);
                     if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵楴G") PLCControl.CacheStackingMouth6(plc);
-                    if (mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱") PLCControl.fcrk(plc);
+                    if (mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱") PLCControl.fcrk(plc, false);
                     if (mst.CN_S_BUSS_TYPE == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�) PLCControl.DGMachine(plc, mst.CN_S_TASK_NO, false);
 
                 }
@@ -546,7 +548,7 @@
                     //    }
                     //}
                 }
-                if (mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴� || mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱")
+                if (mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�)
                 {
                     //3妤兼垚鍝佸嚭搴撲换鍔℃嫤鎴�                     if (!OutWareTask(mst))
@@ -561,6 +563,10 @@
                     {
                         result = true;
                     }
+                }
+                if (mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱")
+                {
+                    FCOutTask(mst);
                 }
                 if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱")
                 {
@@ -629,6 +635,48 @@
         }
 
         /// <summary>
+        /// 杈呮潗鍑哄簱
+        /// </summary>
+        /// <param name="mst"></param>
+        private static void FCOutTask(TN_I_TASK_MST mst)
+        {
+            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
+            if (CBInfo != null)
+            {
+                foreach (var a in CBInfo)
+                {
+                    if (!string.IsNullOrEmpty(a.locCode))
+                    {
+                        //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�+                        var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits");
+                        if (CBTable != null)
+                        {
+                            if (string.IsNullOrEmpty(CBTable.trayCode))
+                            {
+                                //淇敼浠诲姟缁堢偣锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), Update.Set("CN_S_END_BIT", a.locCode), UpdateFlags.None);
+
+                                new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{a.locCode}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(a.locCode)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
+
+                                MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", mst.CN_S_BATCH_NO).Set("END_LOC", a.locCode), UpdateFlags.None);
+                            }
+                        }
+                        else
+                        {
+                            //淇敼浠诲姟缁堢偣锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                            MongoDBSingleton.Instance.Update<TN_I_TASK_MST>(Query.EQ("CN_S_TASK_NO", mst.CN_S_TASK_NO), Update.Set("CN_S_END_BIT", a.locCode), UpdateFlags.None);
+
+                            new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{a.locCode}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(a.locCode)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
+
+                            MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = mst.CN_S_BATCH_NO, state = "0", END_LOC = a.locCode });
+                        }
+                    }
+                    else CMMLog.Debug("鎺ラ┏浣嶇偣浣嶆湭閰嶇疆");
+                }
+            }
+        }
+
+        /// <summary>
         /// 鍥涢挻鐢熶骇閫�簱
         /// 灏嗕换鍔℃媶鍒嗘垚涓ゆ浠诲姟锛岀涓�浠诲姟缁堢偣鏀逛负鎺ラ┏骞冲彴
         /// 浜屾浠诲姟浠庢帴椹冲钩鍙板叆搴�@@ -688,90 +736,77 @@
         {
             //1銆佸垽鏂緟鏉愬叆搴撶粓鐐规槸鍚︽湁浠诲姟
             //2銆佸垽鏂緭閫佺嚎妯″紡鍜屼腑闂磋〃妯″紡閮芥槸鍏ュ簱妯″紡
-            bool action = true;
-            var plc = Settings.GetPlcInfo().Where(a => a.deviceType == "18" && a.enable == 1).ToList();
-            if (plc.Count > 0)
+            CMMLog.Debug("杈呮潗鍏ュ簱娴佺▼ 寮�");
+
+            bool action = false;
+            var plc = Settings.GetPlcInfo().Where(a => a.location == mst.CN_S_START_BIT && a.enable == 1).First();
+            if (plc != null)
             {
-                foreach(var a in plc)
+                var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                 {
-                    if(CheckStartFree(a.location) && CheckEndFree(a.location))
+                    dataNum = 1,
+                    addr = plc.readAddr + 3,
+                    host = plc.ip,
+                    port = plc.port
+                });
+                if (result != null && result.errCode == 0)
+                {
+                    CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼锛氳鍙栨粴绛掓満{plc.ip}閫氶亾鍙蜂负锛歿plc.readAddr + 3}鐨勫�涓猴細{result.result[0]}");
+                    if (result.result[0] == 1)
                     {
-                        var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                        CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼:杈撻�绾夸负 鍑哄簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿plc.location}");
+                        return action;
+                    }
+                    if (result.result[0] == 2)
+                    {
+                        //璇诲彇涓棿琛ㄦā寮�+                        var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
+                        if (modelInfo != null)
                         {
-                            dataNum = 1,
-                            addr = a.readAddr + 3,
-                            host = a.ip,
-                            port = a.port
-                        });
-                        if (result != null && result.errCode == 0)
-                        {
-                            CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{result.result[0]}");
-                            if (result.result[0] == 1)
+                            if (modelInfo.Mode == "鍑哄簱妯″紡")
                             {
-                                action = false;
-                                CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼:杈撻�绾夸负 鍑哄簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}");
-                                break;
+                                CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼:涓棿琛�ModeList涓�鍑哄簱妯″紡");
+                                return action;
                             }
                             else
                             {
-                                //璇诲彇涓棿琛ㄦā寮�-                                var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
-                                if(modelInfo != null)
-                                {
-                                    if(modelInfo.Mode == "鍑哄簱妯″紡")
-                                    {
-                                        action = false;
-                                        CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼:涓棿琛�ModeList涓�鍑哄簱妯″紡");
-                                        break;
-                                    }
-                                }
-                                else
-                                {
-                                    action = false;
-                                    CMMLog.Debug("杈呮潗鍏ュ簱娴佺▼:涓棿琛�ModeList 涓虹┖");
-                                    break;
-                                }
+                                action = true;
                             }
                         }
+                        else
+                        {
+                            CMMLog.Debug("杈呮潗鍏ュ簱娴佺▼:涓棿琛�ModeList 涓虹┖");
+                            return action;
+                        }
                     }
-                    else
-                    {
-                        action = false;
-                        CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼:褰撳墠鐐逛綅鏈変换鍔★紝鐐逛綅锛歿a.location}");
-                        break;
-                    }
-                };
+                }
 
                 if (action)
                 {
                     //鍏ュ簱妯″紡鏍搁獙姝g‘ 鍒ゆ柇璐х墿鏄惁鍒颁綅
-                    var startPlc = plc.Where(a => a.location == mst.CN_S_START_BIT).First();
-                    if(startPlc != null)
+                    result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
                     {
-                        var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
-                        {
-                            dataNum = 1,
-                            addr = startPlc.readAddr + 1,
-                            host = startPlc.ip,
-                            port = startPlc.port
-                        });
+                        dataNum = 1,
+                        addr = plc.readAddr + 1,
+                        host = plc.ip,
+                        port = plc.port
+                    });
 
-                        if (result != null && result.errCode == 0)
+                    if (result != null && result.errCode == 0)
+                    {
+                        CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼锛氳鍙栨粴绛掓満{plc.ip}閫氶亾鍙蜂负锛歿plc.readAddr + 1}鐨勫�涓猴細{result.result[0]}");
+                        if (result.result[0] == 2)
                         {
-                            CMMLog.Debug($"杈呮潗鍏ュ簱娴佺▼锛氳鍙栨粴绛掓満{startPlc.ip}閫氶亾鍙蜂负锛歿startPlc.readAddr + 3}鐨勫�涓猴細{result.result[0]}");
-                            if (result.result[0] == 2)
+                            int[] num = new int[2] { 2, 1 };
+                            var wirteal = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
                             {
-                                int[] num = new int[2] { 2, 1 };
-                                var wirteal = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
-                                {
-                                    addr = startPlc.writeAddr + 1,
-                                    host = startPlc.ip,
-                                    data = num,
-                                    port = startPlc.port
-                                });
+                                addr = plc.writeAddr + 1,
+                                host = plc.ip,
+                                data = num,
+                                port = plc.port
+                            });
 
-                                return true;
-                            }
+                            return true;
                         }
                     }
                 }
@@ -813,50 +848,50 @@
                 {
                     #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴
 
-                    //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;
-                    //    }
-                    //};
+                    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 27e5351..817c59f 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -392,9 +392,10 @@
                         WMSHelper.ExecuteState(mst.CN_S_SOURCE_NO, action.CN_N_ACTION_CODE);
                         if (mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌�) PLCControl.PickUpBlankComplete(mst.CN_S_END_BIT, mst.CN_S_START_BIT);
                         //if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂�) PLCControl.CheckUpReqUnload(mst.CN_S_END_BIT, mst.CN_S_TASK_NO,);
-                        if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "杈呮潗杞繍")
+                        if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱锛堜簩娈碉級")
                         {
-                            MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None);
+                            MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0").Set("END_LOC", ""), UpdateFlags.None);
+                            //MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_START_BIT), Update.Set("trayCode", "").Set("state", "0"), UpdateFlags.None);
                         }
                         if (mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)")
                         {
@@ -443,7 +444,7 @@
 
 
                         }
-                        if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎")
+                        if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎" || mst.CN_S_BUSS_TYPE == "杈呮潗鍑哄簱")
                         {
                             MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None);
                         }
@@ -845,7 +846,7 @@
             /// <summary>
             /// 浜屾浠诲姟鐨勭粓鐐硅揣浣�             /// </summary>
-            //public string END_LOC { get; set; } //鍙樻洿娉ㄩ噴
+            public string END_LOC { get; set; }
         }
 
         public class DGConnectingBits
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
index 1ac220b..b725d86 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/WMSHelper.cs
@@ -417,7 +417,15 @@
                     else if (ItemCode == "time" || ItemCode == "鎷嗙洏鍙樻洿" || ItemCode == "鎵撳寘涓嬬嚎")
                     {
                         CMMLog.Info($"{trayCode}");
-                        var time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(trayCode)), "TimeCuoInfoCom");
+                        TimeCuoInfoCom time = new TimeCuoInfoCom { };
+                        if (trayCode.Contains("MES"))
+                        {
+                            time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStampMES", trayCode), "TimeCuoInfoCom");
+                        }
+                        else
+                        {
+                            time = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(trayCode)), "TimeCuoInfoCom");
+                        }
                         if (ItemCode == "time" && time != null)
                         {
                             int TimeStamp = string.IsNullOrEmpty(timeStamp) ? time.timeStamp : int.Parse(timeStamp);

--
Gitblit v1.9.1