From 577e20328168db3d7c4ecdb966629771706d538e Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 31 Jul 2025 10:19:35 +0300 Subject: [PATCH] Timing finish --- DataBaseLMS/databaselms.cpp | 6 ++--- DataBaseLMS/interfacedatabaselms.cpp | 6 +++++ DataBaseLMS/timingoftrainee.cpp | 31 +++++++++++++------------- DataBaseLMS/timingoftrainee.h | 20 +++++++++-------- ServerLMS/Systems/processingsystem.cpp | 4 ++-- 5 files changed, 37 insertions(+), 30 deletions(-) diff --git a/DataBaseLMS/databaselms.cpp b/DataBaseLMS/databaselms.cpp index b145d92..23892cf 100644 --- a/DataBaseLMS/databaselms.cpp +++ b/DataBaseLMS/databaselms.cpp @@ -1720,9 +1720,7 @@ TimingOfTrainee DataBaseLMS::selectTimingTrainee(int id_trainee) { TimingOfTrainee timing(id_trainee); - QString queryStr; - - queryStr = QString("SELECT timings.timing_id, timings.entry_time, timings.exit_time, timings.operating_time, timings.timing_trainee " + QString queryStr = QString("SELECT timings.timing_id, timings.entry_time, timings.exit_time, timings.operating_time, timings.timing_trainee " "FROM public.timings " "WHERE timing_trainee = '%1'").arg(id_trainee); @@ -1735,7 +1733,7 @@ TimingOfTrainee DataBaseLMS::selectTimingTrainee(int id_trainee) timing.setID(querySel.value(0).toInt()); timing.setEntryTime(querySel.value(1).toDateTime()); timing.setExitTime(querySel.value(2).toDateTime()); - timing.setOperatingTimeS(querySel.value(3).toTime().toString()); + timing.setOperatingTime(querySel.value(3).toTime()); timing.setTraineeID(querySel.value(4).toInt()); } } diff --git a/DataBaseLMS/interfacedatabaselms.cpp b/DataBaseLMS/interfacedatabaselms.cpp index 4ef57b5..c439a8a 100644 --- a/DataBaseLMS/interfacedatabaselms.cpp +++ b/DataBaseLMS/interfacedatabaselms.cpp @@ -230,6 +230,9 @@ int InterfaceDataBaseLMS::entryTraineeOnSimulator(int id_trainee) {//Еще нет записи int timing_id = insertTimingTrainee(id_trainee); timing.setID(timing_id); + + if(!timing_id) + return 0; } timing.fixEntry(); @@ -247,6 +250,9 @@ int InterfaceDataBaseLMS::exitTraineeFromSimulator(int id_trainee) {//Еще нет записи int timing_id = insertTimingTrainee(id_trainee); timing.setID(timing_id); + + if(!timing_id) + return 0; } timing.fixExit(); diff --git a/DataBaseLMS/timingoftrainee.cpp b/DataBaseLMS/timingoftrainee.cpp index afca5a0..e5fee2e 100644 --- a/DataBaseLMS/timingoftrainee.cpp +++ b/DataBaseLMS/timingoftrainee.cpp @@ -4,50 +4,50 @@ TimingOfTrainee::TimingOfTrainee(int trainee_id): timing_id(0), trainee_id(trainee_id) { - QDateTime dataTimeCurr = QDateTime::currentDateTime(); - setOperatingTime(0); - setEntryTime(dataTimeCurr); - setExitTime(dataTimeCurr); + //QDateTime dataTimeCurr = QDateTime::currentDateTime(); + dataTimeNull = QDateTime::fromString("2000-01-01 00:00:00.000", "yyyy-MM-dd hh:mm:ss.zzz"); + setOperatingTime(QTime::fromString("00:00:00")); + setEntryTime(dataTimeNull); + setExitTime(dataTimeNull); } void TimingOfTrainee::setEntryTimeS(QString entry_time) { - str_entryTime = entry_time; + entryTime_str = entry_time; entryTime = QDateTime::fromString(entry_time); } void TimingOfTrainee::setEntryTime(QDateTime entry_time) { entryTime = entry_time; - str_entryTime = entry_time.toString("yyyy-MM-dd hh:mm:ss.zzz"); + entryTime_str = entry_time.toString("yyyy-MM-dd hh:mm:ss.zzz"); } void TimingOfTrainee::setExitTimeS(QString exit_time) { - str_exitTime = exit_time; + exitTime_str = exit_time; exitTime = QDateTime::fromString(exit_time); } void TimingOfTrainee::setExitTime(QDateTime exit_time) { exitTime = exit_time; - str_exitTime = exit_time.toString("yyyy-MM-dd hh:mm:ss.zzz"); + exitTime_str = exit_time.toString("yyyy-MM-dd hh:mm:ss.zzz"); } void TimingOfTrainee::setOperatingTimeS(QString operating_time) { - str_operatingTime = operating_time; - QTime timeLoc = QTime::fromString(operating_time); - operatingTime = timeLoc.hour() * 3600 + timeLoc.minute() * 60 + timeLoc.second(); + operatingTime_str = operating_time; + operatingTime = QTime::fromString(operating_time); } -void TimingOfTrainee::setOperatingTime(int operating_time) +void TimingOfTrainee::setOperatingTime(QTime operating_time) { operatingTime = operating_time; - str_operatingTime = QTime::fromString("00:00:00").addSecs(operating_time).toString(); + operatingTime_str = operating_time.toString(); } void TimingOfTrainee::fixEntry() @@ -60,11 +60,12 @@ void TimingOfTrainee::fixExit() { QDateTime dataTimeCurr = QDateTime::currentDateTime(); setExitTime(dataTimeCurr); - calculateOperatingTime(); + if(entryTime != dataTimeNull) + calculateOperatingTime(); } void TimingOfTrainee::calculateOperatingTime() { int cntSec = entryTime.secsTo(exitTime); - setOperatingTime(getOperatingTime() + cntSec); + setOperatingTime(getOperatingTime().addSecs(cntSec)); } diff --git a/DataBaseLMS/timingoftrainee.h b/DataBaseLMS/timingoftrainee.h index 28ded68..5ef9af5 100644 --- a/DataBaseLMS/timingoftrainee.h +++ b/DataBaseLMS/timingoftrainee.h @@ -19,22 +19,22 @@ public: void setEntryTimeS(QString entry_time); void setEntryTime(QDateTime entry_time); - QString getEntryTimeS(){return str_entryTime;} + QString getEntryTimeS(){return entryTime_str;} QDateTime getEntryTime(){return entryTime;} void setExitTimeS(QString exit_time); void setExitTime(QDateTime exit_time); - QString getExitTimeS(){return str_exitTime;} + QString getExitTimeS(){return exitTime_str;} QDateTime getExitTime(){return exitTime;} void setOperatingTimeS(QString operating_time); - void setOperatingTime(int operating_time); + void setOperatingTime(QTime operating_time); - QString getOperatingTimeS(){return str_operatingTime;} - int getOperatingTime(){return operatingTime;} + QString getOperatingTimeS(){return operatingTime_str;} + QTime getOperatingTime(){return operatingTime;} void fixEntry(); void fixExit(); @@ -46,13 +46,15 @@ private: int timing_id; int trainee_id; - QString str_entryTime; //"yyyy-MM-dd hh:mm:ss.zzz" - QString str_exitTime; //"yyyy-MM-dd hh:mm:ss.zzz" - QString str_operatingTime; //"hh:mm:ss" + QString entryTime_str; //"yyyy-MM-dd hh:mm:ss.zzz" + QString exitTime_str; //"yyyy-MM-dd hh:mm:ss.zzz" + QString operatingTime_str; //"hh:mm:ss" QDateTime entryTime; QDateTime exitTime; - int operatingTime; //в секундах + QTime operatingTime; + + QDateTime dataTimeNull; }; #endif // TIMINGOFTRAINEE_H diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 63c11f3..4ff5efc 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -4,8 +4,8 @@ ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent): QObject(parent), - providerDBLMS(nullptr), - updateController(nullptr) + updateController(nullptr), + providerDBLMS(nullptr) { this->providerDBLMS = providerDBLMS; this->updateController = updateController;