59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
#ifndef PROCEDUREMANAGER_H
|
|
#define PROCEDUREMANAGER_H
|
|
|
|
#include <QObject>
|
|
#include <QVector>
|
|
#include <QMap>
|
|
#include "proceduredata.h"
|
|
|
|
class ProcedureManager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit ProcedureManager(QObject *parent = nullptr);
|
|
~ProcedureManager();
|
|
|
|
// 加载规程列表
|
|
QVector<ProcedureSummary> loadProcedureList(const QString &directory);
|
|
|
|
// 搜索规程
|
|
QVector<ProcedureSummary> 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<QVariantMap> &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<ProcedureSummary> m_procedureList;
|
|
QMap<QString, ProcedureData> m_loadedProcedures;
|
|
};
|
|
|
|
#endif // PROCEDUREMANAGER_H
|