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