- •ВВЕДЕНИЕ
- •1.1 Общая характеристика водоснабжающих организаций
- •1.2 Обзор и сравнение существующих программных продуктов для автоматизации учета рабочего времени в водоснабжающей организации
- •Выводы по первому разделу
- •2 ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ АВТОМАТИЗАЦИИ ОПЕРАТИВНОГО УЧЕТА РАБОЧЕГО ВРЕМЕНИ ВОДОСНАБЖАЮЩЕЙ ОРГАНИЗАЦИИ
- •2.1 Постановка задачи проектирования информационной системы
- •2.2 Анализ предметной области проектирования информационной системы
- •Предметной областью разработки является деятельность водоснабжающей организации по учету рабочего времени.
- •1) Обработка сведений о сотрудниках;
- •2) Учет и анализ информации о текущем графике работ конкретного сотрудника;
- •3) Обработка данных о выезде на места аварий;
- •4) Работа со сведениями о нарушениях графика работ сотрудников;
- •5) Вывод информации анализа в наглядной форме, в виде отчетов.
- •Основными предполагаемыми пользователями системы является:
- •Гость ‒ лицо, не имеющее существенных прав. Имеет право на просмотр некоторых отчётов.
- •Входные и выходные документы для разрабатываемой ИС учета рабочего времени сотрудников, имеют форму бумажных носителей.
- •Входным документом является унифицированная форма Т-12 ‒ документ двойного назначения [7-8].
- •Выходными документами выступают:
- •В качестве СУБД выбрано PostgreSQL, клиент для работы с БД pgAdmin3, так как присутствует опыт работы, так же СУБД удобна для использования [11].
- •2.3 Построение функциональных моделей, описывающих бизнес-процесс учета рабочего времени сотрудников в водоснабжающей организации
- •Выводы по второму разделу
- •В результате написания второго раздела курсового проекта был проведен анализ предметной области, выявлены категории пользователей разрабатываемого приложения.
- •Также была определена цель и задачи разработки информационной системы, которая предназначена для автоматизации процесса учета рабочего времени сотрудников водоснабжающей организации.
- •Были построены следующие модели для последующего проектирования ИС: функциональная модель бизнес-процесса по стандарту IDEF0, логическая и физическая модель данных по стандарту IDEF1X.
- •3 РАЗРАБОТКА И ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ АВТОМАТИЗАЦИИ УЧЕТА РАБОЧЕГО ВРЕМЕНИ СОТРУДНИКОВ В ВОДОСНАБЖАЮЩЕЙ ОРГАНИЗАЦИИ
- •3.1 Описание таблиц баз данных
- •3.2 Дерево программных модулей
- •3.3 Схема взаимосвязей модулей и массивов данных
- •3.4 Алгоритм формирования отчета обо всех авариях, которые были локализованы
- •3.5 Инструкция пользователя по установке программного продукта и работа с ним
- •3.6 Способы и результаты тестирования программного продукта в различных режимах
- •Выводы по третьему разделу
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- •ПРИЛОЖЕНИЕ А
- •ПРИЛОЖЕНИЕ Б
- •ПРИЛОЖЕНИЕ В
- •ПРИЛОЖЕНИЕ Г
- •План выполнения курсового проекта
- •Рисунок Г.1 ‒ План курсового проекта
- •Рисунок Г.2 ‒ План курсового проекта
- •Рисунок Г.3 ‒ План курсового проекта
- •Рисунок Г.4 ‒ План курсового проекта
- •ПРИЛОЖЕНИЕ Д
- •Листинг Д.2 ‒ Отчеты
.tddl:first-child {
border-left: 2px solid rgb(7, 150, 175);
}
.tddl:nth-child(2){ text-align: left;
}
.mens8{
background-color: rgb(255, 255, 255); border-radius: 20px;
height: 480px; width:480px; position:absolute; top:43%; left:47%;
margin:-200px 0 0 -200px; background-image: -webkit-linear-
gradient(-200deg,#0874b3,#00d7fc);
}
.men8{ margin-left: 55px;
margin-top: 50px; font-family: Roboto,sans-serif;
}
.mens9{
background-color: rgb(255, 255, 255); border-radius: 20px;
height: 370px; width:480px; position:absolute; top:49%; left:47%;
margin:-200px 0 0 -200px; background-image: -webkit-linear-gradient(-
200deg,#0874b3,#00d7fc);
}
.men9{ margin-left: 55px; margin-top: 50px;
font-family: Roboto,sans-serif;
}
Листинг Д.2 ‒ Отчеты
<h1>Отчет поиск локализованных аварий по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> <br><br>
<%= form_tag("search", method: "get") do %>
<%= label_tag(:start, "Введите начальную дату:") %>
<%= date_select(:start, "written_on") %> <br><br>
<%= label_tag(:finish, "Введите конечную дату:") %> <%= date_select(:finish, "written_on") %>
<br><br>
<%= submit_tag("Искать") %> <% end %>
</div>
<h1>Отчет поиск локализованных аварий по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> | <%= link_to 'Назад', controller: 'search_dateava' %> <br><br>
<table border="1"> <th>Код</th> <th>Дата аварии</th>
57
<th>Дата аварии</th>
<th>Дата локализации аварии</th> <th>Результат ремонта</th>
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.where("date_part('year', avars.data_k) >= ? and date_part('month', avars.data_k) >= ? and date_part('day', avars.data_k)
>= ? and date_part('year', avars.data_k) <= ? and date_part('month', avars.data_k) <= ? and date_part('day', avars.data_k)
<= ? and results.result = 'Локализована в срок' ",@year_s, @month_s, @day_s, @year_f, @month_f, @day_f).find_each do |avar|%>
<tr>
<td><%= avar.id %></td> <td><%= avar.vid.vid %></td> <td><%= avar.datanah %></td> <td><%= avar.data_k %></td>
<td><%= avar.result.result %></td> </tr>
<% end %>
<div class="men13">
<h1>Отчет работы сотрудников по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> <br><br>
<%= form_tag("search", method: "get") do %>
<%= label_tag(:start, "Введите начальную дату:") %>
<%= date_select(:start, "written_on") %> <br><br>
<%= label_tag(:finish, "Введите конечную дату:") %> <%= date_select(:finish, "written_on") %>
<br><br>
<%= submit_tag("Искать") %> <% end %>
</div>
<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Sheet1"> <Table>
<Row>
<Cell><Data ss:Type="String">Код</Data></Cell> <Cell><Data ss:Type="String">Фамилия</Data></Cell> <Cell><Data ss:Type="String">Имя</Data></Cell> <Cell><Data ss:Type="String">Отчество</Data></Cell> <Cell><Data ss:Type="String">Результат</Data></Cell> </Row>
58
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.find_each do |avar|%> <Row>
<Cell><Data ss:Type="Number"><%= avar.id %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.fam %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.name %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.sotr.otch %></Data></Cell> <Cell><Data ss:Type="String"><%= avar.result.result %></Data></Cell> </Row>
<% end %> </Table> </Worksheet> </Workbook>
<h1>Отчет работы сотрудников по дате</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> | <%= link_to 'Назад', controller: 'search_itgoth' %>
<%=link_to 'Скачать Excel', 'http://localhost:3000/search_itgoth/index.xls', data: { confirm: "Скачать файл?" } %>
<br><br>
<table border="1"> <th>Код</th> <th>Фамилия</th> <th>Имя</th> <th>Отчество</th>
<th>Дата аварии</th> <th>Дата устранения</th>
<th>Результат</th>
<%= Avar.includes(:vid).joins("avars INNER JOIN results ON avars.result_id = results.id")
.where("date_part('year', avars.data_k) >= ? and date_part('month', avars.data_k) >= ? and date_part('day', avars.data_k)
>= ? and date_part('year', avars.data_k) <= ? and date_part('month', avars.data_k) <= ? and date_part('day', avars.data_k)
<= ? ",@year_s, @month_s, @day_s, @year_f, @month_f, @day_f).find_each do |avar|%> <tr>
<td><%= avar.id %></td> <td><%= avar.sotr.fam %></td> <td><%= avar.sotr.name %></td> <td><%= avar.sotr.otch %></td> <td><%= avar.datanah %></td> <td><%= avar.data_k %></td>
<td><%= avar.result.result %></td> </tr>
<% end %>
59