From 696b87e0f494eff98e1646fbde133430f22b1543 Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期日, 20 十月 2024 18:48:44 +0800 Subject: [PATCH] bug修复 --- Admin.NET/WCS.Application/PLC/PLCCommon.cs | 214 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 175 insertions(+), 39 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCCommon.cs b/Admin.NET/WCS.Application/PLC/PLCCommon.cs index f7291a1..aef594d 100644 --- a/Admin.NET/WCS.Application/PLC/PLCCommon.cs +++ b/Admin.NET/WCS.Application/PLC/PLCCommon.cs @@ -1,4 +1,5 @@ -锘縰sing Microsoft.AspNetCore.SignalR; +锘縰sing Elastic.Clients.Elasticsearch.Tasks; +using Microsoft.AspNetCore.SignalR; using RazorEngine.Compilation.ImpromptuInterface.Dynamic; using System; using System.Collections.Generic; @@ -30,13 +31,14 @@ taskInfo.EndCeng = "3"; taskInfo.EndLie = "65"; taskInfo.EndPai = int.Parse(roadWay.Substring(1,2)).ToString(); + // 绉诲簱浠诲姟 if (taskType == "2") { if (roadWay == endRoadWay) // 鍚屽贩閬撶Щ搴�,鑾峰彇鐩爣鍦板潃 { - taskInfo = GetEndPai(endLocat.Substring(1, 2), endLocat.Substring(0, 2), endLocat.Substring(4, 2), endLocat.Substring(6, 2)); + taskInfo = GetEndPai(endRoadWay.Substring(1, 2),endLocat.Substring(2, 2), endLocat.Substring(0, 2), endLocat.Substring(4, 2), endLocat.Substring(6, 2)); } else // 璺ㄥ贩閬撶Щ搴擄紝鑾峰彇涓夋ゼ鍑哄簱鍙� { @@ -206,6 +208,114 @@ } } + //鏍规嵁宸烽亾鍙e拰灞傛暟纭鍑哄簱宸ヤ綅鎺� + + + switch (roadWay) + { + case "R01": + + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R02": + + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R03": + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R04": + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R05": + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R06": + if (taskInfo.EndCeng == "1" || taskInfo.EndCeng == "2" ) + { + taskInfo.EndPai = "2"; + } + if ( taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R07": + if (taskInfo.EndCeng == "1" ) + { + taskInfo.EndPai = "2"; + } + if ( taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R08": + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R09": + if (taskInfo.EndCeng == "1") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "2" || taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + case "R10": + if (taskInfo.EndCeng == "1" || taskInfo.EndCeng == "2") + { + taskInfo.EndPai = "2"; + } + if (taskInfo.EndCeng == "3") + { + taskInfo.EndPai = "3"; + } + break; + } return taskInfo; } @@ -215,47 +325,49 @@ /// </summary> /// <param name="startStation"></param> /// <returns></returns> - public static PlcTaskInfo GetPlcIp(string startStation) + public static PLCUtil GetPlcIp(string startStation) { - PlcTaskInfo taskInfo = new PlcTaskInfo(); - - var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" }; - var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "272", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" }; + string strIp = ""; + var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065","033","039","044" ,"051","059"}; + var conveyList2 = new List<string>() { "205", "234", "252", "254", "260", "262", "270", "272", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" }; var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" }; if (conveyList1.Contains(startStation)) { - taskInfo.Ip = "10.18.51.110"; + strIp = "10.18.51.110"; } else if (conveyList2.Contains(startStation)) { - taskInfo.Ip = "10.18.51.120"; + strIp = "10.18.51.120"; } else if (conveyList3.Contains(startStation)) { - taskInfo.Ip = "10.18.51.130"; + strIp = "10.18.51.130"; } else { - throw new Exception("宸ヤ綅鏈煡璇㈠埌"); + throw Oops.Bah("宸ヤ綅鏈煡璇㈠埌"); } - - return taskInfo; + var plcConveyorConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == strIp); + return plcConveyorConn; } /// <summary> /// 鏍规嵁wms鐩爣鍦板潃杞崲涓篜lc鐩爣鍦板潃 /// </summary> + /// <param name="road">宸烽亾</param> /// <param name="lie">鍒�</param> /// <param name="pai">鎺�</param> /// <param name="ceng">灞�</param> /// <param name="dept">娣卞害</param> /// <returns></returns> - public static PlcTaskInfo GetEndPai(string lie, string pai,string ceng, string dept) + public static PlcTaskInfo GetEndPai(string road,string lie, string pai,string ceng, string dept) { - var roadNum = int.Parse(lie); + var roadNum = int.Parse(road); + var lieNum = int.Parse(lie); var paiNum = int.Parse(pai); + var cengNum = int.Parse(ceng); var deptNum = int.Parse(dept); var paiVal = 0; @@ -317,10 +429,13 @@ } PlcTaskInfo taskInfo = new PlcTaskInfo(); - taskInfo.EndPai = pai; - taskInfo.EndCeng = ceng; - taskInfo.EndLie = paiVal.ToString(); - + taskInfo.EndPai = paiVal.ToString(); + taskInfo.EndCeng = cengNum.ToString(); + taskInfo.EndLie = lieNum.ToString() ; + if (taskInfo.EndPai == "0" || taskInfo.EndCeng == "0" || taskInfo.EndLie == "0") + { + throw new Exception("鎺掑垪灞傝浆鎹㈠け璐�"); + } return taskInfo; } @@ -552,35 +667,53 @@ public static string GetRoadwayByStationNew(string StationNum) { string value = ""; - var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" }; - var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" }; - var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" }; + //var conveyList1 = new List<string>() { "147", "145", "139", "137", "129", "127", "121", "119", "111", "109", "103", "101", "093", "091", "085", "083", "075", "073", "067", "065" }; + //var conveyList2 = new List<string>() { "252", "254", "260", "262", "272", "270", "278", "280", "288", "290", "294", "301", "307", "309", "315", "317", "325", "327", "331", "337" }; + //var conveyList3 = new List<string>() { "401", "402", "405", "406", "409", "410", "413", "414", "417", "418", "421", "422", "425", "426", "429", "430", "433", "434", "437", "438" }; - if (conveyList1.Contains(StationNum)) + var ipInfo = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.ConveyorLine && s.IsDelete == false).ToList(); //s.Type == PLCTypeEnum.StackingMachine || + var ip1 = ipInfo.First(m => m.Text == "1灞傛墭鐩樿緭閫佺嚎"); + var ip2 = ipInfo.First(m => m.Text == "2灞傛墭鐩樿緭閫佺嚎"); + var ip3 = ipInfo.First(m => m.Text == "3灞傛墭鐩樿緭閫佺嚎"); + + if (ip1 != null) { - value = "1"; - } - else if (conveyList2.Contains(StationNum)) - { - value = "2"; - } - else if (conveyList3.Contains(StationNum)) - { - value = "3"; - } - else - { - throw new Exception("宸ヤ綅鏈煡璇㈠埌"); + var dev1 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip1.Id).Select(m => m.StationNum).ToList(); + if (dev1.Contains(StationNum)) + { + value = "1"; + return value; + } } - return value; + if (ip2 != null) + { + var dev2 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip2.Id).Select(m => m.StationNum).ToList(); + if (dev2.Contains(StationNum)) + { + value = "2"; + return value; + } + } + + if (ip3 != null) + { + var dev3 = PLCTaskAction.plcDevices.Where(m => m.IsDelete == false && m.PlcId == ip3.Id).Select(m => m.StationNum).ToList(); + if (dev3.Contains(StationNum)) + { + value = "3"; + return value; + } + } + + return ""; } /// <summary> /// 鏍规嵁宸烽亾鍙枫�佸眰鏁� 鑾峰彇瀵瑰簲鐨勮泛鏈篒P鍙婂叆搴撳伐浣嶆帓鍒楀眰淇℃伅 /// </summary> /// <param name="roadway">宸烽亾鍙�</param> - /// <param name="plcList">杩炴帴闆嗗悎</param> + /// <param name="ceng">杩炴帴闆嗗悎</param> /// <returns></returns> public static StokInfo GetStokePlc(string roadway, string ceng) { @@ -748,7 +881,10 @@ } } } - + if (paiVal == 0) + { + throw new Exception("鎺掕浆鎹㈠け璐�"); + } return paiVal; } -- Gitblit v1.8.0