From 0c824220cc22b8d1bc51ff68f6e8ba3a748beefb Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期五, 24 十月 2025 15:25:30 +0800
Subject: [PATCH] 1
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs | 582 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 439 insertions(+), 143 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 2eef594..f1c5b06 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);
}
@@ -152,62 +154,68 @@
}
else
{
+
Dt_Task taskNew = null;
taskNew = GetTransFerTask(FirstRgv);
if (taskNew == null)
{
- taskNew = DispatchTask(FirstRgv);
+ if (IsExistTransTask(FirstRgv))
+ {
+ taskNew = DispatchTask(FirstRgv);
+ }
}
if (taskNew != null)
- {
- RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(taskNew);
- if (rgvTaskCommand != null)
{
- Thread.Sleep(1000);
- bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand);
- if (sendFlag)
+ RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(taskNew);
+ if (rgvTaskCommand != null)
{
- if (taskNew.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)
+ Thread.Sleep(1000);
+ bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand);
+ if (sendFlag)
{
- taskNew.TaskState = (int)TaskInStatusEnum.RGV_InExecuting;
- _taskRepository.UpdateData(taskNew);
- Thread.Sleep(1000);
- }
- else if (taskNew.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish)
- {
- taskNew.TaskState = (int)TaskOutStatusEnum.RGV_OutExecuting;
- _taskRepository.UpdateData(taskNew);
- Thread.Sleep(1000);
- }
- else if (taskNew.Remark != null)
- {
- taskNew.RGVName = "RGV02";
- taskNew.CurrentAddress = taskNew.Remark;
- taskNew.Remark = "";
- taskNew.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
- Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskNew.NextAddress);
- taskNew.SourceStation = taskNew.CurrentAddress == "1025" ? 10 : 7;
- if (taskNew.TaskType == (int)TaskInboundTypeEnum.Inbound)
+ if (taskNew.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)
{
- taskNew.TargetStation = station.stationRemark;
+ taskNew.TaskState = (int)TaskInStatusEnum.RGV_InExecuting;
+ _taskRepository.UpdateData(taskNew);
+ Thread.Sleep(1000);
+ }
+ else if (taskNew.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish)
+ {
+ taskNew.TaskState = (int)TaskOutStatusEnum.RGV_OutExecuting;
+ _taskRepository.UpdateData(taskNew);
+ Thread.Sleep(1000);
+ }
+ else if (taskNew.Remark != null)
+ {
+ taskNew.RGVName = "RGV02";
+ taskNew.CurrentAddress = taskNew.Remark;
+ taskNew.Remark = "";
+ taskNew.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
+ Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskNew.NextAddress);
+ taskNew.SourceStation = taskNew.CurrentAddress == "1025" ? 10 : 7;
+ if (taskNew.TaskType == (int)TaskInboundTypeEnum.Inbound)
+ {
+ taskNew.TargetStation = station.stationRemark;
+ }
+ else
+ {
+ taskNew.TargetStation = station.remark;
+ }
+ _taskRepository.UpdateData(taskNew);
+ Thread.Sleep(1000);
}
else
{
- taskNew.TargetStation = station.remark;
+ taskNew.RGVName = FirstRgv.DeviceCode;
+ _taskRepository.UpdateData(taskNew);
+ _taskService.UpdateTaskStatusToNext(taskNew.TaskNum);
+ Thread.Sleep(1000);
}
- _taskRepository.UpdateData(taskNew);
- Thread.Sleep(1000);
- }
- else
- {
- taskNew.RGVName = FirstRgv.DeviceCode;
- _taskRepository.UpdateData(taskNew);
- _taskService.UpdateTaskStatusToNext(taskNew.TaskNum);
- Thread.Sleep(1000);
}
}
+
}
- }
+
}
}
#region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
@@ -288,15 +296,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;
}
@@ -317,13 +327,16 @@
}
else
{
+
Dt_Task taskNew = null;
taskNew = GetTransFerTask(SecondRgv);
if (taskNew == null)
{
- taskNew = DispatchTask(SecondRgv);
+ if (IsExistTransTask(SecondRgv))
+ {
+ taskNew = DispatchTask(SecondRgv);
+ }
}
-
if (taskNew != null)
{
RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(taskNew);
@@ -364,6 +377,7 @@
}
}
}
+
}
}
#region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
@@ -396,6 +410,7 @@
LevelPoint = SecondRgv.GetValue<RGVDBName, int>(RGVDBName.LevelPoint),
CurrentTaskNum = SecondRgv.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum),
RGVAlarm = SecondRgv.GetValue<RGVDBName, uint>(RGVDBName.RGVAlarm),
+ InStock = SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock),
SecondRgv.DeviceCode,
SecondRgv.DeviceName,
};
@@ -433,8 +448,7 @@
{
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.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ 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.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
@@ -447,11 +461,32 @@
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"))))
{
- return GetDispatchExecutingTask(task);
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task, taskSecond);
}
+ return task;
+ }
+ }
+ }
+ else if ((taskSecond.CurrentAddress == "1025" || taskSecond.CurrentAddress == "1026") && (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+ {
+ if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
+ {
+ if (task.TargetStation - taskSecond.SourceStation > 1 && task.TargetStation - taskSecond.TargetStation > 1)
+ {
+ 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 || ((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;
}
}
@@ -464,9 +499,11 @@
{
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"))))
{
- return GetDispatchExecutingTask(task);
+ task.Remark = "1025";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task, taskSecond);
}
return task;
}
@@ -482,6 +519,10 @@
}
if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
{
+ if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(15),
@@ -489,16 +530,28 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
- if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
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;
}
@@ -509,7 +562,7 @@
{
if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault))
{
- var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.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.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
@@ -521,9 +574,30 @@
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"))))
{
- return GetDispatchExecutingTask(task);
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task, taskSecond);
+ }
+ return task;
+ }
+ }
+ }
+ else if ((taskSecond.CurrentAddress == "1025" || taskSecond.CurrentAddress == "1026") && (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+ {
+ if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
+ {
+ if (taskSecond.SourceStation - task.TargetStation > 1 && taskSecond.TargetStation - task.TargetStation > 1)
+ {
+ 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 || ((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;
}
@@ -538,9 +612,11 @@
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"))))
{
- return GetDispatchExecutingTask(task);
+ task.Remark = "1026";
+ _taskRepository.UpdateData(task);
+ return GetDispatchExecutingTask(task, taskSecond);
}
return task;
}
@@ -556,6 +632,10 @@
}
if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
{
+ if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(26),
@@ -563,16 +643,28 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
- if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
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;
}
@@ -589,7 +681,7 @@
try
{
var tasks = _taskService.QueryRGVTask();
- Dt_Task task;
+ Dt_Task task = new Dt_Task();
if (tasks.Count() == 0)
{
return null;
@@ -601,18 +693,18 @@
{
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.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ 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)
{
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;
}
}
- var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) < 1015) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC01" || x.Roadway == "SC02" || x.Roadway == "SC03")) || x.RGVName == "RGV01").ToList();
+ var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && (Convert.ToInt32(x.SourceAddress) < 1015|| Convert.ToInt32(x.SourceAddress)>1031)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC01" || x.Roadway == "SC02" || x.Roadway == "SC03")) || x.RGVName == "RGV01").ToList();
if (taskNews.Count == 0)
{
return null;
@@ -623,6 +715,10 @@
}
if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
{
+ if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(15),
@@ -630,40 +726,42 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
- if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
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
@@ -674,19 +772,18 @@
if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault))
{
- var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.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 (taskFirst != null)
{
task = GetDispatchTask(tasks, taskFirst);
- LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
+ LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
Thread.Sleep(1000);
return task;
}
-
}
- var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) > 1014) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC04" || x.Roadway == "SC05" || x.Roadway == "SC06")) || x.RGVName == "RGV02").ToList();
+ var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) > 1014 && Convert.ToInt32(x.SourceAddress)<1031) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC04" || x.Roadway == "SC05" || x.Roadway == "SC06")) || x.RGVName == "RGV02").ToList();
if (taskNews.Count == 0)
{
return null;
@@ -697,6 +794,10 @@
}
if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
{
+ if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(26),
@@ -704,43 +805,44 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
- if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
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");
+ //}
}
}
}
@@ -756,7 +858,7 @@
try
{
var tasks = _taskRepository.QueryData(x => x.Floor == "1F" && (x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish || x.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish));
- Dt_Task task;
+ Dt_Task task = new Dt_Task();
if (tasks.Count() == 0)
{
return null;
@@ -768,8 +870,7 @@
{
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.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ 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.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
@@ -800,6 +901,10 @@
}
if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
{
+ if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(15),
@@ -807,8 +912,8 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVSecond, command);
- Thread.Sleep(1000);
- if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
return null;
}
@@ -851,13 +956,13 @@
if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault))
{
- var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
+ var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.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 (taskFirst != null)
{
if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
{
- task = tasks.FirstOrDefault(x => ((x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV02");
+ task = tasks.FirstOrDefault(x => ((taskFirst.TargetStation-x.SourceStation > 1 &&taskFirst.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || ( taskFirst.TargetStation- x.SourceStation > 1 && taskFirst.SourceStation- x.TargetStation > 1 && taskFirst.SourceStation- x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV02");
LogAndWarn("涓浆璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
@@ -883,6 +988,10 @@
}
if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
{
+ if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ {
+ return null;
+ }
RGVTaskCommand command = new RGVTaskCommand()
{
PickupLocation = (byte)Convert.ToSByte(26),
@@ -890,8 +999,8 @@
TaskType = (byte)Convert.ToSByte(1)
};
SendCommand(commonRGVFirst, command);
- Thread.Sleep(1000);
- if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+ Thread.Sleep(3000);
+ if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running) || commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.Speed) == 0)
{
return null;
}
@@ -935,6 +1044,21 @@
return null;
}
}
+
+ public bool IsExistTransTask(CommonRGV_FirstFloor commonRGV)
+ {
+ if (commonRGV.DeviceCode == "RGV01")
+ {
+ var task = _taskRepository.QueryFirst(x => x.Floor == "1F" && (x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish || x.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish)&&x.RGVName=="RGV02");
+ return task == null ? true : false;
+ }
+ else
+ {
+ var task = _taskRepository.QueryFirst(x => x.Floor == "1F" && (x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish || x.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish) && x.RGVName == "RGV01");
+ return task == null ? true : false;
+ }
+ }
+
/// <summary>
/// RGV浠诲姟瀹屾垚
@@ -1030,20 +1154,51 @@
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();
+ 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)
{
+ WriteInfo("鏌ヨ浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || oldtask.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
{
+ if (oldtask.RGVName == "RGV01")
+ {
+ return tasks.FirstOrDefault(x => (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.TargetStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => (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));
+
+ }
+ }
+ else if ((oldtask.CurrentAddress == "1025" || oldtask.CurrentAddress == "1026") && (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+ {
+ if (oldtask.RGVName == "RGV01")
+ {
+ return tasks.FirstOrDefault(x => (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.TargetStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => (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));
- return tasks.FirstOrDefault(x => (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));
+ }
+
}
else if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
{
- return tasks.FirstOrDefault(x => x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.TargetStation > 1);
+ if (oldtask.RGVName == "RGV01")
+ {
+ return tasks.FirstOrDefault(x => oldtask.TargetStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1);
+
+ }
+ else
+ {
+ return tasks.FirstOrDefault(x => x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.TargetStation > 1);
+ }
+
}
+
return null;
}
else
@@ -1063,14 +1218,19 @@
}
if (next != null)
{
- oldtask.Remark = next;
- _taskRepository.UpdateData(oldtask);
- return oldtask;
+ y.Remark = next;
+ _taskRepository.UpdateData(y);
+ LogAndWarn("涓浆浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(y)}銆戙��");
+ return y;
}
}
if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || oldtask.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
{
+ return tasks.FirstOrDefault(x => (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));
+ }
+ else if ((oldtask.CurrentAddress == "1025" || oldtask.CurrentAddress == "1026") && (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+ {
return tasks.FirstOrDefault(x => (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));
}
else if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
@@ -1081,30 +1241,157 @@
}
}
- public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask)
+ 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");
+ }
+ }
+ }
+ }
- var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15);
- if (stationManager.Count() > 0)
+ public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask,Dt_Task task)
+ {
+ var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 15);
+ if (stationManagers.Count() > 0)
{
string next = null;
- foreach (var item in stationManager)
+ 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;
+ //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)
+ {
+ LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙�戙�恵next}銆�");
+ return oldtask;
+ }
+ else
+ {
+ return null;
+ }
+ }
+ else
+ {
+ if (stationManager.stationRemark - task.TargetStation > 1 && stationManager.stationRemark - task.SourceStation > 1 && oldtask.SourceStation - task.SourceStation > 1 && oldtask.SourceStation - task.TargetStation > 1)
+ {
+ LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
+ return oldtask;
+ }
+ else
+ {
+ return null;
+ }
+ }
+ }
+ }
+ 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;
}
@@ -1137,7 +1424,7 @@
}
else if (task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
{
- if (task.Remark != null && (task.Roadway == "SC01" || task.Roadway == "SC06"))
+ if (task.Remark != null && (task.Remark == "1026" || task.Remark == "1025"))
{
Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.Remark);
rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
@@ -1160,7 +1447,7 @@
if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)
{
- if (task.Remark != null && (task.Roadway == "SC01" || task.Roadway == "SC06"))
+ if (task.Remark != null && (task.Remark == "1025" || task.Remark == "1026"))
{
Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.CurrentAddress);
Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.Remark);
@@ -1185,9 +1472,18 @@
}
else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish)
{
- Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
- rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
- rgvTaskCommand.PutcargoLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
+ if (task.Remark != null && (task.Remark == "1025" || task.Remark == "1026"))
+ {
+ Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.Remark);
+ rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
+ rgvTaskCommand.PutcargoLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
+ }
+ else
+ {
+ Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress);
+ rgvTaskCommand.TaskType = (byte)Convert.ToSByte(4);
+ rgvTaskCommand.PutcargoLocation = (byte)Convert.ToSByte(stationManager.stationRemark);
+ }
}
else
{
--
Gitblit v1.9.3