mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
subproc выгр. из БД и отпр. клиентам в списках AMM
This commit is contained in:
@@ -176,8 +176,12 @@ int DataBaseLMS::deleteTaskAMM(int id_task)
|
|||||||
QList<TaskAmmFim> DataBaseLMS::selectTasksAMMofTrainee(int id_trainee)
|
QList<TaskAmmFim> DataBaseLMS::selectTasksAMMofTrainee(int id_trainee)
|
||||||
{
|
{
|
||||||
QList<TaskAmmFim> listTasks;
|
QList<TaskAmmFim> listTasks;
|
||||||
|
QString queryStr;
|
||||||
|
bool resBool = false;
|
||||||
|
|
||||||
QString queryStr = QString("SELECT tasks_amm.task_id, tasks_amm.title, tasks_amm.dm_code, tasks_amm.status, "
|
resBool = db->transaction();
|
||||||
|
|
||||||
|
queryStr = QString("SELECT tasks_amm.task_id, tasks_amm.title, tasks_amm.dm_code, tasks_amm.status, "
|
||||||
"users.user_id "
|
"users.user_id "
|
||||||
"FROM public.tasks_amm JOIN public.users ON users.user_id = tasks_amm.fk_trainee_id "
|
"FROM public.tasks_amm JOIN public.users ON users.user_id = tasks_amm.fk_trainee_id "
|
||||||
"WHERE tasks_amm.fk_trainee_id = %1 "
|
"WHERE tasks_amm.fk_trainee_id = %1 "
|
||||||
@@ -197,10 +201,47 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksAMMofTrainee(int id_trainee)
|
|||||||
task.ammProcedure.dmCode = query.value(2).toString();
|
task.ammProcedure.dmCode = query.value(2).toString();
|
||||||
task.status = query.value(3).toString();
|
task.status = query.value(3).toString();
|
||||||
|
|
||||||
|
//Выгребаем все subproc для этой задачи
|
||||||
|
queryStr = QString("SELECT subprocs.subproc_id, subprocs.dm_code, subprocs.title, subprocs.canplay, "
|
||||||
|
"tasks_amm.task_id "
|
||||||
|
"FROM public.subprocs JOIN public.tasks_amm ON tasks_amm.task_id = subprocs.fk_task_amm_id "
|
||||||
|
"WHERE subprocs.fk_task_amm_id = %1 "
|
||||||
|
"ORDER BY subprocs.subproc_id ASC").arg(
|
||||||
|
task.getID());
|
||||||
|
|
||||||
|
QSqlQuery querySubProc = QSqlQuery(*db);
|
||||||
|
|
||||||
|
if(queryExec(queryStr, &querySubProc))
|
||||||
|
{
|
||||||
|
while (querySubProc.next())
|
||||||
|
{//Подпроцедура
|
||||||
|
SubProc subProc;
|
||||||
|
int subproc_id = 0;
|
||||||
|
|
||||||
|
subproc_id = querySubProc.value(0).toString().toInt();
|
||||||
|
subProc.setDmCode(querySubProc.value(1).toString());
|
||||||
|
subProc.setTitle(querySubProc.value(2).toString());
|
||||||
|
subProc.setModeListStr(querySubProc.value(3).toString());
|
||||||
|
|
||||||
|
task.listSubProc.append(subProc);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return QList<TaskAmmFim>();
|
||||||
|
}
|
||||||
|
|
||||||
listTasks.append(task);
|
listTasks.append(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return QList<TaskAmmFim>();
|
||||||
|
}
|
||||||
|
|
||||||
|
resBool = db->commit();
|
||||||
return listTasks;
|
return listTasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +249,12 @@ TaskAmmFim DataBaseLMS::selectTaskAMMbyID(int id_task)
|
|||||||
{
|
{
|
||||||
TaskAmmFim task;
|
TaskAmmFim task;
|
||||||
|
|
||||||
QString queryStr = QString("SELECT tasks_amm.task_id, tasks_amm.title, tasks_amm.dm_code, tasks_amm.status "
|
QString queryStr;
|
||||||
|
bool resBool = false;
|
||||||
|
|
||||||
|
resBool = db->transaction();
|
||||||
|
|
||||||
|
queryStr = QString("SELECT tasks_amm.task_id, tasks_amm.title, tasks_amm.dm_code, tasks_amm.status "
|
||||||
"FROM public.tasks_amm "
|
"FROM public.tasks_amm "
|
||||||
"WHERE tasks_amm.task_id = %1 "
|
"WHERE tasks_amm.task_id = %1 "
|
||||||
"ORDER BY tasks_amm.task_id ASC").arg(
|
"ORDER BY tasks_amm.task_id ASC").arg(
|
||||||
@@ -224,9 +270,46 @@ TaskAmmFim DataBaseLMS::selectTaskAMMbyID(int id_task)
|
|||||||
task.ammProcedure.title = query.value(1).toString();
|
task.ammProcedure.title = query.value(1).toString();
|
||||||
task.ammProcedure.dmCode = query.value(2).toString();
|
task.ammProcedure.dmCode = query.value(2).toString();
|
||||||
task.status = query.value(3).toString();
|
task.status = query.value(3).toString();
|
||||||
|
|
||||||
|
//Выгребаем все subproc для этой задачи
|
||||||
|
queryStr = QString("SELECT subprocs.subproc_id, subprocs.dm_code, subprocs.title, subprocs.canplay, "
|
||||||
|
"tasks_amm.task_id "
|
||||||
|
"FROM public.subprocs JOIN public.tasks_amm ON tasks_amm.task_id = subprocs.fk_task_amm_id "
|
||||||
|
"WHERE subprocs.fk_task_amm_id = %1 "
|
||||||
|
"ORDER BY subprocs.subproc_id ASC").arg(
|
||||||
|
task.getID());
|
||||||
|
|
||||||
|
QSqlQuery querySubProc = QSqlQuery(*db);
|
||||||
|
|
||||||
|
if(queryExec(queryStr, &querySubProc))
|
||||||
|
{
|
||||||
|
while (querySubProc.next())
|
||||||
|
{//Подпроцедура
|
||||||
|
SubProc subProc;
|
||||||
|
int subproc_id = 0;
|
||||||
|
|
||||||
|
subproc_id = querySubProc.value(0).toString().toInt();
|
||||||
|
subProc.setDmCode(querySubProc.value(1).toString());
|
||||||
|
subProc.setTitle(querySubProc.value(2).toString());
|
||||||
|
subProc.setModeListStr(querySubProc.value(3).toString());
|
||||||
|
|
||||||
|
task.listSubProc.append(subProc);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return TaskAmmFim();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
resBool = db->rollback();
|
||||||
|
return TaskAmmFim();
|
||||||
|
}
|
||||||
|
|
||||||
|
resBool = db->commit();
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -161,6 +161,16 @@ QByteArray DBAnswerParser::listTasksAMMofTrainee(bool result, QList<TaskAmmFim>
|
|||||||
taskNode.toElement().setAttribute("title", task.ammProcedure.title);
|
taskNode.toElement().setAttribute("title", task.ammProcedure.title);
|
||||||
taskNode.toElement().setAttribute("dmCode", task.ammProcedure.dmCode);
|
taskNode.toElement().setAttribute("dmCode", task.ammProcedure.dmCode);
|
||||||
taskNode.toElement().setAttribute("status", task.status);
|
taskNode.toElement().setAttribute("status", task.status);
|
||||||
|
|
||||||
|
for(SubProc subProc : task.listSubProc)
|
||||||
|
{//Подпроцедура
|
||||||
|
QDomNode subProcNode = commonDOM.createElement("SubProc");
|
||||||
|
taskNode.appendChild(subProcNode);
|
||||||
|
|
||||||
|
subProcNode.toElement().setAttribute("dmCode", subProc.getDmCode());
|
||||||
|
subProcNode.toElement().setAttribute("title", subProc.getTitle());
|
||||||
|
subProcNode.toElement().setAttribute("canplay", subProc.getModeListStr());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Tools::saveDOMtoXML("ListTasksAMM.xml", &commonDOM);
|
Tools::saveDOMtoXML("ListTasksAMM.xml", &commonDOM);
|
||||||
|
|||||||
Reference in New Issue
Block a user