2.9 KiB
Raw Blame History

ADDED Requirements

Requirement: Аудит ручной повторной обработки файла

Каждая принятая ручная попытка SHALL писать одно audit_event с action = FILE_REPROCESS, section = PRIMARY_DOCUMENTS, object_type = stored_file, object_id = file_id, user_id инициатора, IP и User-Agent запроса. before_value SHALL содержать прежние job_id, attempt, status задания, error_code; after_value — новые job_id, attempt, а при пакетном повторе также consolidation_id. Событие SHALL фиксироваться в транзакции создания попытки.

Scenario: Пакетный повтор

  • WHEN пакет принял два файла ОСВ РБ и пропустил третий
  • THEN два FILE_REPROCESS с разными object_id и прежними/новыми job_id, с consolidation_id в after_value; before_value.status — статус прежнего задания (timeout или dlq), error_code — TIMEOUT или NO_ACK; для skipped события нет

Scenario: Отказ или откат

  • WHEN повтор отклонён либо транзакция создания задания откатывается
  • THEN FILE_REPROCESS для него отсутствует

Scenario: Автоматическая повторная публикация

  • WHEN outbox повторно публикует прежнее задание без ack, не создавая новую попытку
  • THEN FILE_REPROCESS не пишется

Requirement: Аудит уточнения шапки ОСВ

Фактический PATCH шапки ОСВ SHALL писать одно RECOGNIZED_DATA_EDIT раздела RECOGNITION, object_type = document, object_id документа, user_id инициатора. before/after SHALL содержать изменённые поля и при сбросе подтверждения status, confirmed_by/at; after_value.unbound_version_ids SHALL содержать версии снятых привязок. Запрос без изменений MUST NOT писать аудит.

Scenario: Подтверждённая ОСВ исправлена

  • WHEN меняется счёт CONFIRMED ОСВ РБ, привязанной к версии DATA_CORRECTION
  • THEN одно RECOGNIZED_DATA_EDIT с прежним/новым счётом и подтверждением, after_value содержит unbound_version_ids, пользователь, IP и User-Agent сохранены

Scenario: Возврат к исходному

  • WHEN аналитик возвращает исходные значения после предыдущей правки
  • THEN новое RECOGNIZED_DATA_EDIT отражает эту правку; старые события не меняются