Прокинул тайминги на ГУИ

This commit is contained in:
2025-09-05 16:41:39 +03:00
parent 9d8e84b80f
commit 83cb8bf5a5
6 changed files with 68 additions and 1 deletions

View File

@@ -8,8 +8,12 @@
QList<Trainee> DataBaseLMS::selectAllTrainees() QList<Trainee> DataBaseLMS::selectAllTrainees()
{ {
bool resBool = false;
QList<Trainee> listTrainees; QList<Trainee> listTrainees;
resBool = db->transaction();
QString queryStr = QString("SELECT users.user_id, users.name, users.login, users.password, users.archived, users.logged_in, " QString queryStr = QString("SELECT users.user_id, users.name, users.login, users.password, users.archived, users.logged_in, "
"groups.group_id, groups.name, " "groups.group_id, groups.name, "
"computers.computer_id, computers.name, computers.ip_address, " "computers.computer_id, computers.name, computers.ip_address, "
@@ -43,9 +47,42 @@ QList<Trainee> DataBaseLMS::selectAllTrainees()
Computer computer = Computer(query.value(8).toInt(), query.value(9).toString(), query.value(10).toString(), classroom); Computer computer = Computer(query.value(8).toInt(), query.value(9).toString(), query.value(10).toString(), classroom);
trainee.setComputer(computer); trainee.setComputer(computer);
//Тайминг
TimingOfTrainee timing(trainee.getID());
QString queryStrSELtiming = QString("SELECT timings.timing_id, timings.entry_time, timings.exit_time, timings.operating_time, timings.fk_trainee_id "
"FROM public.timings "
"WHERE fk_trainee_id = '%1'").arg(trainee.getID());
QSqlQuery querySelTiming = QSqlQuery(*db);
if(queryExec(queryStrSELtiming, &querySelTiming))
{
if (querySelTiming.first())
{//Тайминг
timing.setID(querySelTiming.value(0).toInt());
timing.setEntryTime(querySelTiming.value(1).toDateTime());
timing.setExitTime(querySelTiming.value(2).toDateTime());
timing.setOperatingTime(querySelTiming.value(3).toTime());
timing.setTraineeID(querySelTiming.value(4).toInt());
}
trainee.setTiming(timing);
}
else
{
resBool = db->rollback();
return QList<Trainee>();
}
listTrainees.append(trainee); listTrainees.append(trainee);
} }
} }
else
{
resBool = db->rollback();
return QList<Trainee>();
}
return listTrainees; return listTrainees;
} }

View File

@@ -3,8 +3,9 @@
#include <QString> #include <QString>
#include <QDateTime> #include <QDateTime>
#include "DataBaseLMS_global.h"
class TimingOfTrainee class DATABASELMS_EXPORT TimingOfTrainee
{ {
public: public:
TimingOfTrainee(int trainee_id); TimingOfTrainee(int trainee_id);

View File

@@ -8,3 +8,8 @@ Trainee::Trainee():
{ {
} }
void Trainee::setTiming(TimingOfTrainee timing)
{
this->timing = timing;
}

View File

@@ -20,6 +20,7 @@ public:
Computer getComputer(){return computer;} Computer getComputer(){return computer;}
TimingOfTrainee getTiming(){return timing;} TimingOfTrainee getTiming(){return timing;}
void setTiming(TimingOfTrainee timing);
private: private:
Group group; Group group;

View File

@@ -5,6 +5,7 @@
#include <QMessageBox> #include <QMessageBox>
#include "instructor.h" #include "instructor.h"
#include "tasksAmmFim.h" #include "tasksAmmFim.h"
#include "timingoftrainee.h"
RecognizeSystem::RecognizeSystem(QObject *parent): RecognizeSystem::RecognizeSystem(QObject *parent):
@@ -699,6 +700,18 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array
//trainee.setComputer() //trainee.setComputer()
//trainee.setTasks() //trainee.setTasks()
//Тайминг
QDomNode timingNode = traineeNode.firstChildElement("timing");
TimingOfTrainee timing(trainee.getID());
timing.setEntryTimeS(timingNode.toElement().attribute("entryTime"));
timing.setExitTimeS(timingNode.toElement().attribute("exitTime"));
timing.setOperatingTimeS(timingNode.toElement().attribute("operatingTime"));
trainee.setTiming(timing);
listTrainees.append(trainee); listTrainees.append(trainee);
} }
} }

View File

@@ -83,6 +83,16 @@ QByteArray DBAnswerParser::listTrainees(bool result, QList<Trainee> *listTrainee
traineeNode.toElement().setAttribute("group_trainee", trainee.getGroup().getID()); traineeNode.toElement().setAttribute("group_trainee", trainee.getGroup().getID());
traineeNode.toElement().setAttribute("computer_trainee", trainee.getComputer().getID()); traineeNode.toElement().setAttribute("computer_trainee", trainee.getComputer().getID());
//trainee.setTasks() //trainee.setTasks()
//Тайминг
QDomNode timingNode = commonDOM.createElement("timing");
traineeNode.appendChild(timingNode);
TimingOfTrainee timing = trainee.getTiming();
timingNode.toElement().setAttribute("entryTime", timing.getEntryTimeS());
timingNode.toElement().setAttribute("exitTime", timing.getExitTimeS());
timingNode.toElement().setAttribute("operatingTime", timing.getOperatingTimeS());
} }
dataParser->saveDOMtoXML("ListTrainees.xml", &commonDOM); dataParser->saveDOMtoXML("ListTrainees.xml", &commonDOM);