TCF-Framework-Integration/db/UDO_PKG_EQUIPDS_BASE.pck

756 lines
40 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
/