From 79db8fda0f71b65dfe1e1c72f307b29efc565126 Mon Sep 17 00:00:00 2001 From: lss <2538410689@qq.com> Date: 星期一, 04 八月 2025 17:31:22 +0800 Subject: [PATCH] 111 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 91 +++++++++++++++++++++++++++++---------------- 1 files changed, 58 insertions(+), 33 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs index 8a62d44..0155ac0 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -6,6 +6,7 @@ using HH.WCS.JiaTong.wms; using Newtonsoft.Json; using NLog.Fluent; +using NModbus; using S7.Net; using SqlSugar; using System; @@ -39,7 +40,7 @@ public static object _lockCreateItem = new object(); public static object _lockCreateTask = new object(); - + /// <summary> /// 绔嬪簱浠诲姟涓嬪彂=銆嬪垱寤轰换鍔� /// </summary> @@ -883,7 +884,6 @@ return result; } - #region 鍒涘缓浠诲姟 if (endloc != null && startloc != null) { @@ -931,7 +931,7 @@ } } - + LogHelper.Info("鍒涘缓浠诲姟鎴愬姛"); } else @@ -2226,18 +2226,8 @@ if (startloc != null) { Start = model.InitialLocation; - var CntrRel = LocationHelper.GetLocCntrRel(startloc.S_CODE).FirstOrDefault(); - if (CntrRel != null) - { - CntrCode = CntrRel.S_CNTR_CODE; - } - else - { - result.code = "1"; - result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹捣鐐箋model.InitialLocation}鏈壘鍒板搴旇揣浣嶇粦瀹氭墭鐩樻墭鐩�; - AddErrorInfo("鏌ユ壘鎵樼洏澶辫触", result.msg, Source); - return result; - } + + } endloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == model.TargetLocation).First(); if (endloc != null) @@ -2738,8 +2728,8 @@ var db = new SqlHelper<HangChaAGV>().GetInstance(); DeviceInfoModel device = new DeviceInfoModel(); - // List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//鍙犵洏鏈烘姤閿欎俊鎭�- // List<AgvInfos> agvInfos = new List<AgvInfos>();//agv鎶ラ敊淇℃伅 + // List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//鍙犵洏鏈烘姤閿欎俊鎭�+ // List<AgvInfos> agvInfos = new List<AgvInfos>();//agv鎶ラ敊淇℃伅 //鑾峰彇鍐呭瓨涓彔鐩樻満鐨勬姤閿欎俊鎭� //foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) @@ -2748,20 +2738,52 @@ //} // device.DeviceInfos = deviceInfos; //鑾峰彇杞﹁締鎶ヨ淇℃伅 - var agvDeviceInfo = db.Queryable<HangChaAGV>().ToList(); - if (agvDeviceInfo.Count > 0) + var agvDeviceInfos = db.Queryable<HangChaAGV>().ToList(); + if (agvDeviceInfos.Count > 0) { - device.AgvQty = agvDeviceInfo.Count; - device.AgvErrorQty = agvDeviceInfo.FindAll(a => a.agvErrCode != "0" || int.Parse(a.errCode2) > 1 || int.Parse(a.faildCode) > 1).Count; - device.AgvChargeQty = agvDeviceInfo.FindAll(a => a.errCode2 == "1").Count; - device.AgvRunQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "0" && a.errCode2 == "0" && a.faildCode == "1").Count; + int chargeQty = 0; + int runQty = 0; + int Errorqty = 0; + foreach (var item in agvDeviceInfos) + { + + string[] battery = item.agvBattery.Split(',').ToArray(); + LogHelper.Info($"杞﹁締淇℃伅涓婃姤 杞﹀彿锛歿item.agvNo},battery:{JsonConvert.SerializeObject(battery)},閿欒鐮侊細{item.agvErrCode}銆亄item.errCode2}銆亄item.faildCode}"); + if (battery.Count() > 3) + { + if (battery[1] == "1") + { runQty++; } + if (battery[2] == "1") + { chargeQty++; } + if (!string.IsNullOrEmpty(item.agvErrCode) && int.Parse(item.agvErrCode) > 1) + { + Errorqty++; + break; + } + if (!string.IsNullOrEmpty(item.errCode2) && int.Parse(item.errCode2) > 1) + { + Errorqty++; + break; + } + if (!string.IsNullOrEmpty(item.faildCode) && int.Parse(item.faildCode) > 1) + { + Errorqty++; + break; + } + } + + } + device.AgvQty = agvDeviceInfos.Count; + device.AgvErrorQty = Errorqty; + device.AgvChargeQty = chargeQty; + device.AgvRunQty = runQty; //foreach (var agv in agvDeviceInfo) //{ // string agvErrorInfo = GetAgvAlarmSendCodeTwo(agv.agvNo, agv.agvErrCode, agv.errCode2, agv.faildCode); // deviceInfos.Add(new DeviceInfos() { AgvNo = agv.agvNo, AgvInfo = agvErrorInfo }); //} } - // device.DeviceInfos = deviceInfos; + // device.DeviceInfos = deviceInfos; return device; } @@ -3302,16 +3324,16 @@ /// </summary> /// <param name="forkliftNo"></param> /// <param name="battery"></param> - /// <param name="agvCurrTaskInfo"></param> /// <param name="errCode"></param> /// <param name="errCode2"></param> /// <param name="faildCode"></param> internal static void AGVDeviceReceiveSet(string forkliftNo, string battery, string errCode, string errCode2, string faildCode) { - lock (AGVDeviceReceiveLock) + + try { var db = new SqlHelper<HangChaAGV>().GetInstance(); - var agvDeviceInfo = db.Queryable<HangChaAGV>().Where(a => a.agvNo.Trim() == forkliftNo).First(); + var agvDeviceInfo = db.Queryable<HangChaAGV>().Where(a => a.agvNo.Trim() == forkliftNo.Trim()).First(); if (agvDeviceInfo == null) { var agvInfo = new HangChaAGV() @@ -3327,11 +3349,7 @@ } else { - //鍒ゆ柇涓棿琛ㄤ俊鎭湁鏃犲彉鍖栵紝鏃犲彉鍖栦笉鏇存柊涓棿琛�- if (agvDeviceInfo.agvErrCode == errCode && agvDeviceInfo.errCode2 == errCode2 && agvDeviceInfo.faildCode == faildCode) - { - return; - } + agvDeviceInfo.agvBattery = battery; // agvDeviceInfo.agvCurrTaskInfo = agvCurrTaskInfo; agvDeviceInfo.agvErrCode = errCode; @@ -3342,9 +3360,16 @@ //if (int.Parse(agvDeviceInfo.agvBattery) >= 1000) // agvDeviceInfo.agvRunStatus = ""; db.Updateable(agvDeviceInfo).UpdateColumns(a => new - { a.agvBattery, a.agvCurrTaskInfo, a.agvErrCode, a.errCode2, a.faildCode, a.agvRunStatus }).ExecuteCommand(); + { a.agvBattery, a.agvErrCode, a.errCode2, a.faildCode }).ExecuteCommand(); } } + catch (Exception ex) + { + + LogHelper.Info($"AGVDeviceReceiveSet:Error:{ex}"); + } + + } #region 鏁版嵁妯″瀷 -- Gitblit v1.9.1