fix(flow): 添加内镜未取出时的处理逻辑
- 在多个流程节点的 canHandle 方法中增加检测 isInStorage 状态的判断 - 当内镜未取出时设置预期下一步为提示刷出库卡语音信息 - 阻止流程节点处理,确保流程按正确顺序执行 - 统一改动覆盖消毒、干燥、终末、终末漂洗、机洗、晨洗、漂洗及清洗节点
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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] 刷卡错误,当前步骤是终末漂洗,但是刷的读卡器类型不是终末漂洗,对用户进行语音提示刷终末漂洗读卡器");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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] 刷卡错误,当前步骤是消毒,但是刷的读卡器类型不是消毒,对用户进行语音提示刷消毒读卡器");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)) {
|
||||
// 当前步骤是清洗且读卡器不符:说明清洗完了应该刷漂洗
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user