mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Репорты о вып-и задач. в первом приближении.
This commit is contained in:
@@ -543,6 +543,17 @@ int DataBaseLMS::updateTaskAMM(TaskAmmFim task)
|
|||||||
return queryExecInt(queryStr);
|
return queryExecInt(queryStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DataBaseLMS::updateStatusTaskAMM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
QString queryStr = QString("UPDATE public.tasks_amm SET status = '%1' "
|
||||||
|
"WHERE task_id = %2 "
|
||||||
|
"RETURNING tasks_amm.task_id").arg(
|
||||||
|
status,
|
||||||
|
QString::number(task_id) );
|
||||||
|
|
||||||
|
return queryExecInt(queryStr);
|
||||||
|
}
|
||||||
|
|
||||||
int DataBaseLMS::deleteTaskAMM(int id_task)
|
int DataBaseLMS::deleteTaskAMM(int id_task)
|
||||||
{
|
{
|
||||||
QString queryStr;
|
QString queryStr;
|
||||||
@@ -677,6 +688,17 @@ int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
|
|||||||
return queryExecInt(queryStr);
|
return queryExecInt(queryStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DataBaseLMS::updateStatusTaskFIM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
QString queryStr = QString("UPDATE public.tasks_fim SET status = '%1' "
|
||||||
|
"WHERE task_id = %2 "
|
||||||
|
"RETURNING tasks_fim.task_id").arg(
|
||||||
|
status,
|
||||||
|
QString::number(task_id) );
|
||||||
|
|
||||||
|
return queryExecInt(queryStr);
|
||||||
|
}
|
||||||
|
|
||||||
int DataBaseLMS::deleteTaskFIM(int id_task)
|
int DataBaseLMS::deleteTaskFIM(int id_task)
|
||||||
{
|
{
|
||||||
QString queryStr;
|
QString queryStr;
|
||||||
@@ -801,6 +823,134 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
|
|||||||
return listTasks;
|
return listTasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DataBaseLMS::deleteReportFIM(int task_id)
|
||||||
|
{
|
||||||
|
QString queryStr;
|
||||||
|
bool resBool = false;
|
||||||
|
int report_id = 0;
|
||||||
|
|
||||||
|
resBool = db->transaction();
|
||||||
|
|
||||||
|
queryStr = QString("SELECT reports.report_id "
|
||||||
|
"FROM public.reports "
|
||||||
|
"WHERE report_task = %1 "
|
||||||
|
"ORDER BY reports.report_id ASC").arg(
|
||||||
|
QString::number(task_id));
|
||||||
|
|
||||||
|
QSqlQuery query = QSqlQuery(*db);
|
||||||
|
|
||||||
|
if(queryExec(queryStr, &query))
|
||||||
|
{
|
||||||
|
if (query.first())
|
||||||
|
{//Отчет
|
||||||
|
report_id = query.value(0).toInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!report_id)
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
queryStr = QString("DELETE FROM public.report_items "
|
||||||
|
"WHERE item_report = %1 ").arg(
|
||||||
|
QString::number(report_id));
|
||||||
|
|
||||||
|
QSqlQuery query1 = QSqlQuery(*db);
|
||||||
|
if(!queryExec(queryStr, &query1))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
queryStr = QString("DELETE FROM public.reports "
|
||||||
|
"WHERE report_id = %1 ").arg(
|
||||||
|
QString::number(report_id));
|
||||||
|
|
||||||
|
if(!queryExec(queryStr, &query1))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
queryStr = QString("UPDATE public.tasks_fim SET status = '%1' "
|
||||||
|
"WHERE task_id = %2 ").arg(
|
||||||
|
"new",
|
||||||
|
QString::number(task_id) );
|
||||||
|
|
||||||
|
if(!queryExec(queryStr, &query1))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
resBool = db->commit();
|
||||||
|
return report_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DataBaseLMS::insertReportFIM(TaskAmmFim task)
|
||||||
|
{
|
||||||
|
QString queryStr;
|
||||||
|
bool resBool = false;
|
||||||
|
|
||||||
|
resBool = db->transaction();
|
||||||
|
|
||||||
|
//task.title = task.title.replace("'", "''"); //Задваиваем одинарные кавычки
|
||||||
|
|
||||||
|
queryStr = QString("INSERT INTO public.reports (report_task) "
|
||||||
|
"VALUES (%1) "
|
||||||
|
"RETURNING reports.report_id").arg(
|
||||||
|
task.getID());
|
||||||
|
|
||||||
|
int report_id = queryExecInt(queryStr);
|
||||||
|
if(!report_id)
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int number = 0;
|
||||||
|
for(FIMReportItem reportItem : task.report.itemList)
|
||||||
|
{
|
||||||
|
queryStr = QString("INSERT INTO public.report_items (text, doc, dm_code, title, result, item_report, number) "
|
||||||
|
"VALUES ('%1', '%2', '%3', '%4', '%5', %6, %7) "
|
||||||
|
"RETURNING report_items.item_id").arg(
|
||||||
|
reportItem.text,
|
||||||
|
reportItem.procedure.doc,
|
||||||
|
reportItem.procedure.dmCode,
|
||||||
|
reportItem.procedure.title,
|
||||||
|
reportItem.procedure.result,
|
||||||
|
QString::number(report_id),
|
||||||
|
QString::number(++number));
|
||||||
|
|
||||||
|
if(!queryExecInt(queryStr))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
queryStr = QString("UPDATE public.tasks_fim SET status = '%1' "
|
||||||
|
"WHERE task_id = %2 ").arg(
|
||||||
|
"checkup",
|
||||||
|
QString::number(task.getID()) );
|
||||||
|
|
||||||
|
QSqlQuery query1 = QSqlQuery(*db);
|
||||||
|
if(!queryExec(queryStr, &query1))
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
resBool = db->commit();
|
||||||
|
return report_id;
|
||||||
|
}
|
||||||
|
|
||||||
Trainee DataBaseLMS::selectTrainee(int id_trainee)
|
Trainee DataBaseLMS::selectTrainee(int id_trainee)
|
||||||
{
|
{
|
||||||
Trainee trainee;
|
Trainee trainee;
|
||||||
|
|||||||
@@ -68,14 +68,19 @@ protected:
|
|||||||
//Задача AMM
|
//Задача AMM
|
||||||
int insertTaskAMM(TaskAmmFim task, int id_trainee);
|
int insertTaskAMM(TaskAmmFim task, int id_trainee);
|
||||||
int updateTaskAMM(TaskAmmFim task);
|
int updateTaskAMM(TaskAmmFim task);
|
||||||
|
int updateStatusTaskAMM(int task_id, QString status);
|
||||||
int deleteTaskAMM(int id_task);
|
int deleteTaskAMM(int id_task);
|
||||||
QList<TaskAmmFim> selectTasksAMMofTrainee(int id_trainee);
|
QList<TaskAmmFim> selectTasksAMMofTrainee(int id_trainee);
|
||||||
//Задача FIM
|
//Задача FIM
|
||||||
int insertTaskFIM(TaskAmmFim task, int id_trainee);
|
int insertTaskFIM(TaskAmmFim task, int id_trainee);
|
||||||
int updateTaskFIM(TaskAmmFim task);
|
int updateTaskFIM(TaskAmmFim task);
|
||||||
|
int updateStatusTaskFIM(int task_id, QString status);
|
||||||
int deleteTaskFIM(int id_task);
|
int deleteTaskFIM(int id_task);
|
||||||
QList<TaskAmmFim> selectTasksFIMofTrainee(int id_trainee);
|
QList<TaskAmmFim> selectTasksFIMofTrainee(int id_trainee);
|
||||||
|
|
||||||
|
int deleteReportFIM(int task_id);
|
||||||
|
int insertReportFIM(TaskAmmFim task);
|
||||||
|
|
||||||
//Обучаемый
|
//Обучаемый
|
||||||
Trainee selectTrainee(int id_trainee);
|
Trainee selectTrainee(int id_trainee);
|
||||||
QList<Trainee> selectAllTraineesInGroup(int id_group);
|
QList<Trainee> selectAllTraineesInGroup(int id_group);
|
||||||
|
|||||||
@@ -307,6 +307,11 @@ int InterfaceDataBaseLMS::editTaskAMM(TaskAmmFim task)
|
|||||||
return updateTaskAMM(task);
|
return updateTaskAMM(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int InterfaceDataBaseLMS::editStatusTaskAMM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
return updateStatusTaskAMM(task_id, status);
|
||||||
|
}
|
||||||
|
|
||||||
QList<TaskAmmFim> InterfaceDataBaseLMS::getListTasksAMMofTrainee(int id_trainee)
|
QList<TaskAmmFim> InterfaceDataBaseLMS::getListTasksAMMofTrainee(int id_trainee)
|
||||||
{
|
{
|
||||||
return selectTasksAMMofTrainee(id_trainee);
|
return selectTasksAMMofTrainee(id_trainee);
|
||||||
@@ -324,6 +329,7 @@ int InterfaceDataBaseLMS::newTaskFIM(TaskAmmFim task, int id_trainee)
|
|||||||
|
|
||||||
int InterfaceDataBaseLMS::delTaskFIM(int id)
|
int InterfaceDataBaseLMS::delTaskFIM(int id)
|
||||||
{
|
{
|
||||||
|
deleteReportFIM(id);
|
||||||
return deleteTaskFIM(id);
|
return deleteTaskFIM(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,6 +338,24 @@ int InterfaceDataBaseLMS::editTaskFIM(TaskAmmFim task)
|
|||||||
return updateTaskFIM(task);
|
return updateTaskFIM(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int InterfaceDataBaseLMS::editStatusTaskFIM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
return updateStatusTaskFIM(task_id, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
int InterfaceDataBaseLMS::replaceReportFIM(TaskAmmFim task)
|
||||||
|
{
|
||||||
|
deleteReportFIM(task.getID());
|
||||||
|
|
||||||
|
if(int report_id = insertReportFIM(task))
|
||||||
|
{
|
||||||
|
updateStatusTaskFIM(task.getID(), "checkup");
|
||||||
|
return report_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int InterfaceDataBaseLMS::newTrainee(int id_group)
|
int InterfaceDataBaseLMS::newTrainee(int id_group)
|
||||||
{
|
{
|
||||||
return insertTrainee(id_group);
|
return insertTrainee(id_group);
|
||||||
|
|||||||
@@ -72,12 +72,16 @@ public:
|
|||||||
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
||||||
int delTaskAMM(int id);
|
int delTaskAMM(int id);
|
||||||
int editTaskAMM(TaskAmmFim task);
|
int editTaskAMM(TaskAmmFim task);
|
||||||
|
int editStatusTaskAMM(int task_id, QString status);
|
||||||
|
|
||||||
QList<TaskAmmFim> getListTasksAMMofTrainee(int id_trainee);
|
QList<TaskAmmFim> getListTasksAMMofTrainee(int id_trainee);
|
||||||
QList<TaskAmmFim> getListTasksFIMofTrainee(int id_trainee);
|
QList<TaskAmmFim> getListTasksFIMofTrainee(int id_trainee);
|
||||||
|
|
||||||
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
||||||
int delTaskFIM(int id);
|
int delTaskFIM(int id);
|
||||||
int editTaskFIM(TaskAmmFim task);
|
int editTaskFIM(TaskAmmFim task);
|
||||||
|
int editStatusTaskFIM(int task_id, QString status);
|
||||||
|
int replaceReportFIM(TaskAmmFim task);
|
||||||
|
|
||||||
int newTrainee(int id_group);
|
int newTrainee(int id_group);
|
||||||
int delTrainee(int id);
|
int delTrainee(int id);
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public:
|
|||||||
FIMReportItem(){};
|
FIMReportItem(){};
|
||||||
~FIMReportItem(){};
|
~FIMReportItem(){};
|
||||||
public:
|
public:
|
||||||
QString title; // текст, вводимый обучаемым
|
QString text; // текст, вводимый обучаемым
|
||||||
ProcedureID procedure; // ссылка на процедуру, при необходимости
|
ProcedureID procedure; // ссылка на процедуру, при необходимости
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,9 @@ enum TypeQueryToDB{
|
|||||||
|
|
||||||
TYPE_QUERY_DEL_TASK_AMM_TO_TRAINEE,
|
TYPE_QUERY_DEL_TASK_AMM_TO_TRAINEE,
|
||||||
TYPE_QUERY_DEL_TASK_FIM_TO_TRAINEE,
|
TYPE_QUERY_DEL_TASK_FIM_TO_TRAINEE,
|
||||||
TYPE_QUERY_EDIT_TASK_AMM_TO_TRAINEE,
|
|
||||||
TYPE_QUERY_EDIT_TASK_FIM_TO_TRAINEE
|
TYPE_QUERY_SET_REPORT_TASK_AMM_TO_TRAINEE,
|
||||||
|
TYPE_QUERY_SET_REPORT_TASK_FIM_TO_TRAINEE
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TYPEQUERYTODB_H
|
#endif // TYPEQUERYTODB_H
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ void ProcessParser::clientUnityTaskAMMreport(QXmlStreamReader &xmlReader, Client
|
|||||||
void* data = nullptr;
|
void* data = nullptr;
|
||||||
data = &task;
|
data = &task;
|
||||||
ClientQueryToDB queryToDB;
|
ClientQueryToDB queryToDB;
|
||||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_EDIT_TASK_AMM_TO_TRAINEE;
|
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_SET_REPORT_TASK_AMM_TO_TRAINEE;
|
||||||
processingSystem->processingClientQueryToDB(client, queryToDB, trainee_id, data);
|
processingSystem->processingClientQueryToDB(client, queryToDB, trainee_id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -176,13 +176,41 @@ void ProcessParser::clientUnityTaskFIMreport(QXmlStreamReader &xmlReader, Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO -------------- (!Заглушка!) Отчет о выполнении
|
||||||
|
FIMReport report;
|
||||||
|
FIMReportItem reportItem;
|
||||||
|
QString text; // текст, вводимый обучаемым
|
||||||
|
ProcedureID procedure; // ссылка на процедуру, при необходимости
|
||||||
|
|
||||||
|
text = "1. Выполнил такую процедуру";
|
||||||
|
procedure.doc = "fim";
|
||||||
|
procedure.title = "Процедура №1";
|
||||||
|
procedure.dmCode = "RRJ-N-27-92-00-51D01-420A-A";
|
||||||
|
procedure.result = "viewed";
|
||||||
|
reportItem.text = text;
|
||||||
|
reportItem.procedure = procedure;
|
||||||
|
report.itemList.append(reportItem);
|
||||||
|
|
||||||
|
text = "2. Выполнил такую процедуру";
|
||||||
|
procedure.doc = "fim";
|
||||||
|
procedure.title = "Процедура №2";
|
||||||
|
procedure.dmCode = "RRJ-N-28-22-00-01A01-420A-A";
|
||||||
|
procedure.result = "viewed";
|
||||||
|
reportItem.text = text;
|
||||||
|
reportItem.procedure = procedure;
|
||||||
|
report.itemList.append(reportItem);
|
||||||
|
|
||||||
|
task.report = report;
|
||||||
|
//-----------------
|
||||||
|
|
||||||
|
|
||||||
listTasks.append(task);
|
listTasks.append(task);
|
||||||
|
|
||||||
//Изменение задачи
|
//Изменение задачи
|
||||||
void* data = nullptr;
|
void* data = nullptr;
|
||||||
data = &task;
|
data = &task;
|
||||||
ClientQueryToDB queryToDB;
|
ClientQueryToDB queryToDB;
|
||||||
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_EDIT_TASK_FIM_TO_TRAINEE;
|
queryToDB.typeQuery = TypeQueryToDB::TYPE_QUERY_SET_REPORT_TASK_FIM_TO_TRAINEE;
|
||||||
processingSystem->processingClientQueryToDB(client, queryToDB, trainee_id, data);
|
processingSystem->processingClientQueryToDB(client, queryToDB, trainee_id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -333,20 +333,24 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case TypeQueryToDB::TYPE_QUERY_EDIT_TASK_AMM_TO_TRAINEE:
|
case TypeQueryToDB::TYPE_QUERY_SET_REPORT_TASK_AMM_TO_TRAINEE:
|
||||||
{
|
{
|
||||||
if(int id_trainee = providerDBLMS->editTaskAMM(*(TaskAmmFim*)data))
|
TaskAmmFim* task = (TaskAmmFim*)data;
|
||||||
{
|
if(task->status == "completed")
|
||||||
|
if( int id_task = providerDBLMS->editStatusTaskAMM(task->getID(), "checkup") )
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TypeQueryToDB::TYPE_QUERY_EDIT_TASK_FIM_TO_TRAINEE:
|
case TypeQueryToDB::TYPE_QUERY_SET_REPORT_TASK_FIM_TO_TRAINEE:
|
||||||
{
|
{
|
||||||
if(int id_trainee = providerDBLMS->editTaskFIM(*(TaskAmmFim*)data))
|
TaskAmmFim* task = (TaskAmmFim*)data;
|
||||||
{
|
if(task->status == "completed")
|
||||||
|
if(int id_report = providerDBLMS->replaceReportFIM(*task))
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -372,6 +372,11 @@ int ProviderDBLMS::editTaskAMM(TaskAmmFim task)
|
|||||||
return dbLMS->editTaskAMM(task);
|
return dbLMS->editTaskAMM(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ProviderDBLMS::editStatusTaskAMM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
return dbLMS->editStatusTaskAMM(task_id, status);
|
||||||
|
}
|
||||||
|
|
||||||
int ProviderDBLMS::newTaskFIM(TaskAmmFim task, int id_trainee)
|
int ProviderDBLMS::newTaskFIM(TaskAmmFim task, int id_trainee)
|
||||||
{
|
{
|
||||||
return dbLMS->newTaskFIM(task, id_trainee);
|
return dbLMS->newTaskFIM(task, id_trainee);
|
||||||
@@ -387,6 +392,16 @@ int ProviderDBLMS::editTaskFIM(TaskAmmFim task)
|
|||||||
return dbLMS->editTaskFIM(task);
|
return dbLMS->editTaskFIM(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ProviderDBLMS::editStatusTaskFIM(int task_id, QString status)
|
||||||
|
{
|
||||||
|
return dbLMS->editStatusTaskFIM(task_id, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ProviderDBLMS::replaceReportFIM(TaskAmmFim task)
|
||||||
|
{
|
||||||
|
return dbLMS->replaceReportFIM(task);
|
||||||
|
}
|
||||||
|
|
||||||
QList<TaskAmmFim> ProviderDBLMS::GetListTasksAMMofTrainee(int id_trainee)
|
QList<TaskAmmFim> ProviderDBLMS::GetListTasksAMMofTrainee(int id_trainee)
|
||||||
{
|
{
|
||||||
QList<TaskAmmFim> listTasks;
|
QList<TaskAmmFim> listTasks;
|
||||||
|
|||||||
@@ -51,10 +51,13 @@ public:
|
|||||||
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
||||||
int delTaskAMM(int id);
|
int delTaskAMM(int id);
|
||||||
int editTaskAMM(TaskAmmFim task);
|
int editTaskAMM(TaskAmmFim task);
|
||||||
|
int editStatusTaskAMM(int task_id, QString status);
|
||||||
|
|
||||||
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
||||||
int delTaskFIM(int id);
|
int delTaskFIM(int id);
|
||||||
int editTaskFIM(TaskAmmFim task);
|
int editTaskFIM(TaskAmmFim task);
|
||||||
|
int editStatusTaskFIM(int task_id, QString status);
|
||||||
|
int replaceReportFIM(TaskAmmFim task);
|
||||||
|
|
||||||
QList<TaskAmmFim> GetListTasksAMMofTrainee(int id_trainee);
|
QList<TaskAmmFim> GetListTasksAMMofTrainee(int id_trainee);
|
||||||
QList<TaskAmmFim> GetListTasksFIMofTrainee(int id_trainee);
|
QList<TaskAmmFim> GetListTasksFIMofTrainee(int id_trainee);
|
||||||
|
|||||||
Reference in New Issue
Block a user