Skip to content
Snippets Groups Projects
Commit 55394e15 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

fix: Take into account that we could be looking at the map before week 21!

parent 08a749a5
Branches feature/upgrade-openlayers
No related tags found
No related merge requests found
...@@ -17,41 +17,42 @@ ...@@ -17,41 +17,42 @@
*/ */
package no.nibio.vips.logic.modules.barkbeetle; package no.nibio.vips.logic.modules.barkbeetle;
import de.micromata.opengis.kml.v_2_2_0.Coordinate;
import de.micromata.opengis.kml.v_2_2_0.Document;
import de.micromata.opengis.kml.v_2_2_0.Kml;
import de.micromata.opengis.kml.v_2_2_0.KmlFactory;
import de.micromata.opengis.kml.v_2_2_0.LabelStyle;
import de.micromata.opengis.kml.v_2_2_0.Placemark;
import de.micromata.opengis.kml.v_2_2_0.Units;
import de.micromata.opengis.kml.v_2_2_0.Vec2;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Calendar;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.geotools.api.referencing.FactoryException;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.geotools.api.referencing.operation.MathTransform;
import org.geotools.api.referencing.operation.TransformException;
import org.geotools.geometry.jts.JTS;
import org.geotools.referencing.CRS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.micromata.opengis.kml.v_2_2_0.Coordinate;
import de.micromata.opengis.kml.v_2_2_0.Document;
import de.micromata.opengis.kml.v_2_2_0.Kml;
import de.micromata.opengis.kml.v_2_2_0.KmlFactory;
import de.micromata.opengis.kml.v_2_2_0.LabelStyle;
import de.micromata.opengis.kml.v_2_2_0.Placemark;
import de.micromata.opengis.kml.v_2_2_0.Units;
import de.micromata.opengis.kml.v_2_2_0.Vec2;
import jakarta.ejb.EJB; import jakarta.ejb.EJB;
import jakarta.ejb.LocalBean; import jakarta.ejb.LocalBean;
import jakarta.ejb.Stateless; import jakarta.ejb.Stateless;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext; import jakarta.persistence.PersistenceContext;
import org.geotools.geometry.jts.JTS;
import org.geotools.referencing.CRS;
import no.nibio.vips.logic.controller.session.SessionControllerGetter; import no.nibio.vips.logic.controller.session.SessionControllerGetter;
import no.nibio.vips.logic.controller.session.UserBean; import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Organization; import no.nibio.vips.logic.entity.Organization;
...@@ -64,12 +65,6 @@ import no.nibio.vips.logic.messaging.UniversalMessageFormat; ...@@ -64,12 +65,6 @@ import no.nibio.vips.logic.messaging.UniversalMessageFormat;
import no.nibio.vips.logic.util.GISEntityUtil; import no.nibio.vips.logic.util.GISEntityUtil;
import no.nibio.vips.logic.util.Globals; import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SimpleMailSender; import no.nibio.vips.logic.util.SimpleMailSender;
import org.geotools.api.referencing.FactoryException;
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
import org.geotools.api.referencing.operation.MathTransform;
import org.geotools.api.referencing.operation.TransformException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* @copyright 2022 <a href="http://www.nibio.no/">NIBIO</a> * @copyright 2022 <a href="http://www.nibio.no/">NIBIO</a>
...@@ -292,7 +287,7 @@ public class BarkbeetleBean { ...@@ -292,7 +287,7 @@ public class BarkbeetleBean {
+ "<li>Eier: " + trap.getOwnerName() + (trap.getOwnerPhone() == null || trap.getOwnerPhone().isBlank() ? "" : ", tlf: " + trap.getOwnerPhone()) + "</li>" + "<li>Eier: " + trap.getOwnerName() + (trap.getOwnerPhone() == null || trap.getOwnerPhone().isBlank() ? "" : ", tlf: " + trap.getOwnerPhone()) + "</li>"
+ "<li>Registrant: <a href='mailto:" + trap.getUserId().getEmail() + "'>" + trap.getUserId().getFirstName() + " " + trap.getUserId().getLastName() + "</a>, tlf: " + trap.getUserId().getPhone() + "</li>" + "<li>Registrant: <a href='mailto:" + trap.getUserId().getEmail() + "'>" + trap.getUserId().getFirstName() + " " + trap.getUserId().getLastName() + "</a>, tlf: " + trap.getUserId().getPhone() + "</li>"
+ "</ul>") + "</ul>")
.withStyleUrl(styleUrl + trap.getWarningStatus()) .withStyleUrl(styleUrl + trap.getWarningStatus(season))
.withId(trap.getSeasonTrapsiteId().toString()); .withId(trap.getSeasonTrapsiteId().toString());
final de.micromata.opengis.kml.v_2_2_0.Point point = placemark.createAndSetPoint(); final de.micromata.opengis.kml.v_2_2_0.Point point = placemark.createAndSetPoint();
......
...@@ -18,9 +18,7 @@ ...@@ -18,9 +18,7 @@
package no.nibio.vips.logic.modules.barkbeetle; package no.nibio.vips.logic.modules.barkbeetle;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable; import java.io.Serializable;
import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.temporal.WeekFields; import java.time.temporal.WeekFields;
...@@ -30,6 +28,11 @@ import java.util.Collections; ...@@ -30,6 +28,11 @@ import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.Basic; import jakarta.persistence.Basic;
import jakarta.persistence.CascadeType; import jakarta.persistence.CascadeType;
import jakarta.persistence.Column; import jakarta.persistence.Column;
...@@ -39,7 +42,6 @@ import jakarta.persistence.GeneratedValue; ...@@ -39,7 +42,6 @@ import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType; import jakarta.persistence.GenerationType;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn; import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
import jakarta.persistence.ManyToOne; import jakarta.persistence.ManyToOne;
import jakarta.persistence.NamedQueries; import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery; import jakarta.persistence.NamedQuery;
...@@ -51,12 +53,8 @@ import jakarta.persistence.Temporal; ...@@ -51,12 +53,8 @@ import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType; import jakarta.persistence.TemporalType;
import jakarta.persistence.Transient; import jakarta.persistence.Transient;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import no.nibio.vips.logic.entity.VipsLogicUser; import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.util.SystemTime; import no.nibio.vips.logic.util.SystemTime;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
/** /**
* @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a> * @copyright 2020 <a href="http://www.nibio.no/">NIBIO</a>
...@@ -446,11 +444,13 @@ public class SeasonTrapsite implements Serializable, Comparable { ...@@ -446,11 +444,13 @@ public class SeasonTrapsite implements Serializable, Comparable {
private final Integer THRESHOLD_HIGH_RISK = 15000; private final Integer THRESHOLD_HIGH_RISK = 15000;
@Transient @Transient
public Integer getWarningStatus(){ public Integer getWarningStatus(Integer season){
// Are we before week 21? Return the "gray" status // Are we before week 21 of current year? Return the "gray" status
WeekFields weekFields = WeekFields.of(Locale.getDefault()); WeekFields weekFields = WeekFields.of(Locale.getDefault());
Integer systemTimeWeek = LocalDate.ofInstant(SystemTime.getSystemTime().toInstant(), ZoneId.of("Europe/Oslo")).get(weekFields.weekOfWeekBasedYear()); LocalDate systemTime = LocalDate.ofInstant(SystemTime.getSystemTime().toInstant(), ZoneId.of("Europe/Oslo"));
if(systemTimeWeek < this.getFirstPossibleRegistrationWeek()) Integer systemTimeWeek = systemTime.get(weekFields.weekOfWeekBasedYear());
Integer systemYear = systemTime.getYear();
if(systemYear <= season && systemTimeWeek < this.getFirstPossibleRegistrationWeek())
{ {
return SeasonTrapsite.WARNING_NOT_APPLICABLE; return SeasonTrapsite.WARNING_NOT_APPLICABLE;
} }
...@@ -467,7 +467,7 @@ public class SeasonTrapsite implements Serializable, Comparable { ...@@ -467,7 +467,7 @@ public class SeasonTrapsite implements Serializable, Comparable {
Collections.sort(siteRegs); Collections.sort(siteRegs);
TrapsiteRegistration lastReg = siteRegs.get(siteRegs.size()-1); TrapsiteRegistration lastReg = siteRegs.get(siteRegs.size()-1);
Integer lastWeekOfRegistration = lastReg.getTrapsiteRegistrationPK().getWeek(); Integer lastWeekOfRegistration = lastReg.getTrapsiteRegistrationPK().getWeek();
if(lastWeekOfRegistration < this.getExpectedLastRegistrationWeek(systemTimeWeek)) if(systemYear <= season && lastWeekOfRegistration < this.getExpectedLastRegistrationWeek(systemTimeWeek))
{ {
return SeasonTrapsite.WARNING_MISSING_DATA; return SeasonTrapsite.WARNING_MISSING_DATA;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment