From 19724b0969eb2f91b38efb262a6ef4de04d6b0c5 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 14 十月 2025 12:07:58 +0800
Subject: [PATCH] 新增“有货状态”显示及数据处理逻辑支持在Home.vue和 LineComponent.vue中新增了“有货状态”显示功能,为 RGV 和堆垛机对象添加了 InStock属性。 修改了 Home.vue 的 created生命周期和 LineComponent.vue的 update 方法,增加了对 inStock数据的处理逻辑。删除了三个旧的二进制文件,新增了六个新的二进制文件,可能与项目构建或依赖更新相关。优化了任务分配和状态判断逻辑,确保任务执行更加准确和高效。
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs | 421 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 300 insertions(+), 121 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..94dbabe 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,
};
@@ -446,11 +461,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 +481,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 +499,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 +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;
}
@@ -543,8 +574,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 +593,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 +612,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 +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;
}
@@ -645,13 +694,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 +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
@@ -754,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");
+ //}
}
}
}
@@ -818,7 +870,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,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;
}
@@ -948,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;
}
@@ -993,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浠诲姟瀹屾垚
@@ -1088,7 +1154,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 +1241,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 +1329,7 @@
if (x == null)
{
next = item.stationChildCode;
+ LogAndWarn("涓浆鑾峰彇绔欏彴", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(x)}銆戙�戙�恵next}銆�");
break;
}
}
@@ -1194,12 +1337,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 +1355,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;
}
@@ -1220,6 +1363,33 @@
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;
@@ -1254,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);
@@ -1302,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.Roadway == "SC01" || task.Roadway == "SC06"))
+ {
+ 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