changeset 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 b9eb9229df21
children 462226615381
files src/main/java/de/intevation/lada/validation/rules/messung/Date.java src/main/java/de/intevation/lada/validation/rules/messung/HasPflichtmessgroessen.java src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java src/main/java/de/intevation/lada/validation/rules/probe/DeskriptorToUmwelt.java
diffstat 4 files changed, 31 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/rules/messung/Date.java	Thu Apr 06 10:08:47 2017 +0200
+++ b/src/main/java/de/intevation/lada/validation/rules/messung/Date.java	Thu Apr 06 10:10:39 2017 +0200
@@ -50,7 +50,9 @@
             if (probe.getProbeentnahmeEnde() == null ||
                 probe.getProbeentnahmeEnde().after(messung.getMesszeitpunkt())) {
                 Violation violation = new Violation();
-                violation.addWarning("messzeitpunkt", 632);
+                violation.addWarning(
+                    "messzeitpunkt#" + messung.getNebenprobenNr(),
+                    632);
                 return violation;
             }
         }
--- 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;
     }
--- a/src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java	Thu Apr 06 10:08:47 2017 +0200
+++ b/src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java	Thu Apr 06 10:10:39 2017 +0200
@@ -16,6 +16,7 @@
 
 import de.intevation.lada.model.land.Messung;
 import de.intevation.lada.model.land.Messwert;
+import de.intevation.lada.model.stammdaten.Messgroesse;
 import de.intevation.lada.model.stammdaten.MmtMessgroesse;
 import de.intevation.lada.util.annotation.RepositoryConfig;
 import de.intevation.lada.util.data.QueryBuilder;
@@ -73,15 +74,17 @@
         for(Messwert messwert: messwerte) {
             boolean hit = false;
             for (MmtMessgroesse messgroesse: found) {
-                logger.trace("###### mmt: " + messwert.getMessgroesseId()
-                    + " mmtmg: " + messgroesse.getMmtId());
                 if (messwert.getMessgroesseId().equals(
-                        messgroesse.getMmtId())) {
+                        messgroesse.getMessgroesseId())) {
                     hit = true;
                 }
             }
             if (!hit) {
-                violation.addWarning("messgroesse", 632);
+                Messgroesse mg = repository.getByIdPlain(
+                    Messgroesse.class,
+                    messwert.getMessgroesseId(),
+                    "stamm");
+                violation.addWarning("messgroesse#" + mg.getMessgroesse(), 632);
             }
         }
         return violation.hasWarnings() ? violation : null;
--- a/src/main/java/de/intevation/lada/validation/rules/probe/DeskriptorToUmwelt.java	Thu Apr 06 10:08:47 2017 +0200
+++ b/src/main/java/de/intevation/lada/validation/rules/probe/DeskriptorToUmwelt.java	Thu Apr 06 10:10:39 2017 +0200
@@ -104,7 +104,7 @@
 
         if (media.size() == 0) {
             Violation violation = new Violation();
-            violation.addWarning("umwId", 632);
+            violation.addWarning("umwId#" + umwId, 632);
             return violation;
         }
 
@@ -121,7 +121,7 @@
         List<DeskriptorUmwelt> data = (List<DeskriptorUmwelt>)response.getData();
         if (data.isEmpty()) {
             Violation violation = new Violation();
-            violation.addWarning("umwId", 632);
+            violation.addWarning("umwId#" + umwId, 632);
             return violation;
         }
 
@@ -131,12 +131,12 @@
         }
         else if (unique && !umwId.equals(data.get(0).getUmwId())) {
             Violation violation = new Violation();
-            violation.addWarning("umwId", 632);
+            violation.addWarning("umwId#" + umwId, 632);
             return violation;
         }
         else {
             Violation violation = new Violation();
-            violation.addWarning("umwId", 632);
+            violation.addWarning("umwId#" + umwId, 632);
             boolean found = false;
             for (int i = 0; i < data.size(); i++) {
                 if (!data.get(i).getUmwId().equals(umwId)) {
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)