mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Репорты о вып-и задач. в первом приближении.
This commit is contained in:
@@ -543,6 +543,17 @@ int DataBaseLMS::updateTaskAMM(TaskAmmFim task)
|
||||
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)
|
||||
{
|
||||
QString queryStr;
|
||||
@@ -677,6 +688,17 @@ int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
|
||||
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)
|
||||
{
|
||||
QString queryStr;
|
||||
@@ -801,6 +823,134 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
|
||||
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 trainee;
|
||||
|
||||
@@ -68,14 +68,19 @@ protected:
|
||||
//Задача AMM
|
||||
int insertTaskAMM(TaskAmmFim task, int id_trainee);
|
||||
int updateTaskAMM(TaskAmmFim task);
|
||||
int updateStatusTaskAMM(int task_id, QString status);
|
||||
int deleteTaskAMM(int id_task);
|
||||
QList<TaskAmmFim> selectTasksAMMofTrainee(int id_trainee);
|
||||
//Задача FIM
|
||||
int insertTaskFIM(TaskAmmFim task, int id_trainee);
|
||||
int updateTaskFIM(TaskAmmFim task);
|
||||
int updateStatusTaskFIM(int task_id, QString status);
|
||||
int deleteTaskFIM(int id_task);
|
||||
QList<TaskAmmFim> selectTasksFIMofTrainee(int id_trainee);
|
||||
|
||||
int deleteReportFIM(int task_id);
|
||||
int insertReportFIM(TaskAmmFim task);
|
||||
|
||||
//Обучаемый
|
||||
Trainee selectTrainee(int id_trainee);
|
||||
QList<Trainee> selectAllTraineesInGroup(int id_group);
|
||||
|
||||
@@ -307,6 +307,11 @@ int InterfaceDataBaseLMS::editTaskAMM(TaskAmmFim task)
|
||||
return updateTaskAMM(task);
|
||||
}
|
||||
|
||||
int InterfaceDataBaseLMS::editStatusTaskAMM(int task_id, QString status)
|
||||
{
|
||||
return updateStatusTaskAMM(task_id, status);
|
||||
}
|
||||
|
||||
QList<TaskAmmFim> InterfaceDataBaseLMS::getListTasksAMMofTrainee(int id_trainee)
|
||||
{
|
||||
return selectTasksAMMofTrainee(id_trainee);
|
||||
@@ -324,6 +329,7 @@ int InterfaceDataBaseLMS::newTaskFIM(TaskAmmFim task, int id_trainee)
|
||||
|
||||
int InterfaceDataBaseLMS::delTaskFIM(int id)
|
||||
{
|
||||
deleteReportFIM(id);
|
||||
return deleteTaskFIM(id);
|
||||
}
|
||||
|
||||
@@ -332,6 +338,24 @@ int InterfaceDataBaseLMS::editTaskFIM(TaskAmmFim 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)
|
||||
{
|
||||
return insertTrainee(id_group);
|
||||
|
||||
@@ -72,12 +72,16 @@ public:
|
||||
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
||||
int delTaskAMM(int id);
|
||||
int editTaskAMM(TaskAmmFim task);
|
||||
int editStatusTaskAMM(int task_id, QString status);
|
||||
|
||||
QList<TaskAmmFim> getListTasksAMMofTrainee(int id_trainee);
|
||||
QList<TaskAmmFim> getListTasksFIMofTrainee(int id_trainee);
|
||||
|
||||
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
||||
int delTaskFIM(int id);
|
||||
int editTaskFIM(TaskAmmFim task);
|
||||
int editStatusTaskFIM(int task_id, QString status);
|
||||
int replaceReportFIM(TaskAmmFim task);
|
||||
|
||||
int newTrainee(int id_group);
|
||||
int delTrainee(int id);
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
FIMReportItem(){};
|
||||
~FIMReportItem(){};
|
||||
public:
|
||||
QString title; // текст, вводимый обучаемым
|
||||
QString text; // текст, вводимый обучаемым
|
||||
ProcedureID procedure; // ссылка на процедуру, при необходимости
|
||||
};
|
||||
|
||||
|
||||
@@ -21,8 +21,9 @@ enum TypeQueryToDB{
|
||||
|
||||
TYPE_QUERY_DEL_TASK_AMM_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
|
||||
|
||||
@@ -134,7 +134,7 @@ void ProcessParser::clientUnityTaskAMMreport(QXmlStreamReader &xmlReader, Client
|
||||
void* data = nullptr;
|
||||
data = &task;
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
//Изменение задачи
|
||||
void* data = nullptr;
|
||||
data = &task;
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -333,17 +333,21 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
||||
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;
|
||||
}
|
||||
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))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -372,6 +372,11 @@ int ProviderDBLMS::editTaskAMM(TaskAmmFim 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)
|
||||
{
|
||||
return dbLMS->newTaskFIM(task, id_trainee);
|
||||
@@ -387,6 +392,16 @@ int ProviderDBLMS::editTaskFIM(TaskAmmFim 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> listTasks;
|
||||
|
||||
@@ -51,10 +51,13 @@ public:
|
||||
int newTaskAMM(TaskAmmFim task, int id_trainee);
|
||||
int delTaskAMM(int id);
|
||||
int editTaskAMM(TaskAmmFim task);
|
||||
int editStatusTaskAMM(int task_id, QString status);
|
||||
|
||||
int newTaskFIM(TaskAmmFim task, int id_trainee);
|
||||
int delTaskFIM(int id);
|
||||
int editTaskFIM(TaskAmmFim task);
|
||||
int editStatusTaskFIM(int task_id, QString status);
|
||||
int replaceReportFIM(TaskAmmFim task);
|
||||
|
||||
QList<TaskAmmFim> GetListTasksAMMofTrainee(int id_trainee);
|
||||
QList<TaskAmmFim> GetListTasksFIMofTrainee(int id_trainee);
|
||||
|
||||
Reference in New Issue
Block a user