Files
RRJServer/LibDataBaseInterface/tasksAmmFim.h

187 lines
6.5 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:
bool operator==(const SubProc& other) const
{
// Сравнение членов класса
return (this->dmCode == other.dmCode && this->title == other.title && this->modeListStr == other.modeListStr);
}
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, QString goName, QString objName);
void addMalfunctionSign(MalfunctionSign sign);
public:
QString dmCode; // dmCode процедуры
QString num; // номер по-порядку в пункте "2. Возможные причины" процедуры
QString description; // описание
QList<MalfunctionSign> malfunctionSigns;// список соответствующих неисправности признаков
QString goName; // имя GameObject (со скриптом DismantleData) - неисправный прибор
QString objName;
};
class DATABASELMS_EXPORT FIMReportItem
{
public:
FIMReportItem(){};
~FIMReportItem(){};
public:
int id = 0; // для идентификации в БД
QString text; // текст, вводимый обучаемым
ProcedureID procedure; // ссылка на процедуру, при необходимости
};
class DATABASELMS_EXPORT FIMReportWarehouseItem
{
public:
FIMReportWarehouseItem(){};
~FIMReportWarehouseItem(){};
public:
int id = 0; // для идентификации в БД
// статус GameObject-а в сцене
int status = 0; // 0 - демонтировано, 1 - неисправно, 2 - заменено на новое со склада
// имя GameObject-а в сцене
QString goName = "";
// человеческое название прибора
QString objName = "";
// его код из документации
QString code = "";
};
class DATABASELMS_EXPORT FIMReport
{
public:
FIMReport(){};
~FIMReport(){};
public:
int id = 0; // для идентификации в БД
QList<FIMReportItem> itemList; // список выполненных/просмотренных процедур
QList<FIMReportWarehouseItem> warehouseItemList;
bool mmel = false; // выпуск самолета по MMEL
};
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:
static QString buildStatisticTasksAMM(QList<TaskAmmFim> listTasks);
static QString buildStatisticTasksFIM(QList<TaskAmmFim> listTasks);
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