Подсистемы оповещения для ИС "ЭПОС"

Подсистема оповещения для информационной системы учета электропогружного оборудования скважин нефтяной компании "Роснефть". Временные затраты бизнес-процесса. Клиентская часть системы учёта оборудования "ЭПОС". Подсистема оповещений и уведомлений системы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.10.2017
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рис. 20. Окно «Управление группами»

После нажатия на кнопку «Показать общие группы» вызовется окно «Копирование общих групп», в котором пользователь может включить общую группу (элемент 2 рис. 21) в список личных групп (элемент 3 рис. 21) или удалить при помощи кнопок с символами «<» и «>» (элементы 1а и 1б на рис. 21) соответственно. Внешний вид окна «Копирование общих групп» изображено на рис. 21.

Рис. 21. Окно «Копирование общих групп»

Перед копированием или удалением можно ознакомиться с составом выбранной группы (элементы 4 и 5 на рис. 21).

В случае если выбранная при копировании группа совпадает именем с какой-нибудь группой из личных групп, то вызывается окно «Выбор действия». Внешний вид окна изображен на рис. 22.

Рис. 22. Окно «Выбор действий»

Окно предлагает сохранить общую группу в списке личных групп с новым именем (элемент 1 на рис. 22) или дополнить состав существующей личной группы новыми скважинами (элемент 2 на рис. 22).

Оповещение о запросах

Чтобы просмотреть оповещения о запросах, необходимо зайти в меню «Сервис» и в разделе «Оповещение» выбрать пункт «Запросы от ОК». В этом случае вызовется вкладка «Запросы от ОК», в которой пользователю отобразиться список необработанных запросов на дополнение или коррекцию данных, за которые он ответственен. Как видно из рис. 23. для записей запросов пользователей имеет возможность назначить статус «В работе» или «Выполнен» (элемент 1 на рис. 23).

Рис. 23. Вкладка «Запросы от пользователей ОК»

Чтобы просмотреть все запросы на дополнение и коррекцию данных по какой-нибудь скважине за какой-нибудь период времени можно обратиться к архиву запросов (элемент 2 на рис. 23). Для просмотра состояния запросов пользователь отдела качества может открыть подобную вкладку через пункт «Запросы по ДК» того же раздела меню. Внешний вид окна «Запросы по ДК» изображен на рис. 24.

Во вкладке «Архив запросов» есть возможность отфильтровать список запросов за определенный период (элемент 4 на рис. 24) и\или по скважине (элемент 3 на рис. 24).

Рис. 24. Окно «Запросы по ДК»

Пользователь отдела качества при работе с протоколом ДК, при необходимости может вызвать список запросов на коррекцию и дополнение данных, созданных кем-либо из пользователей ИС «ЭПОС» или запросы созданных только им (элемент 2 на рис. 24). С помощью контекстного меню пользователь отдела качества имеет возможность отправить повторный запрос с такими же параметрами, что у выделенного запроса, определить для запроса статус «Закрыто» и удалить, если статус запроса имеет значение «Закрыто» (элемент 1 на рис. 24).

Для создания нового запроса на коррекцию или дополнение данных по Событию, с протоколом расследования, которого работает пользователь, в окне со списком запросов предусмотрена кнопка «Создать новый запрос». После нажатия этой кнопки происходит вызов окна «Отправить запрос». Окно имеет две области:

информация по отказы (элемент 3 на рис. 25) - содержит поля с данными, необходимые ответственному за ввод данных лицу для обработки запроса;

параметры рассылки (элемент 4 на рис. 25) - содержит поля с данными, необходимыми для отправки запроса.

Для отправки запроса пользователь должен обязательно указать СП и тип запроса (элементы 1 и 2 на рис. 25 соответственно). Внешний вид окна «Отправить запрос» изображен на рис. 25.

Рис. 25. Окно «Отправить запрос»

После нажатия на кнопки «Отправить» запрос отправляется с указанными параметрами на сервер.

Контроль ввода данных

Для настройки оповещения о несвоевременном вводе данных необходимо в меню «Сервис» выбрать в разделе «Оповещение» пункт «Контроль ввода данных», после чего появится вкладка «Контроль ввода данных». Внешний вид вкладки «Контроль ввода данных» изображен на рис. 26.

Рис. 26. Вкладка «Контроль ввода данных»

В данной вкладке настраивается допустимая задержка (элемент 1 на рис. 26), перечень типов операций (элемент 2 на рис. 26), за задержкой которых необходимо отслеживать и адрес электронной почты (элемент 3 на рис. 26), на который должны приходить оповещения. При необходимости можно отключить оповещение или включить его (элемент 4 на рис. 26). После нажатия кнопки «Сохранить» (элемент 5 на рис. 26) изменения сохраняются в базе данных.

Для формирования отчета о задержках ввода данных пользователю следует в меню «Отчеты» выбрать пункт «Контроль ввода данных», после чего появится вкладка «Отчет - контроль ввода данных». Внешний вид вкладки изображен на рис. 27.

Рис. 27. Вкладка «Отчет - контроль ввода данных»

Чтоб отчет сформировался необходимо указать набор сервисных предприятий (элемент 1 на рис. 27), в котором должны были внести данные, период (элемент 2 на рис. 27), за который задержки были зафиксированы, количество дней допустимых для задержки ввода данных (элемент 3 на рис. 27). После указания всех параметров отчет можно сформировать, нажав на кнопку «Сформировать».

Технико-эксплутационные характеристики

После проектирование, разработки и интеграции Подсистемы в ИС «ЭПОС», с целью тестирования Подсистема была запущена в эксплуатацию на предприятиях ООО «Юганскнефтегаз» без прекращения функционирования предыдущих способов работы сотрудников ОК. По предварительным результатам тестирования наблюдаются следующие эффекты в работе сотрудников объединения:

время поиска событий для расследования сократилось до 1 минуты благодаря автоматическому оповещению пользователя о Событиях;

время запроса коррекции и дополнения данных сократилось до 1 минуты благодаря возможности создавать и оправлять запросы в Подсистеме;

время дополнения и коррекции данных сократилось до 4 часов благодаря наличию достаточных сведений в заявке;

время до возобновления расследования после выполнения запроса сократилось до 1-4 минут благодаря автоматическому оповещению пользователя о Событиях.

Как видно из рис. 28 снижение затрат времени даже при пессимистичной оценке значительное. Время на поиск ответственных за ввод данных больше не требуется, так как запросы автоматически направляются лицам ответственным за ввод данных. Таким образом, суммарное время, затраченное от момента обнаружения некорректных или неполных данных по событиям до конца расследования, составляет 3-11 часов (1,53-5,61% от предыдущего значения).

Рис. 28. Снижение затрат времени

То есть задержку в работе сотрудников отдела качества удалось снизить на 94,39-98,47 % от предыдущего значения.

Заключение

В ходе данной дипломной работе:

изучена предметная область;

изучена ИС «ЭПОС»;

проведен обзор существующих подсистем оповещений в различных ИС;

разработано техническое задание на Подсистему;

разработан контур Подсистемы;

разработана инфологическая модель предметной области;

разработана Подсистема;

интегрирована Подсистемас ИС «ЭПОС».

В результате данной работы была спроектирована, разработана и внедрена подсистема оповещения в ИС «ЭПОС», тем самым цель работы достигнута. Подсистема обладает всеми требуемыми функциями для устранения недостатков в ИС «ЭПОС».

Подсистема в настоящее время работает в тестовом режиме на предприятиях ООО «Юганскнефтегаз». По предварительным данным наблюдается значительное сокращение задержек в работе отдела качества. По сравнению с предыдущими временными затратами, использование подсистемы оповещения дает значительную экономию времени.

В перспективе Подсистема сможет позволить расширить список функций для других задач других типов пользователей, а при использовании дополнительных коммуникационных средств появится возможность рассылать оповещения по SMS.

Список использованных источников

Байков Н. Перспективы российской нефтегазовой промышленности и альтернативных источников энергии // Мировая экономика и международные отношения. - 2008. - №6. - С.49-56.

Научно-исследовательский Центр CALS-«Прикладная логистика» «МЕТОДОЛОГИЯ ФУНКЦИОНАЛЬНОГО МОДЕЛИРОВАНИЯ IDEF0». ГОССТАНДАРТ РОССИИ Москва РД IDEF 0 - 2000

Нугаев Р. Я. «Безопасная эксплуатация нефтепромысловых объектов» - 1990 год

Техническое задание на ИС «ЭПОС».

Карпычев В. Ю. Методология IDEF1Х и программный продукт ERWin: Учебно-методическое пособие 2007 год

Диго С. М. «Базы данных. Проектирование и создание» учебно-методический комплекс М.:ЕАОИ, 2008. - 171с.

Кириллов В. В. ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ - учебное пособие Санкт-Петербургский Государственный институт точной механики и оптики (технический университет) Кафедра вычислительной техники

Приложение1

ЛистингклассаEventNotifications

classEventNotifications

{

privatestaticTimeSpan minRefreshPeriod = newTimeSpan(0, 1, 0);

private UI.Main.FormMain formMain_;

privatestring connectionString_;

privatestring schema_;

privateint notificationsRefreshPeriod_;

privateDateTime nextRefreshTime_;

privateTimeSpan refreshPeriod_;

private System.Windows.Forms.NotifyIcon notifyIcon_;

System.Drawing.Icon[] icons_ = null;

public IdleHandler_EventNotifications(

UI.Main.FormMain formMain,

string server,

string sid,

string schema,

string user,

string password)

{

formMain_ = formMain;

{

int indexOfColon = server.IndexOf(':');

string optionalPort = ((indexOfColon >= 0) ? string.Format(@"Port={0};", server.Substring(indexOfColon + 1)) : "");

connectionString_ = string.Format(

"Server={0};Sid={1};User Id={2};Password={3};Pooling=False;Direct=True;{4}",

((indexOfColon >= 0) ? server.Substring(0, indexOfColon) : server),

sid, user, password, optionalPort);

}

schema_ = schema;

notificationsRefreshPeriod_ = 0;

nextRefreshTime_ = DateTime.Now;

notifyIcon_ = null;

icons_ = null;

if (formMain_ != null) formMain_.setRefreshEventNotifyIconDelegate(refreshNotifyIcon);

}

publicbool onIdle()

{

if (formMain_ != null)

{

if (DateTime.Now >= nextRefreshTime_)

{

int notificationsRefreshPeriod = formMain_.eventNotificationsRefreshPeriod();

if (notificationsRefreshPeriod_ != notificationsRefreshPeriod)

{

notificationsRefreshPeriod_ = notificationsRefreshPeriod;

refreshPeriod_ = newTimeSpan(

notificationsRefreshPeriod / 60,

notificationsRefreshPeriod % 60,

0);

if (notifyIcon_ == null)

{

notifyIcon_ = new System.Windows.Forms.NotifyIcon();

notifyIcon_.Text = @"ЭПОС: Оповещения о событиях";

}

if (icons_ == null)

{

icons_ = new System.Drawing.Icon[]

{

new System.Drawing.Icon("Resources/notify_round_00.ico"),

new System.Drawing.Icon("Resources/notify_round_01.ico"),

new System.Drawing.Icon("Resources/notify_round_02.ico"),

new System.Drawing.Icon("Resources/notify_round_03.ico"),

new System.Drawing.Icon("Resources/notify_round_04.ico"),

new System.Drawing.Icon("Resources/notify_round_05.ico"),

new System.Drawing.Icon("Resources/notify_round_06.ico"),

new System.Drawing.Icon("Resources/notify_round_07.ico"),

new System.Drawing.Icon("Resources/notify_round_08.ico"),

new System.Drawing.Icon("Resources/notify_round_09.ico"),

new System.Drawing.Icon("Resources/notify_round_10.ico"),

};

}

}

refreshNotifyIcon();

}

returntrue;

}

returnfalse;

}

Приложение2

Листинг класса Request Notifications

classRequestNotifications

{

private UI.Main.FormMain formMain_;

privatestring connectionString_;

privatestring schema_;

privateint notificationsRefreshPeriod_;

privateDateTime nextRefreshTime_;

privateTimeSpan refreshPeriod_;

private System.Windows.Forms.NotifyIcon notifyIcon_;

System.Drawing.Icon[] icons_ = null;

public IdleHandler_RequestNotifications(

UI.Main.FormMain formMain,

string server,

string sid,

string schema,

string user,

string password)

{

formMain_ = formMain;

{

int indexOfColon = server.IndexOf(':');

string optionalPort = ((indexOfColon >= 0) ? string.Format(@"Port={0};", server.Substring(indexOfColon + 1)) : "");

connectionString_ = string.Format(

"Server={0};Sid={1};User Id={2};Password={3};Pooling=False;Direct=True;{4}",

((indexOfColon >= 0) ? server.Substring(0, indexOfColon) : server),

sid, user, password, optionalPort);

}

schema_ = schema;

notificationsRefreshPeriod_ = 0;

nextRefreshTime_ = DateTime.Now;

notifyIcon_ = null;

icons_ = null;

if (formMain_ != null) formMain_.setRefreshRequestNotifyIconDelegate(refreshNotifyIcon);

}

publicbool onIdle()

{

if (formMain_ != null)

{

if (DateTime.Now >= nextRefreshTime_)

{

int notificationsRefreshPeriod = formMain_.requestNotificationsRefreshPeriod();

if (notificationsRefreshPeriod_ != notificationsRefreshPeriod)

{

notificationsRefreshPeriod_ = notificationsRefreshPeriod;

if (notifyIcon_ == null)

{

notifyIcon_ = new System.Windows.Forms.NotifyIcon();

notifyIcon_.Text = @"ЭПОС: Оповещения о запросах";

}

if (icons_ == null)

{

icons_ = new System.Drawing.Icon[]

{

new System.Drawing.Icon("Resources/notify_square_00.ico"),

new System.Drawing.Icon("Resources/notify_square_01.ico"),

new System.Drawing.Icon("Resources/notify_square_02.ico"),

new System.Drawing.Icon("Resources/notify_square_03.ico"),

new System.Drawing.Icon("Resources/notify_square_04.ico"),

new System.Drawing.Icon("Resources/notify_square_05.ico"),

new System.Drawing.Icon("Resources/notify_square_06.ico"),

new System.Drawing.Icon("Resources/notify_square_07.ico"),

new System.Drawing.Icon("Resources/notify_square_08.ico"),

new System.Drawing.Icon("Resources/notify_square_09.ico"),

new System.Drawing.Icon("Resources/notify_square_10.ico"),

};

}

refreshNotifyIcon();

}

}

returntrue;

}

returnfalse;

}

privatebool refreshData(refint requestsCount)

{

bool isDataRefreshed = false;

using (Devart.Data.Oracle.OracleConnection connection = new Devart.Data.Oracle.OracleConnection(connectionString_))

{

connection.Open();

isDataRefreshed = refreshData(connection, ref requestsCount);

connection.Close();

}

return isDataRefreshed;

}

privatebool refreshData(Devart.Data.Oracle.OracleConnection connection, refint requestsCount)

{

bool isDataRefreshed = false;

using (Devart.Data.Oracle.OracleCommand oracleCommand = new Devart.Data.Oracle.OracleCommand(schema_ + ".notification.get_data_requests_count", connection))

{

oracleCommand.CommandType = System.Data.CommandType.StoredProcedure;

try

{

oracleCommand.Parameters.Add(new Devart.Data.Oracle.OracleParameter("CNT", Devart.Data.Oracle.OracleDbType.Number, System.Data.ParameterDirection.Output));

oracleCommand.ExecuteNonQuery();

object objRequestsCount = oracleCommand.Parameters[0].Value;

if ((objRequestsCount != null) && !(objRequestsCount isDBNull))

requestsCount = Convert.ToInt32(objRequestsCount);

isDataRefreshed = true;

}

catch (Devart.Data.Oracle.OracleException ex)

{

if (ex.Code != 4068)

{

System.Windows.Forms.MessageBox.Show(Sys.Utils.textOracleUserExc(ex), "Ошибка",

System.Windows.Forms.MessageBoxButtons.OK,

System.Windows.Forms.MessageBoxIcon.Exclamation);

if (ex.Code == 6550){

requestsCount = 0;isDataRefreshed = true;

}

}

}

}

return isDataRefreshed;

}

publicvoid refreshNotifyIcon()

{

int requestsCount = 0;

Devart.Data.Oracle.OracleConnection connection = Sys.DB.DBManager.getConnection();

bool isDataRefreshed = ((connection != null) && refreshData(connection, ref requestsCount));

if (!isDataRefreshed) isDataRefreshed = refreshData(ref requestsCount);

if (isDataRefreshed)

{

if ((refreshPeriod_ == null) || (refreshPeriod_ < minRefreshPeriod))

if (notifyIcon_ != null)

{

bool showNotifyIcon = ((notificationsRefreshPeriod_ > 0) && (refreshPeriod_ != null));

if (notifyIcon_.Visible != showNotifyIcon) notifyIcon_.Visible = showNotifyIcon;

if (showNotifyIcon)

{

if ((icons_ != null) && (icons_.Length > 0))

{

System.Drawing.Icon icon = icons_[Math.Min(requestsCount, icons_.Length - 1)];

if ((icon != null) && (icon != notifyIcon_.Icon)) notifyIcon_.Icon = icon;

}

}

}

}

}

publicvoid hide()

{

if ((notifyIcon_ != null) && notifyIcon_.Visible) notifyIcon_.Visible = false;

}

}

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.