From f406cadd44e94d8b907460e020488c0de6ff24e9 Mon Sep 17 00:00:00 2001 From: lsymicc Date: Fri, 10 Jul 2026 15:23:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WPFWCSDemo/Schedules/CircleRGV/Check.cs | 91 ++++++++++++++++++---- WPFWCSDemo/Schedules/CircleRGV/Generate.cs | 2 +- 2 files changed, 77 insertions(+), 16 deletions(-) diff --git a/WPFWCSDemo/Schedules/CircleRGV/Check.cs b/WPFWCSDemo/Schedules/CircleRGV/Check.cs index f96d57b..e0108cb 100644 --- a/WPFWCSDemo/Schedules/CircleRGV/Check.cs +++ b/WPFWCSDemo/Schedules/CircleRGV/Check.cs @@ -32,35 +32,68 @@ namespace WPFWCSDemo.Schedules.CircleRGV public static bool CanTaskGenerated(int sourceLocation, int targetLocation, bool isNotException) { //校验---源站点请求 - if (QueryForIsRequestReset(sourceLocation, 3)) return false; + if (QueryForIsRequestReset(sourceLocation, 3)) + { + Log.Error($"【提示01】<空托任务>生成失败,源站点[{sourceLocation}]请求未复位,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } + //校验---目标站点请求 - if (QueryForIsRequestReset(targetLocation, 3)) + if (QueryForIsRequestReset(targetLocation, 3)) + { + Log.Error($"【提示02】<空托任务>生成失败,目标站点[{targetLocation}]请求未复位,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验---系统异常 - if (!isNotException) + if (!isNotException) + { + Log.Error($"【提示03】<空托任务>生成失败,源站点[{sourceLocation}],目标站点[{targetLocation}],输送线系统异常,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验---同输送口相邻任务生成时间间隔过短 - if (!CheckSendTaskTimeInterval(targetLocation, 120)) + if (!CheckSendTaskTimeInterval(targetLocation, 120)) + { + Log.Error($"【提示04】<空托任务>生成失败,目标站点[{targetLocation}]相邻任务生成时间间隔过短,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验---如果已经存在处于【取货阶段】的某个【空托】任务 //由于【空托任务】输送线的源站点唯一,因此必须等待该任务取货完成才能生成新的【空托】任务 - if (!IsPalletLineHasTask()) + if (!IsPalletLineHasTask()) + { + Log.Error($"【提示05】<空托任务>生成失败,源站点[{sourceLocation}]已经存在处于取货阶段的空托任务,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验---当前输送线存在【空托】任务 - if (!GetRGVTaskForPalletsIsExist(targetLocation)) + if (!GetRGVTaskForPalletsIsExist(targetLocation)) + { + Log.Error($"【提示06】<空托任务>生成失败,目标站点[{targetLocation}]已经存在处于取货阶段的空托任务,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验5.当前同一【目标站点】是否已经生成任务 - if (!CheckSendTaskIsRepeat(sourceLocation, TaskType.Pallet)) + if (!CheckSendTaskIsRepeat(sourceLocation, TaskType.Pallet)) + { + Log.Error($"【提示07】<空托任务>生成失败,目标站点[{targetLocation}]已经存在处于取货阶段的空托任务,禁止生成任务(消息仅作记录,可忽略)"); return false; + } + //校验---上位是否手动禁止生成 - if (LineTaskForPermission(targetLocation) == 0) return false; + if (LineTaskForPermission(targetLocation) == 0) + { + Log.Error($"【提示08】<空托任务>生成失败,目标站点[{targetLocation}]已经被手动禁止生成任务,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } return true; @@ -82,29 +115,57 @@ namespace WPFWCSDemo.Schedules.CircleRGV //1003-1009输送口校验 if (sourceLocation == RGVStation.LineM_Goods_In) { - if (QueryForIsRequestReset(RGVStation.LineToWarehouse1_Out, 3)) return false; + if (QueryForIsRequestReset(RGVStation.LineToWarehouse1_Out, 3)) + { + Log.Error($"【提示01】<实垛任务>生成失败,源站点[{sourceLocation}]请求未复位,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } } //2025.9新增 //1005-1010输送口校验 if (sourceLocation == RGVStation.LineL_Goods_In) { - if (QueryForIsRequestReset(RGVStation.LineToWarehouse2_Out, 3)) return false; + if (QueryForIsRequestReset(RGVStation.LineToWarehouse2_Out, 3)) + { + Log.Error($"【提示02】<实垛任务>生成失败,源站点[{sourceLocation}]请求未复位,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } } //校验1.输送口无请求 - if (QueryForIsRequestReset(sourceLocation, 3)) return false; + if (QueryForIsRequestReset(sourceLocation, 3)) + { + Log.Error($"【提示03】<实垛任务>生成失败,源站点[{sourceLocation}]请求未复位,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } //校验2.输送口系统异常 - if (!isNotException) return false; + if (!isNotException) + { + Log.Error($"【提示04】<实垛任务>生成失败,源站点[{sourceLocation}]输送线系统异常,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } //校验3.同输送口相邻任务生成时间间隔过短 - if (!CheckSendTaskTimeInterval(sourceLocation)) return false; + if (!CheckSendTaskTimeInterval(sourceLocation)) + { + Log.Error($"【提示05】<实垛任务>生成失败,源站点[{sourceLocation}]相邻任务生成时间间隔过短,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } //校验4.当前输送线存在取货阶段的任务 - if (!GetRGVTaskForGoodsIsExist(sourceLocation)) return false; + if (!GetRGVTaskForGoodsIsExist(sourceLocation)) + { + Log.Error($"【提示06】<实垛任务>生成失败,源站点[{sourceLocation}]已经存在处于取货阶段的实垛任务,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } //校验5.当前同一【源站点】是否已经生成【取货阶段】任务 - if (!CheckSendTaskIsRepeat(sourceLocation, TaskType.Goods)) return false; + if (!CheckSendTaskIsRepeat(sourceLocation, TaskType.Goods)) + { + Log.Error($"【提示07】<实垛任务>生成失败,源站点[{sourceLocation}]已经存在处于取货阶段的实垛任务,禁止生成任务(消息仅作记录,可忽略)"); + return false; + } return true; diff --git a/WPFWCSDemo/Schedules/CircleRGV/Generate.cs b/WPFWCSDemo/Schedules/CircleRGV/Generate.cs index 418347c..1cedbd6 100644 --- a/WPFWCSDemo/Schedules/CircleRGV/Generate.cs +++ b/WPFWCSDemo/Schedules/CircleRGV/Generate.cs @@ -184,7 +184,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV if (count > 0) { - Log.Warning($"【提示】任务号:{taskNumber},取货站点:{sourceLocation}(该条可忽略)"); + Log.Error($"【提示】重复任务拦截,任务号:{taskNumber},取货站点:{sourceLocation}(消息仅作记录,可忽略)"); return; }