diff --git a/app/flow/nodes/DisinfectNode.php b/app/flow/nodes/DisinfectNode.php index c7ce8a9..bf7c5be 100644 --- a/app/flow/nodes/DisinfectNode.php +++ b/app/flow/nodes/DisinfectNode.php @@ -33,6 +33,12 @@ class DisinfectNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + if (!$this->isMatchReaderType($context)) { if ($context->currentStep === RinseNode::getName()) { $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_DISINFECT; diff --git a/app/flow/nodes/DryNode.php b/app/flow/nodes/DryNode.php index ebbeb9d..7bcf60b 100644 --- a/app/flow/nodes/DryNode.php +++ b/app/flow/nodes/DryNode.php @@ -37,6 +37,12 @@ class DryNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + if (!$this->isMatchReaderType($context)) { if ($context->currentStep === FinalRinseNode::getName()) { if (!$context->success) Logger::debug("[DryNode] 刷卡错误,当前步骤是终末漂洗,但是刷的读卡器类型不是终末漂洗,对用户进行语音提示刷终末漂洗读卡器"); diff --git a/app/flow/nodes/EndNode.php b/app/flow/nodes/EndNode.php index 6aed2d8..91536b0 100644 --- a/app/flow/nodes/EndNode.php +++ b/app/flow/nodes/EndNode.php @@ -33,6 +33,12 @@ class EndNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + if (!$this->isMatchReaderType($context)) { if ($context->currentStep === DryNode::getName() && $context->currentStep === FinalRinseNode::getName()) { $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_END; diff --git a/app/flow/nodes/FinalRinseNode.php b/app/flow/nodes/FinalRinseNode.php index 779bf22..da09633 100644 --- a/app/flow/nodes/FinalRinseNode.php +++ b/app/flow/nodes/FinalRinseNode.php @@ -36,6 +36,12 @@ class FinalRinseNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + if (!$this->isMatchReaderType($context)) { if ($context->currentStep === DisinfectNode::getName()) { if (!$context->success) Logger::debug("[FinalRinseNode] 刷卡错误,当前步骤是消毒,但是刷的读卡器类型不是消毒,对用户进行语音提示刷消毒读卡器"); diff --git a/app/flow/nodes/MachineWashNode.php b/app/flow/nodes/MachineWashNode.php index b8038f6..b7b8522 100644 --- a/app/flow/nodes/MachineWashNode.php +++ b/app/flow/nodes/MachineWashNode.php @@ -33,6 +33,12 @@ class MachineWashNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + if (!$this->isMatchReaderType($context)) { if ($context->currentStep === WashNode::getName()) { $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_MACHINE_WASH; diff --git a/app/flow/nodes/MorningWashNode.php b/app/flow/nodes/MorningWashNode.php index 2fffa06..5ac5d69 100644 --- a/app/flow/nodes/MorningWashNode.php +++ b/app/flow/nodes/MorningWashNode.php @@ -34,6 +34,12 @@ class MorningWashNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + // 只有需要晨洗且未完成晨洗时才处理 if (!$context->needMorningWash || $context->morningWashed) { return false; diff --git a/app/flow/nodes/RinseNode.php b/app/flow/nodes/RinseNode.php index 812b738..bb1d5a3 100644 --- a/app/flow/nodes/RinseNode.php +++ b/app/flow/nodes/RinseNode.php @@ -35,6 +35,12 @@ class RinseNode extends AbstractProcessNode */ public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + // 期望当前读卡器为漂洗 if (!$this->isMatchReaderType($context)) { // 当前步骤是清洗且读卡器不符:说明清洗完了应该刷漂洗 diff --git a/app/flow/nodes/WashNode.php b/app/flow/nodes/WashNode.php index ff06c00..a93715e 100644 --- a/app/flow/nodes/WashNode.php +++ b/app/flow/nodes/WashNode.php @@ -36,6 +36,12 @@ class WashNode extends AbstractProcessNode public function canHandle(ProcessContext $context): bool { + // 如果内镜未取出 + if ($context->isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + // 读卡器不是本节点,不处理 if (!$this->isMatchReaderType($context)) { return false;