756 lines
40 KiB
SQL
756 lines
40 KiB
SQL
create or replace package UDO_PKG_EQUIPDS_BASE as
|
||
|
||
/* Считывание записи "Выборки данных оборудования" по регистрационному номеру */
|
||
function GET
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NRN in number -- Регистрационный номер
|
||
) return UDO_T_EQUIPDS%rowtype; -- Запись выборки данных оборудования
|
||
|
||
/* Поиск "Выборки данных оборудования" по мнемокоду */
|
||
procedure FIND_BY_CODE
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое добавление "Выборки данных оборудования" */
|
||
procedure INS
|
||
(
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2, -- Наименование
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое исправление "Выборки данных оборудования" */
|
||
procedure UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2 -- Наименование
|
||
);
|
||
|
||
/* Базовое удаление "Выборки данных оборудования" */
|
||
procedure DEL
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NCOMPANY in number -- Организация
|
||
);
|
||
|
||
/* Считывание записи "Выборки данных оборудования (классы оборудования)" по регистрационному номеру */
|
||
function CM_GET
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NRN in number -- Регистрационный номер
|
||
) return UDO_T_EQUIPDSCM%rowtype; -- Запись класса оборудования выборки данных
|
||
|
||
/* Поиск "Выборки данных оборудования (классы оборудования)" по классу оборудования */
|
||
procedure CM_FIND_BY_EQOBJKIND
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NPRN in number, -- Родитель
|
||
SEQOBJKIND in varchar2, -- Класс оборудования
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Разыменование словарей "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_JOINS
|
||
(
|
||
NCOMPANY in number, -- Организация
|
||
SEQOBJKIND in varchar2, -- Класс оборудования
|
||
SDICMUNTS in varchar2, -- Единица измерения выборки
|
||
SUSERPROCS_DATA in varchar2, -- Процедура формирования
|
||
SEXSSERVICE_UPLOAD in varchar2, -- Сервис обмена для выгрузки данных
|
||
SEXSSERVICEFN_UPLOAD in varchar2, -- Функция обмена для выгрузки данных
|
||
SEXSSERVICE_SEND_MD in varchar2, -- Сервис обмена для передачи внешней системе
|
||
SEXSSERVICEFN_SEND_MD in varchar2, -- Функция обмена для передачи внешней системе
|
||
SEXSSERVICE_SEND_RQ in varchar2, -- Сервис обмена для обработки внешней системой
|
||
SEXSSERVICEFN_SEND_RQ in varchar2, -- Функция обмена для обработки внешней системой
|
||
NEQOBJKIND out number, -- Рег. номер класса оборудования
|
||
NDICMUNTS out number, -- Рег. номер единицы измерения выборки
|
||
NUSERPROCS_DATA out number, -- Рег. номер процедуры формирования
|
||
NEXSSERVICEFN_UPLOAD out number, -- Рег. номер функции обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD out number, -- Рег. номер Функции обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ out number -- Рег. номер функции обмена для обработки внешней системой
|
||
);
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
NEQOBJKIND in number, -- Класс оборудования
|
||
NDICMUNTS in number, -- Единица измерения выборки
|
||
NUSERPROCS_DATA in number, -- Процедура формирования
|
||
NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ in number, -- Функция обмена для обработки внешней системой
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое исправление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NEQOBJKIND in number, -- Класс оборудования
|
||
NDICMUNTS in number, -- Единица измерения выборки
|
||
NUSERPROCS_DATA in number, -- Процедура формирования
|
||
NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ in number -- Функция обмена для обработки внешней системой
|
||
);
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
SFILE_NAME in varchar2, -- Имя файла
|
||
SDESCR in varchar2, -- Описание
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовая установка имени файла "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_SET_FILE_NAME
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
SFILE_NAME in varchar2 -- Имя файла
|
||
);
|
||
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_SET_STATUS
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NSTATUS in number, -- Состояние (0 - зарегистрирован, 1 - загружается на сервер, 2 - успешно загружен на сервер, 3 - ошибка загрузки на сервер, 4 - загружается во внешнюю систему, 5 - успешно загружен во внешнюю систему, 6 - при загрузке во внешнюю систему произошла ошибка)
|
||
SQUEUE_ID in varchar2, -- Идентификатор очереди обработки
|
||
SERR in varchar2 -- Сообщение об ошибке
|
||
);
|
||
|
||
/* Поиск "Выборки данных оборудования (классы оборудования, модели)" по задаче */
|
||
procedure CMML_FIND_BY_TASK
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NPRN in number, -- Родитель
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number, -- Точность (план)
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number, -- Точность (план)
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое исправление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number -- Точность (план)
|
||
);
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовая установка фактической точности "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_SET_PRECISION_F
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NPRECISION_F in number -- Точность (факт)
|
||
);
|
||
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_SET_STATUS
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NSTATUS in number, -- Состояние (0 - зарегистрирована, 1 - обрабатывается внешней системой, 2 - успешно обработана внешней системой, 3 - при обработке внешней системой произошла ошибка)
|
||
SQUEUE_ID in varchar2, -- Идентификатор очереди обработки
|
||
SERR in varchar2 -- Сообщение об ошибке
|
||
);
|
||
|
||
/* Формирование подсказки для задачи "Выборки данных оборудования (классы оборудования, модели)" */
|
||
function CMML_TASK_HINT
|
||
return varchar2; -- Подсказка для задачи
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, модели, история запросов)" */
|
||
procedure CMMLH_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
NEQCONFIG in number, -- Рег. номер технического объекта
|
||
SRQ_AUTHID in varchar2, -- Пользователь, выполнивший запрос
|
||
DRQ_DATE in date, -- Дата/время запроса
|
||
BRQ in blob, -- Параметры запроса
|
||
NRN out number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, модели, история запросов)" */
|
||
procedure CMMLH_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
);
|
||
|
||
/* Базовая установка данных прогноза "Выборки данных оборудования (классы оборудования, файлы данных, история запросов)" */
|
||
procedure CMMLH_SET_FORECAST
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
BFORECAST in blob -- Данные прогноза
|
||
);
|
||
|
||
/* Базовая установка идентификатора очереди обмена "Выборки данных оборудования (классы оборудования, файлы данных, история запросов)" */
|
||
procedure CMMLH_SET_EXSQUEUE
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NEXSQUEUE in number -- Идентификатор очереди обмена
|
||
);
|
||
|
||
end UDO_PKG_EQUIPDS_BASE;
|
||
/
|
||
create or replace package body UDO_PKG_EQUIPDS_BASE as
|
||
|
||
/* Считывание записи "Выборки данных оборудования" по регистрационному номеру */
|
||
function GET
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NRN in number -- Регистрационный номер
|
||
) return UDO_T_EQUIPDS%rowtype -- Запись выборки данных оборудования
|
||
is
|
||
RES UDO_T_EQUIPDS%rowtype; -- Буфер для результата
|
||
begin
|
||
/* Считывание записи */
|
||
begin
|
||
select T.* into RES from UDO_T_EQUIPDS T where T.RN = NRN;
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => NFLAG_SMART, NDOCUMENT => NRN, SUNIT_TABLE => 'UDO_T_EQUIPDS');
|
||
end;
|
||
/* Возврат результата */
|
||
return RES;
|
||
end GET;
|
||
|
||
/* Поиск "Выборки данных оборудования" по мнемокоду */
|
||
procedure FIND_BY_CODE
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Поиск записи */
|
||
begin
|
||
select RN
|
||
into NRN
|
||
from UDO_T_EQUIPDS T
|
||
where T.COMPANY = NCOMPANY
|
||
and T.CODE = SCODE;
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
P_EXCEPTION(NFLAG_SMART,
|
||
'Выборка данных оборудования "%s" не определёна.',
|
||
SCODE);
|
||
end;
|
||
end FIND_BY_CODE;
|
||
|
||
/* Базовое добавление "Выборки данных оборудования" */
|
||
procedure INS
|
||
(
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2, -- Наименование
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Формируем рег. номер */
|
||
NRN := GEN_ID();
|
||
/* Добавляем запись */
|
||
insert into UDO_T_EQUIPDS (RN, COMPANY, CODE, name) values (NRN, NCOMPANY, SCODE, SNAME);
|
||
end INS;
|
||
|
||
/* Базовое исправление "Выборки данных оборудования" */
|
||
procedure UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NCOMPANY in number, -- Организация
|
||
SCODE in varchar2, -- Мнемокод
|
||
SNAME in varchar2 -- Наименование
|
||
)
|
||
is
|
||
begin
|
||
/* Исправим данные */
|
||
update UDO_T_EQUIPDS T
|
||
set T.CODE = SCODE,
|
||
T.NAME = SNAME
|
||
where T.RN = NRN
|
||
and T.COMPANY = NCOMPANY;
|
||
end UPD;
|
||
|
||
/* Базовое удаление "Выборки данных оборудования" */
|
||
procedure DEL
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NCOMPANY in number -- Организация
|
||
)
|
||
is
|
||
begin
|
||
/* Удалим запись */
|
||
delete from UDO_T_EQUIPDS T
|
||
where T.RN = NRN
|
||
and T.COMPANY = NCOMPANY;
|
||
end DEL;
|
||
|
||
/* Считывание записи "Выборки данных оборудования (классы оборудования)" по регистрационному номеру */
|
||
function CM_GET
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NRN in number -- Регистрационный номер
|
||
) return UDO_T_EQUIPDSCM%rowtype -- Запись класса оборудования выборки данных
|
||
is
|
||
RES UDO_T_EQUIPDSCM%rowtype; -- Буфер для результата
|
||
begin
|
||
/* Считывание записи */
|
||
begin
|
||
select T.* into RES from UDO_T_EQUIPDSCM T where T.RN = NRN;
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => NFLAG_SMART, NDOCUMENT => NRN, SUNIT_TABLE => 'UDO_T_EQUIPDSCM');
|
||
end;
|
||
/* Возврат результата */
|
||
return RES;
|
||
end CM_GET;
|
||
|
||
/* Поиск "Выборки данных оборудования (классы оборудования)" по классу оборудования */
|
||
procedure CM_FIND_BY_EQOBJKIND
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NPRN in number, -- Родитель
|
||
SEQOBJKIND in varchar2, -- Класс оборудования
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Поиск записи */
|
||
begin
|
||
select T.RN
|
||
into NRN
|
||
from UDO_T_EQUIPDSCM T,
|
||
EQOBJKIND OK
|
||
where T.PRN = NPRN
|
||
and T.EQOBJKIND = OK.RN
|
||
and OK.CODE = SEQOBJKIND;
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
P_EXCEPTION(NFLAG_SMART,
|
||
'Класс оборудования "%s" в выборке данных "%s" не определён.',
|
||
SEQOBJKIND,
|
||
TO_CHAR(NPRN));
|
||
end;
|
||
end CM_FIND_BY_EQOBJKIND;
|
||
|
||
/* Разыменование словарей "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_JOINS
|
||
(
|
||
NCOMPANY in number, -- Организация
|
||
SEQOBJKIND in varchar2, -- Класс оборудования
|
||
SDICMUNTS in varchar2, -- Единица измерения выборки
|
||
SUSERPROCS_DATA in varchar2, -- Процедура формирования
|
||
SEXSSERVICE_UPLOAD in varchar2, -- Сервис обмена для выгрузки данных
|
||
SEXSSERVICEFN_UPLOAD in varchar2, -- Функция обмена для выгрузки данных
|
||
SEXSSERVICE_SEND_MD in varchar2, -- Сервис обмена для передачи внешней системе
|
||
SEXSSERVICEFN_SEND_MD in varchar2, -- Функция обмена для передачи внешней системе
|
||
SEXSSERVICE_SEND_RQ in varchar2, -- Сервис обмена для обработки внешней системой
|
||
SEXSSERVICEFN_SEND_RQ in varchar2, -- Функция обмена для обработки внешней системой
|
||
NEQOBJKIND out number, -- Рег. номер класса оборудования
|
||
NDICMUNTS out number, -- Рег. номер единицы измерения выборки
|
||
NUSERPROCS_DATA out number, -- Рег. номер процедуры формирования
|
||
NEXSSERVICEFN_UPLOAD out number, -- Рег. номер функции обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD out number, -- Рег. номер Функции обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ out number -- Рег. номер функции обмена для обработки внешней системой
|
||
)
|
||
is
|
||
NEXSSERVICE PKG_STD.TREF; -- Рег. номер сервиса обмена
|
||
begin
|
||
/* Класс оборудования */
|
||
FIND_EQOBJKIND_FULLCODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 0,
|
||
NCOMPANY => NCOMPANY,
|
||
SCODE => SEQOBJKIND,
|
||
NRN => NEQOBJKIND);
|
||
/* Единица измерения */
|
||
FIND_DICMUNTS_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 0,
|
||
NCOMPANY => NCOMPANY,
|
||
SMEAS_MNEMO => SDICMUNTS,
|
||
NRN => NDICMUNTS);
|
||
/* Процедура формирования */
|
||
if (SUSERPROCS_DATA is not null) then
|
||
FIND_USERPROCS_CODE(NFLAG_SMART => 0, SCODE => SUSERPROCS_DATA, NRN => NUSERPROCS_DATA);
|
||
else
|
||
P_EXCEPTION(0, 'Не указана процедура формирования данных выборки.');
|
||
end if;
|
||
/* Функция обмена для выгрузки данных */
|
||
FIND_EXSSERVICE_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SEXSSERVICE_UPLOAD, NRN => NEXSSERVICE);
|
||
FIND_EXSSERVICEFN_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 0,
|
||
NEXSSERVICE => NEXSSERVICE,
|
||
SCODE => SEXSSERVICEFN_UPLOAD,
|
||
NRN => NEXSSERVICEFN_UPLOAD);
|
||
/* Функция обмена для передачи внешней системе */
|
||
FIND_EXSSERVICE_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SEXSSERVICE_SEND_MD, NRN => NEXSSERVICE);
|
||
FIND_EXSSERVICEFN_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 0,
|
||
NEXSSERVICE => NEXSSERVICE,
|
||
SCODE => SEXSSERVICEFN_SEND_MD,
|
||
NRN => NEXSSERVICEFN_SEND_MD);
|
||
/* Функция обмена для обработки внешней системой */
|
||
FIND_EXSSERVICE_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SEXSSERVICE_SEND_RQ, NRN => NEXSSERVICE);
|
||
FIND_EXSSERVICEFN_CODE(NFLAG_SMART => 0,
|
||
NFLAG_OPTION => 0,
|
||
NEXSSERVICE => NEXSSERVICE,
|
||
SCODE => SEXSSERVICEFN_SEND_RQ,
|
||
NRN => NEXSSERVICEFN_SEND_RQ);
|
||
end CM_JOINS;
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
NEQOBJKIND in number, -- Класс оборудования
|
||
NDICMUNTS in number, -- Единица измерения выборки
|
||
NUSERPROCS_DATA in number, -- Процедура формирования
|
||
NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ in number, -- Функция обмена для обработки внешней системой
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Формируем рег. номер */
|
||
NRN := GEN_ID();
|
||
/* Добавляем запись */
|
||
insert into UDO_T_EQUIPDSCM
|
||
(RN,
|
||
PRN,
|
||
EQOBJKIND,
|
||
DICMUNTS,
|
||
DATA_CONFIG,
|
||
USERPROCS_DATA,
|
||
EXSSERVICEFN_UPLOAD,
|
||
EXSSERVICEFN_SEND_MD,
|
||
EXSSERVICEFN_SEND_RQ)
|
||
values
|
||
(NRN,
|
||
NPRN,
|
||
NEQOBJKIND,
|
||
NDICMUNTS,
|
||
null,
|
||
NUSERPROCS_DATA,
|
||
NEXSSERVICEFN_UPLOAD,
|
||
NEXSSERVICEFN_SEND_MD,
|
||
NEXSSERVICEFN_SEND_RQ);
|
||
end CM_INS;
|
||
|
||
/* Базовое исправление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NEQOBJKIND in number, -- Класс оборудования
|
||
NDICMUNTS in number, -- Единица измерения выборки
|
||
NUSERPROCS_DATA in number, -- Процедура формирования
|
||
NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки данных
|
||
NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе
|
||
NEXSSERVICEFN_SEND_RQ in number -- Функция обмена для обработки внешней системой
|
||
)
|
||
is
|
||
begin
|
||
/* Исправим данные */
|
||
update UDO_T_EQUIPDSCM T
|
||
set T.EQOBJKIND = NEQOBJKIND,
|
||
T.DICMUNTS = NDICMUNTS,
|
||
T.USERPROCS_DATA = NUSERPROCS_DATA,
|
||
T.EXSSERVICEFN_UPLOAD = NEXSSERVICEFN_UPLOAD,
|
||
T.EXSSERVICEFN_SEND_MD = NEXSSERVICEFN_SEND_MD,
|
||
T.EXSSERVICEFN_SEND_RQ = NEXSSERVICEFN_SEND_RQ
|
||
where T.RN = NRN;
|
||
end CM_UPD;
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования)" */
|
||
procedure CM_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Удалим файлы */
|
||
for C in (select T.RN from UDO_T_EQUIPDSCMFL T where T.PRN = NRN)
|
||
loop
|
||
CMFL_DEL(NRN => C.RN);
|
||
end loop;
|
||
/* Удалим модели */
|
||
for C in (select T.RN from UDO_T_EQUIPDSCMML T where T.PRN = NRN)
|
||
loop
|
||
CMML_DEL(NRN => C.RN);
|
||
end loop;
|
||
/* Удалим запись */
|
||
delete from UDO_T_EQUIPDSCM T where T.RN = NRN;
|
||
end CM_DEL;
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
SFILE_NAME in varchar2, -- Имя файла
|
||
SDESCR in varchar2, -- Описание
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Формируем рег. номер */
|
||
NRN := GEN_ID();
|
||
/* Добавляем запись */
|
||
insert into UDO_T_EQUIPDSCMFL
|
||
(RN, PRN, FILE_NAME, DESCR, QUEUE_ID, STATUS, ERR)
|
||
values
|
||
(NRN, NPRN, SFILE_NAME, SDESCR, null, 0, null);
|
||
end CMFL_INS;
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Удалим запись */
|
||
delete from UDO_T_EQUIPDSCMFL T where T.RN = NRN;
|
||
end CMFL_DEL;
|
||
|
||
/* Базовая установка имени файла "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_SET_FILE_NAME
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
SFILE_NAME in varchar2 -- Имя файла
|
||
)
|
||
is
|
||
begin
|
||
/* Установим имя файла */
|
||
update UDO_T_EQUIPDSCMFL T set T.FILE_NAME = SFILE_NAME where T.RN = NRN;
|
||
end CMFL_SET_FILE_NAME;
|
||
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
procedure CMFL_SET_STATUS
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NSTATUS in number, -- Состояние (0 - зарегистрирован, 1 - загружается на сервер, 2 - успешно загружен на сервер, 3 - ошибка загрузки на сервер, 4 - загружается во внешнюю систему, 5 - успешно загружен во внешнюю систему, 6 - при загрузке во внешнюю систему произошла ошибка)
|
||
SQUEUE_ID in varchar2, -- Идентификатор очереди обработки
|
||
SERR in varchar2 -- Сообщение об ошибке
|
||
)
|
||
is
|
||
begin
|
||
/* Установим состояние и сопутствующие ему атрибуты */
|
||
update UDO_T_EQUIPDSCMFL T
|
||
set T.STATUS = NSTATUS,
|
||
T.QUEUE_ID = SQUEUE_ID,
|
||
T.ERR = SERR
|
||
where T.RN = NRN;
|
||
end CMFL_SET_STATUS;
|
||
|
||
/* Поиск "Выборки данных оборудования (классы оборудования, модели)" по задаче */
|
||
procedure CMML_FIND_BY_TASK
|
||
(
|
||
NFLAG_SMART in number, -- Признак выдачи сообщения об ошибке (0 - выдавать, 1 - не выдавать)
|
||
NPRN in number, -- Родитель
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number, -- Точность (план)
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Поиск записи */
|
||
begin
|
||
select T.RN
|
||
into NRN
|
||
from UDO_T_EQUIPDSCMML T
|
||
where T.PRN = NPRN
|
||
and T.TASK = STASK
|
||
and T.PRECISION_P = NPRECISION_P;
|
||
exception
|
||
when NO_DATA_FOUND then
|
||
P_EXCEPTION(NFLAG_SMART,
|
||
'Модель с задачей "%s" и точностью "%s" в классе оборудования "%s" не определёна.',
|
||
STASK,
|
||
TO_CHAR(NPRECISION_P),
|
||
TO_CHAR(NPRN));
|
||
end;
|
||
end CMML_FIND_BY_TASK;
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number, -- Точность (план)
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Формируем рег. номер */
|
||
NRN := GEN_ID();
|
||
/* Добавляем запись */
|
||
insert into UDO_T_EQUIPDSCMML
|
||
(RN, PRN, TASK, PRECISION_P, PRECISION_F, QUEUE_ID, STATUS, ERR)
|
||
values
|
||
(NRN, NPRN, STASK, NPRECISION_P, null, null, 0, null);
|
||
end CMML_INS;
|
||
|
||
/* Базовое исправление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_UPD
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
STASK in varchar2, -- Задача (TCF - оценка технического состояния (Technical Condition Forecast), RUL - прогнозирование остаточного ресурса (Remaining Useful Life), FP - Прогнозирование отказа (Failure Predict)) */
|
||
NPRECISION_P in number -- Точность (план)
|
||
)
|
||
is
|
||
begin
|
||
/* Исправим данные */
|
||
update UDO_T_EQUIPDSCMML T
|
||
set T.TASK = STASK,
|
||
T.PRECISION_P = NPRECISION_P
|
||
where T.RN = NRN;
|
||
end CMML_UPD;
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Удалим историю */
|
||
for C in (select T.RN from UDO_T_EQUIPDSCMMLH T where T.PRN = NRN)
|
||
loop
|
||
CMMLH_DEL(NRN => C.RN);
|
||
end loop;
|
||
/* Удалим запись */
|
||
delete from UDO_T_EQUIPDSCMML T where T.RN = NRN;
|
||
end CMML_DEL;
|
||
|
||
/* Базовая установка фактической точности "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_SET_PRECISION_F
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NPRECISION_F in number -- Точность (факт)
|
||
)
|
||
is
|
||
begin
|
||
/* Установим фактическую точность */
|
||
update UDO_T_EQUIPDSCMML T set T.PRECISION_F = NPRECISION_F where T.RN = NRN;
|
||
end CMML_SET_PRECISION_F;
|
||
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, модели)" */
|
||
procedure CMML_SET_STATUS
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NSTATUS in number, -- Состояние (0 - зарегистрирована, 1 - обрабатывается внешней системой, 2 - успешно обработана внешней системой, 3 - при обработке внешней системой произошла ошибка)
|
||
SQUEUE_ID in varchar2, -- Идентификатор очереди обработки
|
||
SERR in varchar2 -- Сообщение об ошибке
|
||
)
|
||
is
|
||
begin
|
||
/* Установим состояние и сопутствующие ему атрибуты */
|
||
update UDO_T_EQUIPDSCMML T
|
||
set T.STATUS = NSTATUS,
|
||
T.QUEUE_ID = SQUEUE_ID,
|
||
T.ERR = SERR
|
||
where T.RN = NRN;
|
||
end CMML_SET_STATUS;
|
||
|
||
/* Формирование подсказки для задачи "Выборки данных оборудования (классы оборудования, модели)" */
|
||
function CMML_TASK_HINT
|
||
return varchar2 -- Подсказка для задачи
|
||
is
|
||
begin
|
||
return '<b>TCF</b> - Оценка технического состояния (<b>T</b>echnical <b>C</b>ondition <b>F</b>orecast)<br>' || '<b>RUL</b> - Прогнозирование остаточного ресурса (<b>R</b>emaining <b>U</b>seful <b>L</b>ife)<br>' || '<b>FP</b> - Прогнозирование отказа (<b>F</b>ailure <b>P</b>redict)';
|
||
end CMML_TASK_HINT;
|
||
|
||
/* Базовое добавление "Выборки данных оборудования (классы оборудования, модели, история запросов)" */
|
||
procedure CMMLH_INS
|
||
(
|
||
NPRN in number, -- Родитель
|
||
NEQCONFIG in number, -- Рег. номер технического объекта
|
||
SRQ_AUTHID in varchar2, -- Пользователь, выполнивший запрос
|
||
DRQ_DATE in date, -- Дата/время запроса
|
||
BRQ in blob, -- Параметры запроса
|
||
NRN out number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Формируем рег. номер */
|
||
NRN := GEN_ID();
|
||
/* Добавляем запись */
|
||
insert into UDO_T_EQUIPDSCMMLH
|
||
(RN, PRN, EQCONFIG, RQ_AUTHID, RQ_DATE, RQ, FORECAST, EXSQUEUE)
|
||
values
|
||
(NRN, NPRN, NEQCONFIG, SRQ_AUTHID, DRQ_DATE, BRQ, null, null);
|
||
end CMMLH_INS;
|
||
|
||
/* Базовое удаление "Выборки данных оборудования (классы оборудования, модели, история запросов)" */
|
||
procedure CMMLH_DEL
|
||
(
|
||
NRN in number -- Регистрационный номер
|
||
)
|
||
is
|
||
begin
|
||
/* Удалим запись */
|
||
delete from UDO_T_EQUIPDSCMMLH T where T.RN = NRN;
|
||
end CMMLH_DEL;
|
||
|
||
/* Базовая установка данных прогноза "Выборки данных оборудования (классы оборудования, файлы данных, история запросов)" */
|
||
procedure CMMLH_SET_FORECAST
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
BFORECAST in blob -- Данные прогноза
|
||
)
|
||
is
|
||
begin
|
||
/* Установим данные ответа */
|
||
update UDO_T_EQUIPDSCMMLH T set T.FORECAST = BFORECAST where T.RN = NRN;
|
||
end CMMLH_SET_FORECAST;
|
||
|
||
/* Базовая установка идентификатора очереди обмена "Выборки данных оборудования (классы оборудования, файлы данных, история запросов)" */
|
||
procedure CMMLH_SET_EXSQUEUE
|
||
(
|
||
NRN in number, -- Регистрационный номер
|
||
NEXSQUEUE in number -- Идентификатор очереди обмена
|
||
)
|
||
is
|
||
begin
|
||
/* Установим идентификатор очереди обмена */
|
||
update UDO_T_EQUIPDSCMMLH T set T.EXSQUEUE = NEXSQUEUE where T.RN = NRN;
|
||
end CMMLH_SET_EXSQUEUE;
|
||
|
||
end UDO_PKG_EQUIPDS_BASE;
|
||
/
|