From 0dc63f405ac2873b6a76414a0bd3e8b151f1b624 Mon Sep 17 00:00:00 2001 From: zimoyin <2556608754@qq.com> Date: Sun, 8 Mar 2026 23:42:54 +0800 Subject: [PATCH] =?UTF-8?q?todo(flow):=20=E6=96=B0=E5=A2=9E=E8=99=9A?= =?UTF-8?q?=E6=8B=9F=E6=B8=85=E6=B4=97=E6=9C=BA=E8=8A=82=E7=82=B9=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/flow/config/StepsConfig.php | 1 + app/flow/nodes/AbstractProcessNode.php | 2 +- app/flow/nodes/VirtualWashMachineNode.php | 72 +++++++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 app/flow/nodes/VirtualWashMachineNode.php 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; + } +}