Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/validation/rules/messung/HasPflichtmessgroessen.java @ 1336:18c789672b14
Made validator messages more verbose for importer.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 06 Apr 2017 10:10:39 +0200 |
parents | 186d602e031a |
children |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/rules/messung/HasPflichtmessgroessen.java Thu Apr 06 10:08:47 2017 +0200 +++ b/src/main/java/de/intevation/lada/validation/rules/messung/HasPflichtmessgroessen.java Thu Apr 06 10:10:39 2017 +0200 @@ -7,12 +7,15 @@ */ package de.intevation.lada.validation.rules.messung; +import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import de.intevation.lada.model.land.Messung; import de.intevation.lada.model.land.Messwert; +import de.intevation.lada.model.land.Probe; +import de.intevation.lada.model.stammdaten.Messgroesse; import de.intevation.lada.model.stammdaten.PflichtMessgroesse; import de.intevation.lada.util.annotation.RepositoryConfig; import de.intevation.lada.util.data.QueryBuilder; @@ -39,11 +42,14 @@ @Override public Violation execute(Object object) { Messung messung = (Messung)object; + Probe probe = repository.getByIdPlain(Probe.class, messung.getProbeId(), "land"); + QueryBuilder<PflichtMessgroesse> builder = new QueryBuilder<PflichtMessgroesse>( repository.entityManager("stamm"), PflichtMessgroesse.class); builder.and("messMethodeId", messung.getMmtId()); + builder.and("umwId", probe.getUmwId()); Response response = repository.filter(builder.getQuery(), "stamm"); @SuppressWarnings("unchecked") List<PflichtMessgroesse> pflicht = @@ -58,16 +64,20 @@ @SuppressWarnings("unchecked") List<Messwert> messwerte = (List<Messwert>)wertResponse.getData(); Violation violation = new Violation(); - boolean missing = false; - for (PflichtMessgroesse p : pflicht) { - for (Messwert wert : messwerte) { - if (!p.getMessgroesseId().equals(wert.getMessgroesseId())) { - missing = true; + List<PflichtMessgroesse> tmp = new ArrayList<PflichtMessgroesse>(); + for (Messwert wert : messwerte) { + for (PflichtMessgroesse p : pflicht) { + if (p.getMessgroesseId().equals(wert.getMessgroesseId())) { + tmp.add(p); } } } - if (missing) { - violation.addWarning("pflichtmessgroesse", 631); + pflicht.removeAll(tmp); + if (!pflicht.isEmpty()) { + for (PflichtMessgroesse p : pflicht) { + Messgroesse mg = repository.getByIdPlain(Messgroesse.class, p.getMessgroesseId(), "stamm"); + violation.addWarning("pflichtmessgroesse#" + mg.getMessgroesse(), 631); + } } return violation.hasWarnings() ? violation : null; }