185 lines
5.6 KiB
C++
185 lines
5.6 KiB
C++
|
#include "JobBean.h"
|
||
|
|
||
|
|
||
|
|
||
|
JobBean::JobBean()
|
||
|
:m_Id(0)
|
||
|
, m_InsertTime(0)
|
||
|
, m_Uid("")
|
||
|
, m_TaskID("")
|
||
|
, m_Name("")
|
||
|
, m_RecordID("")
|
||
|
, m_StartTime(0)
|
||
|
, m_LastPauseTime(0)
|
||
|
, m_StopTime(0)
|
||
|
, m_DeoxygenSecond(0)
|
||
|
, m_SpendSecond(0)
|
||
|
, m_PrintSecond(0)
|
||
|
, m_StartMoldPos(0.0f)
|
||
|
, m_FirstStartIndex(0)
|
||
|
, m_MoldPos(0.0)
|
||
|
, m_PrintedLayerIndex(0)
|
||
|
, m_IsFinished(false)
|
||
|
, m_IsContinue(false)
|
||
|
, m_IsInvalid(false)
|
||
|
, m_CurrentPrintedTime(0.0)
|
||
|
, m_EveryPrintedTime(0.0)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
JobBean::~JobBean()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void JobBean::CreateIfNoExist(SQLite::Database* db)
|
||
|
{
|
||
|
if (db == nullptr)return;
|
||
|
char buffer[1024];
|
||
|
if (db->tableExists(JOB_TABLE_NAME)) {
|
||
|
sprintf_s(buffer, sizeof(buffer), "SELECT * FROM %s LIMIT 0", JOB_TABLE_NAME.c_str());
|
||
|
SQLite::Statement query(*db, buffer);
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_FIELD_START_MOLD_POS.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, sizeof(buffer), "AlTER TABLE %s ADD COLUMN %s FLOAT;UPDATE %s SET %s=%f;",
|
||
|
JOB_TABLE_NAME.c_str(), JOB_FIELD_START_MOLD_POS.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(), JOB_FIELD_START_MOLD_POS.c_str(), 0.0f);
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_FIELD_FIRST_START_INDEX.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, sizeof(buffer), "AlTER TABLE %s ADD COLUMN %s INTEGER;UPDATE %s SET %s=0;",
|
||
|
JOB_TABLE_NAME.c_str(), JOB_FIELD_FIRST_START_INDEX.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(), JOB_FIELD_FIRST_START_INDEX.c_str());
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_FIELD_LAST_PAUSE_TIME.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, "ALTER TABLE %s ADD COLUMN %s INTEGER", JOB_TABLE_NAME.c_str(), JOB_FIELD_LAST_PAUSE_TIME.c_str());
|
||
|
db->exec(buffer);
|
||
|
sprintf_s(buffer, "UPDATE %s SET %s=0", JOB_TABLE_NAME.c_str(), JOB_FIELD_LAST_PAUSE_TIME.c_str());
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_TASK_ID.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, "ALTER TABLE %s ADD COLUMN %s CHAR(36)", JOB_TABLE_NAME.c_str(), JOB_TASK_ID.c_str());
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_FIELD_PRINT_SECOND.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, "ALTER TABLE %s ADD COLUMN %s INTEGER", JOB_TABLE_NAME.c_str(), JOB_FIELD_PRINT_SECOND.c_str());
|
||
|
db->exec(buffer);
|
||
|
sprintf_s(buffer, "UPDATE %s SET %s=%s", JOB_TABLE_NAME.c_str(), JOB_FIELD_PRINT_SECOND.c_str(), JOB_FIELD_SPEND_SECOND.c_str());
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
query.getColumnIndex(JOB_FIELD_RECORD_ID.c_str());
|
||
|
}
|
||
|
catch (SQLite::Exception&) {
|
||
|
sprintf_s(buffer, "ALTER TABLE %s ADD COLUMN %s CHAR(36)", JOB_TABLE_NAME.c_str(), JOB_FIELD_RECORD_ID.c_str());
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
string createsql = "CREATE TABLE IF NOT EXISTS %s(%s INTEGER PRIMARY KEY,\
|
||
|
%s LONG,%s CHAR(36),%s CHAR(36),%s CHAR(36),%s VARCHAR(100),%s LONG,%s LONG,%s LONG,\
|
||
|
%s INTEGER,%s INTEGER,%s INTEGER,%s INTEGER,%s FLOAT,%s DOUBLE,%s INTEGER,%s INTEGER,%s INTEGER,%s INTEGER)";
|
||
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_FIELD_ID.c_str(),
|
||
|
JOB_FIELD_INSERT_TIME.c_str(),
|
||
|
JOB_TASK_ID.c_str(),
|
||
|
JOB_FIELD_UID.c_str(),
|
||
|
JOB_FIELD_RECORD_ID.c_str(),
|
||
|
JOB_FIELD_NAME.c_str(),
|
||
|
JOB_FIELD_START_TIME.c_str(),
|
||
|
JOB_FIELD_LAST_PAUSE_TIME.c_str(),
|
||
|
JOB_FIELD_STOP_TIME.c_str(),
|
||
|
JOB_FIELD_DEOXYGEN_SECOND.c_str(),
|
||
|
JOB_FIELD_SPEND_SECOND.c_str(),
|
||
|
JOB_FIELD_PRINT_SECOND.c_str(),
|
||
|
JOB_FIELD_FIRST_START_INDEX.c_str(),
|
||
|
JOB_FIELD_START_MOLD_POS.c_str(),
|
||
|
JOB_FIELD_MOLD_POS.c_str(),
|
||
|
JOB_FIELD_PRINTED_LAYER_INDEX.c_str(),
|
||
|
JOB_FIELD_IS_FINISH.c_str(),
|
||
|
JOB_FIELD_IS_CONTINUE.c_str(),
|
||
|
JOB_FIELD_IS_INVALID.c_str()
|
||
|
);
|
||
|
db->exec(buffer);
|
||
|
|
||
|
sprintf_s(buffer, sizeof(buffer), "CREATE INDEX IF NOT EXISTS idx_%s_%s ON %s (%s)",
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_FIELD_START_TIME.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_FIELD_START_TIME.c_str()
|
||
|
);
|
||
|
db->exec(buffer);
|
||
|
|
||
|
sprintf_s(buffer, sizeof(buffer), "CREATE INDEX IF NOT EXISTS idx_%s%s_%s ON %s (%s,%s)",
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_FIELD_INSERT_TIME.c_str(),
|
||
|
JOB_FIELD_UID.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_FIELD_INSERT_TIME.c_str(),
|
||
|
JOB_FIELD_UID.c_str()
|
||
|
);
|
||
|
db->exec(buffer);
|
||
|
|
||
|
sprintf_s(buffer, sizeof(buffer), "CREATE INDEX IF NOT EXISTS idx_%s_%s ON %s (%s)",
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_TASK_ID.c_str(),
|
||
|
JOB_TABLE_NAME.c_str(),
|
||
|
JOB_TASK_ID.c_str()
|
||
|
);
|
||
|
db->exec(buffer);
|
||
|
}
|
||
|
|
||
|
|
||
|
JobStatistics::JobStatistics()
|
||
|
:m_MinValue(0)
|
||
|
, m_MaxValue(0)
|
||
|
, m_MinIndex(0)
|
||
|
, m_MaxIndex(0)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
JobStatistics::~JobStatistics()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
const string JobBean::JOB_TABLE_NAME = "Job";
|
||
|
const string JobBean::JOB_FIELD_ID = "id";
|
||
|
const string JobBean::JOB_FIELD_INSERT_TIME = "insert_time";
|
||
|
const string JobBean::JOB_TASK_ID = "task_id";
|
||
|
const string JobBean::JOB_FIELD_UID = "uid";
|
||
|
const string JobBean::JOB_FIELD_RECORD_ID = "RecordID";
|
||
|
const string JobBean::JOB_FIELD_NAME = "name";
|
||
|
const string JobBean::JOB_FIELD_START_TIME = "start_time";
|
||
|
const string JobBean::JOB_FIELD_LAST_PAUSE_TIME = "last_pause_time";
|
||
|
const string JobBean::JOB_FIELD_STOP_TIME = "stop_time";
|
||
|
const string JobBean::JOB_FIELD_DEOXYGEN_SECOND = "deoxygen_second";
|
||
|
const string JobBean::JOB_FIELD_SPEND_SECOND = "spend_second";
|
||
|
const string JobBean::JOB_FIELD_PRINT_SECOND = "print_second";
|
||
|
const string JobBean::JOB_FIELD_FIRST_START_INDEX = "first_start_index";
|
||
|
const string JobBean::JOB_FIELD_START_MOLD_POS = "start_mold_pos";
|
||
|
const string JobBean::JOB_FIELD_MOLD_POS = "mold_pos";
|
||
|
const string JobBean::JOB_FIELD_PRINTED_LAYER_INDEX = "printed_layer_index";
|
||
|
const string JobBean::JOB_FIELD_IS_FINISH = "is_finish";
|
||
|
const string JobBean::JOB_FIELD_IS_CONTINUE = "is_continue";
|
||
|
const string JobBean::JOB_FIELD_IS_INVALID = "is_invalid";
|