ai-refactor(flow): 调整抽象流程节点实现和依赖路径

- 修改 AbstractProcessNode 中 ProcessContext 的命名空间引用为 app\flow\context\ProcessContext
- 引入 app\flow\vo\CanHandleResult 用于节点处理结果表示
- 更新前置策略执行后对成功状态的判断,改为调用 isSuccess() 方法
- 增加日志记录细节,便于调试策略执行中断时的错误信息
- 优化代码注释,提升代码可读性和维护性
This commit is contained in:
zimoyin
2026-03-11 00:49:02 +08:00
parent e040fccba6
commit d5991813a6
14 changed files with 1755 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace app\flow\enum;
/**
* 数据库操作类型枚举
* 用于 ProcessContext 中标识需要执行的数据库操作
*/
enum DbOperationType: string
{
// 插入 actions 原始数据
case INSERT = 'insert';
// 更新内镜与 actions process_data 数据
case UPDATE = 'update';
// 不进行任何数据库操作
case NONE = 'none';
}
+65
View File
@@ -0,0 +1,65 @@
<?php
namespace app\flow\enum;
/**
* 语音消息枚举
*/
enum VoiceMessage: string
{
// 自定义语音输出
case CUSTOM = 'custom';
// NONE
case NONE = '';
// 晨洗
case MORNING_WASH = '晨洗';
// 清洗
case WASH = '清洗';
// 消毒
case DISINFECT = '消毒';
// 干燥
case DRY = '干燥';
// 终末漂洗
case TERMINAL_RINSE = '终末漂洗';
// 漂洗
case RINSE = '漂洗';
// 结束
case END = '结束';
// 重复刷卡
case DUPLICATE_SWIPING = 'repeat';
case PLEASE_SWIPE_WASH = '请刷清洗';
// 请刷干燥
case PLEASE_SWIPE_DRY = '请刷干燥';
// 请刷消毒
case PLEASE_SWIPE_DISINFECT = '请刷消毒';
// 请刷漂洗
case PLEASE_SWIPE_RINSE = '请刷漂洗';
// 请刷终末漂洗
case PLEASE_SWIPE_FINAL_RINSE = '请刷终末漂洗';
// 请刷结束
case PLEASE_SWIPE_END = '请刷结束';
// 请刷机洗
case PLEASE_SWIPE_MACHINE_WASH = '请刷机洗';
// 请先进行晨洗
case PLEASE_SWIPE_MORNING_WASH = '请刷消毒或机洗,开启晨洗流程';
// 流程链未初始化
case PROCESS_CHAIN_NOT_INITIALIZED = '流程链未初始化';
case UNKNOWN_ERROR = '未知错误';
// 卡号未绑定
case CARD_NOT_BOUND = '卡号未绑定';
case READER_NOT_BOUND = '读卡器未绑定';
case ENDOSCOPE_NOT_BOUND = "内镜未绑定";
case OPERATOR_NOT_FOUND = "人员未绑定";
case PLEASE_SWIPE_OPERATOR = "请刷人员卡";
case PLEASE_SWIPE_ENDOSCOPE = "请刷内镜卡";
case NOT_ENOUGH_TIME = '{step}剩余{time}秒 '; // 刷错,当前步骤时长不足
// 存储相关
case STORAGE_IN = '内镜放入';
case STORAGE_OUT = '内镜取出';
case PLEASE_SWIPE_STORAGE_IN = '请刷入库';
case PLEASE_SWIPE_STORAGE_OUT = '请刷出库';
case ENDOSCOPE_ALREADY_IN_STORAGE = '内镜已在库中';
case ENDOSCOPE_NOT_IN_STORAGE = '内镜不在库中';
}