forked from CITKParus/P8-Panels
WEB APP: Панель "Работы проектов" - перенос изменений буфера балансировки в проект, доработан алгоритм обновления списка проектов и работ в Ганте после отработки действия на сервере
This commit is contained in:
parent
d8ee37ee93
commit
30122efc4c
@ -191,9 +191,7 @@ const PrjJobs = () => {
|
|||||||
if (!state.projectsLoaded || force) {
|
if (!state.projectsLoaded || force) {
|
||||||
const data = await executeStored({
|
const data = await executeStored({
|
||||||
stored: "PKG_P8PANELS_PROJECTS.JB_PRJCTS_LIST",
|
stored: "PKG_P8PANELS_PROJECTS.JB_PRJCTS_LIST",
|
||||||
args: {
|
args: { NIDENT: state.ident },
|
||||||
NIDENT: state.ident
|
|
||||||
},
|
|
||||||
respArg: "COUT"
|
respArg: "COUT"
|
||||||
});
|
});
|
||||||
setState(pv => ({ ...pv, projectsLoaded: true, projects: [...(data?.XPROJECTS || [])] }));
|
setState(pv => ({ ...pv, projectsLoaded: true, projects: [...(data?.XPROJECTS || [])] }));
|
||||||
@ -207,11 +205,7 @@ const PrjJobs = () => {
|
|||||||
async (tasksOnly = false) => {
|
async (tasksOnly = false) => {
|
||||||
const data = await executeStored({
|
const data = await executeStored({
|
||||||
stored: "PKG_P8PANELS_PROJECTS.JB_JOBS_LIST",
|
stored: "PKG_P8PANELS_PROJECTS.JB_JOBS_LIST",
|
||||||
args: {
|
args: { NIDENT: state.ident, NPRN: state.selectedProject, NINCLUDE_DEF: tasksOnly === false ? 1 : 0 },
|
||||||
NIDENT: state.ident,
|
|
||||||
NPRN: state.selectedProject,
|
|
||||||
NINCLUDE_DEF: tasksOnly === false ? 1 : 0
|
|
||||||
},
|
|
||||||
attributeValueProcessor: (name, val) =>
|
attributeValueProcessor: (name, val) =>
|
||||||
name == "numb" ? undefined : ["start", "end"].includes(name) ? formatDateJSONDateOnly(val) : val,
|
name == "numb" ? undefined : ["start", "end"].includes(name) ? formatDateJSONDateOnly(val) : val,
|
||||||
respArg: "COUT"
|
respArg: "COUT"
|
||||||
@ -228,26 +222,34 @@ const PrjJobs = () => {
|
|||||||
|
|
||||||
//Изменение работы в графике
|
//Изменение работы в графике
|
||||||
const modifyJob = useCallback(
|
const modifyJob = useCallback(
|
||||||
async (job, dateFrom, dateTo) => {
|
async (job, dateFrom, dateTo, dateBegin, dateFact, durationMeas) => {
|
||||||
|
let data = null;
|
||||||
try {
|
try {
|
||||||
const data = await executeStored({
|
data = await executeStored({
|
||||||
stored: "PKG_P8PANELS_PROJECTS.JB_JOBS_MODIFY_PERIOD",
|
stored: "PKG_P8PANELS_PROJECTS.JB_JOBS_MODIFY_PERIOD",
|
||||||
args: {
|
args: { NJB_JOBS: job, DDATE_FROM: dateFrom, DDATE_TO: dateTo, DBEGIN: dateBegin, DFACT: dateFact, NDURATION_MEAS: durationMeas }
|
||||||
NJB_JOBS: job,
|
|
||||||
DDATE_FROM: new Date(dateFrom),
|
|
||||||
DDATE_TO: new Date(dateTo),
|
|
||||||
DBEGIN: new Date(state.dateBegin)
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
if (data?.NRESOURCE_STATUS != -1) {
|
||||||
setState(pv => ({ ...pv, resourceStatus: data.NRESOURCE_STATUS, needSave: true }));
|
setState(pv => ({ ...pv, resourceStatus: data.NRESOURCE_STATUS, needSave: true }));
|
||||||
loadProjects(true);
|
loadProjects(true);
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
loadProjectJobs(true);
|
loadProjectJobs(true);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[executeStored, loadProjectJobs, loadProjects, state.dateBegin]
|
[executeStored, loadProjectJobs, loadProjects]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//Сохранение буфера балансировки в проекты
|
||||||
|
const saveProjects = useCallback(async () => {
|
||||||
|
const data = await executeStored({
|
||||||
|
stored: "PKG_P8PANELS_PROJECTS.JB_SAVE",
|
||||||
|
args: { NIDENT: state.ident },
|
||||||
|
respArg: "COUT"
|
||||||
|
});
|
||||||
|
setState(pv => ({ ...pv, needSave: false, projects: [...(data?.XPROJECTS || [])] }));
|
||||||
|
}, [executeStored, state.ident]);
|
||||||
|
|
||||||
//Инициализация данных балансировки
|
//Инициализация данных балансировки
|
||||||
const initJobs = useCallback(async () => {
|
const initJobs = useCallback(async () => {
|
||||||
if (!state.init) {
|
if (!state.init) {
|
||||||
@ -327,18 +329,7 @@ const PrjJobs = () => {
|
|||||||
|
|
||||||
//Обработка измненения сроков задачи в диаграмме Гантта
|
//Обработка измненения сроков задачи в диаграмме Гантта
|
||||||
const handleTaskDatesChange = ({ task, start, end, isMain }) => {
|
const handleTaskDatesChange = ({ task, start, end, isMain }) => {
|
||||||
console.log("ПОМЕНЯЛИ ДАТЫ");
|
if (isMain) modifyJob(task.rn, new Date(start), new Date(end), new Date(state.dateBegin), new Date(state.dateFact), state.durationMeas);
|
||||||
console.log(task);
|
|
||||||
console.log(start);
|
|
||||||
console.log(end);
|
|
||||||
if (isMain) modifyJob(task.rn, start, end);
|
|
||||||
};
|
|
||||||
|
|
||||||
//Обработка изменения прогресса задачи в диаграмме Гантта
|
|
||||||
const handleTaskProgressChange = ({ task, progress }) => {
|
|
||||||
console.log("ПОМЕНЯЛИ % ГОТОВНОСТИ");
|
|
||||||
console.log(task);
|
|
||||||
console.log(progress);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//Генерация кастомных представлений атрибутов задачи в редакторе
|
//Генерация кастомных представлений атрибутов задачи в редакторе
|
||||||
@ -353,6 +344,9 @@ const PrjJobs = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Обработка нажатия на сохранение данных в проект
|
||||||
|
const handleSaveToProjectsClick = () => saveProjects();
|
||||||
|
|
||||||
//Обработка нажатия на проект в таблице детализации трудоёмкости по плану-графику монитора ресурсов
|
//Обработка нажатия на проект в таблице детализации трудоёмкости по плану-графику монитора ресурсов
|
||||||
const handlePlanJobsDtlProjectClick = ({ sender }) => {
|
const handlePlanJobsDtlProjectClick = ({ sender }) => {
|
||||||
setState(pv => ({ ...pv, showPeriodsList: false }));
|
setState(pv => ({ ...pv, showPeriodsList: false }));
|
||||||
@ -381,7 +375,7 @@ const PrjJobs = () => {
|
|||||||
<>
|
<>
|
||||||
{state.needSave ? (
|
{state.needSave ? (
|
||||||
<List>
|
<List>
|
||||||
<ListItemButton sx={STYLES.PROJECTS_LIST_SAVE_BUTTON}>
|
<ListItemButton sx={STYLES.PROJECTS_LIST_SAVE_BUTTON} onClick={handleSaveToProjectsClick}>
|
||||||
<ListItemIcon>
|
<ListItemIcon>
|
||||||
<Icon>save</Icon>
|
<Icon>save</Icon>
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
@ -423,7 +417,6 @@ const PrjJobs = () => {
|
|||||||
onTitleClick={handleTitleClick}
|
onTitleClick={handleTitleClick}
|
||||||
tasks={state.selectedProjectTasks}
|
tasks={state.selectedProjectTasks}
|
||||||
onTaskDatesChange={handleTaskDatesChange}
|
onTaskDatesChange={handleTaskDatesChange}
|
||||||
onTaskProgressChange={handleTaskProgressChange}
|
|
||||||
taskAttributeRenderer={taskAttributeRenderer}
|
taskAttributeRenderer={taskAttributeRenderer}
|
||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
6
dist/p8-panels.js
vendored
6
dist/p8-panels.js
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user