diff --git a/app/flow/config/StepsConfig.php b/app/flow/config/StepsConfig.php index e8d885d..b64b0f7 100644 --- a/app/flow/config/StepsConfig.php +++ b/app/flow/config/StepsConfig.php @@ -63,6 +63,7 @@ class StepsConfig extends AbstractConfig new StepConfig('干燥', 'DryNode'), new StepConfig('结束', 'EndNode'), new StepConfig('机洗', 'MachineWashNode'), + new StepConfig('虚拟清洗机', 'VirtualWashMachineNode'), new StepConfig('存储', 'StorageNode'), new StepConfig('内镜放入', 'StorageInNode'), new StepConfig('内镜取出', 'StorageOutNode'), diff --git a/app/flow/nodes/AbstractProcessNode.php b/app/flow/nodes/AbstractProcessNode.php index c43d2a8..314acc1 100644 --- a/app/flow/nodes/AbstractProcessNode.php +++ b/app/flow/nodes/AbstractProcessNode.php @@ -307,7 +307,7 @@ abstract class AbstractProcessNode implements ProcessNodeInterface abstract static public function getName(): string; /** - * 获取节点编码 + * 获取节点编码(节点编码要和 process 表中 process_name 字段的一致) */ abstract public function getCode(): string; } diff --git a/app/flow/nodes/VirtualWashMachineNode.php b/app/flow/nodes/VirtualWashMachineNode.php new file mode 100644 index 0000000..1cd40ae --- /dev/null +++ b/app/flow/nodes/VirtualWashMachineNode.php @@ -0,0 +1,72 @@ +isInStorage) { + $context->expectedNextStep = VoiceMessage::PLEASE_SWIPE_STORAGE_OUT; + return false; + } + + // 如果不是机洗 + if ($context->readerType !== MachineWashNode::getName()) { + return false; + } + + // TODO + return false; + } + + /** + * 具体处理逻辑 + */ + protected function doHandle(ProcessContext $context): ProcessContext + { + // 设置流程类型为虚拟清洗机 + $context->processType = '虚拟清洗机'; + + // 更新步骤 + $context->currentStep = '虚拟清洗机'; + + // 标记需要数据库操作 + $context->needDatabaseOperation = true; + $context->dbOperation = DbOperationType::INSERT; + $context->needWebSocketNotify = true; + + // 更新批次 + $context->dbOperation = DbOperationType::UPDATE; + + return $context; + } +}