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