#ifndef PROCEDUREMANAGER_H #define PROCEDUREMANAGER_H #include #include #include #include "proceduredata.h" class ProcedureManager : public QObject { Q_OBJECT public: explicit ProcedureManager(QObject *parent = nullptr); ~ProcedureManager(); // 加载规程列表 QVector loadProcedureList(const QString &directory); // 搜索规程 QVector searchProcedures(const QString &keyword); // 加载规程详情 ProcedureData loadProcedure(const QString &procedureId); // 设置工单号 void setWorkOrderId(const QString &workOrderId); QString workOrderId() const { return m_workOrderId; } // 步骤操作 bool confirmStep(const QString &procedureId, const QString &stepId); bool cancelStepConfirm(const QString &procedureId, const QString &stepId, const QString &reason); bool executeAutoStep(const QString &procedureId, const QString &stepId); // 获取表格数据 TableData getTableData(const QString &procedureId, const QString &tableId); bool updateTableData(const QString &procedureId, const QString &tableId, const QVector &rows); signals: void procedureLoaded(const ProcedureData &procedure); void stepStatusChanged(const QString &stepId, StepStatus status); void tableDataUpdated(const QString &tableId); private: ProcedureData parseProcedureYaml(const QString &filePath); void createSampleProcedures(); void createMockExceptionData(); ProcedureData loadMockProcedureFromJson(const QString &procedureId); StepType parseStepType(const QString &typeStr); StepStatus parseStepStatus(const QString &statusStr); QString m_workOrderId; QString m_procedureDirectory; QVector m_procedureList; QMap m_loadedProcedures; }; #endif // PROCEDUREMANAGER_H