Позвоните мне

Куда звонить / писать?

Или напишите сами ↓

< Пред

Кейс 2 из 4

След >

Категория: Web-разработка

Деревообрабатывающее предприятие. Создание облачного приложения "Калькулятор себестоимости"

Ситуация заказчика:

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

  1. Приёмка круглого леса;
  2. Сортировка леса по сортам и отбраковка;
  3. Распил леса на сырые доски;
  4. Сортировка сырых досок по сортам и отбраковка;
  5. Сушка досок в камере;
  6. Сортировка сухих досок после сушки и отбраковка досок испорченных при сушке;
  7. Строжка сухой доски до целевого размера;
  8. Сортировка после строжки и отбраковка испорченных досок на строжке;
  9. Упаковка досок в пакеты и подготовка к продаже.

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

По-русски, в вагоне было 455 штук досок 0-1 сорта и 1045 2-сорта, за первый заплатили из расчёта 18.000 ₽/м3, за второй - 16.500 ₽/м3. Брак выкинули и ничего поставщику за него не заплатим.

Цель заказчика:

Изготовить сухую, гладкую, строганную доску, упаковать и продать как готовое изделие.

Целевой продукт - сухая строганная доска
Изображение: Целевой продукт - сухая строганная доска

Проблема

Себестоимость продукции на каждом этапе неизвестна, так как на производстве много этапов, а практически каждый этап делает стороннее предприятие, что выставляет счёт за услуги сушки, строжки. А за сортировку необходимо платить сдельную зарплату собственным рабочим.

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

  1. Куплена как сырой материал, это часть первичной поставки;
  2. Рабочим была заплачена сдельная зарплата за сортировку во время приёмки и после сушки, за сортировку данной доски они получили деньги;
  3. За услуги сушку данной доски уже заплатили фирме с сушильной камерой.

Каждая отбракованная доска имеет в своей себестоимости больше денег, чем первичная закупка, а значит и затраты при браке сложнокалькулируемые.

Заказчик не знает реальную себестоимость

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

Что хочет заказчик?

1. Заказчику нужно приложение калькулятор

В поля приложения будут вносится данные по каждому этапу:

  1. Сколько единиц досок конкретного сорта досок вышло из сушки;
  2. Сколько единиц брака вышло из сушки;
  3. Сколько заплатили сушильщику из расчёта ₽/м3;
  4. Сколько заплатили рабочим за сортировку из расчёта ₽/м3;
  5. и другие ключевые данные по каждому из этапов.

Приложение должно сразу считать промежуточные результаты производства:

  1. Какая цена брака получилась на конкретном этапе, с учётом затрат прошлых этапов на брак;
  2. Какие общие и аккумулированные затраты мы понесли на данном этапе;
  3. Какой объём продукта мы получили на данном этапе в деньгах в пересчёте на каждый сорт и суммарно.

Эти данные должны быть отражены в табличном виде. В мобильной версии таблицы должны быть удобочитаемы и адаптированы.

2. Приложение должно работать в смартфоне

Выбранное разработчиком решение должно работать в смартфоне, так как заказчик ведёт разъездной характер бизнеса и ноутбук не всегда возможно использовать, а данные вносить надо.

3. Сохранение данных

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

Заполненные данные на прошлом этапе (к примеру, сушка) нужно использовать при заполнении данных следующего этапа (к примеру, строжка). Т.е. данные по выходу древесины из сушки должны сразу попасть в данные входящего объёма древесины в цех строжки. Сколько вышло вчера, столько вошло сегодня без повторного введения дублирующих данных.

4. Экспорт данных в Excel

Критически важной функцией заказчик обозначил экспорт данных в Excel таблицу. Данные таблицы будут им подгружаться в собственный архив бухгалтерского и управленческого учёта, а данные из таблиц импортироваться в 1С.

Облачное приложение "Калькулятор себестоимости" производства погонажных изделий с экспортом в Excel, доступное на мобильных устройствах
Изображение: Облачное приложение "Калькулятор себестоимости" производства погонажных изделий с экспортом в Excel, доступное на мобильных устройствах

Дата заказа:

30 ноября 2023 года

Дата сдачи заказа и срок разработки:

6 декабря 2023 года. Разрабатывался 7 дней

Используемые технологии

Язык HTMLЯзык CSSЯзык JavaScriptБиблиотека ReactПрепроцессор SassNode.jsЯзык PhpFigma

1. Принято решение создать облачное SPA web-приложение на базе библиотеки React, так как такое приложение будет проще всего масштабировать в будущем, когда заказчику понадобится создать новые аналогичные калькуляторы для других более сложных продуктов деревообработки, нежели расчёт доски.

Заказчик планирует производить геометрически более сложные погонажные изделия, как плинтус, вагонка, имитация бруса. Очевидно, что приложение будет масштабироваться.

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

Решения на базе React могут работать в режиме оффлайн и взаимодействовать с Api мобильного браузера: local storage, cookie и cache, а доступного размера в них более чем достаточно для числовых данных сохраняемых в калькуляторе.

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

3. Так как у приложения 1 пользователь, решено не усложнять проект базами данных, авторизацией, личным кабинетом, а максимально ускорить разработку, сделать доступным функционал приложения с первого же окна, а запись и чтение данных осуществлять из единственного файла на хостинге, который будет считываться и перезаписываться при помощи серверного Php скрипта, путём обращения к серверу POST-fetch и GET-fetch запросами.

4. Управление состоянием приложения я передал библиотеке React Hook Form и его контекст-провайдеру FormProvider. Экспорт данных из FormProvider в Excel таблицу выполнен при помощи библиотеки SheetJS.

Результат

Работа ПК и мобильной версии приложения в видео ниже.

Проверить работу приложения можно на странице с тестовой копией приложения по ссылке справа - приложение "Калькулятор себестоимости"

Участники разработки

  1. Дизайн приложения в Figma - Аносов Роман
  2. Front-end (React) - Аносов Роман
  3. Back-end (Node.js, Php) - Аносов Роман
< Пред

Кейс 2 из 4

След >

Это первый

Web-разработка: 1 из 1

Всё 🤷‍♂️

Интересен данный проект? Хотите так же?

Напишите мне в мессенжеры или закажите звонок ниже. Мы обсудим стоимость, сроки и возможность выполнения вашего проекта.