From df5b2944a6cb34b658a4e62096b45f10f679023e Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 26 六月 2025 17:17:11 +0800
Subject: [PATCH] 11

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs |  214 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 138 insertions(+), 76 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
index 391cc92..2128a19 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -9,6 +9,7 @@
 using MongoDB.Driver.Builders;
 using MySql.Data.MySqlClient;
 using Newtonsoft.Json;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -96,25 +97,25 @@
 
         internal static void recordInfo(string taskName,string errMsg)
         {
-            //var errInfo = MongoDBSingleton.Instance.FindOne<errInfoTable>(Query.EQ("taskName", taskName), "errInfoTable");
-            //if(errInfo != null)
-            //{
-            //    MongoDBSingleton.Instance.Update<errInfoTable>(Query.EQ("_id", errInfo._id), Update.Set("errMsg", errMsg).Set("dateTime", DateTime.Now), UpdateFlags.None);
-            //}
-            //else
-            //{
-            //    MongoDBSingleton.Instance.Insert<errInfoTable>(new errInfoTable 
-            //    {
-            //        taskName = taskName,
-            //        errMsg = errMsg,
-            //        dateTime = DateTime.Now
-            //    });
-            //}
+            var errInfo = MongoDBSingleton.Instance.FindOne<errInfoTable>(Query.EQ("taskName", taskName), "errInfoTable");
+            if(errInfo != null)
+            {
+                MongoDBSingleton.Instance.Update<errInfoTable>(Query.EQ("_id", errInfo._id), Update.Set("errMsg", errMsg).Set("dateTime", DateTime.Now), UpdateFlags.None);
+            }
+            else
+            {
+                MongoDBSingleton.Instance.Insert<errInfoTable>(new errInfoTable 
+                {
+                    taskName = taskName,
+                    errMsg = errMsg,
+                    dateTime = DateTime.Now
+                });
+            }
         }
 
         internal static void deleteInfo(string taskName)
         {
-            //MongoDBSingleton.Instance.Remove<errInfoTable>(Query.EQ("taskName", taskName), RemoveFlags.None);
+            MongoDBSingleton.Instance.Remove<errInfoTable>(Query.EQ("taskName", taskName), RemoveFlags.None);
         }
 
 
@@ -303,8 +304,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 +317,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 +365,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}鏈厤缃�);
@@ -692,62 +698,61 @@
                 if (plc.Count > 0)
                 {
                     #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴
-                    bool action = true;
-                    foreach(var a in plc)
-                    {
-                        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)
-                            {
-                                action = false;
-                                CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}");
-                                break;
-                            }
-                            else
-                            {
-                                //璇诲彇涓棿琛ㄦā寮�-                                var modelInfo = MongoDBSingleton.Instance.FindOne<ModeList>("ModeList");
-                                if (modelInfo != null)
-                                {
-                                    if (modelInfo.Mode == "鍏ュ簱妯″紡")
-                                    {
-                                        action = false;
-                                        CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡");
-                                        break;
-                                    }
-                                }
-                                else
-                                {
-                                    action = false;
-                                    CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖");
-                                    break;
-                                }
-                            }
-                        }
-                    };
-                    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
 
 
-                    CMMLog.Info($"OutWareTask 11111");
                     string ssx01 = plc[0].location;
                     string ssx02 = plc[1].location;
                     //CMMLog.Info($"鏌ヨ杈撻�绾垮綋鍓嶇偣浣嶏細{a.location}");
                     var slptInfo1 = MongoDBSingleton.Instance.FindOne<SLPTLoc>(Query.EQ("locCode", ssx01), "SLPTLoc");
                     if (slptInfo1 == null)
                     {
-                        CMMLog.Info($"OutWareTask 222222");
                         endMachLoc = ssx01;
                         slptInfo1 = new SLPTLoc
                         {
@@ -758,7 +763,6 @@
                     }
                     else
                     {
-                        CMMLog.Info($"OutWareTask 3333333");
                         var slptInfo2 = MongoDBSingleton.Instance.FindOne<SLPTLoc>(Query.EQ("locCode", ssx02), "SLPTLoc");
                         if (slptInfo2 == null)
                         {
@@ -772,7 +776,6 @@
                         }
                         else
                         {
-                            CMMLog.Info($"OutWareTask 44444444444");
                             var loc = slptInfo1.taskNum <= slptInfo2.taskNum ? slptInfo1 : slptInfo2;
                             CMMLog.Info("OutWareTask :" + JsonConvert.SerializeObject(loc));
                             if (loc.taskNum < 2)
@@ -793,14 +796,14 @@
                         new SqlHelper<object>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_END_BIT='{endMachLoc}',CN_S_END_AGVBIT = '{StockInstance.Instance.GetAGVCodeForBitCode(endMachLoc)}' where CN_S_TASK_NO = '{mst.CN_S_TASK_NO}'");
 
                         var plcTwo = Settings.GetPlcInfo().Where(a => a.location == endMachLoc && a.enable == 1).First();
-                        int[] num = new int[1] { 1 };
-                        var wirte = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
-                        {
-                            addr = plcTwo.writeAddr + 1,
-                            host = plcTwo.ip,
-                            data = num,
-                            port = plcTwo.port
-                        });
+                        //int[] num = new int[1] { 1 };
+                        //var wirte = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti
+                        //{
+                        //    addr = plcTwo.writeAddr + 1,
+                        //    host = plcTwo.ip,
+                        //    data = num,
+                        //    port = plcTwo.port
+                        //});
 
                         result = true;
                     }
@@ -1320,5 +1323,64 @@
             return WeekNumInMonth;
         }
 
+        internal static bool UpdateTaskState(string taskNo, int state)
+        {
+            var result = false;
+            try
+            {
+                string taskState = state == 3 ? "寮�鍙栬揣" : state == 4 ? "鍙栬揣瀹屾垚" : state == 5 ? "寮�鍗歌揣" : state == 6 ? "鍗歌揣瀹屾垚" : state == 2 ? "瀹屾垚" : "";
+                CMMLog.Info($"SQLServer 鏇存柊浠诲姟鐘舵�锛氫换鍔″彿锛歿taskNo},鏇存敼鐘舵�锛歿taskState}");
+                if (!string.IsNullOrEmpty(taskState)) result = new SqlHelper<SQL_TN_I_TASK_MST>().ExecuteSql($"update dbo.tn_am_task_mst set CN_S_STATUS='{taskState}' where CN_S_TASK_NO='{taskNo}'");
+            }
+            catch (Exception ex)
+            {
+                CMMLog.Error($"SQLServer 鏇存柊浠诲姟鐘舵�寮傚父锛歿ex.Message}");
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// SQL-AMS浠诲姟涓昏〃
+        /// </summary>
+        [SugarTable("dbo.tn_am_task_mst")]
+        public class SQL_TN_I_TASK_MST
+        {
+            public string CN_S_BATCH_NO { get; set; }
+            public int CN_S_ORDER_NO { get; set; }
+            public string CN_S_TASK_NO { get; set; }
+            public string CN_S_SOURCE_SYS { get; set; }
+            public string CN_S_SOURCE_NO { get; set; }
+            public string CN_S_PROCESS_CODE { get; set; }
+            public string CN_S_TASK_TYPE { get; set; }
+            public string CN_S_START_AREA { get; set; }
+            public string CN_S_START_AREA_NAME { get; set; }
+            public string CN_S_START_BIT { get; set; }
+            public int CN_N_START_AGVBIT { get; set; }
+            public string CN_S_END_AREA { get; set; }
+            public string CN_S_END_AREA_NAME { get; set; }
+            public string CN_S_END_BIT { get; set; }
+            public int CN_N_END_AGVBIT { get; set; }
+            public string CN_S_STATUS { get; set; }
+            public string CN_S_BEF_STATUS { get; set; }
+            public string CN_S_BEFORE_NO { get; set; }
+            public string CN_S_AFTER_NO { get; set; }
+            public string CN_T_START_WORKING { get; set; }
+            public string CN_T_END_WORKING { get; set; }
+            public int CN_N_PRIORITY { get; set; }
+            public int CN_N_CUR_STEP { get; set; }
+            public string CN_S_CREATOR { get; set; }
+            public string CN_S_CREATOR_NAME { get; set; }
+            public string CN_T_CREATE { get; set; }
+            public string CN_S_MENDER { get; set; }
+            public string CN_S_MODIFY_NAME { get; set; }
+            public string CN_T_MODIFY { get; set; }
+            public string CN_S_TASK_MODEL { get; set; }
+            public string CN_S_EXT1 { get; set; }
+            public string CN_S_EXT2 { get; set; }
+            public string CN_S_EXT3 { get; set; }
+            public string CN_N_AGV_NO { get; set; }
+            public string CN_S_TRANSPORT_INFO { get; set; }
+        }
     }
 }

--
Gitblit v1.9.1