增加校验提示信息

This commit is contained in:
lsymicc
2026-07-10 15:23:30 +08:00
parent 6864256202
commit f406cadd44
2 changed files with 77 additions and 16 deletions

View File

@@ -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;

View File

@@ -184,7 +184,7 @@ namespace WPFWCSDemo.Schedules.CircleRGV
if (count > 0)
{
Log.Warning($"【提示】任务号:{taskNumber},取货站点:{sourceLocation}(该条可忽略)");
Log.Error($"【提示】重复任务拦截,任务号:{taskNumber},取货站点:{sourceLocation}(消息仅作记录,可忽略)");
return;
}