From 6fe4792f1f71389400d075b57fb613d7815b6783 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期四, 10 七月 2025 17:21:51 +0800 Subject: [PATCH] 111 --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs | 246 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 235 insertions(+), 11 deletions(-) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs index 1e4237b..3a74ae0 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs @@ -9,16 +9,19 @@ using MongoDB.Driver.Builders; using MySql.Data.MySqlClient; using Newtonsoft.Json; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Net.Configuration; using System.Text; using System.Web.UI.WebControls.WebParts; +using static Hanhe.iWCS.JingmenGEMTwoProtocol.ApiHelper; using static Hanhe.iWCS.JingmenGEMTwoProtocol.EnentListen; using static Hanhe.iWCS.JingmenGEMTwoProtocol.MESHelper; using static Hanhe.iWCS.JingmenGEMTwoProtocol.PLCControl; using static Hanhe.iWCS.JingmenGEMTwoProtocol.ProtocolAnalysis; +using static System.Runtime.CompilerServices.RuntimeHelpers; namespace Hanhe.iWCS.JingmenGEMTwoProtocol { @@ -174,6 +177,63 @@ end.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0]; } } + + var conn1 = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList(); + if (conn1.Count == 2) + { + //涓や釜鎺ラ┏骞冲彴 + if (mst.CN_S_START_BIT == conn1[0].locCode || mst.CN_S_START_BIT == conn1[1].locCode) + { + if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)") + { + start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[0]; + } + else + { + start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1]; + } + + } + if (mst.CN_S_END_BIT == conn1[0].locCode || mst.CN_S_END_BIT == conn1[1].locCode) + { + if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱") + { + end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[1]; + } + else + { + end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0]; + } + + } + } + if (conn1.Count == 1) + { + //涓�釜鎺ラ┏骞冲彴 + if (mst.CN_S_START_BIT == conn1[0].locCode) + { + if(mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱(浜屾)") + { + start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[0]; + } + else + { + start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1]; + } + + } + if (mst.CN_S_END_BIT == conn1[0].locCode) + { + if(mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱") + { + end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[1]; + } + else + { + end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0]; + } + } + } #endregion string FRow = string.IsNullOrEmpty(start.CN_S_FLOOR) ? "1" : start.CN_S_FLOOR; @@ -207,7 +267,7 @@ } } } - if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱") + if (mst.CN_S_BUSS_TYPE == "缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻缂撳瓨鏋跺叆绔嬪簱" || mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱") { TRow = "1"; } @@ -502,6 +562,10 @@ result = true; } } + if (mst.CN_S_BUSS_TYPE == "鐢甸挻鐢熶骇閫�簱") + { + SGTK(mst); + } var bussTypeInfo = Settings.GetHouWeiCodeo().Where(a => a.location == mst.Ext1).FirstOrDefault(); if (bussTypeInfo != null) { @@ -562,6 +626,57 @@ } CMMLog.Info($"RESULT:{result}"); return result; + } + + /// <summary> + /// 鍥涢挻鐢熶骇閫�簱 + /// 灏嗕换鍔℃媶鍒嗘垚涓ゆ浠诲姟锛岀涓�浠诲姟缁堢偣鏀逛负鎺ラ┏骞冲彴 + /// 浜屾浠诲姟浠庢帴椹冲钩鍙板叆搴�+ /// </summary> + /// <param name="mst"></param> + private static void SGTK(TN_I_TASK_MST mst) + { + var CBInfo = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList(); + if (CBInfo != null) + { + foreach (var a in CBInfo) + { + if (!string.IsNullOrEmpty(a.locCode)) + { + //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�+ var CBTable = MongoDBSingleton.Instance.FindOne<DGConnectingBits>(Query.EQ("Bit", a.locCode), "DGConnectingBits"); + 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}'"); + + CMMLog.Debug($"鐢熶骇閫�簱锛氭洿鏀圭粓鐐规垚鍔燂紒"); + MongoDBSingleton.Instance.Update<DGConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", mst.CN_S_BATCH_NO).Set("END_LOC",mst.CN_S_END_BIT), UpdateFlags.None); + break; + } + } + 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}'"); + + CMMLog.Debug($"鐢熶骇閫�簱锛氭洿鏀圭粓鐐规垚鍔燂紒"); + //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�+ + MongoDBSingleton.Instance.Insert<DGConnectingBits>(new DGConnectingBits { Bit = a.locCode, trayCode = mst.CN_S_BATCH_NO,END_LOC = mst.CN_S_END_BIT, state = "0" }); + break; + } + } + else CMMLog.Debug("鐢熶骇閫�簱鎺ラ┏浣嶇偣浣嶆湭閰嶇疆"); + } + } + else CMMLog.Debug("鐢熶骇閫�簱鎺ラ┏浣嶆湭閰嶇疆"); } /// <summary> @@ -697,9 +812,10 @@ if (plc.Count > 0) { #region 鍒ゆ柇杈撻�绾挎ā寮�鍙樻洿娉ㄩ噴 - //bool action = true; + //foreach(var a in plc) //{ + // bool action = false; // var modeResult = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel // { // dataNum = 1, @@ -712,7 +828,6 @@ // CMMLog.Debug($"OutWareTask锛氳鍙栨粴绛掓満{a.ip}閫氶亾鍙蜂负锛歿a.readAddr + 3}鐨勫�涓猴細{modeResult.result[0]}"); // if (modeResult.result[0] == 2) // { - // action = false; // CMMLog.Debug($"OutWareTask:杈撻�绾夸负 鍏ュ簱妯″紡锛岃緭閫佺嚎鐐逛綅锛歿a.location}"); // break; // } @@ -724,24 +839,25 @@ // { // if (modelInfo.Mode == "鍏ュ簱妯″紡") // { - // action = false; // CMMLog.Debug($"OutWareTask:涓棿琛�ModeList涓�鍏ュ簱妯″紡"); - // break; + // } + // else + // { + // action = true; // } // } // else // { - // action = false; // CMMLog.Debug("OutWareTask:涓棿琛�ModeList 涓虹┖"); - // break; // } // } // } + // if (!action) + // { + // return false; + // } //}; - //if (!action) - //{ - // return false; - //} + #endregion @@ -1118,6 +1234,53 @@ } CMMLog.Info("杩涘叆鍏呯數浠诲姟娴佺▼鍒ゆ柇锛氭墽琛岀粨鏉燂紒"); } + + internal static void AGVBatteryTimeTwo() + { + var cpsInfo = MongoDBSingleton.Instance.FindAll<TN_B_CHARGE_PLAN_SET>("TN_B_CHARGE_PLAN_SET"); + if (cpsInfo.Count > 0) + { + foreach (var a in cpsInfo) + { + int agvNo = int.Parse(a.CN_S_NAME); + if(agvNo != 0) + { + //鍒ゆ柇涓棿琛�MarginAGV 鏄惁鏈夎AGV鐨勬暟鎹�+ var maInfo = MongoDBSingleton.Instance.FindOne<MarginAGV>(Query.EQ("agvNo", int.Parse(a.CN_S_NAME)), "MarginAGV"); + if (maInfo == null) + { + if (DateTime.Parse(a.CN_DT_START).AddMinutes(10) > DateTime.Now) + { + //褰撳墠鏃堕棿鍦ㄦ寚瀹氬厖鐢垫椂闂寸殑10鍒嗛挓涔嬪唴 + var pileInfo = Settings.GetChargingPile().Where(b => b.agvNo == a.CN_S_NAME && b.enable == "1").FirstOrDefault(); + if(pileInfo != null) + { + int marginGroup = int.Parse(pileInfo.charginGroup); + TSHelper.SendChargeTask(a.CN_S_NAME, true); + //澧炲姞鏃堕棿 + MongoDBSingleton.Instance.Insert<MarginAGV>(new MarginAGV { agvNo = agvNo, marginGroup = marginGroup, dateTime = DateTime.Now }); + } + else + { + CMMLog.Info($"鍏呯數浠诲姟锛屾湭閰嶇疆褰撳墠杞﹀彿锛岃溅鍙凤細{a.CN_S_NAME}"); + } + } + } + else + { + if (maInfo.dateTime.AddMinutes(10) < DateTime.Now) + { + MongoDBSingleton.Instance.Remove<MarginAGV>(Query.EQ("id", maInfo.id), RemoveFlags.None); + } + } + } + else + { + CMMLog.Info("鍏呯數浠诲姟娴佺▼寮傚父锛屽綋鍓嶈溅鍙蜂负0"); + } + } + } + } #endregion /// <summary> @@ -1321,5 +1484,66 @@ 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