Результаты проверок 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();
}
}