Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом Мельников 3а.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Декомпозиция задачи

Разработку приложения можно разбить на следующие задачи и подзадачи:

  1. Организация авторизации.

    1. Реализация интерфейса авторизации.

    2. Получения подтверждения об авторизации от сервера.

    3. Отображение доступных ЦРЗ.

  2. Реализация сканера штрих-кодов для автоматизированного получения номера пакета.

  3. Организация приема пакетов.

    1. Реализация интерфейса для ввода номера пакета.

      1. Ввод номера вручную с клавиатуры.

      2. Получение номера с помощью сканера штрих-кодов.

    2. Реализация поиска пакета.

      1. Отправка введенного номера на сервер.

      2. Получение информации о пакете от сервера.

      3. Реализация интерфейса для вывода информации о пакете.

    3. Реализация приема пакета.

      1. Реализация возможности отправки на сервер соответствующей информации о приеме пакета.

  4. Организация выдачи пакетов.

    1. Реализация интерфейса для ввода номера пакета.

      1. Ввод номера вручную с клавиатуры.

      2. Получение номеров с помощью сканера штрих-кодов.

    2. Реализация поиска пакета.

      1. Отправка введенного номера на сервер.

      2. Получение информации о пакете от сервера.

      3. Реализация интерфейса для вывода информации о пакете.

    3. Реализация выдачи пакетов.

      1. Реализация проверки пин-кода через сервер.

      2. Реализация возможности отправки на сервер информации о выдаче пакета.

      3. Реализация групповой выдаче пакетов.

  5. Организация транспортировки пакетов.

    1. Поиск доступных пакетов для перемещения.

      1. Отправка запроса на сервер и получение информации о доступных пакетах.

      2. Реализация интерфейса для отображения списка ЦРЗ, в которые можно переместить пакеты и интерфейса для отображения пакетов.

    2. Реализация перемещения.

      1. Реализация возможности отправить на сервер соответствующей информации о перемещении пакетов.

  6. Вывод информации о складе.

    1. Отправка запроса на сервер и получение информации о хранимых в ЦРЗ пакетах.

    2. Реализация интерфейса для отображения списка хранимых пакетов.

    3. Реализация возможности выдать выбранный пакет (переход на экран выдачи с номером выбранного пакета).

    4. Реализация фильтрации пакетов по статусу, дате, получателю и отправителю.

  7. Вывод информации о балансе.

    1. Отправка запроса на сервер и получение информации о балансе ЦРЗ.

    2. Реализация интерфейса для вывода полученной информации.

Разрабатываема система уникальна, благодаря своей возможности обрабатывать сразу множество штрих-кодов. Прочие подобные существующие системы, позволяющие считывать штрих-коды, работают только с одним кодом.

  1. Проектирование системы

    1. Основные требования, предъявляемые системе

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

  1. Авторизация пользователя в системе (отправка логина и пароля на сервер, получение подтверждения).

  2. Получение и отображение списка доступных ЦРЗ с описанием и возможными действиями с ними (получение пакета, выдача пакета, перемещение пакета, склад пакетов, баланс ЦРЗ).

  3. Реализация основных функций для работы с ЦРЗ:

    1. Сканнер штрих-кодов для считывания номера с пакета. Для считывания номера используется камера смартфона. Приложение отслеживает попадание штрих-кода в определенную область на экране смартфона. При обнаружении штрих-кода, приложение обрабатывает полученное изображение, получает номер пакета и сохраняет его в памяти. При повторном сканировании этого же штрих-кода его код повторно не запоминается, до тех пор, пока список сохраненных номеров не будет отчищен или отправлен серверу на обработку.

Штриховой код (штрих-код) — это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. По способу кодирования штрих-коды делятся на линейные и двухмерные. Линейные штрих-коды позволяют кодировать небольшой объем данных. Двухмерные штрих-коды были разработаны для кодирования большого объема информации.

К линейным штрих-кодам относятся такие форматы, как EAN8, EAN-13, UPC-A, UPC-E, Code56, Code128, Codabar и т.д. К двумерным – Aztec Code, Data Matrix, MaxiCode, PDF417, QR код и т.д.

В ЦРЗ для кодирования номеров пакетов используется линейный штрих-код формата EAN-13, т.к. он является наиболее распространённым и поддерживается практически всеми программами и всем оборудованием, работающими со штрих-кодами.

Для удобства хранения в ЦРЗ, пакты сортируются в 10 контейнеров, в зависимости от контрольного разряда номера пакета в штрих-коде.

Расчет контрольного разряда происходит по следующему алгоритму:

1) Все разряды нумеруются справа налево от 1 до 14.

2) Складываются значения всех четных разрядов, начиная со 2-го.

3) Полученная сумма умножается на 3.

4) Складываются значения всех нечетных разрядов, начиная с 3-го.

5) Складываются результаты, полученные во 2 и 3 шаге.

6) Значением контрольного разряда является наименьшее число, которое в сумме с величиной полученной в шаге 4, дает число, кратное 10.

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

    2. Прием пакетов. Прием пакетов осуществляется только по номеру пакетов. Номер пакета вводится одним из двух способов: вручную с клавиатуры или с помощью сканера штрих-кодов.

    3. Выдача пакетов. Поиск пакетов для выдачи осуществляется либо по номеру искомого пакета, либо по имени получателя пакета. Номер пакета вводится одним из двух способов: вручную с клавиатуры или с помощью сканера штрих-кодов. При поиске по имени отображаются все пакеты, предназначенные для данного получателя. При поиске по номеру пакета отображаются так же все пакеты, предназначенные для данного получателя, однако, первым в списке найденных пакетов стоит тот пакет, номер которого был введен. Первыми в списке стоят пакеты, которые имеют статус «На выдаче», т.е. эти пакеты можно выдать получателям. Для выдачи пакета необходимо проверить пин-код. Если пин-код верный, то пакет выдается получателю. Если пакетов, несколько, то, чтобы не выдавать пакет по одному, организуется выдача пакетов группой. Из списка найденных пакетов выделяются те, которые необходимо выдать, а при выдаче пин-код проверяется не для каждого выделенного пакета, а только для первого. Если пин-код верный, то все выделенные пакеты выдаются получателю.

    4. Перемещение пакетов. При перемещении необходимо отобразить список ЦРЗ, для которых есть пакеты для перемещения, а так же список этих пакетов. Пакеты перемещаются либо в один ЦРЗ, либо в несколько ЦРЗ сразу. Для выбранных ЦРЗ автоматически подсчитывается количество перемещаемых пакетов и сумма, которую необходимо отдать курьеру за перемещение.

    5. Склад пакетов. Склад пакетов – это список всех пакетов, находящихся в данном ЦРЗ. Приложение выводит найденные пакеты по частям, по 20 штук. Когда на экране появляется последний пакет, то приложение дополняет список еще одной частью пакетов и так до тех пор, пока не будут выведены все пакеты. Любой пакет из склада можно выдать получателю, для этого необходимо предусмотреть прямой переход из экрана склада на экран выдачи с номером выбранного пакета. Так же необходимо реализовать фильтр по следующим критериям: статус, дата формирования, имя отправителя и имя получателя.

    6. Баланс ЦРЗ. Отображение доходов и расходов ЦРЗ по дням за хранение, выдачу и перемещение пакетов.

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