Скачиваний:
7
Добавлен:
17.06.2023
Размер:
3.41 Mб
Скачать

Таблица Д.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

Соседние файлы в папке Курсовые работы