Результаты проверок DQ

Для отслеживания результатов проверок DQ, которые хранятся в локальном хранилище, необходимо имплементировать интерфейс com.universe.dg.dq.checks.type.QualityCheckResultListener.

public interface QualityCheckResultListener {
    /**
    * Выполняется перед сохранением результатов проверки качества.
    * Может быть использовано для запрета сохранения.
    *
    * @param ctx the context
    */
    default void before(QualityCheckResultSaveContext ctx) {
    }

    /**
    * Выполняется после сохранения результата проверки качества.
    * Может быть использовано для выполнения некоторых дополнительных расчетов.
    *
    * @param ctx the context
    */
    default void after(QualityCheckResultSaveContext ctx) {
    }
}

Имплементации должны быть зарегистрированы в локальном хранилище com.universe.dg.dq.checks.service.QualityChecksLocalStorage.

Контекст предоставляет информацию об активах, которые описывают проверку, правило качества, к которому проверка относится, и о проверяемых объектах (активах).

Для получения текущего и обновленного результата проверки используются методы QualityCheckResultSaveContext.currentCheckResult() и QualityCheckResultSaveContext.nextCheckResult().

Пример реализации:

@Component
public class QualityCheckResultListenerExample implements QualityCheckResultListener {

    @Autowired
    public QualityCheckResultListenerExample(QualityChecksLocalStorage localStorage) {
        localStorage.listener(this);
    }

    @Override
    public void after(QualityCheckResultSaveContext ctx) {

        // Получить актив проверки качества
        EtalonAsset checkAsset = ctx.qualityCheck();

        // Получить актив правила качества
        EtalonAsset ruleAsset = ctx.qualityRule();

        // Получить проверенные ключи активов
        List<AssetKeys> assetKeys = ctx.checkedKeys();

        // Получить текущий результат
        QualityCheckResult currentResult = ctx.currentCheckResult();

        // Получить следующий результат
        QualityCheckResult nextResult = ctx.nextCheckResult();
    }
}