Дипломная работа: Разработка модулей информационных автоматизированных систем по управлению стадом крупного рогатого скота на малых формах

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

После того, как пользователь авторизовался, приложение отображает следующий раздел - «Список ферм пользователя». Пользователь может выбрать одну из предложенных ферм или перейти в раздел «Создание и редактирование информации о ферме». Также присутствует механизм автоматического выбора ферм, если в специальном файле во внутренней памяти устройства «login_password.xml» есть информация о выбранной ферме.

Когда пользователь выбрал нужную ферму, приложение отображает «Главный раздел», который содержит в себе пять других разделов: «Сводка по ферме», «Список животных», «Надой животных фермы», «события», «Главное меню приложения».

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

Из раздела «Сводка по ферме» пользователь может попасть в раздел «Групповой ввод удоя» по клику на одно из четырёх полей: утреннее, дневное, вечернее, дополнительное.

Из раздела «Список животных» пользователь может попасть в один из трёх разделов: «Список архивных животных», «Создание и редактирование информации о животном» и «Карточка животного».

Из раздела «Список архивных животных» по клику на элемент списка пользователь может попасть в раздел «Карточка животного».

Из раздела «Карточка животного» пользователь может попасть в один из шести разделов - «Создание и редактирование информации о животном», «Ввод удоя животного», «Создание и редактирование информации об охоте животного», «Создание и редактирование информации об отелах животного», «Создание и редактировании информации о группе животного» и «История смена статуса животного».

Из раздела «Ввод удоя животного» пользователь по клику на ячейку календаря нужного дня может попасть в раздел «Журнал ввода удоя животного».

Из раздела «События» пользователь может попасть в один из двух разделов: по клику на сектор внешнего круга - «Список типовых угроз», по клику на центральный круг - «Убытки».

Из раздела «Список типовых угроз» пользователь по клику на один из предложенных типов угроз может попасть в раздел «Сообщения пользователя».

Из раздела «Сообщения пользователя» пользователь по клику по элементу списка может попасть в раздел «Просмотр информации о событии».

Из последнего из пяти главных разделов «Главное меню приложения» пользователь может попасть в один из четырёх разделов:

1) при клике на кнопку «Пользователь» - в раздел «Смена пароля»;

2) при клике на кнопку «Справка» - в раздел «Справка приложения»;

3) при клике на кнопку «Список организаций. Выбрано» - в раздел «Список ферм пользователя»;

4) при клике на кнопку «О программе» - в раздел «О приложении»;

Из раздела «Список ферм пользователя» по клику на картинку «подробнее» пользователь может попасть в раздел «Создание и редактирование информации о ферме».

Последней возможностью в разделе «Главное меню приложения» является переход пользователя в раздел «Авторизация пользователя» по клику на кнопку «Выйти из учётной записи».

2.4 Архитектура приложения

Архитектура приложения является «клиент-серверная». Клиент-серверная архитектура [22] - набор правил взаимодействия между двумя и более программным обеспечением, один из которых является поставщиками услуг, а все остальные - заказчиками услуг. Соответственно, поставщики услуг называются серверы, а заказчики услуг - клиентами. Общение между клиентом и сервером обычно происходит через вычислительную сеть, обычно через сеть интернет. Программы-клиенты посылают запросы, а программы-серверы, получив такие запросы, обрабатывают их и выполняют определённый действия, такие как сохранение новых данных, обработка существующих данных, отправку существующих данных программе-клиенту, а также удаление данных.

У такой архитектуры есть следующие достоинства:

1) все данные хранятся на сервере, где организовать безопасность намного легче, чем на клиентах;

2) все данные хранятся на сервере, поэтому легче настроить контроль выдаваемы полномочий доступа к данным.

3) большинство ресурсозатратных вычислений выполняются на сервере, поэтому требования к устройствам-клиентам снижаются.

Как и достоинства у данной архитектуры существуют недостатки:

1) неработоспособный сервер означает неработоспособная вся система в целом;

2) требуются дополнительные специалисты в этой области;

3) высокая стоимость оборудования.

Основным элементов в архитектуре разработанного приложения-клиента является класс приложения «AgrobiodataApp.kt». Этот класс содержит параметры, необходимые для работы всех других разделом, а также для постоянного доступа к ним.

Следующими важными элементами приложения является классы активности. Всего реализовано пять активности, которые выполняют каждая свою задачу:

1) раздел «Логин» (LoginActivity), отвечает за авторизацию пользователя и получение специального ключа авторизации - token. С помощью этого ключа происходит выполнение всех действий пользователя. Token формируется на стороне сервера и обновляется раз в день. Также присутствует возможность сохранение связки введённого логина и пароля во внутренней памяти устройства для дальнейшего автоматической авторизации пользователя без необходимости ручного ввода;

2) раздел «О приложении» (AboutActivity), отвечает за отображение авторизованному пользователю информации об приложении:

a. логотип приложения;

b. версия и дата сборки приложения;

c. правообладатель приложения;

d. пользовательское соглашение;

e. обратная связь с разработчиком.

3) раздел «Справка» (ReferenceActivity), отвечает за отображение пользователю краткую справку о функциях различных разделов приложения, выполненную в графическом виде.

4) раздел «Пользовательское соглашение» (UserAgreementActivity), отвечает за отображение пользователю информации о пользовательском соглашении. Само пользовательское соглашение хранится во внутренней памяти устройства в виде текстового файла.

5) раздел «Главный раздел» (TrioFragmentHolder), является важным разделом, который содержит в своём составе 5 других разделов разной функциональности.

Все остальные разделы реализованы в виде отдельных фрагментов, встроенных в вышеописанные активности. Список разделов, реализованных в приложении:

1) «Создание и редактировании информации о группе животного» (AddModCowGroupFragment);

2) «Создание и редактировании информации о животном» (AddModifyCowFragment);

3) «Создание и редактировании информации об охоте животного» (AddModifyHuntFragment);

4) «Создание и редактировании информации об отелах животного» (AddModifyOtelFragment);

5) «Карточка животного» (AnimalCardFragment);

6) «Список животных» (AnimalsFragment);

7) «Список архивированных коров» (ArchivedCowsFragment);

8) «Смена пароля пользователя» (ChangePasswordFragment);

9) «История смена статуса животного» (ChangeStatusHistoryFragment);

10) «Выбор группы животного» (ChooseGroupFragment);

11) «События» (CircleCategoryFragment);

12) «Список работников» (EmployeeFragment);

13) «Групповой ввод удоя животных» (GroupedInputMilkFragment);

14) «Ввод удоя животного» (InputMultipleMilkFragment);

15) «Журнал ввода удоя животного» (InputMultipleMilkJournalFragment);

16) «Авторизация пользователя» (LoginFragment);

17) «Список ферм пользователя» (LogOrganizationsListFragment);

18) «Убытки фермы» (LossesFragment);

19) «Главное меню приложения» (MainMenuFragment);

20) «Сообщения пользователя» (MessageFragment);

21) «Создание и редактирование информации о ферме» (ModDelOrganizationFragment);

22) «Восстановление пароля» (RecoverPasswordFragment);

23) «Справка приложения» (ReferenceFragment);

24) «Регистрация нового пользователя» (RegisterFragment);

25) «Сводка по ферме» (SummaryFragment);

26) «Надой животных фермы» (TotalYieldFragment);

27) «Главный раздел» (TrioFragmentHolder);

28) «Список типовых угроз» (TypeFragment);

29) «Пользовательское соглашение» (UserAgreementFragment);

30) «Дополнительное меню» (UserMenuFragment);

31) «Просмотр информации о событии» (ViewEventFragment).

Для обеспечения работоспособности всех разделов были реализованы следующие вспомогательные разделы:

1) раздел «Константы» (Constants) - является хранилищем переменных, которые являются константами. Эти константы используются в большинстве разделов;

2) раздел «Работа с сервером» (Http_connection) - является разделом, задачей которого является формирование запроса, передачи данных на удалённый сервер, а также получение ответных данных и передача их в соответствующий раздел для дальнейшей обработки;

3) раздел «База данных словарей» (DictionaryDB) - раздел, который формирует и поддерживает работу локальной базы данных, в которой хранится информация о породах коров, их статусе, временных зонах, типе удоя и другие;

4) раздел «Парсинг данных» (ParseTasks) - раздел, который преобразовывает полученные от удалённого сервера данные в формат, необходимый для определённого раздела;

5) раздел «Вспомогательные функции» (SubsidiaryUtils) - раздел, в котором собраны все функции для обработки строковой, числовой и иной информации;

6) раздел «Работа с сохранёнными данными» (PreferenceHelper) - раздел для чтения, записи и обработки параметров логина, пароля и выбранной фермы. Эти данные необходимы для автоматической авторизации пользователя.

Графическое представление архитектуры приложения изображено на рис.5.

Рис. 7 Архитектура android-приложения

2.5 Фрагменты приложения

Раздел «Создание и редактировании информации о группе животного»

Данный раздел предназначен для создания или изменения существующей группы у животного. Всем животным может быть присвоена одна или несколько идентификационных групп, по которым можно определить животное. В приложении группы имеют название и цвет. Группы отображаются в карточке животного, а также в разделе «список животных». Цвет группы может быть одним из следующих: ff3823, 0c59cf, 029c48, ffa834, 40bcf0, 7e2199, a88df7, bb5430, 18e4a5, ffd603, 000000.

После того, как пользователь выбрал название и текст группы, приложение проверяет правильность названия и вызывает удалённый POST метод «/v_grp» на сервере, в который передаёт сформированный JSON-файл:

{

"org_id":"12",

"grp_name":"GroupName",

"color":"#0c59cf"

}

Если всё сформировано верно, сервер вернёт статус 204, который означает, что группа создана.

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

Раздел «Создание и редактировании информации о животном»

Данный раздел предназначен для создания и редактирования информации о животном. В этом разделе возможно изменять следующие поля: имя, номер бирки, дата рождения, порода, статус животного, группы, комментарий.

После того, как пользователь заполнил все обязательные поля и нажал кнопку «ок», приложение формирует следующий JSON-файл:

{

"org_id":"12",

"name":"CowName",

"mark":"001",

"cow_state_cl_cd":"cow_state_mlk",

"race":"rc_black_angus",

"birthday":"2019-01-01",

"cow_comment":" cow comment",

"tags":

["Blue","Green"]

}

Приложение вызывает удалённый метод «/v_cows?select=cow_id» и передаёт сформированный заранее JSON-файл с информацией о новом животном. Если все поля заполнены верно и нет дублирующей записи в базе данных, то сервер вернёт статус 204, который означает, что создана новая запись с информацией о животном.

Раздел «Создание и редактировании информации об охоте животного»

Предназначен для добавления и редактирования информации об охоте животного. Доступные поля для заполнения: дата охоты, осеменение, стельность.

Раздел «Создание и редактировании информации об отелах животного»

Задачами раздела являются создание и редактирование информации об отелах животного. Полями являются:

1) номер отела;

2) дата отела;

3) подтверждение отела;

Раздел «Карточка животного»

Задачей данного раздела является отображение информации о животном. Раздел отображает следующие поля:

1) имя животного;

2) номер бирки;

3) дата рождения;

4) порода;

5) средне суточный удой за всё время;

6) группы;

7) статус животного;

8) комментарий;

9) отелы;

10) охоты.

Раздел «Список животных»

Реализованный раздел является вторым главным разделом в приложении и отображает пользователю всех животных выбранной ранее фермы. Для удобства восприятия информация разбита на четыре столбца:

1) имя и бирка животного;

2) группы;

3) день лактации;

4) удой.

Первый столбец отображает имя и бирку животного, записанные через дефис. Второй - группы, изображенные в виде цветных прямоугольников, цвет которых соответствует цвету определённой группы. Третий столбец содержит информацию о количестве дней с последней лактации. Последний, четвёртый, столбец отображает количество удоя, полученное в среднем от животного.

Раздел «Список архивированных коров»

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

1) имя и бирка животного;

2) группы животного;

3) удой.

Для визуального отличия раздела «архивированные животные» от «список животных» в первом разделе введен водяной знак «Архив».

Раздел «Смена пароля пользователя»