C#. C# / WPF приложение для обработки Excel и расчёта прайс-листов (Дистанционная работа)

Бюджет не указан

Задание: C#. C# / WPF приложение для обработки Excel и расчёта прайс-листов (Дистанционная работа)

Требуется разработка Windows-приложения для автоматизированной обработки, нормализации, сопоставления и расчёта на основе Excel-данных. SK. Проект — не форма загрузки таблицы, а локальная система обработки номенклатурных данных с собственной бизнес-логикой: правила расчёта, приоритеты, исключения, аналоги, история операций, журналирование и дальнейшее расширение без переработки архитектуры. Основная задача: принимать Excel-файлы разной структуры, выполнять маппинг колонок, приводить данные к единому виду, сопоставлять позиции, определять идентичные товары, аналоги, исключения и выполнять перерасчёт цен по заданным правилам. Приложение работает локально на Windows и хранит настройки, справочники, правила, историю и результаты обработки в локальной БД. Ключевые блоки: 1. Импорт данных Загрузка Excel-файлов с разной структурой колонок. Гибкий маппинг полей входного файла с внутренними полями системы. Обработка файлов объёмом 100 000+ строк без зависания интерфейса и потери данных. Ожидается понимание пакетной обработки, оптимизации памяти, фоновых задач, отображения прогресса и безопасной работы с большими таблицами. 2. Нормализация номенклатуры Система должна приводить разные варианты написания одной позиции к сопоставимому виду. Учитываются бренд, модель, размер, технические обозначения, конструкция, страна производства, дата производства, тип товара и другие параметры. Нормализация должна быть отдельным расширяемым механизмом, а не разовой обработкой строки. 3. Сопоставление позиций Система должна поддерживать режимы: • Identical — точное совпадение по установленным параметрам; • Analog — аналог по заранее заданным пользовательским правилам; • Exception — исключение с приоритетом над обычной логикой расчёта. Для каждого результата сохраняется причина выбора: какой режим сработал, какие параметры совпали, какое правило применилось, почему позиция попала в расчёт, аналог, исключение или конфликт. Если правило или аналог нельзя определить однозначно, система фиксирует Conflict без автоматического подбора по предположению. 4. Правила расчёта Расчёт строится на настраиваемых правилах и справочниках. Нужна работа с процентными корректировками, фиксированными значениями, приоритетами, исключениями, последовательным применением коэффициентов, разными режимами расчёта и историей применённых правил. Проценты применяются последовательно, а не суммируются. Архитектура должна позволять добавлять новые типы правил и условия расчёта без переписывания существующего функционала. 5. Исключения Типы исключений: фиксированная цена, фиксированный процент, отсутствие перерасчёта, перевод позиции в отдельный статус. При срабатывании исключения система явно фиксирует режим Exception и применённое правило. 6. Локальная база данных Необходимо хранить шаблоны маппинга, настройки, справочники, правила расчёта, правила аналогов, исключения, историю запусков, результаты обработки, журнал ошибок и действий. При первом запуске приложение самостоятельно создаёт БД и структуру таблиц. Пользователь не должен вручную создавать БД, таблицы, конфигурационные файлы или выполнять техническую подготовку. 7. Интерфейс и архитектура Требуется удобный интерфейс для работы с большими таблицами, настройками, правилами, результатами расчёта и ошибками. Интерфейс не должен зависать при обработке данных. Бизнес-логика должна быть отделена от интерфейса. Ожидается понятная структура слоёв: импорт, нормализация, сопоставление, расчёт, хранение данных, интерфейс, логирование, история операций. Правила, исключения, приоритеты и параметры сопоставления должны управляться через данные и настройки, а не быть жёстко зашитыми в код. 8. Результат Результатом должно быть запускаемое Windows-приложение, которое можно распаковать, запустить и проверить на тестовых Excel. Передача результата: готовая сборка, исходный код, локальная БД или автосоздание БД, инструкция по запуску, описание структуры проекта, описание загрузки Excel, Git-репозиторий с историей работы, понятные коммиты, запуск готовой сборки без Visual Studio. 9. Приёмка Этап считается выполненным, если приложение запускается на чистой системе, БД создаётся автоматически, Excel-файл загружается через интерфейс, маппинг колонок работает, данные сохраняются локально, обработка больших файлов не блокирует интерфейс, ошибки фиксируются в журнале, результат расчёта можно проверить, исходный код передан, код находится в Git, есть инструкция по запуску. При отклике просьба кратко указать: • опыт WPF-разработки; • опыт с локальными БД; • опыт обработки больших Excel-файлов; • подход к архитектуре; • как планируется реализовать импорт, нормализацию, расчёт и хранение истории; • примеры похожих задач. Полное ТЗ с бизнес-логикой, правилами расчёта, приоритетами, исключениями и тестовыми сценариями предоставляется после обсуждения опыта и подхода исполнителя. Работаем по договору от юридического лица.