- •1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ НЕОБХОДИМОСТИ АВТОМАТИЗАЦИИ ПРОЦЕССА УЧЕТА СДАЧИ ЭКЗАМЕНОВ ПРАВИЛ ПО ОХРАНЕ ТРУДА ЭКСПЛУАТАЦИИ ЭЛЕКТРОУСТАНОВОК В ОРГАНИЗАЦИИ
- •1.1 Описание предметной области организаций по организации экзамена по охране безопасности
- •1.2 Обзор и сравнение существующих программных продуктов для автоматизации учета сдачи экзаменов правил по охране труда эксплуатации электроустановок в организации
- •2 АНАЛИЗ И ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ АВТОМАТИЗАЦИИ УЧЕТА СДАЧИ ЭКЗАМЕНОВ ПРАВИЛ ПО ОХРАНЕ ТРУДА ЭКСПЛУАТАЦИИ ЭЛЕКТРОУСТАНОВОК В ОРГАНИЗАЦИИ
- •2.1 Постановка задачи проектирования информационной системы
- •2.2 Анализ предметной области проектирования информационной системы
- •Входные и выходные документы для разрабатываемой ИС учета сдачи экзаменов правил по охране труда эксплуатации электроустановок в организации, имеют форму бумажных носителей.
- •Входным документом является унифицированная форма Т-2 ‒ Личная карточка работника [7-8].
- •Выходными документами выступают:
- •2.3 Построение функциональных моделей, описывающих бизнес-процесс учета сдачи экзаменов правил по охране труда эксплуатации электроустановок в организации
- •3 РАЗРАБОТКА И ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ АВТОМАТИЗАЦИИ УЧЕТА СДАЧИ ЭКЗАМЕНОВ ПРАВИЛ ПО ОХРАНЕ ТРУДА ЭКСПЛУАТАЦИИ ЭЛЕКТРОУСТАНОВОК В ОРГАНИЗАЦИИ
- •3.1 Описание таблиц базы данных
- •3.2 Дерево программных модулей и схема взаимосвязей модулей и массивов данных
- •3.3 Алгоритм формирования отчета о результатах теста сотрудника
- •3.4 Инструкция пользователя по установке программного продукта и работе с ним
- •3.5 Способы и результаты тестирования программного продукта в различных режимах
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1INDIGO [Электронный ресурс]. URL: http://metmast.ru/ (дата обращения: 22.09.2018 г.)
2StartExam [Электронный ресурс]. URL: http://www.guriatiag.ru/ (дата обращения: 22.09.2018 г.)
3UniTest System [Электронный ресурс]. URL: http://kospb.com/ (дата обращения: 22.09.2018 г.)
4MyTest [Электронный ресурс]. URL: http://vipmetall.ru/ (дата обращения: 22.09.2018 г.)
5Техника безопасности на предприятии [Электронный ресурс]. URL: http://mramor67.ru/ (дата обращения: 22.09.2018 г.)
6Общероссийский трудовой кодэкс | [Электронный ресурс]. URL: https://xn--b1aeqp1f.xn--p1ai/ (дата обращения: 22.09.2018 г.)
7Обрабатывающая промышленность [Электронный ресурс]. URL: http://www.ekoslovar.ru/244.html (дата обращения: 22.09.2018 г.)
8Что такое CRM-системы и как их правильно выбирать? [Электронный ресурс]. URL: https://habrahabr.ru/company/trinion/blog/249633/ (дата обращения:
01.10.2018 г.)
9Что выбрать? Сравнения пяти популярных CRM-систем [Электронный ресурс]. URL: https://blog.themarfa.name/chto-vybrat-sravnieniie-populiarnykh- piati-crm-sistiem/ (дата обращения: 01.10. 2018 г.)
10Сравнительный анализ CRM-систем // Электронный журнал
«Постулат». №5. 2018. URL: http://e- postulat.ru/index.php/Postulat/article/view/1463/1495 (дата обращения: 01.10. 2018
г.)
11Исаев Г.Н. Проектирование информационных систем: Учебное пособие. М.: Омега-Л, 2013. 424 с.
12Коваленко В. Проектирование информационных систем. Форум, 2015.
320 с.
33
13 Арутюнов, В. В. Теория экономических информационных систем. М.:
Синтег, 2011. 360 с.
14 PHP, Ruby, Python – краткая характеристика трёх языков программирования | Веб-программирование [Электронный ресурс]. URL: http://www.internet-technologies.ru/articles/php-ruby-python-harakteristika-yazykov- programmirovaniya.html (дата обращения: 20.10. 2018 г.)
15 Основные методологии обследования организаций. Стандарт IDEF0. [Электронный ресурс]. URL: https://www.cfin.ru/vernikov/idef/idef0.shtml (дата обращения: 22.10. 2018 г.)
16 Концептуальная, логическая и физическая модели данных
[Электронный ресурс]. URL: https://studfiles.net/preview/5228984/page:2/ (дата обращения: 25.10. 2018 г.)
17 Создание физической модели в erWin [Электронный ресурс]. URL: https://studfiles.net/preview/6354061/page:52/ (дата обращения: 25.10. 2018 г.)
18Создание физической модели –bpWin [Электронный ресурс]. URL: https://itteach.ru/bpwin/sozdanie-fizicheskoy-modeli (дата обращения: 25.10. 2018
г.)
19Bitnami: пакетные приложения для любой платформы - облако, контейнер, виртуальная машина [Электронный ресурс]. URL : https://bitnami.com/redirect/to/90515/bitnami-rubystack-2.0.0-39-windows-installer. exe. (дата обращения: 20.11. 2018 г.)
20Методы тестирования программного обеспечения и их сравнение. Тестирование методом «черного ящика» и тестирование методом «белого ящика» [Электронный ресурс]. URL: http://fb.ru/article/247668/metodyi- testirovaniyaprogrammnogo-obespecheniya-i-ih-sravnenie-testirovanie-metodom- chernogo-yaschika-i-testirovanie-metodom-belogo-yaschika (дата обращения:
20.11.2018 г.)
34
ПРИЛОЖЕНИЕ А Глоссарий
CRM-система – прикладное программное обеспечение для организаций, предназначенное для автоматизации стратегий взаимодействия с заказчиками (клиентами).
Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby, реализует архитектурный шаблон Model-View- Controller для веб-приложений, а также обеспечивает их интеграцию с вебсервером и сервером баз данных.
Автоматизированная информационная система (АИС) – совокупность программно-аппаратных средств, предназначенных для автоматизации деятельности, связанной с хранением, передачей и обработкой информации.
База данных (БД) – совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ.
Бизнес-процесс – то совокупность взаимосвязанных мероприятий или работ, направленных на создание определённого продукта или услуги для потребителей.
Информационная система (ИС) – система, предназначенная для хранения, поиска и обработки информации, и соответствующие организационные ресурсы (человеческие, технические, финансовые и т. д.), которые обеспечивают и распространяют информацию.
Программный продукт – самостоятельное, отчуждаемое произведение, представляющее собой публикацию текста программы или программ на языке программирования или в виде исполняемого кода.
Фреймворк – это программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Эта платформа подходит для создания сайтов, бизнес-приложений и веб-сервисов.
35
ПРИЛОЖЕНИЕ Б Модель бизнес-процесса
Рисунок Г.1 – Концептуальный уровень диаграммы (уровень А0)
Рисунок Г.2 – Декомпозиция блока «Процесс учета работы сотрудников
36
компании» (уровень А1)
Рисунок Г.3 – Декомпозиция блока «Идентификация пользователя системы» (уровень А2)
37
Рисунок Г.4 – Декомпозиция блока «Автоматизация ведения табеля» (уровень А3)
Рисунок Г.5 – Декомпозиция блока «Организация прохождения техники безопасности» (уровень А32)
38
Рисунок Г.6 – Декомпозиция блока «Реализация ремонтных работ» (уровень А33)
Рисунок Г.7 – Декомпозиция блока «Работа с сервисными функциями» (уровень А5)
39
ПРИЛОЖЕНИЕ В Текст модулей объектов
Листинг Е.1 – Текст программного кода для создания справочника Заказы
/app/views/zakazs/index.html.erb: |
|
<% if zakaz.s_delete == false %> |
|||
|
|
|
|
<tr> |
|
<p id="notice"><%= notice %></p> |
<% else %> |
|
|||
|
|
|
|
<tr bgcolor="Red"> |
|
<h1>Справочник заказов</h1> |
<% end %> |
|
|||
|
|
|
|
<td><%= |
zakaz.klient.k_name |
<%= |
link_to |
'Новый |
заказ', |
%></td> |
|
new_zakaz_path %> |
|
|
<td><%= |
zakaz.tovar.vid |
|
<%= link_to 'Главная страница', |
%></td> |
|
|||
controller: 'home_page' %> |
|
|
<td><%= zakaz.date %></td> |
||
|
|
|
|
<td><%= zakaz.plan %></td> |
|
<table> |
|
|
|
<td><%= |
zakaz.stoimost |
<thead> |
|
|
%></td> |
|
|
<tr> |
|
|
|
<td><%= zakaz.fact %></td> |
|
<th>Клиент</th> |
|
<td><%= zakaz.oplat %></td> |
|||
<th>Изделие</th> |
|
<td><%= |
zakaz.nevip.character |
||
<th>Дата |
регистрации |
%></td> |
|
||
заказа</th> |
|
|
|
<td><%= zakaz.status %></td> |
|
<th>Дата планового выполнения |
<td><%= |
zakaz.s_delete |
|||
заказа</th> |
|
|
|
%></td> |
|
<th>Стоимость изделия</th> |
<td><%= link_to 'Показать', |
||||
<th>Дата |
фактического |
zakaz %></td> |
|
||
выполнения заказа</th> |
|
|
<td><%= link_to 'Изменить', |
||
<th>Оплата</th> |
|
edit_zakaz_path(zakaz) %></td> |
|||
<th>Причина |
невыполнения |
<% if session[:user_id] == 1 %> |
|||
заказа</th> |
|
|
|
<td><%= link_to 'Удалить', |
|
<th>Статус</th> |
|
zakaz, method: :delete, data: { confirm: 'Вы |
|||
<th>Удаление</th> |
|
уверены?' } %></td> |
|
||
<th colspan="3"></th> |
|
<% end %> |
|
||
</tr> |
|
|
|
</tr> |
|
</thead> |
|
|
<% end %> |
|
|
|
|
|
|
</tbody> |
|
<tbody> |
|
|
</table> |
|
|
<% @zakazs.each do |zakaz| %> |
|
|
40
/app/views/zakazs/_form.hrml.erb:
<%= form_for(@zakaz) do |f| %> <% if @zakaz.errors.any? %> <div id="error_explanation">
<h2><%= pluralize(@zakaz.errors.count, "error") %>
Произошла ошибка, заказ не запсан:</h2>
<ul>
<% @zakaz.errors.full_messages.each do |message| %>
<li><%= message %></li> <% end %>
</ul>
</div> <% end %>
<div class="field">
<%= f.label :Клиент %><br>
<%= f.collection_select(:klient_id, Klient.all, :id, :k_name) %>
</div>
<div class="field">
<%= f.label :Изделие %><br> <%= f.collection_select(:tovar_id,
Tovar.all, :id, :vid) %> </div>
<div class="field">
<%= f.label
:Дата_регистрации_заказа %><br>
<%= f.date_select :date %> </div>
<div class="field">
<%= f.label
:Дата_планового_выполнения_заказа
%><br>
<%= f.date_select :plan %> </div>
<div class="field">
<%= f.label :Стоимость_изделия
%><br>
<%= f.number_field :stoimost %> </div>
<div class="field">
<%= f.label :Дата_фактического_выполнения_заказа
%><br>
<%= f.date_select :fact %> </div>
<div class="field">
<%= f.label :Оплата %><br> <%= f.check_box :oplat %> </div>
<div class="field">
<%= f.label
:Причина_невыполнения_заказа %><br>
<%= f.collection_select(:nevip_id, Nevip.all, :id, :character) %>
</div>
<div class="field">
<%= f.label :Статус %><br> <%= f.check_box :status %> </div>
<div class="field">
<%= f.label :Удаление %><br> <%= f.check_box :s_delete %> </div>
<div class="actions">
<%= f.submit "Добавить заказ"
%>
</div> <% end %>
/app/views/zakazs/edit.hrml.erb: |
|
/app/views/zakazs/new.hrml.erb: |
||
<h1>Редактирование заказа</h1> |
|
<h1>Новый заказ</h1> |
||
<%= render 'form2' %> |
|
|
<%= render 'form' %> |
|
<%= link_to 'Показать', @zakaz %> | |
|
<%= link_to 'Назад', zakazs_path %> |
||
<%= link_to 'Назад', zakazs_path %> |
|
|
|
|
|
|
|
<p> |
|
/app/views/zakazs/show.hrml.erb: |
|
<strong>Дата факт. выполнения |
||
|
|
заказа:</strong> |
|
|
<p id="notice"><%= notice %></p> |
|
<%= @zakaz.fact %> |
||
<p> |
|
|
</p> |
|
|
|
|
|
|
<strong>Клиент:</strong> |
|
<p> |
|
|
<%= @zakaz.klient.k_name %> |
|
<strong>Оплата:</strong> |
||
</p> |
|
|
<%= @zakaz.oplat %> |
|
<p> |
|
|
</p> |
|
|
|
|
|
|
<strong>Изделие:</strong> |
|
<p> |
|
|
<%= @zakaz.tovar.vid %> |
<strong>Причина |
невыполнения |
||
</p> |
|
заказа:</strong> |
|
|
|
|
<%= @zakaz.nevip.character %> |
||
<p> |
|
</p> |
|
|
<strong>Дата |
регистрации |
|
|
|
заказа:</strong> |
|
<p> |
|
|
<%= @zakaz.date %> |
|
<strong>Статус:</strong> |
||
</p> |
|
<%= @zakaz.status %> |
|
|
<p> |
|
</p> |
|
|
|
|
|
|
|
<strong>Дата план. выполнения |
<p> |
|
|
|
заказа:</strong> |
|
<strong>Удаление:</strong> |
||
<%= @zakaz.plan %> |
|
<%= @zakaz.s_delete %> |
|
|
</p> |
|
</p> |
|
|
<p> |
|
<%= |
link_to |
'Изменить', |
<strong>Стоимость:</strong> |
edit_zakaz_path(@zakaz) %> | |
|||
<%= @zakaz.stoimost %> |
<%= |
link_to 'Назад', |
zakazs_path %> |
|
</p> |
|
|
|
|
Листинг Е.2 – Текст программного кода для создания отчета о Неоплаченных заказах
app/controllers/fact_controller.rb: |
|
def search |
|
||
|
|
|
|
||
class |
FaktController |
< |
@year_s |
= |
|
Date.civil(params[:start]["written_on(1i)"].to_ |
|||||
ApplicationController |
|
||||
|
i,params[:start]["written_on(2i)"].to_i, |
|
|||
def index |
|
|
|
||
|
|
params[:start]["written_on(3i)"].to_i).year |
|
||
end |
|
|
|
||
|
|
@month_s |
= |
||
|
|
|
Date.civil(params[:start]["written_on(1i)"].to_ i,params[:start]["written_on(2i)"].to_i, params[:start]["written_on(3i)"].to_i).month
@day_s = Date.civil(params[:start]["written_on(1i)"].to_ i,params[:start]["written_on(2i)"].to_i,
/app/views/uvl_hobby/index.html.erb:
<h1>Отчет о неоплаченных заказах</h1>
<%= link_to 'Главная страница', controller: 'home_page' %>
<br><br>
<%= form_tag("search", method: "get") do %>
<%= label_tag(:start, "Введите текущую дату:") %>
<%= date_select(:start, "written_on")
/app/views/uvl_hobby/search.html.erb:
<h1>Отчет о неоплаченных заказах</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> |
<%= link_to 'Назад', controller: 'fakt'
%>
<br><br>
<table border="1"> <th>Код</th> <th>Клиент</th> <th>Изделие</th> <th>Стоимость</th>
<%= Zakaz.select("zakazs.id, zakazs.klient_id, zakazs.tovar_id, zakazs.fact, zakazs.stoimost, zakazs.oplat").joins("inner join tovars on
params[:start]["written_on(3i)"].to_i).day end
end
%>
<br><br>
<%= label_tag(:q, "Введите факт оплаты:") %>
<% fact_array = Zakaz.all.map { |zakaz| [zakaz.oplat] } %>
<%= select_tag(:q, options_for_select(fact_array)) %>
<br><br>
<%= submit_tag("Искать") %>
<% end %>
tovars.id = zakazs.tovar_id").joins("inner join klients on klients.id = zakazs.klient_id").where("date_part('year', zakazs.fact) <= ? and date_part('month', zakazs.fact) <= ? and date_part('day', zakazs.fact) <= ?", @year_s, @month_s, @day_s).find_each do |zakaz|%>
<tr>
<td><%=
zakaz.id %></td>
<td><%= zakaz.klient.k_name %></td>
<td><%=
zakaz.tovar.vid %></td>
<td><%=
zakaz.stoimost %></td> </tr>
<% end %>
43