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; } return false; } // 上一个步骤必须是漂洗 或者 晨洗 if (!$this->isRequiredNode($context->currentStep, [RinseNode::getName(), MorningWashNode::getName()])) { return false; } return true; } /** * 具体处理逻辑 */ protected function doHandle(ProcessContext $context): ProcessContext { // 更新步骤 $context->currentStep = '消毒'; $context->needDatabaseOperation = true; $context->dbOperation = DbOperationType::INSERT; $context->needWebSocketNotify = true; return $context; } }