Files
RRJServer/DataBaseLMS/tasksAmmFim.h

156 lines
5.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef TASKSAMMFIM_H
#define TASKSAMMFIM_H
#include <QString>
#include <QList>
#include "DataBaseLMS_global.h"
struct ModeList
{
bool demo = false;
bool train = false;
bool exam = false;
bool autoM = false;
};
class DATABASELMS_EXPORT SubProc
{
public:
SubProc()
{
modeListStr = buildCanplay(modeList);
};
~SubProc(){};
public:
void setModeList(const ModeList &modeList);
ModeList getModeList() const;
void setModeListStr(const QString &modeListStr);
QString getModeListStr() const;
void setDmCode(const QString &value);
QString getDmCode() const;
void setTitle(const QString &value);
QString getTitle() const;
public:
static QString buildCanplay(ModeList modeList);
static ModeList parseCanplay(QString canplay);
private:
QString dmCode = "";
QString title = "";
ModeList modeList;
QString modeListStr = "";
};
class DATABASELMS_EXPORT ProcedureID
{
public:
ProcedureID(){};
~ProcedureID(){};
public:
QString doc; // "amm", "fim"
QString dmCode;
QString title;
QString result; // "" - нет результата, "viewed" - процедура изучена (просмотрена при отсутствующем сценарии), "completed" - выполнена (в т.ч. режим "контроль" сценария)
};
class DATABASELMS_EXPORT MalfunctionSign // признак неисправности
{
public:
MalfunctionSign(){};
~MalfunctionSign(){};
public:
void initialize(int type, QString description);
public:
int type; // "1" - аварийно-сигнальные сообщения, "2" - сообщения БСТО,
// "3" - сигнализация СЭИ, "4" - локальная сигнализация, "5" - наблюдаемая неисправность
QString description; // описание (напр. "ЭРРД, 25, DOOR_FAIL_TO_CLOSE" - для БСТО)
};
class DATABASELMS_EXPORT Malfunction // неисправность
{
public:
Malfunction(){};
~Malfunction(){};
public:
void initialize(QString dmCode, QString num, QString description);
void addMalfunctionSign(MalfunctionSign sign);
public:
QString dmCode; // dmCode процедуры
QString num; // номер по-порядку в пункте "2. Возможные причины" процедуры
QString description; // описание
QList<MalfunctionSign> malfunctionSigns;// список соответствующих неисправности признаков
};
class DATABASELMS_EXPORT FIMReportItem
{
public:
FIMReportItem(){};
~FIMReportItem(){};
public:
int id = 0; // для идентификации в БД
QString text; // текст, вводимый обучаемым
ProcedureID procedure; // ссылка на процедуру, при необходимости
};
class DATABASELMS_EXPORT FIMReport
{
public:
FIMReport(){};
~FIMReport(){};
public:
int id = 0; // для идентификации в БД
QList<FIMReportItem> itemList;
};
class DATABASELMS_EXPORT TaskAmmFim
{
public:
TaskAmmFim(){};
~TaskAmmFim(){};
public:
void initialize(int id, QString type, QString title, QString status, QString created_date, QString changed_date);
void addMalfunction(Malfunction malfunction);
public:
void setID(int id){this->id = id;};
int getID(){return id;};
public:
int id; // для идентификации в БД
QString type; // "amm" - процедура из Руководства по технической эксплуатации
// "fim" - поиск и устранение неисправностей
QString title; // название задания:
// для "amm" - берётся из титула процедуры
// для "fim" - вводится вручную
QString status; // "new" - задание не выполнено
// "checkup" - выполнено, на проверке у инструктора (только для "fim")
// "failed" - инструктором проверено, выполнено неверно (только для "fim")
// "completed" - выполнено корректно
QString created_date; // дата создания задания инструктором ("new")
// (при записи в базу, даты ставить по времени сервера, а не те, что присланы от клиента)
QString changed_date; // дата крайнего изменения статуса ("checkup", "failed", "completed")
// amm:
ProcedureID ammProcedure; // ссылка на процедуру в AMM
// fim:
QList<Malfunction> malfunctionList; // список неисправностей
FIMReport report; // отчет по выполнению "fim"
QList<SubProc> listSubProc;
static int lastID;
};
#endif // TASKSAMMFIM_H