From 55ae035e05530817bd3b923c3d6b1ec275e47332 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 12 六月 2025 17:34:50 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs       |  211 ++++++++++++++++++++++-
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs    |    4 
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs        |  266 ++++++++++++++++++++++++++++-
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs    |   13 +
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml        |    8 
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs         |   15 +
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs |    6 
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs      |   16 +
 8 files changed, 507 insertions(+), 32 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
index 52d2459..ef0c19f 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiController.cs
@@ -133,6 +133,8 @@
         public ErrInfoResult getErrInfo(string factory)
         {
             ErrInfoResult result = new ErrInfoResult();
+
+            CMMLog.Info("getErrInfo:" + factory);
             result = ApiHelper.getErrInfo(factory);
             return result;
         }
@@ -151,7 +153,7 @@
         }
 
         /// <summary>
-        /// pda鎵撳寘涓嬬嚎
+        /// pda鍖呰涓嬬嚎
         /// </summary>
         /// <returns></returns>
         [HttpPost]
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
index 2c58360..9080940 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
@@ -8,10 +8,13 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading;
+using System.Timers;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.PLCControl;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.ProcessHelper;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.ProtocolAnalysis;
+using static System.Runtime.CompilerServices.RuntimeHelpers;
 
 namespace Hanhe.iWCS.JingmenGEMTwoProtocol
 {
@@ -305,6 +308,7 @@
 
         public class bzxxModel
         {
+            public string machineNo { get; set; }
             public string mesCode { get; set; }
         }
 
@@ -381,23 +385,31 @@
         internal static ErrInfoResult getErrInfo(string factory)
         {
             ErrInfoResult result = new ErrInfoResult() { sucess = false };
-
-            if(factory == "sanyuan")
+            try
             {
-                var errList = MongoDBSingleton.Instance.FindAll<errInfoTable>("ErrInfoResult");
-                if (errList.Count > 0)
+                if (factory.Contains("sanyuan"))
                 {
-                    result.sucess = true;
-                    errList.ForEach(r =>
+                    var errList = MongoDBSingleton.Instance.FindAll<errInfoTable>("errInfoTable");
+                    if (errList.Count > 0)
                     {
-                        result.errInfo.Add(new errInfo { taskName = r.taskName, errMsg = r.errMsg, time = r.dateTime });
-                    });
+                        result.sucess = true;
+                        result.errInfo = new List<errInfo>();
+                        errList.ForEach(r =>
+                        {
+                            result.errInfo.Add(new errInfo { taskName = r.taskName, errMsg = r.errMsg, time = r.dateTime });
+                        });
+                    }
+                }
+                else
+                {
+
                 }
             }
-            else
+            catch(Exception ex)
             {
-
+                CMMLog.Info("getErrInfo err:"+ex.Message);
             }
+            
             
             return result;
         }
@@ -406,12 +418,13 @@
         {
             ZZTPWNumResult result = new ZZTPWNumResult() { sucess = false };
 
-            if(factory == "sanyuan")
+            if(factory.Contains("sanyuan"))
             {
                 var bzEmpInfo = MongoDBSingleton.Instance.FindAll<BZEmptyPoint>("BZEmptyPoint");
                 if (bzEmpInfo.Count > 0)
                 {
                     result.sucess = true;
+                    result.zztpwInfo = new List<zztpwInfo>();
                     bzEmpInfo.ForEach(r =>
                     {
                         result.zztpwInfo.Add(new zztpwInfo { S_LOC_CODE = r.Bit, N_QTY = r.Quantity });
@@ -427,17 +440,244 @@
 
         internal static BZXXResult Bzxx(bzxxModel models)
         {
-            BZXXResult result = new BZXXResult() {sucess = false };
+            BZXXResult result = new BZXXResult() {success = false };
             if(models != null && !string.IsNullOrEmpty(models.mesCode))
             {
                 //閫氳繃mesCode鑾峰彇mes鐨勭墿鏂欎俊鎭�+                var res = helper.WebGet(Settings.MESUrl2 + "?mesCode=" + models.mesCode);
+                CMMLog.Info($"Bzxx ReqMsg:{JsonConvert.SerializeObject(res)},url:{Settings.MESUrl2}");
+                try
+                {
+                    if (!string.IsNullOrEmpty(res))
+                    {
+                        var req = JsonConvert.DeserializeObject<mesInfo>(res);
+                        if(req != null)
+                        {
+                            var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("packingMachineNumber", models.machineNo), "TimeCuoInfoCom");
+                            if (timeCuo == null)
+                            {
+                                MongoDBSingleton.Instance.Insert<TimeCuoInfoCom>(new TimeCuoInfoCom
+                                {
+                                    isFold = 1,
+                                    packingMachineNumber = models.machineNo,
+                                    needWeight = (int)req.data.FMustQty,
+                                    realWeight = (int)req.data.FMustQty,
+                                    totalWeight = (int)req.data.FMustQty,
+                                    batchNumber = req.data.Flot,
+                                    productModel = req.data.materialSpec,
+                                    bagNumber_1 = req.data.bagNum,
+                                    totalCount = 1,
+                                    timeStamp = req.data.mesCode,
+                                    photoURL = req.data.barCode,
+                                    ProductionDate = req.data.ywDate,
+                                    // ERP鍙樻洿-鐓х浉鏈烘柊澧炲瓧娈�+                                    materialCode = req.data.FMaterialNumber,
+                                    materialName = req.data.materialName,
+                                    measurementUnit = req.data.FUnit,
+                                    createOrganization = req.data.FPrdOrgNumber,
+                                    WarehouseCode = req.data.FStockNumber,
+                                    workshopCode = req.data.FWorkShopNumber,
+                                    BusinessDate = req.data.ywDate,
+                                    barcode = req.data.barCode,
 
+                                    employeeID1 = req.data.jycjj,
+
+                                    //鍙樻洿娉ㄩ噴
+                                    totalNeedWeight = (int)req.data.FMustQty,
+                                    FEntryID_1 = 0,
+                                });
+                            }
+                            else
+                            {
+                                var query = Query.EQ("packingMachineNumber", models.machineNo);
+                                //鍙樻洿娉ㄩ噴
+                                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", 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)
+                                    .Set("BusinessDate", req.data.ywDate).Set("barcode", req.data.barCode).Set("employeeID1", req.data.jycjj)
+                                    .Set("totalNeedWeight", (int)req.data.FMustQty).Set("FEntryID_1", 0);
+                                MongoDBSingleton.Instance.Update<TimeCuoInfoCom>(query, update, UpdateFlags.None);
+                            }
+
+                            //鐢熸垚鍒版帴椹冲钩鍙扮殑浠诲姟
+                            string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
+                            string timeCuo2 = req.data.mesCode.ToString();
+                            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
+                            if (CBInfo != null)
+                            {
+                                AMSHelper.HHAmsExecuteResult amsResult = 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))
+                                            {
+                                                //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                                amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), models.machineNo, a.locCode, "PDA鎵撳寘涓嬬嚎", 0, traycode);
+                                                if (amsResult.success)
+                                                {
+                                                    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);
+
+                                                    break;
+                                                }
+                                                else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                            }
+                                        }
+                                        else
+                                        {
+                                            //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                            amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), models.machineNo, a.locCode, "PDA鎵撳寘涓嬬嚎", 0, traycode);
+                                            if (amsResult.success)
+                                            {
+                                                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);
+
+                                                break;
+                                            }
+                                            else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                        }
+                                    }
+                                    else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
+                                }
+                                if(amsResult == null || amsResult.success == false)
+                                {
+                                    result.errMsg = "浠诲姟鐢熸垚澶辫触锛屾帴椹充綅鏈変换鍔″崰鐢�;
+                                }
+                            }
+                            else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
+                        }
+                        else
+                        {
+                            result.errMsg = $"鏁版嵁瑙f瀽澶辫触";
+                        }
+                    }
+                    else
+                    {
+                        result.errMsg = $"鏌ヨmes淇℃伅澶辫触锛宮esCode锛歿models.mesCode}";
+                    }
+                }
+                catch(Exception ex)
+                {
+                    result.errMsg = ex.Message;
+                }
             }
             else
             {
                 result.errMsg = "鍙傛暟杈撳叆閿欒";
             }
             return result;
+        }
+
+        public class mesInfo
+        {
+            public int code { get; set; }
+            public string msg { get; set; }
+            public mesData data { get; set; }
+            public bool isSucess { get; set; }
+        }
+
+        public class mesData
+        {
+            /// <summary>
+            /// 鍏ュ簱缁勭粐
+            /// </summary>
+            public string FStockOrgNumber { get; set;}
+            /// <summary>
+            /// 鐢熶骇缁勭粐
+            /// </summary>
+            public string FPrdOrgNumber { get; set; }
+            /// <summary>
+            /// 鍏ュ簱绫诲瀷
+            /// </summary>
+            public string FInStockType { get; set; }
+            /// <summary>
+            /// 浠撳簱缂栫爜
+            /// </summary>
+            public string FStockNumber { get; set; }
+            /// <summary>
+            /// 鐢熶骇杞﹂棿
+            /// </summary>
+            public string FWorkShopNumber { get; set; }
+            /// <summary>
+            /// 搴撳瓨鐘舵�
+            /// </summary>
+            public string FStockStatus { get; set; }
+            /// <summary>
+            /// 鍗曚綅
+            /// </summary>
+            public string FUnit { get; set; }
+            /// <summary>
+            /// 鐗╂枡缂栫爜
+            /// </summary>
+            public string FMaterialNumber { get; set; }
+            /// <summary>
+            /// 鐗╂枡鍚嶇О
+            /// </summary>
+            public string materialName { get; set; }
+            /// <summary>
+            /// 鐗╂枡瑙勬牸
+            /// </summary>
+            public string materialSpec { get; set; }
+            /// <summary>
+            /// 鎵瑰彿
+            /// </summary>
+            public string Flot { get; set; }
+            /// <summary>
+            /// 闇�眰閲嶉噺
+            /// </summary>
+            public double FMustQty { get; set; }
+            /// <summary>
+            /// 閫�簱鏃堕棿
+            /// </summary>
+            public string FProduceDate { get; set; }
+            /// <summary>
+            /// 鍞竴鏍囪瘑
+            /// </summary>
+            public string FExpiryDate { get; set; }
+            /// <summary>
+            /// 鍞竴鐮�+            /// </summary>
+            public int mesCode { get; set; }
+            /// <summary>
+            /// 瀹屾暣鏉$爜
+            /// </summary>
+            public string barCode { get; set; }
+            /// <summary>
+            /// 琚嬪彿
+            /// </summary>
+            public string bagNum { get; set; }
+            /// <summary>
+            /// mes鍖呭彿
+            /// </summary>
+            public string bagCode { get; set; }
+            /// <summary>
+            /// 鍛樺伐缂栫爜
+            /// </summary>
+            public string jycjj { get; set; }
+            /// <summary>
+            /// 涓氬姟鏃ユ湡
+            /// </summary>
+            public string ywDate { get; set; }
         }
 
         public class AGV_STATE
@@ -545,7 +785,7 @@
 
         public class BZXXResult
         {
-            public bool sucess { get; set;}
+            public bool success { get; set;}
             public string errMsg { get; set; }
         }
 
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
index 50fd600..2d8dea4 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/EnentListen.cs
@@ -398,6 +398,22 @@
             }
             #endregion
 
+            #region 10019-D鍙�+            if (currActionModel.CN_N_ACTION_CODE == 10019)
+            {
+                var list = Settings.GetPlcInfo().Where(a => a.enable == 1 && a.deviceType == "43").ToList();
+                if (list.Count > 0)
+                {
+                    list.ForEach(a =>
+                    {
+                        PLCControl.DMachine(a);
+                    });
+                }
+                Thread.Sleep(3000);
+
+            }
+            #endregion
+
             #endregion
             return bResult;
         }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
index 9c3767a..7298a28 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs
@@ -29,6 +29,7 @@
 using System.Globalization;
 using static Hanhe.iWCS.JingmenGEMTwoProtocol.PLCControl;
 using Hanhe.iWCS.DeviceDriver;
+using System.Data.OleDb;
 
 namespace Hanhe.iWCS.JingmenGEMTwoProtocol
 {
@@ -732,16 +733,31 @@
             var plc = Settings.GetPlcInfo().Where(a => a.ip == ip).FirstOrDefault();
             if (plc != null && !plc.location.Contains("FLZT"))
             {
-                //鍐欏叆鍖呰鏈�-瀹夊叏闂ㄥ叧闂ㄦ寚浠�-                var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                if (plc.location.Contains("FLZT"))
                 {
-                    host = ip,
-                    addr = plc.writeAddr + 1,
-                    data = 3,
-                    port = plc.port
-                });
-                CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 1}閲岄潰鏁版嵁涓�.");
-                //Console.WriteLine($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 1}閲岄潰鏁版嵁涓�.");
+                    //鍐欏叆杩旀枡绔欏彴--鍙栬揣瀹屾垚
+                    var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                    {
+                        host = ip,
+                        addr = plc.writeAddr,
+                        data = 1,
+                        port = plc.port
+                    });
+                    CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�.");
+                }
+                else
+                {
+                    //鍐欏叆鍖呰鏈�-瀹夊叏闂ㄥ叧闂ㄦ寚浠�+                    var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                    {
+                        host = ip,
+                        addr = plc.writeAddr + 1,
+                        data = 3,
+                        port = plc.port
+                    });
+                    CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 1}閲岄潰鏁版嵁涓�.");
+                }
+
             }
             else CMMLog.Debug($"鍖呰涓嬬嚎锛�锛宨p=null!");
         }
@@ -2250,7 +2266,6 @@
                                 //鍙敓鎴愪换鍔�                                 var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
                                 if (CBInfo != null && timecuo != null)
-                                //if (CBInfo != null)
                                 {
                                     string timeStamp = timecuo.data.First().timeStamp.ToString();
                                     foreach (var a in CBInfo)
@@ -4567,6 +4582,182 @@
             }
         }
 
+        internal static void DGMachine(Settings.PlcInfo plc, string taskNo, bool action)
+        {
+            if (action)
+            {
+                var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                {
+                    host = plc.ip,
+                    addr = plc.writeAddr + 2,
+                    data = 1,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 2}閲岄潰鏁版嵁涓�.");
+                var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                {
+                    dataNum = 1,
+                    addr = plc.readAddr + 2,
+                    host = plc.ip,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鏌ヨ璁惧{plc.location}閫氶亾{plc.readAddr + 2}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(result)}.");
+                if (result != null && result.errCode == 0)
+                {
+                    if (result.result[0] == 1)
+                    {
+                        //鎺ㄩ�灏忚溅杩涘叆
+                        TSHelper.GoToAGV(taskNo, 10, 3);
+                        writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                        {
+                            host = plc.ip,
+                            addr = plc.writeAddr + 2,
+                            data = 0,
+                            port = plc.port
+                        });
+                        CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 2}閲岄潰鏁版嵁涓�.");
+                    }
+                }
+            }
+            else
+            {
+                var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                {
+                    host = plc.ip,
+                    addr = plc.writeAddr + 3,
+                    data = 1,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 3}閲岄潰鏁版嵁涓�.");
+            }
+        }
+
+        internal static void DGMachineTwo(Settings.PlcInfo plc, string taskNo, bool action)
+        {
+            if (action)
+            {
+                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 = 1,
+                    addr = plc.readAddr + 1,
+                    host = plc.ip,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鏌ヨ璁惧{plc.location}閫氶亾{plc.readAddr + 1}閲岄潰鏁版嵁涓簕JsonConvert.SerializeObject(result)}.");
+                if (result != null && result.errCode == 0)
+                {
+                    if (result.result[0] == 1)
+                    {
+                        //鎺ㄩ�灏忚溅杩涘叆
+                        TSHelper.GoToAGV(taskNo, 10, 3);
+                        writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                        {
+                            host = plc.ip,
+                            addr = plc.writeAddr,
+                            data = 0,
+                            port = plc.port
+                        });
+                        CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr}閲岄潰鏁版嵁涓�.");
+                    }
+                }
+            }
+            else
+            {
+                var writeRes = OITcpHelper.RegisterWriteOutPut(new OITcpHelper.RegisterWriteOutPutModel
+                {
+                    host = plc.ip,
+                    addr = plc.writeAddr + 1,
+                    data = 1,
+                    port = plc.port
+                });
+                CMMLog.Debug($"鍐欏叆璁惧{plc.location}閫氶亾{plc.writeAddr + 1}閲岄潰鏁版嵁涓�.");
+            }
+        }
+
+        internal static void DMachine(Settings.PlcInfo plc)
+        {
+            if (PickUpStartFree(plc.location) && PickUpEndFree(plc.location))
+            {
+                try
+                {
+                    var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel
+                    {
+                        dataNum = 1,
+                        addr = plc.readAddr,
+                        host = plc.ip,
+                        port = plc.port
+                    });
+                    if (result != null && result.errCode == 0)
+                    {
+                        if (result.result[0] == 1)
+                        {
+                            //鎴愬搧涓嬬嚎浠诲姟鐢熸垚鍒版帴椹冲钩鍙�+                            string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
+                            //鍙敓鎴愪换鍔�+                            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
+                            if (CBInfo != null)
+                            {
+                                //string timeStamp = timecuo.data.First().timeStamp.ToString();
+                                string timeStamp = "";
+                                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))
+                                            {
+                                                //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                                var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), plc.location, a.locCode, "鍖呰鏈烘弧鎵樹笅绾�, 0, traycode);
+                                                if (amsResult.success)
+                                                {
+                                                    CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
+                                                    MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeStamp), UpdateFlags.None);
+
+                                                    break;
+                                                }
+                                                else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                            }
+                                        }
+                                        else
+                                        {
+                                            //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                            var amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), plc.location, a.locCode, "鍖呰鏈烘弧鎵樹笅绾�, 0, traycode);
+                                            if (amsResult.success)
+                                            {
+                                                CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API鎴愬姛锛�);
+                                                //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�+
+                                                MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeStamp });
+                                                break;
+                                            }
+                                            else CMMLog.Debug($"鍖呰鏈烘弧鎵樹笅绾匡細AMS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                        }
+                                    }
+                                    else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
+                                }
+                            }
+                            else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    CMMLog.Info($"鍥涢挻C璁惧 err:{ex.Message}");
+                }
+            }
+        }
+
         #endregion
 
         public class WMS_STOCK_VIEW
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
index d0ac375..1e4237b 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -303,8 +303,9 @@
                     if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) PLCControl.CacheStackingMouth1013(plc.deviceType, mst.CN_S_TASK_NO, mst.CN_S_END_BIT);
                     if (mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌�) PLCControl.DiscRemoverReqUnload(plc.deviceType, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌�) PLCControl.PackingLine(plc.ip, mst.CN_S_TASK_NO);
-                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.outWare(mst.CN_S_TASK_NO, true);
+                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎") PLCControl.outWare(mst.CN_S_TASK_NO, true);
                     if (mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�) PLCControl.productOutWare(mst.CN_S_END_BIT, mst.CN_S_TASK_NO, true);
+                    if (mst.CN_S_BUSS_TYPE == "鐑樺共鏈虹┖鎵樹笂绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈烘弧鎵樹笂绾�) PLCControl.DGMachineTwo(plc, mst.CN_S_TASK_NO, true);
                 }
                 if (code == 6)
                 {
@@ -315,9 +316,10 @@
 
                     if (mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵�) PLCControl.writeStackingMouth6(mst.CN_S_END_BIT, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌�) PLCControl.DiscRemoverUnloadComplete(plc.deviceType, mst.CN_S_TASK_NO);
-                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�) PLCControl.outWare(mst.CN_S_TASK_NO, false);
+                    if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎") PLCControl.outWare(mst.CN_S_TASK_NO, false);
                     if (mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌�) PLCControl.PackingLineComplete(plc.ip);
                     if (mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�) PLCControl.productOutWare(mst.CN_S_END_BIT, mst.CN_S_TASK_NO, false);
+                    if (mst.CN_S_BUSS_TYPE == "鐑樺共鏈虹┖鎵樹笂绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈烘弧鎵樹笂绾�) PLCControl.DGMachineTwo(plc, mst.CN_S_TASK_NO, true);
                 }
             }
             else CMMLog.Info($"PlcInfo涓湭鎵惧埌璇ョ偣浣嶏紝鐐逛綅锛歿mst.CN_S_END_BIT}");
@@ -362,22 +364,25 @@
                 if (code == 1012)
                 {
                     //鍗歌揣鐢宠锛屽厛鍒ゆ柇璁惧鏄惁鍏佽杩涙枡锛屽鏋滄槸鐩存帴鏀瑰弬鏁帮紝骞堕�鐭ヨ澶�-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂�) 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);//杩涘叆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 == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�) PLCControl.DGMachine(plc,mst.CN_S_TASK_NO,true);
                 }
                 if (code == 4)
                 {
                     //鍗歌揣瀹屾垚鐢宠锛屽垽鏂澶囬偅杈硅繘鏂欏畬鎴愶紝鏀瑰弬鏁伴�鐭gv绂诲紑
-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂�) PLCControl.PickUpFullDoorComplete(plc.ip, mst.CN_S_TASK_NO);
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎") PLCControl.PickUpFullDoorComplete(plc.ip, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G") PLCControl.SecondWeightInCache4(plc.deviceType, mst.CN_S_TASK_NO);
                     if (mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾�) PLCControl.StackingComplete(plc.deviceType, mst.CN_S_TASK_NO);
                     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 == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�) PLCControl.DGMachine(plc, mst.CN_S_TASK_NO, false);
+
                 }
             }
             else CMMLog.Info($"鐐逛綅{mst.CN_S_START_BIT}鏈厤缃�);
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
index e299bc8..350756e 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProtocolAnalysis.cs
@@ -425,7 +425,7 @@
 
 
                         }
-                        if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾�)
+                        if (mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎")
                         {
                             MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", mst.CN_S_END_BIT), Update.Set("state", "1"), UpdateFlags.None);
 
@@ -546,7 +546,7 @@
                 {
                     CMMLog.Info($"璧风偣瀹夊叏瀵规帴锛氭敹鍒颁换鍔″彿锛歿mst.CN_S_TASK_NO},浠诲姟绫诲瀷锛歿mst.CN_S_BUSS_TYPE},浠诲姟淇″彿锛歿action.CN_N_ACTION_CODE}");
                     //3妤兼媶鐩樿ˉ绌猴細鎷嗙洏鏈鸿ˉ绌烘墭鐩�           3妤煎寘瑁呰ˉ绌猴細鍖呰鏈鸿ˉ绌烘墭
-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G" || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵楴G" || mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱")
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋禢G" || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤煎彔鐩樹笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵楴G" || mst.CN_S_BUSS_TYPE == "杈呮潗鍏ュ簱" || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎" || mst.CN_S_BUSS_TYPE == "鐑樺共鏈烘弧鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍓垏鏈虹┖鎵樹笅绾� || mst.CN_S_BUSS_TYPE == "鍖呰鏈烘弧鎵樹笅绾�)
                     {
                         CMMLog.Info($"璧风偣瀹夊叏瀵规帴锛氬嵆灏嗚繘鍏ヤ换鍔℃祦绋嬶細{mst.CN_S_BUSS_TYPE},鐘舵�鍙蜂负:{action.CN_N_ACTION_CODE}");
                         ProcessHelper.StartPickUpDoorSafe(mst, action.CN_N_ACTION_CODE);
@@ -601,7 +601,7 @@
                 {
                     CMMLog.Info($"缁堢偣瀹夊叏瀵规帴锛氭敹鍒颁换鍔″彿锛歿mst.CN_S_TASK_NO},浠诲姟绫诲瀷锛歿mst.CN_S_BUSS_TYPE},浠诲姟淇″彿锛歿action.CN_N_ACTION_CODE}");
                     //3妤兼媶鐩樿ˉ绌猴細鎷嗙洏鏈鸿ˉ绌烘墭鐩�           3妤煎寘瑁呰ˉ绌猴細鍖呰鏈鸿ˉ绌烘墭
-                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� ||mst.CN_S_BUSS_TYPE == "鍦伴潰璐т綅鍙栨枡" || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌� || mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴�)
+                    if (mst.CN_S_BUSS_TYPE == "3妤煎寘瑁呭彇鏂� ||mst.CN_S_BUSS_TYPE == "鍦伴潰璐т綅鍙栨枡" || mst.CN_S_BUSS_TYPE == "3妤煎绉板叆缂撳瓨鏋� || mst.CN_S_BUSS_TYPE == "3妤肩紦瀛樻灦鍏ュ彔鎵� || mst.CN_S_BUSS_TYPE == "3妤兼媶鐩樿ˉ绌� || mst.CN_S_BUSS_TYPE == "鍖呰绾胯ˉ绌� || mst.CN_S_BUSS_TYPE == "3妤兼墦鍖呬笅绾� || mst.CN_S_BUSS_TYPE == "3妤兼垚鍝佸嚭搴� || mst.CN_S_BUSS_TYPE == "PDA鎵撳寘涓嬬嚎" || mst.CN_S_BUSS_TYPE == "鍓垏鏈烘弧鎵樹笂绾� || mst.CN_S_BUSS_TYPE == "鐑樺共鏈虹┖鎵樹笂绾�)
                     {
                         ProcessHelper.EndPickUpDoorSafe(mst, action.CN_N_ACTION_CODE);
                     }
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
index 808c6d8..d205ab0 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/Settings.cs
@@ -72,6 +72,21 @@
         }
         #endregion
 
+        #region   MESUrl2
+        private static string _MESUrl2 = "";
+        public static string MESUrl2
+        {
+            get
+            {
+                if (_MESUrl2 == "")
+                {
+                    _MESUrl2 = XmlHelper.GetElementValue("mesurl2");
+                }
+                return _MESUrl2;
+            }
+        }
+        #endregion
+
         #region BGIP
         private static string _BGIP = "";
         public static string BGip
diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
index 6cd9525..b17b52b 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/settings.xml
@@ -12,6 +12,8 @@
 	
 	<!--MES鎺ュ彛鍦板潃-->
 	<mesurl>http://10.1.141.236:2222/api/WmsApi/GlmTonBagFillInfo</mesurl>
+	<!--MES鎺ュ彛鍦板潃-->
+	<mesurl2>http://10.1.141.236:2222/api/WmsApi/GlmTonBagFillInfo</mesurl2>
 	<!--鏄惁鍚敤Mes鎺ュ彛鑾峰彇鏁版嵁		0 榛樿寮�惎	1 涓嶉�杩嘙ES鑾峰彇鏁版嵁-->
 	<mesOpen>0</mesOpen>
 	<!--221118鎵撳寘鏈轰笅绾挎祦绋嬪彉鏇�	0 浣跨敤鍘熸湁娴佺▼	1 浣跨敤鍙樻洿娴佺▼-->
@@ -202,7 +204,11 @@
 		 {"task":"18","taskType":"杈呮潗鍏ュ簱","location":"3F_NG_DB"},
 		 {"task":"18","taskType":"杈呮潗鍑哄簱","location":"3F_NG_DB"},
 		 {"task":"18","taskType":"杈呮潗鍥炲簱","location":"3F_NG_DB"},
-		 {"task":"19","taskType":"3妤兼垚鍝佸嚭搴�,"location":"CK001_XN01"}
+		 {"task":"19","taskType":"3妤兼垚鍝佸嚭搴�,"location":"CK001_XN01"},
+		 {"task":"19","taskType":"鐑樺共鏈虹┖鎵樹笂绾�,"location":"CK001_XN01"},
+		 {"task":"19","taskType":"鐑樺共鏈烘弧鎵樹笅绾�,"location":"CK001_XN01"},
+		 {"task":"19","taskType":"鍓垏鏈烘弧鎵樹笂绾�,"location":"CK001_XN01"},
+		 {"task":"19","taskType":"鍓垏鏈虹┖鎵樹笅绾�,"location":"CK001_XN01"},
 		 
         ]]]>
 	</huoWeiCode>

--
Gitblit v1.9.1