From 25e073731e61fc6176cf86de6532e93173299c85 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Thu, 11 Jul 2024 17:36:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=B0=D0=B7=D0=BE=D0=B2=D1=8B=D0=B9=20IU?= =?UTF-8?q?D=20API=20=D0=B4=D0=BB=D1=8F=20"=D0=92=D1=8B=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D0=B7=D0=BE=D0=BA=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BE=D1=80=D1=83=D0=B4=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/.gitkeep | 0 db/UDO_PKG_EQUIPDS.pck | 6 + db/UDO_PKG_EQUIPDS_BASE.pck | 460 ++++++++++++++++++++++++++++++++++++ 3 files changed, 466 insertions(+) delete mode 100644 db/.gitkeep create mode 100644 db/UDO_PKG_EQUIPDS.pck create mode 100644 db/UDO_PKG_EQUIPDS_BASE.pck diff --git a/db/.gitkeep b/db/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/db/UDO_PKG_EQUIPDS.pck b/db/UDO_PKG_EQUIPDS.pck new file mode 100644 index 0000000..e8493ed --- /dev/null +++ b/db/UDO_PKG_EQUIPDS.pck @@ -0,0 +1,6 @@ +create or replace package UDO_PKG_EQUIPDS as +end UDO_PKG_EQUIPDS; +/ +create or replace package body UDO_PKG_EQUIPDS as +end UDO_PKG_EQUIPDS; +/ diff --git a/db/UDO_PKG_EQUIPDS_BASE.pck b/db/UDO_PKG_EQUIPDS_BASE.pck new file mode 100644 index 0000000..c6dbb26 --- /dev/null +++ b/db/UDO_PKG_EQUIPDS_BASE.pck @@ -0,0 +1,460 @@ +create or replace package UDO_PKG_EQUIPDS_BASE as + + /* Базовое добавление "Выборки данных оборудования" */ + 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 -- Организация + ); + + /* Разыменование словарей "Выборки данных оборудования (классы оборудования)" */ + procedure CM_JOINS + ( + NCOMPANY in number, -- Организация + SEQOBJKIND in varchar2, -- Класс оборудования + SUSERPROCS_DATA in varchar2, -- Процедура формирования + SEXSSERVICE_UPLOAD in varchar2, -- Сервис обмена для выгрузки на FTP + SEXSSERVICEFN_UPLOAD in varchar2, -- Функция обмена для выгрузки на FTP + SEXSSERVICE_SEND_MD in varchar2, -- Сервис обмена для передачи внешней системе + SEXSSERVICEFN_SEND_MD in varchar2, -- Функция обмена для передачи внешней системе + SEXSSERVICE_SEND_RQ in varchar2, -- Сервис обмена для обработки внешней системой + SEXSSERVICEFN_SEND_RQ in varchar2, -- Функция обмена для обработки внешней системой + NEQOBJKIND out number, -- Рег. номер класса оборудования + NUSERPROCS_DATA out number, -- Рег. номер процедуры формирования + NEXSSERVICEFN_UPLOAD out number, -- Рег. номер функции обмена для выгрузки на FTP + NEXSSERVICEFN_SEND_MD out number, -- Рег. номер Функции обмена для передачи внешней системе + NEXSSERVICEFN_SEND_RQ out number -- Рег. номер функции обмена для обработки внешней системой + ); + + /* Базовое добавление "Выборки данных оборудования (классы оборудования)" */ + procedure CM_INS + ( + NPRN in number, -- Родитель + NEQOBJKIND in number, -- Класс оборудования + NUSERPROCS_DATA in number, -- Процедура формирования + NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки на FTP + NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе + NEXSSERVICEFN_SEND_RQ in number, -- Функция обмена для обработки внешней системой + NRN out number -- Регистрационный номер + ); + + /* Базовое исправление "Выборки данных оборудования (классы оборудования)" */ + procedure CM_UPD + ( + NRN in number, -- Регистрационный номер + NEQOBJKIND in number, -- Класс оборудования + NUSERPROCS_DATA in number, -- Процедура формирования + NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки на FTP + 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 - загружается на FTP, 2 - успешно загружен на FTP, 3 - ошибка загрузки на FTP, 4 - загружается во внешнюю систему, 5 - успешно загружен во внешнюю систему, 6 - при загрузке во внешнюю систему произошла ошибка) + SQUEUE_ID in varchar2, -- Идентификатор очереди обработки + SERR in varchar2 -- Сообщение об ошибке + ); + + /* Базовое добавление "Выборки данных оборудования (классы оборудования, модели)" */ + 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 -- Сообщение об ошибке + ); + +end UDO_PKG_EQUIPDS_BASE; +/ +create or replace package body UDO_PKG_EQUIPDS_BASE as + + /* Базовое добавление "Выборки данных оборудования" */ + 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; + + /* Разыменование словарей "Выборки данных оборудования (классы оборудования)" */ + procedure CM_JOINS + ( + NCOMPANY in number, -- Организация + SEQOBJKIND in varchar2, -- Класс оборудования + SUSERPROCS_DATA in varchar2, -- Процедура формирования + SEXSSERVICE_UPLOAD in varchar2, -- Сервис обмена для выгрузки на FTP + SEXSSERVICEFN_UPLOAD in varchar2, -- Функция обмена для выгрузки на FTP + SEXSSERVICE_SEND_MD in varchar2, -- Сервис обмена для передачи внешней системе + SEXSSERVICEFN_SEND_MD in varchar2, -- Функция обмена для передачи внешней системе + SEXSSERVICE_SEND_RQ in varchar2, -- Сервис обмена для обработки внешней системой + SEXSSERVICEFN_SEND_RQ in varchar2, -- Функция обмена для обработки внешней системой + NEQOBJKIND out number, -- Рег. номер класса оборудования + NUSERPROCS_DATA out number, -- Рег. номер процедуры формирования + NEXSSERVICEFN_UPLOAD out number, -- Рег. номер функции обмена для выгрузки на FTP + 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); + /* Процедура формирования */ + 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; + /* Функция обмена для выгрузки на FTP */ + 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, -- Класс оборудования + NUSERPROCS_DATA in number, -- Процедура формирования + NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки на FTP + 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, + DATA_CONFIG, + USERPROCS_DATA, + EXSSERVICEFN_UPLOAD, + EXSSERVICEFN_SEND_MD, + EXSSERVICEFN_SEND_RQ) + values + (NRN, + NPRN, + NEQOBJKIND, + null, + NUSERPROCS_DATA, + NEXSSERVICEFN_UPLOAD, + NEXSSERVICEFN_SEND_MD, + NEXSSERVICEFN_SEND_RQ); + end CM_INS; + + /* Базовое исправление "Выборки данных оборудования (классы оборудования)" */ + procedure CM_UPD + ( + NRN in number, -- Регистрационный номер + NEQOBJKIND in number, -- Класс оборудования + NUSERPROCS_DATA in number, -- Процедура формирования + NEXSSERVICEFN_UPLOAD in number, -- Функция обмена для выгрузки на FTP + NEXSSERVICEFN_SEND_MD in number, -- Функция обмена для передачи внешней системе + NEXSSERVICEFN_SEND_RQ in number -- Функция обмена для обработки внешней системой + ) + is + begin + /* Исправим данные */ + update UDO_T_EQUIPDSCM T + set T.EQOBJKIND = NEQOBJKIND, + 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 + /* Удалим запись */ + 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 - загружается на FTP, 2 - успешно загружен на FTP, 3 - ошибка загрузки на FTP, 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_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 + /* Удалим запись */ + 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; + +end UDO_PKG_EQUIPDS_BASE; +/