mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
187 lines
6.5 KiB
C++
187 lines
6.5 KiB
C++
#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
|