Курсовые работы / ПРИС К_13
.pdfТаблица Д.6 – Атрибуты сущности «Сведения о произошедших нарушениях»
Название |
Наименование |
Описание |
|
|
Тип |
Примечание |
|
|||
таблицы |
атрибута |
|
|
|
|
|
|
|
|
|
Nar (Сведения |
ID |
Уникальный номер для |
integer |
Генерируется |
|
|||||
о нарушениях |
(Код нарушения) |
идентификации |
вида |
|
самостоятельно |
|||||
графика |
|
графика |
|
|
для |
|
|
|
|
|
работы) |
|
определенного |
|
|
|
|
|
|
||
|
|
сотрудника, |
ключевое |
|
|
|
|
|
||
|
|
поле |
|
|
|
|
|
|
|
|
|
sotrud |
Табельный |
|
номер |
belongs_to |
Берется |
|
из |
||
|
(Табельный |
конкретного |
|
|
|
справочника |
|
|||
|
номер |
сотрудника |
компании, |
|
«Должностные |
|||||
|
сотрудника) |
отработавшего |
на |
|
сведения |
|
о |
|||
|
|
текущую |
|
|
дату |
|
сотрудниках |
|
||
|
|
определенное время |
|
компании» |
|
|
||||
|
prich |
Кратное |
разъяснение |
character_ |
|
|
|
|
||
|
(Причина |
причины нарушения |
varying |
|
|
|
|
|||
|
возникновения |
|
|
|
|
|
|
|
|
|
|
нарушения) |
|
|
|
|
|
|
|
|
|
|
d_nar |
Дата |
|
текущего |
date |
|
|
|
|
|
|
(Текущая дата) |
нарушения |
графика |
|
|
|
|
|
||
|
|
работ сотрудника |
|
|
|
|
|
|||
|
status |
Отметка о нахождении |
boolean |
Обозначение |
для |
|||||
|
|
записи |
в |
состоянии |
|
предотвращения |
||||
|
|
редактирования каким- |
|
редактирования |
||||||
|
|
либо пользователем |
|
записи |
|
|
||||
|
|
|
|
|
|
|
одновременно |
|
||
|
|
|
|
|
|
|
несколькими |
|
||
|
|
|
|
|
|
|
пользователями |
|||
|
s_delete |
Отметка |
|
|
о |
boolean |
Ставится |
|
|
|
|
|
необходимости |
|
|
значение |
«true» |
||||
|
|
удаления |
|
|
данной |
|
пользователем |
|
||
|
|
записи из сущности |
|
для |
|
|
|
|||
|
|
|
|
|
|
|
администратора, |
|||
|
|
|
|
|
|
|
так |
как |
сами |
|
|
|
|
|
|
|
|
пользователи |
не |
||
|
|
|
|
|
|
|
имеют |
прав |
на |
|
|
|
|
|
|
|
|
удаление |
|
|
|
|
created_at |
Автоматическая |
метка |
timestamp |
Генерируется |
|
||||
|
|
времени, |
определяется |
|
самостоятельно |
|||||
|
|
первичным |
внесением |
|
|
|
|
|
||
|
|
записи |
|
|
|
|
|
|
|
|
|
updated_as |
Автоматическая |
метка |
timestamp |
Генерируется |
|
||||
|
|
времени, |
определяется |
|
самостоятельно |
|||||
|
|
последним изменением |
|
|
|
|
|
|||
|
|
записи |
|
|
|
|
|
|
|
|
62
Таблица Д.7 – Атрибуты сущности «Выезды на места аварий»
Название |
Наименование |
Описание |
|
|
|
Тип |
Примечание |
|
|
|
таблицы |
атрибута |
|
|
|
|
|
|
|
|
|
Avar |
ID |
Уникальный |
номер |
для |
integer |
Генерируется |
|
|
||
(Выезды |
(Код выезда) |
идентификации |
|
|
самостоятельно |
|
||||
на места |
|
определенного |
выезда |
|
|
|
|
|
||
аварий) |
|
конкретным сотрудником, |
|
|
|
|
|
|||
|
|
ключевое поле |
|
|
|
|
|
|
|
|
|
sotrud |
Табельный |
|
|
номер |
belongs_to |
Берется |
|
|
из |
|
(Табельный |
конкретного |
сотрудника |
|
справочника |
|
|
|||
|
номер |
компании, |
|
занимаемого |
|
«Должностные |
|
|||
|
сотрудника) |
определенную |
должность, |
|
сведения |
|
|
о |
||
|
|
выполняемого |
данную |
|
сотрудниках |
|
|
|||
|
|
ремонтную работу |
|
|
компании» |
|
|
|||
|
vid_rem |
Уникальный |
номер |
для |
belongs_to |
Берется |
|
|
из |
|
|
(Вид ремонтной |
идентификации |
|
|
справочника |
«Виды |
||||
|
работы) |
определенного |
|
вида |
|
ремонтных |
работ, |
|||
|
|
ремонтных работ |
|
|
осуществляемых |
|
||||
|
|
|
|
|
|
|
компанией» |
|
|
|
|
d_avar |
Дата выезда сотрудника на |
date |
|
|
|
|
|||
|
(Дата выезда) |
место аварии |
|
|
|
|
|
|
|
|
|
a_avar |
Местонахождение |
|
character_ |
|
|
|
|
||
|
(Адрес аварии) |
проводимой |
ремонтной |
varying |
|
|
|
|
||
|
|
работы |
|
|
|
|
|
|
|
|
|
rez_avar |
Результат |
выполненных |
boolean |
|
|
|
|
||
|
(Результат |
ремонтных работ |
|
|
|
|
|
|
||
|
выполнения |
|
|
|
|
|
|
|
|
|
|
ремонтных |
|
|
|
|
|
|
|
|
|
|
работ) |
|
|
|
|
|
|
|
|
|
|
status |
Отметка |
о |
нахождении |
boolean |
Обозначение |
|
для |
||
|
|
записи |
в |
состоянии |
|
предотвращения |
|
|||
|
|
редактирования каким-либо |
|
редактирования |
|
|||||
|
|
пользователем |
|
|
|
записи |
|
|
|
|
|
|
|
|
|
|
|
одновременно |
|
|
|
|
|
|
|
|
|
|
несколькими |
|
|
|
|
|
|
|
|
|
|
пользователями |
|
||
|
s_delete |
Отметка о |
необходимости |
boolean |
Ставится |
значение |
||||
|
|
удаления данной записи из |
|
«true» |
|
|
|
|||
|
|
сущности |
|
|
|
|
пользователем |
для |
||
|
|
|
|
|
|
|
администратора, |
так |
||
|
|
|
|
|
|
|
как |
|
сами |
|
|
|
|
|
|
|
|
пользователи |
|
не |
|
|
|
|
|
|
|
|
имеют |
прав |
на |
|
|
|
|
|
|
|
|
удаление |
|
|
|
|
created_at |
Автоматическая |
метка |
timestamp |
Генерируется |
|
|
|||
|
|
времени, |
|
определяется |
|
самостоятельно |
|
|||
|
|
первичным |
|
внесением |
|
|
|
|
|
|
|
|
записи |
|
|
|
|
|
|
|
|
|
updated_as |
Автоматическая |
метка |
timestamp |
Генерируется |
|
|
|||
|
|
времени, |
|
определяется |
|
самостоятельно |
|
|||
|
|
последним |
|
изменением |
|
|
|
|
|
|
|
|
записи |
|
|
|
|
|
|
|
|
63
Таблица Д.8 – Атрибуты сущности «Пользователи»
Название |
Наименование |
Описание |
|
Тип |
Примечание |
|
таблицы |
атрибута |
|
|
|
|
|
User |
id (Код |
Уникальный |
|
integer |
Генерируется |
|
(Пользователи) |
пользователя) |
номер |
|
для |
|
самостоятельно |
|
|
идентификации |
|
|
||
|
|
конкретного |
|
|
|
|
|
|
пользователя |
|
|
|
|
|
|
системы, |
|
|
|
|
|
|
ключевое поле |
|
|
||
|
name (Логин) |
Логин |
|
|
character_varying |
|
|
|
пользователя |
для |
|
|
|
|
|
осуществления |
|
|
||
|
|
входа |
|
в |
|
|
|
|
информационную |
|
|
||
|
|
систему |
|
|
|
|
|
password_digest |
Пароль |
|
|
character_varying |
|
|
(Пароль) |
пользователя |
для |
|
|
|
|
|
осуществления |
|
|
||
|
|
входа |
|
в |
|
|
|
|
информационную |
|
|
||
|
|
систему |
|
|
|
|
|
created_at |
Автоматическая |
timestamp |
Генерируется |
||
|
|
метка |
времени, |
|
самостоятельно |
|
|
|
определяется |
|
|
|
|
|
|
первичным |
|
|
|
|
|
|
внесением записи |
|
|
||
|
updated_as |
Автоматическая |
timestamp |
Генерируется |
||
|
|
метка |
времени, |
|
самостоятельно |
|
|
|
определяется |
|
|
|
|
|
|
последним |
|
|
|
|
|
|
изменением |
|
|
|
|
|
|
записи |
|
|
|
|
64
ПРИЛОЖЕНИЕ Е
Текст модулей объектов
Листинг Е.1 – Текст программного кода для создания справочника «Выезды на места аварий»
Листинг Е.1.1 – Текст программного кода для создания справочника «Выезды на места аварий» из /app/views/avars/index.html.erb
<p id="notice"><%= notice %></p> <h1>Справочник выездов на места аварий</h1> <% if session[:user_id] %>
<%= button_to 'Выйти', logout_path, method: :delete %>
<% end %>
<% if session[:user_id] == 3 %>
<%= link_to 'Добавить новую запись о выезде', new_avar_path %> <% end %> <%= link_to 'Главная страница', controller: 'home_page' %>
<table>
<thead>
<tr>
<th>Табельный номер сотрудника, осуществлявшего локализацию</th> <th>Вид ремонтной работы</th>
<th>Дата</th> <th>Адрес аварии</th>
<th>Результат выполнения ремонтных работ</th>
<th>Статус</th>
<th colspan="3"></th> </tr>
</thead>
<tbody>
<% @avars.each do |avar| %> <% if avar.s_delete == false %> <tr>
<% else%>
<tr bgcolor="Red"> <%end%>
<td><%= avar.sotrud.id %></td> <td><%= avar.vid_rem.n_rem %></td> <td><%= avar.d_avar %></td> <td><%= avar.a_avar %></td> <td><%= avar.rez_avar %></td> <td><%= avar.status %></td>
<td><%= link_to 'Показать', avar %></td>
65
<% if session[:user_id] == 3 %>
<td><%= link_to 'Редактировать', edit_avar_path(avar) %></td> <% end
%>
<% if session[:user_id] == 1 %>
<td><%= link_to 'Удалить', avar, method: :delete, data: { confirm: 'Вы уверены, что хотите удалить данную запись?' } %></td>
<%end%>
</tr>
<% end %> </tbody>
</table>
<br>
Листинг Е.1.2 – Текст программного кода для создания справочника «Выезды на места аварий» из /app/views/ avars/_form.html.erb
<%= form_for(@avar) do |f| %> <% if @avar.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@avar.errors.count, "error") %> Произошла ошибка,
сведения не записаны:</h2> <ul>
<% @avar.errors.full_messages.each do |message| %> <li><%= message %></li>
<% end %> </ul>
</div> <% end %>
<div class="field">
<%= f.label :Табельный_номер_сотрудника %><br> <%= f.collection_select(:sotrud_id, Sotrud.all, :id, :id) %>
</div>
<div class="field">
<%= f.label :Осуществляемая_ремонтная_работа %><br> <%= f.collection_select(:vid_rem_id, VidRem.all, :id, :n_rem) %>
</div>
<div class="field">
<%= f.label :Дата_выезда_на_место_аварии %><br>
<%= f.date_select :d_avar, start_year: 2015, end_year:2018 %> </div>
<div class="field">
<%= f.label :Адрес_проводимой_ремонтной_работы %><br> <%= f.text_field :a_avar %>
</div>
66
<div class="field">
<%= f.label :Результат_выполнения_ремонтной_работы %><br> <%= f.check_box :rez_avar %>
</div>
<div class="field">
<%= f.label :Статус %><br>
<%= f.check_box :status %> </div>
<div class="field">
<%= f.label :Удаление %><br>
<%= f.check_box :s_delete %> </div>
<% if session[:user_id] == 3 %> <div class="actions">
<%= f.submit "Добавить запись об аварии" %>
</div> <% end %> <% end %>
Листинг Е.1.3 – Текст программного кода для создания справочника «Выезды на места аварий» из /app/views/ avars /edit.html.erb
<h1>Редактирование записи об аварии</h1>
<% if @avar.status==true %>
<p><fontcolor="Red" size="50"><%= flash[:notice] = "Запись находится в состоянии редактирования!" %></font></p>
<% end %>
<%= render 'form' %>
<%= link_to 'Показать', @avar %> |
<%= link_to 'Назад', avars_path %>
Листинг Е.1.4 – Текст программного кода для создания справочника «Выезды на места аварий» из /app/views/ avars /new.html.erb
<h1>Новая авария</h1>
<%= render 'form' %>
<%= link_to 'Назад', avars_path %>
Листинг Е.1.5 – Текст программного кода для создания справочника «Выезды на места аварий» из /app/views/ avars /show.html.erb
<p id="notice"><%= notice %></p> <p>
67
<strong>Табельный номер учавствовавшего в ремонте сотрудника:</strong> <%= @avar.sotrud.id %>
</p>
<p>
<strong>Осуществляемая ремонтная работа:</strong> <%= @avar.vid_rem.n_rem %>
</p>
<p>
<strong>Дата выезда на место аварии:</strong> <%= @avar.d_avar %>
</p>
<p>
<strong>Адрес проводимой ремонтной работы :</strong> <%= @avar.a_avar %>
</p>
<p>
<strong>Результат выполнения ремонтной работы:</strong> <%= @avar.rez_avar %>
</p>
<p>
<strong>Статус:</strong>
<%= @avar.status %> </p>
<p>
<strong>Удаление:</strong>
<%= @avar.s_delete %> </p>
<% if session[:user_id] == 3 %>
<%= link_to 'Редактирование записи', edit_avar_path(@avar) %> | <% end %>
<%= link_to 'Назад', avars_path %>
Листинг Е.2 – Текст программного кода для создания Отчета о локализованных авариях в заданный промежуток времени
Листинг Е.2.1 – Текст программного кода для создания Отчета о
локализованных |
авариях |
в |
заданный |
промежуток |
времени |
из |
app/controllers/local_avar_controller.rb |
|
|
|
|||
class LocalAvarController < ApplicationController |
|
|
|
|||
def index |
|
|
|
|
|
|
end |
|
|
|
|
|
|
def search |
|
|
|
|
|
|
@year_s |
|
|
|
|
|
= |
|
|
|
68 |
|
|
|
Date.civil(params[:start]["written_on(1i)"].to_i,params[:start]["written_on(2i)"].to_i, params[:start]["written_on(3i)"].to_i).year
@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, params[:start]["written_on(3i)"].to_i).day
@year_f = Date.civil(params[:finish]["written_on(1i)"].to_i,params[:finish]["written_on(2i)"].to _i, params[:finish]["written_on(3i)"].to_i).year
@month_f = Date.civil(params[:finish]["written_on(1i)"].to_i,params[:finish]["written_on(2i)"].to _i, params[:finish]["written_on(3i)"].to_i).month
@day_f = Date.civil(params[:finish]["written_on(1i)"].to_i,params[:finish]["written_on(2i)"].to _i, params[:finish]["written_on(3i)"].to_i).day
end end
Листинг Е.2.2 – Текст программного кода для создания Отчета о локализованных авариях в заданный промежуток времени из
/app/views/local_avar/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") %> <br><br>
<%= label_tag(:finish, "Введите конечную дату:") %>
<%= date_select(:finish, "written_on") %> <br><br>
<%= label_tag(:q, "Введите результат выполнения ремонтных работ") %>
<%= local_avar_array = Avar.all.map { |avar| [avar.rez_avar] } %> <%= select_tag(:q, options_for_select(local_avar_array)) %> <br><br>
<%= submit_tag("Искать") %> <% end %>
69
Листинг Е.2.3 – Текст программного кода для создания Отчета о локализованных авариях в заданный промежуток времени из
/app/views/uvl_hobby/search.html.erb
<h1>Отчет о локализованных авариях в заданный промежуток времени</h1>
<%= link_to 'Главная страница', controller: 'home_page' %> <%= link_to 'Назад', controller: 'local_avar' %>
<br><br>
<table border="1"> <th>Код аварии</th>
<th>Табельный номер сотрудника, учавствовавшего в локализации</th> <th>Вид ремонтной работы</th>
<th>Адрес аварии</th>
<th>Результат выполнения ремонтных работ</th> <th>Дата происшествия</th>
<%= Avar.select("avars.id, avars.sotrud_id, avars.vid_rem_id, avars.a_avar, avars.rez_avar, avars.d_avar").joins("inner join sotruds on sotruds.id = avars.sotrud_id").joins("inner join vid_rems on vid_rems.id = avars.vid_rem_id").where("date_part('year', avars.d_avar) >= ? and date_part('month', avars.d_avar) >= ? and date_part('day',avars.d_avar) >= ? and date_part('year', avars.d_avar) <= ? and date_part('month', avars.d_avar) <= ? and date_part('day', avars.d_avar)<= ?", @year_s, @month_s, @day_s, @year_f, @month_f, @day_f).find_each do |avar|%>
<tr>
<td><%= avar.id %></td> <td><%= avar.sotrud.id %></td> <td><%= avar.vid_rem.n_rem %></td>
<td><%= avar.a_avar %></td> <td><%= avar.rez_avar %></td> <td><%= avar.d_avar %></td>
</tr> <% end %>
70