From 9a7c4fea85f85824dddeac9e6ce6ebb75ccee679 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期二, 29 四月 2025 15:26:15 +0800
Subject: [PATCH] 修改问题晚上充电逻辑
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 81 ++++++++++++++++++++++++----------------
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 2
2 files changed, 50 insertions(+), 33 deletions(-)
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index bc201db..e8a2fe2 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -278,22 +278,27 @@
{
return; // 灞傛暟閿欒
}
- //娣诲姞灏忚溅鍏呯數浣嶇疆
- WcsTask modCarTask = new WcsTask()
+ var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
+ if (getCdTask == null)
{
- TaskNo = _taskService.GetTaskCode(),
- TaskType = TaskTypeEnum.Move,
- Type = PLCTypeEnum.ShuttleCar,
- StartLocate = carXYZ,
- EndLocate = endLocateCar,
- PalletNo = "",
- Status = TaskStatusEnum.Wait,
- Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
- Origin = "WCS",
- CarIp = modDevice.PlcIdIP
- };
- _db.Insertable(modCarTask).ExecuteCommand();
- HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+ //娣诲姞灏忚溅鍏呯數浣嶇疆
+ WcsTask modCarTask = new WcsTask()
+ {
+ TaskNo = _taskService.GetTaskCode(),
+ TaskType = TaskTypeEnum.Move,
+ Type = PLCTypeEnum.ShuttleCar,
+ StartLocate = carXYZ,
+ EndLocate = endLocateCar,
+ PalletNo = "",
+ Status = TaskStatusEnum.Wait,
+ Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
+ Origin = "WCS",
+ CarIp = modDevice.PlcIdIP
+ };
+ _db.Insertable(modCarTask).ExecuteCommand();
+ HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+ }
+
}
else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2)
{
@@ -326,32 +331,37 @@
var endLocateCar = "";
if (valuez == 1)
{
- endLocateCar = "011201";
+ endLocateCar = "210401";
}
else if (valuez == 2)
{
- endLocateCar = "011202";
+ endLocateCar = "210402";
}
else
{
return; // 灞傛暟閿欒
}
- //娣诲姞灏忚溅鍏呯數浣嶇疆
- WcsTask modCarTask = new WcsTask()
+ var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
+ if (getCdTask == null)
{
- TaskNo = _taskService.GetTaskCode(),
- TaskType = TaskTypeEnum.Move,
- Type = PLCTypeEnum.ShuttleCar,
- StartLocate = carXYZ,
- EndLocate = endLocateCar,
- PalletNo = "",
- Status = TaskStatusEnum.Wait,
- Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
- Origin = "WCS",
- CarIp = modDevice.PlcIdIP
- };
- _db.Insertable(modCarTask).ExecuteCommand();
- HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+ //娣诲姞灏忚溅鍏呯數浣嶇疆
+ WcsTask modCarTask = new WcsTask()
+ {
+ TaskNo = _taskService.GetTaskCode(),
+ TaskType = TaskTypeEnum.Move,
+ Type = PLCTypeEnum.ShuttleCar,
+ StartLocate = carXYZ,
+ EndLocate = endLocateCar,
+ PalletNo = "",
+ Status = TaskStatusEnum.Wait,
+ Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
+ Origin = "WCS",
+ CarIp = modDevice.PlcIdIP
+ };
+ _db.Insertable(modCarTask).ExecuteCommand();
+ HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+ }
+
}
}
@@ -463,6 +473,13 @@
carTaskNext.CarTaskNo = carTaskNo;
_db.Updateable(carTaskNext).ExecuteCommand();
//娓呴櫎灏忚溅绌洪棽鏃堕棿
+ var carTimeClear = _db.Queryable<WcsCarTime>().First(m=>m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
+ if (carTimeClear!= null)
+ {
+ carTimeClear.CarTime = null;
+ carTimeClear.UpdateTime = DateTime.Now;
+ _db.Updateable(carTimeClear).ExecuteCommand();
+ }
var taskMonitor = new WcsTaskMonitor()
{
TaskNo = carTaskNext.TaskNo,
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 6e57018..434abaa 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -378,7 +378,7 @@
try
{
// 鑾峰彇瀵嗛泦搴撴湭鎵ц浠诲姟 鏍规嵁鍒涘缓鏃堕棿鎺掑簭
- var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar).OrderBy(s => new {s.Levels, s.CreateTime}).First();
+ var waitTask = _db.Queryable<WcsTask>().Where(s => s.IsDelete == false && s.Status == TaskStatusEnum.Wait && s.Type == PLCTypeEnum.ShuttleCar && string.IsNullOrWhiteSpace(s.StartLocate) && string.IsNullOrWhiteSpace(s.EndLocate)).OrderBy(s => new {s.Levels, s.CreateTime}).First();
if (waitTask == null)
{
continue;
--
Gitblit v1.8.0