Добавление параметра "Технический объект"
This commit is contained in:
parent
e953ec7b76
commit
e6d4296b9d
@ -6,7 +6,7 @@ create or replace package UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
SPANEL in varchar2, -- <20>àèìåíîâàíèå ïàíåëè
|
SPANEL in varchar2, -- <20>àèìåíîâàíèå ïàíåëè
|
||||||
CSETTINGS in clob -- <20>àñòðîéêè ïàíåëè
|
CSETTINGS in clob -- <20>àñòðîéêè ïàíåëè
|
||||||
);
|
);
|
||||||
|
|
||||||
/* ‘÷èòûâàíèå íàñòðîéêè ïàíåëè */
|
/* ‘÷èòûâàíèå íàñòðîéêè ïàíåëè */
|
||||||
procedure SETTINGS_GET
|
procedure SETTINGS_GET
|
||||||
(
|
(
|
||||||
@ -40,7 +40,7 @@ create or replace package body UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
values
|
values
|
||||||
(NRN, NCOMPANY, SAUTHID, SPANEL, CPANEL_SETTINGS);
|
(NRN, NCOMPANY, SAUTHID, SPANEL, CPANEL_SETTINGS);
|
||||||
end P8PANELS_USETTING_INSERT;
|
end P8PANELS_USETTING_INSERT;
|
||||||
|
|
||||||
/* Žáíîâëåíèå çàïèñè íàñòðîéêè ïàíåëè */
|
/* Žáíîâëåíèå çàïèñè íàñòðîéêè ïàíåëè */
|
||||||
procedure P8PANELS_USETTING_UPDATE
|
procedure P8PANELS_USETTING_UPDATE
|
||||||
(
|
(
|
||||||
@ -65,12 +65,12 @@ create or replace package body UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
TO_CHAR(NRN));
|
TO_CHAR(NRN));
|
||||||
end if;
|
end if;
|
||||||
end P8PANELS_USETTING_UPDATE;
|
end P8PANELS_USETTING_UPDATE;
|
||||||
|
|
||||||
/* “äàëåíèå çàïèñè íàñòðîéêè ïàíåëè */
|
/* “äàëåíèå çàïèñè íàñòðîéêè ïàíåëè */
|
||||||
procedure P8PANELS_USETTING_DELETE
|
procedure P8PANELS_USETTING_DELETE
|
||||||
(
|
(
|
||||||
NRN in number, -- <20>åã. íîìåð çàïèñè
|
NRN in number, -- <20>åã. íîìåð çàïèñè
|
||||||
NCOMPANY in number -- <20>åã. íîìåð îðãàíèçàöèè
|
NCOMPANY in number -- <20>åã. íîìåð îðãàíèçàöèè
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
@ -78,14 +78,14 @@ create or replace package body UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
delete from UDO_P8PANELS_USETTING
|
delete from UDO_P8PANELS_USETTING
|
||||||
where RN = NRN
|
where RN = NRN
|
||||||
and COMPANY = NCOMPANY;
|
and COMPANY = NCOMPANY;
|
||||||
|
|
||||||
if (sql%notfound) then
|
if (sql%notfound) then
|
||||||
P_EXCEPTION(0,
|
P_EXCEPTION(0,
|
||||||
'‡àïèñü íàñòðîåê ïàíåëè ñ ðåã. íîìåðîì "%s" íå íàéäåíà.',
|
'‡àïèñü íàñòðîåê ïàíåëè ñ ðåã. íîìåðîì "%s" íå íàéäåíà.',
|
||||||
TO_CHAR(NRN));
|
TO_CHAR(NRN));
|
||||||
end if;
|
end if;
|
||||||
end P8PANELS_USETTING_DELETE;
|
end P8PANELS_USETTING_DELETE;
|
||||||
|
|
||||||
/* ‘÷èòûâàíèå çàïèñè íàñòðîéêè ïàíåëè */
|
/* ‘÷èòûâàíèå çàïèñè íàñòðîéêè ïàíåëè */
|
||||||
function P8PANELS_USETTING_GET
|
function P8PANELS_USETTING_GET
|
||||||
(
|
(
|
||||||
@ -110,7 +110,7 @@ create or replace package body UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
/* ‚îçâðàùàåì ðåçóëüòàò */
|
/* ‚îçâðàùàåì ðåçóëüòàò */
|
||||||
return RRESULT;
|
return RRESULT;
|
||||||
end P8PANELS_USETTING_GET;
|
end P8PANELS_USETTING_GET;
|
||||||
|
|
||||||
/* ‘÷èòûâàíèå ðåã. íîìåðà çàïèñè íàñòðîéêè ïàíåëè òåêóùåãî ïîëüçîâàòåëß ïî íàèìåíîâàíèþ ïàíåëè */
|
/* ‘÷èòûâàíèå ðåã. íîìåðà çàïèñè íàñòðîéêè ïàíåëè òåêóùåãî ïîëüçîâàòåëß ïî íàèìåíîâàíèþ ïàíåëè */
|
||||||
procedure P8PANELS_USETTING_FIND
|
procedure P8PANELS_USETTING_FIND
|
||||||
(
|
(
|
||||||
@ -196,7 +196,7 @@ create or replace package body UDO_PKG_P8PANELS_USETTINGS as
|
|||||||
NRN => NUDO_P8PANELS_USETTING);
|
NRN => NUDO_P8PANELS_USETTING);
|
||||||
end if;
|
end if;
|
||||||
end SETTINGS_SET;
|
end SETTINGS_SET;
|
||||||
|
|
||||||
/* ‘÷èòûâàíèå íàñòðîéêè ïàíåëè */
|
/* ‘÷èòûâàíèå íàñòðîéêè ïàíåëè */
|
||||||
procedure SETTINGS_GET
|
procedure SETTINGS_GET
|
||||||
(
|
(
|
||||||
|
|||||||
14
p8-panels.js
14
p8-panels.js
File diff suppressed because one or more lines are too long
@ -88,6 +88,7 @@ const Filter = ({ filter, onFilterOpen }) => {
|
|||||||
) : null}
|
) : null}
|
||||||
{filter.sWorkType ? <FilterItem caption={"Типовая работа"} value={filter.sWorkType} onClick={handleClick} /> : null}
|
{filter.sWorkType ? <FilterItem caption={"Типовая работа"} value={filter.sWorkType} onClick={handleClick} /> : null}
|
||||||
{filter.sWorkKind ? <FilterItem caption={"Вид типовых работ"} value={filter.sWorkKind} onClick={handleClick} /> : null}
|
{filter.sWorkKind ? <FilterItem caption={"Вид типовых работ"} value={filter.sWorkKind} onClick={handleClick} /> : null}
|
||||||
|
{filter.sEqconfig ? <FilterItem caption={"Технический объект"} value={filter.sEqconfig} onClick={handleClick} /> : null}
|
||||||
</Stack>
|
</Stack>
|
||||||
</Stack>
|
</Stack>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@ -48,7 +48,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
|
|||||||
const [filter, setFilter] = useState({ ...initial });
|
const [filter, setFilter] = useState({ ...initial });
|
||||||
|
|
||||||
//Вспомогательные функции открытия раздела
|
//Вспомогательные функции открытия раздела
|
||||||
const { handleInsDepartmentOpen, handleEquipTypeWorksOpen, handleEquipWorkKindsOpen } = useDictionary();
|
const { handleInsDepartmentOpen, handleEquipTypeWorksOpen, handleEquipWorkKindsOpen, handleEquipConfigurationOpen } = useDictionary();
|
||||||
|
|
||||||
//Вспомогательные функции
|
//Вспомогательные функции
|
||||||
const { handleInsDepartmentNameGet } = useProcedures();
|
const { handleInsDepartmentNameGet } = useProcedures();
|
||||||
@ -85,6 +85,16 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//При изменении технического объекта
|
||||||
|
const handleEqconfigSelect = () =>
|
||||||
|
handleEquipConfigurationOpen({
|
||||||
|
sCode: filter.sEqconfig,
|
||||||
|
callBack: res => {
|
||||||
|
console.log(res.outParameters);
|
||||||
|
setFilter(pv => ({ ...pv, sEqconfig: res.outParameters.out_CODE }));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//При очистке фильтра
|
//При очистке фильтра
|
||||||
const handleClear = () => {
|
const handleClear = () => {
|
||||||
setFilter({ dDateBegin: "", dDateEnd: "", sCustomerDept: "", sCustomerDeptName: "", sWorkType: "", sWorkKind: "" });
|
setFilter({ dDateBegin: "", dDateEnd: "", sCustomerDept: "", sCustomerDeptName: "", sWorkType: "", sWorkKind: "" });
|
||||||
@ -192,6 +202,23 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
|
|||||||
}}
|
}}
|
||||||
fullWidth
|
fullWidth
|
||||||
/>
|
/>
|
||||||
|
<TextField
|
||||||
|
name="sEqconfig"
|
||||||
|
value={filter.sEqconfig}
|
||||||
|
onChange={handleValueChanged}
|
||||||
|
label="Технический объект"
|
||||||
|
variant="standard"
|
||||||
|
InputProps={{
|
||||||
|
endAdornment: (
|
||||||
|
<InputAdornment position="end">
|
||||||
|
<IconButton aria-label={`sEqconfig select`} onClick={handleEqconfigSelect} edge="end">
|
||||||
|
<Icon>list</Icon>
|
||||||
|
</IconButton>
|
||||||
|
</InputAdornment>
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
fullWidth
|
||||||
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
<DialogActions sx={STYLES.DIALOG_ACTIONS}>
|
<DialogActions sx={STYLES.DIALOG_ACTIONS}>
|
||||||
|
|||||||
@ -82,12 +82,44 @@ const useDictionary = () => {
|
|||||||
[pOnlineShowUnit]
|
[pOnlineShowUnit]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//Отображение раздела "Состав оборудования"
|
||||||
|
const handleEquipConfigurationOpen = useCallback(
|
||||||
|
async prms => {
|
||||||
|
pOnlineShowDictionary({
|
||||||
|
unitCode: "EquipConfiguration",
|
||||||
|
inputParameters: [{ name: "in_CODE", value: prms.sCode ? prms.sCode.toString() : null }],
|
||||||
|
callBack: res => {
|
||||||
|
res.success ? prms.callBack(res) : null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[pOnlineShowDictionary]
|
||||||
|
);
|
||||||
|
|
||||||
|
//Отображение раздела "Присоединенные документы"
|
||||||
|
const handleFileLinksOpen = useCallback(
|
||||||
|
async prms => {
|
||||||
|
pOnlineShowUnit({
|
||||||
|
unitCode: "FileLinks",
|
||||||
|
showMethod: "link",
|
||||||
|
inputParameters: [
|
||||||
|
{ name: "sel_document", value: prms.nRn },
|
||||||
|
{ name: "sel_unitcode", value: "EquipRepairSheets" }
|
||||||
|
],
|
||||||
|
modal: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[pOnlineShowUnit]
|
||||||
|
);
|
||||||
|
|
||||||
//Возвращаем функции открытия разделов
|
//Возвращаем функции открытия разделов
|
||||||
return {
|
return {
|
||||||
handleInsDepartmentOpen,
|
handleInsDepartmentOpen,
|
||||||
handleEquipTypeWorksOpen,
|
handleEquipTypeWorksOpen,
|
||||||
handleEquipWorkKindsOpen,
|
handleEquipWorkKindsOpen,
|
||||||
handleEquipRepairSheetsOpen
|
handleEquipRepairSheetsOpen,
|
||||||
|
handleEquipConfigurationOpen,
|
||||||
|
handleFileLinksOpen
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -19,13 +19,13 @@ import { object2Base64XML } from "../../../core/utils"; //Вспомогател
|
|||||||
const useFilters = () => {
|
const useFilters = () => {
|
||||||
//Собственное состояние - общие значения фильтров
|
//Собственное состояние - общие значения фильтров
|
||||||
const [filterValues, setFilterValues] = useState({
|
const [filterValues, setFilterValues] = useState({
|
||||||
loaded: false,
|
|
||||||
dDateBegin: "",
|
dDateBegin: "",
|
||||||
dDateEnd: "",
|
dDateEnd: "",
|
||||||
sCustomerDept: "",
|
sCustomerDept: "",
|
||||||
sCustomerDeptName: "",
|
sCustomerDeptName: "",
|
||||||
sWorkType: "",
|
sWorkType: "",
|
||||||
sWorkKind: ""
|
sWorkKind: "",
|
||||||
|
sEqconfig: ""
|
||||||
});
|
});
|
||||||
|
|
||||||
//Собственное состояние - признак загрузки настроек
|
//Собственное состояние - признак загрузки настроек
|
||||||
@ -75,7 +75,7 @@ const useFilters = () => {
|
|||||||
respArg: "COUT"
|
respArg: "COUT"
|
||||||
});
|
});
|
||||||
//Если есть настройки - указываем
|
//Если есть настройки - указываем
|
||||||
if (data) setFilterValues({ ...data });
|
if (data) setFilterValues(pv => ({ ...pv, ...data }));
|
||||||
} finally {
|
} finally {
|
||||||
setIsFiltersLoaded(true);
|
setIsFiltersLoaded(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,6 +43,7 @@ const useChartStatuses = ({ storedArgs = {} }) => {
|
|||||||
SINS_DEPARTMENT: storedArgs.sCustomerDept,
|
SINS_DEPARTMENT: storedArgs.sCustomerDept,
|
||||||
SEQTYPEWRK: storedArgs.sWorkType,
|
SEQTYPEWRK: storedArgs.sWorkType,
|
||||||
SEQWRKKIND: storedArgs.sWorkKind,
|
SEQWRKKIND: storedArgs.sWorkKind,
|
||||||
|
SEQCONFIG: storedArgs.sEqconfig.toString(),
|
||||||
NSTATE: storedArgs.nState,
|
NSTATE: storedArgs.nState,
|
||||||
NTYPESPEND: storedArgs.nType
|
NTYPESPEND: storedArgs.nType
|
||||||
},
|
},
|
||||||
@ -86,6 +87,7 @@ const useChartSpendings = ({ storedArgs = {} }) => {
|
|||||||
SINS_DEPARTMENT: storedArgs.sCustomerDept,
|
SINS_DEPARTMENT: storedArgs.sCustomerDept,
|
||||||
SEQTYPEWRK: storedArgs.sWorkType,
|
SEQTYPEWRK: storedArgs.sWorkType,
|
||||||
SEQWRKKIND: storedArgs.sWorkKind,
|
SEQWRKKIND: storedArgs.sWorkKind,
|
||||||
|
SEQCONFIG: storedArgs.sEqconfig.toString(),
|
||||||
NSTATE: storedArgs.nState,
|
NSTATE: storedArgs.nState,
|
||||||
NTYPESPEND: storedArgs.nType
|
NTYPESPEND: storedArgs.nType
|
||||||
},
|
},
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
//---------------------
|
//---------------------
|
||||||
|
|
||||||
import React from "react"; //Классы React
|
import React from "react"; //Классы React
|
||||||
import { Icon, Stack, Link } from "@mui/material"; //Интерфейсные компоненты
|
import { Icon, Stack, Link, IconButton } from "@mui/material"; //Интерфейсные компоненты
|
||||||
import { formatDateRF } from "../../core/utils"; //Вспомогательные функции
|
import { formatDateRF } from "../../core/utils"; //Вспомогательные функции
|
||||||
|
|
||||||
//---------
|
//---------
|
||||||
@ -25,10 +25,10 @@ const formatStateValue = (value, addText = false) => {
|
|||||||
value == 0
|
value == 0
|
||||||
? ["Не утвержден", "clear"]
|
? ["Не утвержден", "clear"]
|
||||||
: value == 2
|
: value == 2
|
||||||
? ["Утвержден", "done"]
|
? ["Утвержден", "done"]
|
||||||
: value == 3
|
: value == 3
|
||||||
? ["Закрыт", "lock_outlined"]
|
? ["Закрыт", "lock_outlined"]
|
||||||
: ["Не определен", "question_mark"];
|
: ["Не определен", "question_mark"];
|
||||||
return (
|
return (
|
||||||
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
|
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
|
||||||
<Icon title={text}>{icon}</Icon>
|
<Icon title={text}>{icon}</Icon>
|
||||||
@ -46,11 +46,28 @@ const formatNumbValue = (row, columnDef, showEquipRepairSheets) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Формирование значения для колонки "Присоединенные документы"
|
||||||
|
const formatFileLinksValue = (row, columnDef, showFileLinks) => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{row["NFILELINKS"] == 1 ? (
|
||||||
|
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
|
||||||
|
<IconButton onClick={() => showFileLinks({ nRn: row["NRN"] })}>
|
||||||
|
<Icon>launch</Icon>
|
||||||
|
</IconButton>
|
||||||
|
</Stack>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
//Генерация представления ячейки c данными
|
//Генерация представления ячейки c данными
|
||||||
export const dataCellRender = ({ row, columnDef, showEquipRepairSheets }) => {
|
export const dataCellRender = ({ row, columnDef, showEquipRepairSheets, showFileLinks }) => {
|
||||||
switch (columnDef.name) {
|
switch (columnDef.name) {
|
||||||
case "SNUMB":
|
case "SNUMB":
|
||||||
return { data: formatNumbValue(row, columnDef, showEquipRepairSheets) };
|
return { data: formatNumbValue(row, columnDef, showEquipRepairSheets) };
|
||||||
|
case "NFILELINKS":
|
||||||
|
return { data: formatFileLinksValue(row, columnDef, showFileLinks) };
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -70,6 +87,7 @@ export const formatFilterValues = filter => {
|
|||||||
{ name: "SCUSTOMERDEPT_FILTER", from: filter.sCustomerDept, to: "" },
|
{ name: "SCUSTOMERDEPT_FILTER", from: filter.sCustomerDept, to: "" },
|
||||||
{ name: "SWORKTYPE_FILTER", from: filter.sWorkType, to: "" },
|
{ name: "SWORKTYPE_FILTER", from: filter.sWorkType, to: "" },
|
||||||
{ name: "SWORKKIND_FILTER", from: filter.sWorkKind, to: "" },
|
{ name: "SWORKKIND_FILTER", from: filter.sWorkKind, to: "" },
|
||||||
|
{ name: "SEQCONFIG_FILTER", from: filter.sEqconfig, to: "" },
|
||||||
{ name: "NSTATE_FILTER", from: filter.nState, to: "" },
|
{ name: "NSTATE_FILTER", from: filter.nState, to: "" },
|
||||||
{ name: "NTYPESPEND_FILTER", from: filter.nType, to: "" }
|
{ name: "NTYPESPEND_FILTER", from: filter.nType, to: "" }
|
||||||
];
|
];
|
||||||
|
|||||||
@ -94,7 +94,7 @@ const RepairAnlATC = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Вспомогательные функции открытия раздела
|
//Вспомогательные функции открытия раздела
|
||||||
const { handleEquipRepairSheetsOpen } = useDictionary();
|
const { handleEquipRepairSheetsOpen, handleFileLinksOpen } = useDictionary();
|
||||||
|
|
||||||
//При изменении фильтра в диалоге
|
//При изменении фильтра в диалоге
|
||||||
const handleFilterOk = filter => {
|
const handleFilterOk = filter => {
|
||||||
@ -208,7 +208,9 @@ const RepairAnlATC = () => {
|
|||||||
onOrderChanged={handleOrderChanged}
|
onOrderChanged={handleOrderChanged}
|
||||||
onFilterChanged={handleFilterChanged}
|
onFilterChanged={handleFilterChanged}
|
||||||
onPagesCountChanged={handlePagesCountChanged}
|
onPagesCountChanged={handlePagesCountChanged}
|
||||||
dataCellRender={prms => dataCellRender({ ...prms, showEquipRepairSheets: handleEquipRepairSheetsOpen })}
|
dataCellRender={prms =>
|
||||||
|
dataCellRender({ ...prms, showEquipRepairSheets: handleEquipRepairSheetsOpen, showFileLinks: handleFileLinksOpen })
|
||||||
|
}
|
||||||
valueFormatter={valueFormatter}
|
valueFormatter={valueFormatter}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user