From 8bc65cd3363d7148c356fe2eecca3590a9a3b4e0 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-JIE70N9>
Date: 星期二, 21 十月 2025 09:34:41 +0800
Subject: [PATCH] 修改问题
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 35 ++++++++++++++++++++++++++++++-----
1 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index b578805..b226ff9 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -8,6 +8,7 @@
using Elastic.Clients.Elasticsearch.Snapshot;
using Furion.Logging;
using IoTClient;
+using MessagePack;
using NewLife.Reflection;
using Newtonsoft.Json;
using Org.BouncyCastle.Ocsp;
@@ -41,10 +42,10 @@
AGV(mod); // AGV璋冨害
break;
case PLCTypeEnum.ShuttleCar: //绌挎杞�
- if (mod.PlcIdIP == "10.26.254.25")
- {
- break;
- }
+ //if (mod.PlcIdIP == "10.26.254.28")
+ //{
+ // break;
+ //}
ShuttleCar(mod);
break;
case PLCTypeEnum.RobotPalletizer:
@@ -192,6 +193,30 @@
}
if (carTask != null && carTask.Status != TaskStatusEnum.Complete)
{
+ //鏌ユ壘璇ヤ换鍔$殑涓婁竴鏉″瓙浠诲姟瀹屾垚鏃堕棿鍜屽綋鍓嶆椂闂撮棿闅旓紝濡傛灉闂撮殧鏃堕棿澶煭璇存槑鏈夐棶棰橈紝绛�3绉掑悗鍐嶆墽琛�
+ var carTaskAfter = _db.Queryable<WcsCarTasks>().First(m => m.IsDelete == false && m.Status == TaskStatusEnum.Complete && m.CarTaskNo == valueTaskStr - 1
+ && m.CarNo == modDevice.PlcIdIP && m.TaskNo == carTask.TaskNo);
+ if (carTaskAfter != null)
+ {
+ if (carTaskAfter.Status != TaskStatusEnum.Complete || carTaskAfter.UpdateTime == null)
+ {
+ Log.Error($"鍥涘悜杞︾浜屾潯瀛愪换鍔″弽棣堝畬鎴愭椂闂村紓甯�:{carTaskNext.TaskNo}");
+ Thread.Sleep(3000);
+ break;
+ }
+ else
+ {
+ TimeSpan difference = DateTime.Now - Convert.ToDateTime(carTaskAfter.UpdateTime);
+ double seconds = difference.TotalSeconds;
+ if (seconds < 3)
+ {
+ Log.Error($"鍥涘悜杞︾浜屾潯瀛愪换鍔″弽棣堝畬鎴愭椂闂村紓甯�:{carTaskNext.TaskNo}");
+ Thread.Sleep(3000);
+ break;
+ }
+ }
+ }
+
carTask.Status = TaskStatusEnum.Complete;
carTask.UpdateTime = DateTime.Now;
_db.Updateable(carTask).ExecuteCommand();
@@ -213,7 +238,7 @@
//carTaskNext = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == carTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status <= TaskStatusEnum.Doing && m.CarTaskNo != valueTaskStr).OrderBy(m => m.CreateTime).First();
if (carTaskNext != null)
{
- if (carTaskNext.CarTaskNo < valueTaskStr)
+ if (carTaskNext.CarTaskNo != null && carTaskNext.CarTaskNo < valueTaskStr)
{
carTaskNext.Status = TaskStatusEnum.Complete;
carTaskNext.UpdateTime = DateTime.Now;
--
Gitblit v1.8.0