From 9b015b21e39bb427c8fcfdcbda795d3a3c450d52 Mon Sep 17 00:00:00 2001 From: lss <Lss@HanInfo> Date: 星期五, 30 五月 2025 17:27:56 +0800 Subject: [PATCH] 合肥佳通修改 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs | 130 ++++++++++++++++++++++++++++++------------ 1 files changed, 92 insertions(+), 38 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 028afc0..2246125 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs @@ -2116,23 +2116,7 @@ } return result; } - internal static DeviceInfoModel Device() - { - DeviceInfoModel device = new DeviceInfoModel(); - - List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//鍙犵洏鏈烘姤閿欎俊鎭�- AgvInfos gvInfos = new AgvInfos();//agv鎶ラ敊淇℃伅 - //鑾峰彇鍐呭瓨涓彔鐩樻満鐨勬姤閿欎俊鎭�- foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) - { - deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo }); - } - device.DeviceInfos = deviceInfos; - - - return device; - } /// <summary> /// 搴撲綅娓呯┖ @@ -2203,7 +2187,99 @@ return result; } + /// <summary> + /// 璁惧鐘舵�涓婃姤 + /// </summary> + /// <returns></returns> + internal static DeviceInfoModel Device() + { + var db = new SqlHelper<HangChaAGV>().GetInstance(); + DeviceInfoModel device = new DeviceInfoModel(); + List<DeviceInfos> deviceInfos = new List<DeviceInfos>();//鍙犵洏鏈烘姤閿欎俊鎭�+ List<AgvInfos> agvInfos = new List<AgvInfos>();//agv鎶ラ敊淇℃伅 + + //鑾峰彇鍐呭瓨涓彔鐩樻満鐨勬姤閿欎俊鎭�+ foreach (var dpjInfo in DeviceProcess.DpjInfoDirectory) + { + deviceInfos.Add(new DeviceInfos() { Device = dpjInfo.Value.DeviceName, DeviceInfo = dpjInfo.Value.ErrorInfo }); + } + device.DeviceInfos = deviceInfos; + //鑾峰彇杞﹁締鎶ヨ淇℃伅 + var agvDeviceInfo = db.Queryable<HangChaAGV>().ToList(); + if (agvDeviceInfo.Count > 0) + { + device.AgvQty = agvDeviceInfo.Count; + device.AgvErrorQty = agvDeviceInfo.FindAll(a => a.agvErrCode != "0" || a.agvErrCode != "0" || a.faildCode != "0").Count; + device.AgvChargeQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; + device.AgvRunQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count; + foreach (var agv in agvDeviceInfo) + { + string agvErrorInfo = GetAgvAlarmSendCodeTwo(agv.agvErrCode, agv.errCode2, agv.faildCode); + agvInfos.Add(new AgvInfos() { AgvNo = agv.agvNo, AgvInfo = agvErrorInfo }); + } + } + device.AgvInfos = agvInfos; + + return device; + } + + /// <summary> + /// agv灏忚溅鏁呴殰鐮佸鐞�+ /// </summary> + /// <param name="errCode1">閿欒鐮�</param> + /// <param name="errCode2">閿欒鐮�</param> + /// <param name="faildCode">閿欒鐮�</param> + /// <returns></returns> + private static string GetAgvAlarmSendCodeTwo(string errCode1, string errCode2, string faildCode) + { + string result = ""; + //灏嗘姤璀︿俊鎭暣鍚�+ string binSW1 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(22, '0'); + string binSW2 = Convert.ToString(int.Parse(errCode1), 2).PadLeft(20, '0'); + string binFc = Convert.ToString(int.Parse(errCode1), 2).PadLeft(16, '0'); + var arr1 = binSW1.ToArray(); + var arr2 = binSW2.ToArray(); + var arr3 = binFc.ToArray(); + + for (int i = 0; i <= arr1.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvErrorCode1.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + for (int i = 0; i <= arr2.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvErrorCode2.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + for (int i = 0; i <= arr3.Length; i++) + { + if (arr1[i] == '1') + { + var ErrorInfo = Settings.agvFaildCode.Where(a => a.ErrorCode == i).FirstOrDefault(); + if (ErrorInfo != null) + { + result = result + "," + $"{ErrorInfo.ErrorInfo}"; + } + + } + } + return result; + } #endregion #region 鍚堣偉浣抽�涓氬姟鏂规硶 @@ -2548,30 +2624,8 @@ } - /// <summary> - /// 鑾峰彇瀵瑰簲閿欒缂栫爜鐨勫皬杞︽暟閲�- /// </summary> - /// <param name="Error1">閿欒鐮�</param> - /// <param name="Error2">閿欒鐮�</param> - /// <param name="faildCode"></param> - /// <returns></returns> - internal static int GetAgvQty(string Error1, string Error2 = "0", string faildCode = "0") - { - try - { - var db = new SqlHelper<HangChaAGV>().GetInstance(); - return db.Queryable<HangChaAGV>().Where(a => a.faildCode == faildCode && a.errCode2 == Error2 && a.agvErrCode == Error1).Count(); - } - catch (Exception) - { - throw; - } - - } #endregion - - internal static CodeInfo GetCodeInfo(string code, string org) { -- Gitblit v1.9.1