Выгрузка Excel листов АХР/КВ/Операц/Структура форм 1 и 4 расходилась с экраном
по нескольким независимым причинам:
- FORM_4: _patch_form4_regular_columns() вызывался дважды — второй вызов
стирал только что добавленные actual_rsbu_spod_q1..q3, поэтому в выгрузке
были только «Факт 4 кв + СПОД», без «Факт 1/2/3 кв». Убрал второй вызов
и больше не удаляю эти ключи в самом патче.
- _patch_form4_actual_rsbu_spod_columns: SQL отдаёт actual_rsbu_spod только
для 4 кв.; для 1-3 кв. ключ теперь q{n}.actual_quarter (как на экране),
не q{n}.actual_rsbu_spod (всегда пустой).
- Базовая раскладка FORM1_DEPTH_COLUMNS (отражается и в FORM_4, т.к. она из неё
строится): убрал collegial.empty и группы "shift" (ключ sum, SQL не отдаёт);
в q2/q3 добавил comment_correct (adj_comment) сразу после reserve_correct —
раньше его не было вовсе; в q4 то же поле вынес из rev_correct в отдельный
comment_correct на то же место (было в начале квартала вместе с комментарием
корректировки плана). group "approved.plan" переименована из скопированного
"Резерв Финансового Комитета" в "План {year}"; q4 "quarter_correct" — из
ошибочного "Факт РСБУ 3 кв" в "Факт РСБУ 4 кв {year_short}".
- render_column_years: добавлен плейсхолдер year_plus_2 (year+2); contract_summary
получил future_y2 "Платежи в {year_plus_2} году" (раньше его не было, и FORM_4
patch всё равно дублировал его с неверным {next_year}). На экране «Операц»
формы 1 такой колонки нет — для неё новая FORM1_OPER_DEPTH_COLUMNS без future_y2.
- FORM4_OPER: proc_plan/proc_method после переименования уезжали в конец блока
ckk (pop+переприсвоение добавляет ключ в конец словаря) — вернул порядок
экрана через _reorder_children.
- web/.../FORM_1/{AHR,CAP,OPER}.js: в q4 узел "Комментарий" (adj_comment, GG)
шёл после "Скорректированный план" (corrected_plan, GH) — переставил перед,
как в 1-3 кв.
Issue: #253 (AURORA-1905, эпик AURORA-1876, Высокий приоритет)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
test_for_know_empt_repo, v 0.0.1
test
| Исполнитель | Заказчик | |
|---|---|---|
| Сотрудник | raykov-mse | test1 |
| Отдел | aurora | aurora |
| Контакты | raykovmse@rshb.ru | test1@g.co |
Шаблон FastAPI
Описание
Данное шаблон предоставляет проект, в котором приложение состоит из API и UI. При использовании данного типа проекта, Вы можете разрабатывать, как отдельные API сервисы, так и WEB приложения с интерфейсом. Для построения WEB интерфейса используется React. Далее описаны основные иснтрументы предустановленные данным шаблоном:
Подготовка к разработке
Для удобной настройки проекта под разработку. Перейдите в каталог setup и выполните слудеющие команды:
cd setup
chmod +x setup.sh
./setup.sh
По итогу успешного выполнения Вы получите сообщение следующего
complete setup web application
To start api, cd to api directory, and use venv, start run_server.py
To start api, cd to web directory, and use command npm run start!
Happy Hacking! :)
Далее просто запускайте проекты и приступайте к разработке
Backend
Исходный код API находится в каталоге api. После клонирования репозитория требуется создать виртуальное окружение и установить зависимости, это достигается следующими командами:
cd api
python -m venv ./.venv
cp ./../setup/pip.conf ./.venv/pip.conf
source ./.venv/bin/python
pip install -r requirements.txt
Запуск приложения осуществляется через файл: run_server.py
В качестве фреймворка ля api используется FastAPI. (Как понятно из названия шаблона) Подробнее ознакомится с возможностями Fast API вы можете в официальной документации: Fast API документация
Вы можете дополнительно устанавливать библиотеки необходимые для разработки. Настоятельно не рекомендуется изменять базовые предустановки из файла requirements.txt
Базовый шаблон предоставляет минимальный функционал по работе с данными. Далее описаны основные моменты влияющие на работу приложения.
Основная структура проекта
api
├── requirements.txt
├── run_server.py
├── src
│ ├── app.py
│ ├── __init__.py
│ ├── settings
│ │ ├── __init__.py
│ │ ├── models.py
│ │ └── settings.py
└── web
Вы можете придерживатся любой структуры проекта, главное, чтобы у Вас присутствовал файл run_server.py. Который запускает web сервер uvicorn или gunicorn. Также обязательно Ваш сервер должен подниматся на определенном хосте и порте. Требуемый хост и порт передаются внутрь через переменные окружения SERVER_HOST, SERVER_PORT
uvicorn.run(
app,
host=settings.server.HOST,
port=settings.server.PORT,
lifespan="on"
)
Отказ от ui (react)
Если внутри вашего приложения не требуется добавлять визуальный интерфейс, а Вам требуется исключительно разработать API, то в таком случае не стоит удалять директорию web находящуюся на уровне с директорией api. ТРебуется внести небольшие правки в конфигурацию приложения, в частности в файл: /api/src/app.py, удалив следующее содержимое. В таком случае Fast API сервис не будет обрабатывать статические файлы, от web приложения.
#Подключение собранного web приложения
app.mount("/", StaticFiles(directory="web", html=True), name="web")
Frontend
Исходный код UI находится в каталоге web. После клонирования репозитория требуется установить зависимости, это достигается следующими командами:
cd web
npm install
Запуск приложения осуществляется через файл команду:
npm run start
В качестве фреймворка для ui используется React. Подробнее ознакомится с возможностями React вы можете в официальной документации: React документация
Вы можете дополнительно устанавливать библиотеки необходимые для разработки. Настоятельно не рекомендуется изменять базовые предустановки из файла package.json
Базовый шаблон предоставляет минимальный интерфейс по работе с данными. Далее описаны основные моменты влияющие на работу web приложения.
Основная структура проекта
web
├── biome.json
├── .npmrc
├── dist
├── package.json
├── postcss.config.cjs
├── public
│ └── index.html
├── README.md
├── rsbuild.config.ts
├── src
│ ├── App.tsx
│ ├── config.ts
│ ├── env.d.ts
│ ├── index.css
│ └── index.tsx
├── tailwind.config.js
└── tsconfig.json
Вы можете придерживатся любой структуры проекта, внутри src. Но на верхнем уровне находятся файлы конфигурации и сборки их требуется изменять только в крайнем случае. Для сборки приложения используется RSBuild
Для создания UI настоятельно рекомендуется использовать предустановленную библиотеку компонентови стилей:
- tailwindcss
- daisy-ui
- react-daisy-ui
- raisa-ui
!!! Важно, если внутри web приложения Вы хотите обращатся к API данного проекта, используйте следующую конструкцию:
fetch(`${Config.API_URL}/api`, {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: 'GET'
})
Речь идет об вызываемом эндпоинте ${Config.API_URL}/api, Обязательно используйте конструкцию данного вида т.к. при сборке приложения статический сайт обращается относительно api и вместо запросов вида http://localhost:8000/api должно быть так: /api