From 46f0794372bb79dedfbb1d7f0a34081cf06204ce Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期五, 22 八月 2025 14:58:25 +0800
Subject: [PATCH] 增加堆垛机召回功能
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs | 284 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 214 insertions(+), 70 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
index 2584b75..728235d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
@@ -129,12 +129,14 @@
if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound)
{
IsExecutingTask.TargetStation = station.stationRemark;
+ IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
}
else
{
IsExecutingTask.TargetStation = station.remark;
+ IsExecutingTask.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
}
- IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
+
_taskRepository.UpdateData(IsExecutingTask);
Thread.Sleep(1000);
}
@@ -288,15 +290,17 @@
IsExecutingTask.RGVName = "RGV01";
IsExecutingTask.CurrentAddress = IsExecutingTask.Remark;
IsExecutingTask.Remark = "";
- IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
+
Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == IsExecutingTask.NextAddress);
IsExecutingTask.SourceStation = IsExecutingTask.CurrentAddress == "1025" ? 10 : 7;
if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound)
{
+ IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
IsExecutingTask.TargetStation = station.stationRemark;
}
else
{
+ IsExecutingTask.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
IsExecutingTask.TargetStation = station.remark;
}
@@ -446,11 +450,12 @@
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
-
return task;
}
}
@@ -465,11 +470,12 @@
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
-
return task;
}
}
@@ -482,8 +488,10 @@
{
LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
return task;
@@ -511,16 +519,28 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
}
}
Thread.Sleep(1000);
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+ {
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task);
+ }
return task;
}
}
+ }
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+ {
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task);
}
return task;
}
@@ -543,8 +563,10 @@
LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
return task;
@@ -560,8 +582,10 @@
LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
return task;
@@ -577,8 +601,10 @@
LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
Thread.Sleep(1000);
- if (task.Remark != null)
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
{
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
return GetDispatchExecutingTask(task, taskSecond);
}
return task;
@@ -606,16 +632,28 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
}
}
Thread.Sleep(1000);
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+ {
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task);
+ }
return task;
}
}
+ }
+ if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+ {
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task);
}
return task;
}
@@ -645,13 +683,13 @@
if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
{
var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && (x.TaskState < 230 || x.TaskState == (int)TaskInStatusEnum.RGV_TransFer || x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
- if (taskSecond != null)
+ if (taskSecond != null)
{
task = GetDispatchTask(tasks, taskSecond);
LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
- Thread.Sleep(1000);
+ Thread.Sleep(1000);
return task;
}
}
@@ -677,40 +715,42 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
}
}
-
- if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+ task = GetDispatchTask(taskNews, "RGV01");
+ if (task == null)
{
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return taskNews.FirstOrDefault(x => x.RGVName == "RGV01");
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
}
- else
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return taskNews.FirstOrDefault(x => x.RGVName != "RGV02");
- }
+ return task;
+ //if (taskNews.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+ //{
+ // return taskNews.FirstOrDefault(x => x.RGVName == "RGV01");
+ //}
+ //else
+ //{
+ // return taskNews.FirstOrDefault(x => x.RGVName != "RGV02");
+ //}
}
else
{
- if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
- }
- else
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
- }
+ return GetDispatchTask(tasks, "RGV01");
+ //if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+ //{
+ // LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
+ // Thread.Sleep(1000);
+ // return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
+ //}
+ //else
+ //{
+ // LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
+ // Thread.Sleep(1000);
+ // return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+ //}
}
}
else
@@ -754,43 +794,44 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
}
}
-
- if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+ task = GetDispatchTask(taskNews, "RGV02");
+ if (task == null)
{
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return taskNews.FirstOrDefault(x => x.RGVName == "RGV02");
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
}
- else
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
-
- Thread.Sleep(1000);
- return taskNews.FirstOrDefault(x => x.RGVName != "RGV01");
- }
+ return task;
+ //if (taskNews.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+ //{
+ // return taskNews.FirstOrDefault(x => x.RGVName == "RGV02");
+ //}
+ //else
+ //{
+ // return taskNews.FirstOrDefault(x => x.RGVName != "RGV01");
+ //}
}
else
{
- if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆� 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
+ return GetDispatchTask(tasks, "RGV02");
+ //if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+ //{
+ // LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆� 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
- }
- else
- {
- LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
+ // Thread.Sleep(1000);
+ // return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
+ //}
+ //else
+ //{
+ // LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
- Thread.Sleep(1000);
- return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
- }
+ // Thread.Sleep(1000);
+ // return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+ //}
}
}
}
@@ -818,7 +859,6 @@
{
if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
{
-
var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && (x.TaskState < 230 || x.TaskState == (int)TaskInStatusEnum.RGV_TransFer || x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
if (taskSecond != null)
{
@@ -861,7 +901,7 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
@@ -948,7 +988,7 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
+ Thread.Sleep(3000);
if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
{
return null;
@@ -1088,7 +1128,7 @@
return null;
}
- public Dt_Task? GetDispatchTask(List<Dt_Task> tasks, Dt_Task oldtask)
+ public Dt_Task? GetDispatchTask(List<Dt_Task> tasks,Dt_Task oldtask)
{
Dt_Task y = tasks.Where(x => x.Remark != null&& ((x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))).FirstOrDefault();
if (y == null)
@@ -1175,6 +1215,82 @@
}
}
+ public Dt_Task? GetDispatchTask(List<Dt_Task> tasks,string RGVName)
+ {
+ Dt_Task y = tasks.Where(x => x.Remark != null).FirstOrDefault();
+ if (y == null)
+ {
+ if (RGVName == "RGV01")
+ {
+ if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+ {
+ return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+ }
+ }
+ else
+ {
+ if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+ {
+ return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+ }
+ }
+ }
+ else
+ {
+ var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15);
+ if (stationManager.Count() > 0)
+ {
+ string next = null;
+ foreach (var item in stationManager)
+ {
+ var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode);
+ if (x == null)
+ {
+ next = item.stationChildCode;
+ break;
+ }
+ }
+ if (next != null)
+ {
+ y.Remark = next;
+ _taskRepository.UpdateData(y);
+ LogAndWarn("涓浆浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(y)}銆戙��");
+ return y;
+ }
+ }
+ if (RGVName == "RGV01")
+ {
+ if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+ {
+ return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+ }
+ }
+ else
+ {
+ if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+ {
+ return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+ }
+ }
+ }
+ }
+
public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask,Dt_Task task)
{
var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 15);
@@ -1187,6 +1303,7 @@
if (x == null)
{
next = item.stationChildCode;
+ LogAndWarn("涓浆鑾峰彇绔欏彴", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(x)}銆戙�戙�恵next}銆�");
break;
}
}
@@ -1194,12 +1311,13 @@
{
var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == next);
oldtask.Remark = next;
+ //oldtask.CurrentAddress = next;
+ _taskRepository.UpdateData(oldtask);
if (task.RGVName == "RGV01")
{
if (task.TargetStation - stationManager.stationRemark > 1 && task.SourceStation - stationManager.stationRemark > 1 && task.SourceStation - oldtask.SourceStation > 1 && task.TargetStation - oldtask.SourceStation > 1)
{
- _taskRepository.UpdateData(oldtask);
- LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
+ LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙�戙�恵next}銆�");
return oldtask;
}
else
@@ -1211,7 +1329,6 @@
{
if (stationManager.stationRemark - task.TargetStation > 1 && stationManager.stationRemark - task.SourceStation > 1 && oldtask.SourceStation - task.SourceStation > 1 && oldtask.SourceStation - task.TargetStation > 1)
{
- _taskRepository.UpdateData(oldtask);
LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
return oldtask;
}
@@ -1225,6 +1342,33 @@
return null;
}
+ public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask)
+ {
+ var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 15);
+ if (stationManagers.Count() > 0)
+ {
+ string next = null;
+ foreach (var item in stationManagers)
+ {
+ var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode);
+ if (x == null)
+ {
+ next = item.stationChildCode;
+ LogAndWarn("涓浆鑾峰彇绔欏彴", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(x)}銆戙�戙�恵next}銆�");
+ break;
+ }
+ }
+ if (next != null)
+ {
+ var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == next);
+ oldtask.Remark = next;
+ _taskRepository.UpdateData(oldtask);
+ return oldtask;
+ }
+ }
+ return null;
+ }
+
/// <summary>
/// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
/// </summary>
--
Gitblit v1.9.3