Формирование запроса на прогнозирование (начало, процедура подготовки параметров запроса)

This commit is contained in:
Mikhail Chechnev 2025-03-18 20:08:17 +03:00
parent 277af55060
commit 6c1e35a324
4 changed files with 120 additions and 1 deletions

View File

@ -68,6 +68,29 @@ create or replace package UDO_PKG_EQUIPTCF as
NEQUIPDSCMML in number -- Рег. номер модели NEQUIPDSCMML in number -- Рег. номер модели
); );
/* Подготовка запроса на формирование прогноза технического объекта */
procedure EQCONFIG_THOBJ_FORECAST_PRLG
(
NEQCONFIG in number, -- Рег. номер технического объекта
NEQUIPDSCMML in number, -- Рег. номер модели
NDATASET_IDENT in number, -- Идентификатор буфера данных
NDATASET_CONFIG_IDENT in number, -- Идентификатор буфера описания данных
SURL out varchar2, -- Адрес для запроса
SAUTH_TOKEN out varchar2, -- Токен аутентификации для запроса
SDATASET_ID out varchar2, -- Идентификатор выборки данных запроса
CDATASET_CONFIG out clob, -- Описание данных о наработках
SDATASET_URL out varchar2, -- Адрес для получения данных о наработках
SCLASS_MACHINE out varchar2, -- Код класса оборудования для запроса
STASK out varchar2 -- Задача для запроса (см. константы UDO_PKG_EQUIPDS_BASE.SCMML_TASK_*)
);
/* Подчистка после исполнения запроса на формирование прогноза технического объекта */
procedure EQCONFIG_THOBJ_FORECAST_EPLG
(
NDATASET_IDENT in number, -- Идентификатор буфера данных
NDATASET_CONFIG_IDENT in number -- Идентификатор буфера описания данных
);
/* Формирование цвета прогноза для технического объекта */ /* Формирование цвета прогноза для технического объекта */
function EQCONFIG_THOBJ_FORECAST_CLR function EQCONFIG_THOBJ_FORECAST_CLR
( (
@ -736,6 +759,75 @@ text="Проверка прав доступа при формировании
end loop; end loop;
end EQCONFIG_THOBJ_FORECAST; end EQCONFIG_THOBJ_FORECAST;
/* Подготовка запроса на формирование прогноза технического объекта */
procedure EQCONFIG_THOBJ_FORECAST_PRLG
(
NEQCONFIG in number, -- Рег. номер технического объекта
NEQUIPDSCMML in number, -- Рег. номер модели
NDATASET_IDENT in number, -- Идентификатор буфера данных
NDATASET_CONFIG_IDENT in number, -- Идентификатор буфера описания данных
SURL out varchar2, -- Адрес для запроса
SAUTH_TOKEN out varchar2, -- Токен аутентификации для запроса
SDATASET_ID out varchar2, -- Идентификатор выборки данных запроса
CDATASET_CONFIG out clob, -- Описание данных о наработках
SDATASET_URL out varchar2, -- Адрес для получения данных о наработках
SCLASS_MACHINE out varchar2, -- Код класса оборудования для запроса
STASK out varchar2 -- Задача для запроса (см. константы UDO_PKG_EQUIPDS_BASE.SCMML_TASK_*)
)
is
NCNT PKG_STD.TNUMBER; -- Буфер для количества файлов данных
begin
/* Проверим данные о наработках */
begin
select count(T.RN)
into NCNT
from FILE_BUFFER T
where T.IDENT = NDATASET_IDENT
and T.BDATA is not null;
exception
when others then
P_EXCEPTION(0, 'Не удалось проверить выборку данных для прогноза.');
end;
if (NCNT > 0) then
P_EXCEPTION(0,
'Процедура формирования данных для прогноза вернула более одного набора сведений о наработках.');
end if;
if (NCNT = 0) then
P_EXCEPTION(0,
'Процедура формирования данных для прогноза не вернула сведений о наработках.');
end if;
/* Читаем описание данных о наработках */
for C in (select T.DATA CDATA from FILE_BUFFER T where T.IDENT = NDATASET_CONFIG_IDENT)
loop
if (CDATASET_CONFIG is not null) then
P_EXCEPTION(0,
'Процедура формирования данных для прогноза вернула более одного описания сведений о наработках.');
end if;
CDATASET_CONFIG := C.CDATA;
end loop;
if (CDATASET_CONFIG is null) then
P_EXCEPTION(0,
'Процедура формирования данных для прогноза не вернула описания сведений о наработках.');
end if;
/* Формируем URL для запроса */
SURL := 'https://parus.cadred.ru/API/forecast/metadata';
/* Формируем токен для аутентификации */
SAUTH_TOKEN := to_char(base64_encode(clob2blob('parus_remote:CreateNewAccount_787898')));
end EQCONFIG_THOBJ_FORECAST_PRLG;
/* Подчистка после исполнения запроса на формирование прогноза технического объекта */
procedure EQCONFIG_THOBJ_FORECAST_EPLG
(
NDATASET_IDENT in number, -- Идентификатор буфера данных
NDATASET_CONFIG_IDENT in number -- Идентификатор буфера описания данных
)
is
begin
/* Очистим данные в файловом буфере */
P_FILE_BUFFER_CLEAR(NIDENT => NDATASET_IDENT);
P_FILE_BUFFER_CLEAR(NIDENT => NDATASET_CONFIG_IDENT);
end EQCONFIG_THOBJ_FORECAST_EPLG;
/* Формирование цвета прогноза для технического объекта */ /* Формирование цвета прогноза для технического объекта */
function EQCONFIG_THOBJ_FORECAST_CLR function EQCONFIG_THOBJ_FORECAST_CLR
( (

View File

@ -0,0 +1,26 @@
create or replace procedure UDO_P_EQCONFIG_DATASET_MAKE
/* Формирование сведений о наработках единицы оборудования для прогноза */
(
NEQCONFIG in number, -- Рег. номер единицы оборудования
DBEG in date, -- Дата "С"
DEND in date, -- Дата "По"
NDATASET_IDENT out number, -- Идентификатор буфера данных
NDATASET_CONFIG_IDENT out number -- Идентификатор буфера описания данных
)
is
begin
for C in (select T.COMPANY,
T.RN
from EQCONFIG T
where T.RN = NEQCONFIG)
loop
UDO_PKG_EQUIPDS_DATAPROCESS.DATASET_CONF_SET(NCOMPANY => C.COMPANY,
NEQCONFIG => C.RN,
DBEG => DBEG,
DEND => DEND,
NLENGTH_GB => 1,
NDATASET_IDENT => NDATASET_IDENT,
NDATASET_CONFIG_IDENT => NDATASET_CONFIG_IDENT);
end loop;
end UDO_P_EQCONFIG_DATASET_MAKE;
/

View File

@ -25,5 +25,5 @@ begin
CFILENAME => null, CFILENAME => null,
CDATA => 'Описание структуры выборки', CDATA => 'Описание структуры выборки',
BLOBDATA => null); BLOBDATA => null);
end; end UDO_P_EQUIPDSCMFL_CREATE;
/ /

View File

@ -1,2 +1,3 @@
grant execute on UDO_PKG_EQUIPTCF to public; grant execute on UDO_PKG_EQUIPTCF to public;
grant execute on UDO_PKG_EQUIPDS to public; grant execute on UDO_PKG_EQUIPDS to public;
grant execute on UDO_P_EQCONFIG_DATASET_MAKE to public;