2023-05-03 14:00:57 +02:00
|
|
|
package eu.dnetlib.validatorapi.repositories;
|
2023-04-11 16:41:01 +02:00
|
|
|
|
|
|
|
import eu.dnetlib.validatorapi.entities.SummaryResult;
|
2023-05-03 14:00:57 +02:00
|
|
|
import eu.dnetlib.validatorapi.entities.ValidationRuleResult;
|
2023-04-11 16:41:01 +02:00
|
|
|
import org.springframework.data.jpa.repository.JpaRepository;
|
|
|
|
import org.springframework.data.jpa.repository.Query;
|
2023-05-03 14:00:57 +02:00
|
|
|
import org.springframework.data.repository.query.Param;
|
2023-04-11 16:41:01 +02:00
|
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
@Repository
|
2023-05-03 14:00:57 +02:00
|
|
|
public interface ValidationResultRepository extends JpaRepository<ValidationRuleResult, Long> {
|
2023-04-11 16:41:01 +02:00
|
|
|
|
|
|
|
@Query(value =
|
2023-04-25 10:18:14 +02:00
|
|
|
"SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight," +
|
2023-04-11 16:41:01 +02:00
|
|
|
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passed_records, " +
|
2023-05-03 14:00:57 +02:00
|
|
|
"COUNT(CASE WHEN sr.status = 'FAILURE' THEN 1 END) AS failed_records) " +
|
|
|
|
"FROM ValidationRuleResult sr " + "WHERE sr.validationJobId = :id " +
|
2023-04-25 10:18:14 +02:00
|
|
|
"GROUP BY sr.ruleName, sr.ruleWeight")
|
2023-05-03 14:00:57 +02:00
|
|
|
List<SummaryResult> getSummaryResult(@Param("id") int validationJobId);
|
2023-06-13 14:57:39 +02:00
|
|
|
|
|
|
|
@Query("SELECT CASE WHEN COUNT(vr) > 0 THEN 'FAILURE' ELSE 'SUCCESS' END " +
|
|
|
|
"FROM ValidationRuleResult vr " +
|
2023-06-20 14:42:16 +02:00
|
|
|
"WHERE vr.validationJobId = :id AND vr.status = 'FAILURE' OR vr.internalError != null")
|
2023-06-13 14:57:39 +02:00
|
|
|
public String getStatus(@Param("id") int validationJobId);
|
|
|
|
|
2023-09-13 12:22:21 +02:00
|
|
|
@Query(value = "SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight, sr.requirement_level, " +
|
|
|
|
"sr.description, sr.fair_principles, sr.link, sr.guidelines, sr.internalError," +
|
2023-06-20 14:42:16 +02:00
|
|
|
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passedRecords," +
|
2023-07-03 09:57:13 +02:00
|
|
|
"COUNT(CASE WHEN sr.status = 'FAILURE' OR sr.status = 'ERROR' THEN 1 END) AS failedRecords," +
|
2023-06-29 11:00:26 +02:00
|
|
|
"(SELECT CASE" +
|
2023-07-03 13:41:35 +02:00
|
|
|
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'ERROR' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'ERROR'" +
|
|
|
|
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'FAILURE' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'FAILURE'" +
|
2023-06-29 11:00:26 +02:00
|
|
|
" ELSE 'SUCCESS'" +
|
|
|
|
" END " +
|
2023-07-03 13:41:35 +02:00
|
|
|
"FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult vr WHERE vr.ruleName = sr.ruleName and sr.validationJobId=vr.validationJobId)," +
|
2023-06-20 14:42:16 +02:00
|
|
|
"CASE WHEN COUNT(CASE WHEN has_errors IS TRUE THEN 1 END) > 0 THEN TRUE ELSE FALSE END AS hasErrors," +
|
|
|
|
"CASE WHEN COUNT(CASE WHEN has_warnings IS TRUE THEN 1 END) > 0 THEN TRUE ELSE FALSE END AS hasWarnings)" +
|
|
|
|
"FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult sr " +
|
|
|
|
"WHERE sr.validationJobId = :id " +
|
2023-09-13 12:22:21 +02:00
|
|
|
"GROUP BY sr.ruleName, sr.ruleWeight, sr.description, sr.fair_principles, sr.link, sr.requirement_level, sr.guidelines, sr.internalError, sr.validationJobId")
|
2023-06-20 14:42:16 +02:00
|
|
|
List<SummaryResult> getFullSummaryResult(@Param("id") int validationJobId);
|
|
|
|
|
2023-07-14 11:05:19 +02:00
|
|
|
@Query(value =
|
|
|
|
"SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight," +
|
|
|
|
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passed_records, " +
|
|
|
|
"COUNT(CASE WHEN sr.status = 'FAILURE' THEN 1 END) AS failed_records) " +
|
|
|
|
"FROM ValidationRuleResult sr " + "WHERE sr.validationJobId = :id and sr.guidelines = :guidelines " +
|
|
|
|
"GROUP BY sr.ruleName, sr.ruleWeight")
|
|
|
|
List<SummaryResult> getSummaryResult(@Param("id") int validationJobId, @Param("guidelines") String guidelines);
|
|
|
|
|
|
|
|
@Query("SELECT CASE WHEN COUNT(vr) > 0 THEN 'FAILURE' ELSE 'SUCCESS' END " +
|
|
|
|
"FROM ValidationRuleResult vr " +
|
|
|
|
"WHERE vr.validationJobId = :id AND vr.guidelines = :guidelines AND vr.status = 'FAILURE' OR vr.internalError != null")
|
|
|
|
public String getStatus(@Param("id") int validationJobId, @Param("guidelines") String guidelines);
|
|
|
|
|
2023-09-13 12:22:21 +02:00
|
|
|
@Query(value = "SELECT NEW eu.dnetlib.validatorapi.entities.SummaryResult(sr.ruleName, sr.ruleWeight, sr.requirement_level, " +
|
|
|
|
"sr.description, sr.fair_principles, sr.link, sr.guidelines, sr.internalError," +
|
2023-07-14 11:05:19 +02:00
|
|
|
"COUNT(CASE WHEN sr.status = 'SUCCESS' THEN 1 END) AS passedRecords," +
|
|
|
|
"COUNT(CASE WHEN sr.status = 'FAILURE' OR sr.status = 'ERROR' THEN 1 END) AS failedRecords," +
|
|
|
|
"(SELECT CASE" +
|
|
|
|
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'ERROR' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'ERROR'" +
|
|
|
|
" WHEN COUNT(DISTINCT CASE WHEN vr.status = 'FAILURE' THEN vr.ruleName END) = COUNT(DISTINCT vr.ruleName) THEN 'FAILURE'" +
|
|
|
|
" ELSE 'SUCCESS'" +
|
|
|
|
" END " +
|
|
|
|
"FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult vr WHERE vr.ruleName = sr.ruleName and sr.validationJobId=vr.validationJobId)," +
|
|
|
|
"CASE WHEN COUNT(CASE WHEN has_errors IS TRUE THEN 1 END) > 0 THEN TRUE ELSE FALSE END AS hasErrors," +
|
|
|
|
"CASE WHEN COUNT(CASE WHEN has_warnings IS TRUE THEN 1 END) > 0 THEN TRUE ELSE FALSE END AS hasWarnings)" +
|
|
|
|
"FROM eu.dnetlib.validatorapi.entities.ValidationRuleResult sr " +
|
|
|
|
"WHERE sr.validationJobId = :id AND sr.guidelines = :guidelines " +
|
2023-09-13 12:22:21 +02:00
|
|
|
"GROUP BY sr.ruleName, sr.ruleWeight, sr.requirement_level, sr.description, sr.fair_principles, sr.link, sr.description, sr.internalError, sr.validationJobId")
|
2023-07-14 11:05:19 +02:00
|
|
|
List<SummaryResult> getFullSummaryResult(@Param("id") int validationJobId, @Param("guidelines") String guidelines);
|
2023-06-20 14:42:16 +02:00
|
|
|
|
|
|
|
|
2023-04-11 16:41:01 +02:00
|
|
|
}
|