Help us shape the future of Go! Take the 2026 Go Developer Survey

pfu-xml

command
v1.26.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2026 License: MIT Imports: 13 Imported by: 0

README

Пример: XML-реестр больничных → TDTP

Этот отдельный Go-конвертер читает XML вида <REESTR_LN><RECORD>…</RECORD></REESTR_LN> и превращает каждую запись <RECORD> в строку TDTP <R>. В одном реестре может быть много больничных. Структура взята из иллюстративного примера, а не из проверенного export.xml ПФУ. Известные поля WIC_* реальной выгрузки этот конвертер пока не принимает: для их поддержки нужен обезличенный образец файла.

В папке находятся конвертер, входной XML, тесты, готовый TDTP и отчёт об ошибке. В образце одна правильная запись и одна с невозможной датой 2026-02-31.

Повторить пример

Из корня репозитория в PowerShell:

New-Item -ItemType Directory -Force examples\pfu-xml\output | Out-Null

go run ./examples/pfu-xml `
  --input examples/pfu-xml/demo-input.xml `
  --output examples/pfu-xml/output/my-run.tdtp.xml `
  --errors examples/pfu-xml/output/my-errors.xml `
  --today 2026-09-29 `
  --max-days 30

.\tdtpcli_v2.exe test examples\pfu-xml\output\my-run.tdtp.xml

Проверенная запись попадёт в TDTP. Ошибочная будет пропущена, а её номер <RECORD>, NUM_LN и причина попадут в my-errors.xml. Конвертер выведет предупреждение с числом пропущенных записей. Если ошибочны все записи, он создаст только отчёт и завершится с ошибкой. Уже существующие файлы результата и отчёта конвертер не заменяет.

--max-days — обязательный согласованный лимит, не норматив ПФУ; 30 используется только для демонстрации. --today фиксирует дату проверки; без него берётся текущая дата по Киеву. По умолчанию DATE_START должен попадать в окно ±1 календарный месяц от неё. Параметры --window-months и --window-field start|end|both меняют это правило.

Проверяются обязательные поля, версия, календарные даты YYYY-MM-DD, порядок дат и длительность включительно. Идентификаторы остаются TEXT для сохранения начальных нулей; даты получают тип DATE, версия и DURATION_DAYS — INTEGER. Готовый TDTP содержит контрольные суммы xxh3.

Если нужен один TDTP со всеми строками и колонками validation_status и validation_error, смотрите CSV-кейс с проверкой в SQL.

Documentation

Overview

Run with: go run ./examples/pfu-xml --input export.xml --output leaves.tdtp.xml --max-days 30

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL