diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java index 9966a5b9fbe70fa0673647ddf4c054261e6a5ed1..00d56b148598d40d7f5002c466fb84486a98345b 100755 --- a/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java +++ b/src/main/java/no/nibio/vips/logic/controller/session/ObservationBean.java @@ -69,6 +69,8 @@ import no.nibio.vips.observationdata.ObservationDataSchema; import no.nibio.vips.observationdata.ObservationDataSchemaPK; import org.apache.commons.fileupload.FileItem; import org.apache.commons.io.FilenameUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.wololo.geojson.Feature; import org.wololo.geojson.FeatureCollection; import org.wololo.geojson.GeoJSONFactory; @@ -86,6 +88,8 @@ public class ObservationBean { PointOfInterestBean pointOfInterestBean; @EJB UserBean userBean; + + private static Logger LOGGER = LoggerFactory.getLogger(ObservationBean.class); public List<Observation> getObservations(Integer organizationId) { @@ -658,17 +662,18 @@ public class ObservationBean { sql += "AND is_positive = :isPositive \n"; parameters.put("isPositive", isPositive); } - + + LOGGER.debug(sql); + Query q = em.createNativeQuery(sql, Observation.class); // Setting the parameters one by one parameters.keySet().stream().forEach( - (key)->q.setParameter(key, parameters.get(key)) + (key)->{LOGGER.debug(key + ": " + parameters.get(key)); q.setParameter(key, parameters.get(key));} ); //Date start = new Date(); List<Observation> observations = q.getResultList(); - //System.out.println("Finding obs took " + (new Date().getTime() - start.getTime()) + " milliseconds"); //start = new Date(); @@ -688,6 +693,7 @@ public class ObservationBean { retVal = this.getObservationsWithLocations(retVal); //System.out.println("Finding locations took " + (new Date().getTime() - start.getTime()) + " milliseconds"); } + return retVal; diff --git a/src/main/java/no/nibio/vips/logic/entity/Observation.java b/src/main/java/no/nibio/vips/logic/entity/Observation.java index baee7c23b5252bdbe7a56c450565504a62d269da..b9a40e51a281878b5ed2f37e0524094be3535ce4 100755 --- a/src/main/java/no/nibio/vips/logic/entity/Observation.java +++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java @@ -588,7 +588,7 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse */ @Column(name = "location_is_private") public Boolean getLocationIsPrivate() { - return locationIsPrivate; + return locationIsPrivate != null ? locationIsPrivate : false; } /** diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java index 99c31f853206027ef72eea70546a0fbc2e3ab72f..70692949adb036202e6a291f616a9aecaedbd2cd 100755 --- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java +++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java @@ -202,7 +202,6 @@ public class ObservationService { return null; } }).collect(Collectors.toList()); - //o.setObservationDataSchema(observationBean.getObservationDataSchema(observer.getOrganizationId().getOrganizationId(), o.getOrganismId())); return Response.ok().entity(observations).build(); } @@ -775,7 +774,7 @@ public class ObservationService { { return filteredObservations; } - List<Observation> retVal = filteredObservations.stream().filter(obs->obs.getBroadcastMessage()).collect(Collectors.toList()); + List<Observation> retVal = filteredObservations.stream().filter(obs->obs.getBroadcastMessage() || (isPositive == null || !isPositive)).collect(Collectors.toList()); //retVal.forEach(o->System.out.println(o.getObservationId())); retVal = this.maskObservations(retVal); //retVal.forEach(o->System.out.println(o.getObservationId())); @@ -800,7 +799,7 @@ public class ObservationService { // Placing all observations with a polygon service in the correct bucket. Map<PolygonService, List<Observation>> registeredPolygonServicesInObservationList = new HashMap<>(); - observations.stream().filter((obs) -> (!obs.getLocationIsPrivate() && obs.getPolygonService() != null)).forEachOrdered((obs) -> { + observations.stream().filter((obs) -> { return (!obs.getLocationIsPrivate() && obs.getPolygonService() != null);}).forEachOrdered((obs) -> { List<Observation> obsWithPolyServ = registeredPolygonServicesInObservationList.getOrDefault(obs.getPolygonService(), new ArrayList<>()); obsWithPolyServ.add(obs); registeredPolygonServicesInObservationList.put(obs.getPolygonService(), obsWithPolyServ);