Обсудить задачу
Проектно-изыскательский бизнес · 8 недель

Журналы геотехнического мониторинга

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

−80% времени камеральной работы
Результат
Измеримые величины по проекту.
1рабочий день
камеральная подготовка комплекта журналов — было 5 рабочих дней
меньше
ошибок и правок, возвращаемых заказчиком
8недель
разработка и внедрение
Что было и что стало
Было

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

Стало

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

Тех. стек
PythonPySide6YOLOOOXMLPyInstaller
скриншот дашборда (blur)
Проектные вызовы
Ограничения контура, легаси и сопротивление на местах — то, что определило срок.
  • Один элемент сети описан сразу в четырёх источниках — RTF-ведомости координат, XLSX-журнале, XLSB-инвентаризации и в имени файла фотографии, — и в каждом обозначение записано по-своему: разные разделители, латиница вместо кириллицы в визуально похожих буквах, префиксы и суффиксы. Написан слой нормализации к каноническому ключу плюс настраиваемые правила преобразования, часть которых приложение предлагает само, анализируя реальные пары значений.
  • Дозапись в живой Excel-шаблон заказчика: журнал — не таблица, а документ с многоуровневой шапкой, объединёнными ячейками, повторяющимися блоками столбцов и формулами. Приложение дописывает циклы в файл заказчика, а не подменяет его: восстанавливает объединённые диапазоны, пересчитывает ссылки под сдвиг колонок и разбирает текстовые формулы собственным вычислителем ячеек.
  • Отзывчивость интерфейса: книги на несколько тысяч строк, полный обход фотоархива и разбор RTF занимают заметное время, а глобальная блокировка интерпретатора не даёт решить это простым переносом в поток. Длительные операции вынесены в фоновые задачи с отменой, повторные операции опираются на кэши, привязанные к книге и времени изменения файлов.
  • Полноценный ML-стек внутри настольного дистрибутива нежелателен. Классификатор вынесен в отдельный компонент с ленивой загрузкой модели, а устройство вычислений, размер пакета и число потоков определяются по конфигурации машины — распознавание работает и с видеокартой, и без неё.
  • Лицензия проверяется полностью офлайн: приложение работает на объектах без устойчивой сети. Ключ — подписанная HMAC-SHA256 структура, привязанная к стабильному системному идентификатору, что исключает ложные срабатывания при смене сетевого адаптера или подключении VPN.
Другие кейсы
Проектно-изыскательский бизнес7 недель

Тендеры и AI-анализ закупок

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

.NET 8React 19PostgreSQLLLM в контуреBitrix24
−50% затрат на персонал
Проектно-изыскательский бизнес9 недель

Платформа инженерных изысканий

Данные изысканий жили в разрозненных файлах Excel и перечерчивались в AutoCAD вручную. Платформа ведёт скважины, термометрию, электроразведку и разрезы в одной базе и строит их в чертеже как полноценные объекты.

.NET 8React 18C++ / ObjectARXPostgreSQLRedis
0ошибок при нанесении объектов

Расскажите, какой процесс болит

Разберём его на разговоре в 40 минут и скажем, что можно сделать за 4–6 недель. Если смысла нет — скажем и это.