Postgres version #1
14 changed files with 1113 additions and 0 deletions
40
.gitignore
vendored
Normal file
40
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#Maven
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
release.properties
|
||||
.flattened-pom.xml
|
||||
|
||||
# Eclipse
|
||||
.project
|
||||
.classpath
|
||||
.settings/
|
||||
bin/
|
||||
|
||||
# IntelliJ
|
||||
.idea
|
||||
*.ipr
|
||||
*.iml
|
||||
*.iws
|
||||
|
||||
# NetBeans
|
||||
nb-configuration.xml
|
||||
|
||||
# Visual Studio Code
|
||||
.vscode
|
||||
.factorypath
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
# Vim
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# patch
|
||||
*.orig
|
||||
*.rej
|
||||
|
||||
# Local environment
|
||||
.env
|
||||
166
pom.xml
Normal file
166
pom.xml
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
<?xml version="1.0"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.c4181</groupId>
|
||||
<artifactId>cadupdate-received</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<properties>
|
||||
<compiler-plugin.version>3.8.1</compiler-plugin.version>
|
||||
<maven.compiler.release>17</maven.compiler.release>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
|
||||
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
|
||||
<quarkus.platform.version>2.15.1.Final</quarkus.platform.version>
|
||||
<skipITs>true</skipITs>
|
||||
<surefire-plugin.version>3.0.0-M7</surefire-plugin.version>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${quarkus.platform.group-id}</groupId>
|
||||
<artifactId>${quarkus.platform.artifact-id}</artifactId>
|
||||
<version>${quarkus.platform.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${quarkus.platform.group-id}</groupId>
|
||||
<artifactId>quarkus-camel-bom</artifactId>
|
||||
<version>${quarkus.platform.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-telegram</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-rabbitmq</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-sql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-jdbc-postgresql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-direct</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-log</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-arc</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.12.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.maps</groupId>
|
||||
<artifactId>google-maps-services</artifactId>
|
||||
<version>2.1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss.slf4j</groupId>
|
||||
<artifactId>slf4j-jboss-logmanager</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.quarkus</groupId>
|
||||
<artifactId>quarkus-junit5</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel.quarkus</groupId>
|
||||
<artifactId>camel-quarkus-mock</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>${quarkus.platform.group-id}</groupId>
|
||||
<artifactId>quarkus-maven-plugin</artifactId>
|
||||
<version>${quarkus.platform.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
<goal>generate-code</goal>
|
||||
<goal>generate-code-tests</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${compiler-plugin.version}</version>
|
||||
<configuration>
|
||||
<compilerArgs>
|
||||
<arg>-parameters</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>${surefire-plugin.version}</version>
|
||||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
<maven.home>${maven.home}</maven.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>${surefire-plugin.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
|
||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||
<maven.home>${maven.home}</maven.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>native</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>native</name>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<skipITs>false</skipITs>
|
||||
<quarkus.package.type>uber-jar</quarkus.package.type>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
27
src/main/java/com/c4181/beans/GoogleApiBeans.java
Normal file
27
src/main/java/com/c4181/beans/GoogleApiBeans.java
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
package com.c4181.beans;
|
||||
|
||||
import com.c4181.properties.AppProperties;
|
||||
import com.google.maps.GeoApiContext;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
import javax.enterprise.inject.Produces;
|
||||
import javax.inject.Inject;
|
||||
|
||||
@ApplicationScoped
|
||||
@RegisterForReflection(targets = {com.google.maps.GeocodingApi.Response.class,
|
||||
com.google.maps.model.GeocodingResult.class}, registerFullHierarchy = true)
|
||||
public class GoogleApiBeans {
|
||||
|
||||
@Inject
|
||||
AppProperties appProperties;
|
||||
|
||||
@ApplicationScoped
|
||||
@Produces
|
||||
public GeoApiContext getGeoApiContext() {
|
||||
return new GeoApiContext.Builder()
|
||||
.apiKey(appProperties.googleApiKey())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
78
src/main/java/com/c4181/camel/CamelConfiguration.java
Normal file
78
src/main/java/com/c4181/camel/CamelConfiguration.java
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
package com.c4181.camel;
|
||||
|
||||
import com.c4181.model.JsoCall;
|
||||
import com.c4181.model.JsoCallDecoder;
|
||||
import com.c4181.properties.AppProperties;
|
||||
import io.quarkus.logging.Log;
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.builder.RouteBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
import javax.inject.Inject;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ApplicationScoped
|
||||
public class CamelConfiguration extends RouteBuilder {
|
||||
|
||||
@Inject
|
||||
AppProperties appProperties;
|
||||
|
||||
@Inject
|
||||
JsoCallDecoder jsoCallDecoder;
|
||||
|
||||
@Override
|
||||
public void configure() {
|
||||
|
||||
errorHandler(deadLetterChannel(appProperties.deadLetterRoute())
|
||||
.onExceptionOccurred(exchange ->
|
||||
Log.warnf("Failed to parse message in route %s. Sending to Dead Letter queue.", exchange.getProperty(Exchange.TO_ENDPOINT, String.class)))
|
||||
.useOriginalMessage());
|
||||
|
||||
from(appProperties.jsoCadUpdateRouteIn())
|
||||
.filter(exchange -> StringUtils.isNotBlank(exchange.getIn().getBody(String.class)))
|
||||
.process((exchange -> {
|
||||
String updates = exchange.getIn().getBody(String.class);
|
||||
List<JsoCall> jsoCalls = jsoCallDecoder.decodeJsoCallUpdates(updates);
|
||||
|
||||
exchange.getIn().setBody(jsoCalls);
|
||||
}))
|
||||
.removeHeader("*")
|
||||
.split(body())
|
||||
.wireTap("direct:processedCalls")
|
||||
.process(exchange -> {
|
||||
JsoCall jsoCall = exchange.getIn().getBody(JsoCall.class);
|
||||
Map<String, Object> sqlCall = new HashMap<>();
|
||||
sqlCall.put("incident_number", jsoCall.getIncidentNumber());
|
||||
sqlCall.put("dispatched_time", jsoCall.getDispatchedTime());
|
||||
sqlCall.put("address", jsoCall.getAddress());
|
||||
sqlCall.put("signal", jsoCall.getSignal());
|
||||
sqlCall.put("call_description", jsoCall.getCallDescription());
|
||||
if (jsoCall.getPoint() != null) {
|
||||
sqlCall.put("x", jsoCall.getPoint().getLat());
|
||||
sqlCall.put("y", jsoCall.getPoint().getLng());
|
||||
} else {
|
||||
sqlCall.put("x", null);
|
||||
sqlCall.put("y", null);
|
||||
}
|
||||
|
||||
exchange.getIn().setBody(sqlCall);
|
||||
})
|
||||
.to(appProperties.jsoCadUpdateRouteOut());
|
||||
|
||||
from("direct:processedCalls")
|
||||
.errorHandler(deadLetterChannel("log:dead?level=ERROR"))
|
||||
.filter(exchange -> exchange.getIn().getBody(JsoCall.class).getPoint() != null)
|
||||
.process(exchange -> {
|
||||
JsoCall jsoCall = exchange.getIn().getBody(JsoCall.class);
|
||||
if (Point2D.distance(jsoCall.getPoint().getLat(), jsoCall.getPoint().getLng(), appProperties.myLat(), appProperties.myLong())
|
||||
<= appProperties.telegramNotificationThreshold()) {
|
||||
exchange.setRouteStop(true);
|
||||
}
|
||||
})
|
||||
.to(appProperties.telegramRoute());
|
||||
}
|
||||
}
|
||||
87
src/main/java/com/c4181/model/JsoCall.java
Normal file
87
src/main/java/com/c4181/model/JsoCall.java
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
package com.c4181.model;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
public class JsoCall {
|
||||
|
||||
String incidentNumber;
|
||||
LocalDateTime dispatchedTime;
|
||||
String address;
|
||||
String signal;
|
||||
String callDescription;
|
||||
Point point;
|
||||
|
||||
public String getIncidentNumber() {
|
||||
return incidentNumber;
|
||||
}
|
||||
|
||||
public void setIncidentNumber(String incidentNumber) {
|
||||
this.incidentNumber = incidentNumber;
|
||||
}
|
||||
|
||||
public LocalDateTime getDispatchedTime() {
|
||||
return dispatchedTime;
|
||||
}
|
||||
|
||||
public void setDispatchedTime(LocalDateTime dispatchedTime) {
|
||||
this.dispatchedTime = dispatchedTime;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getSignal() {
|
||||
return signal;
|
||||
}
|
||||
|
||||
public void setSignal(String signal) {
|
||||
this.signal = signal;
|
||||
}
|
||||
|
||||
public String getCallDescription() {
|
||||
return callDescription;
|
||||
}
|
||||
|
||||
public void setCallDescription(String callDescription) {
|
||||
this.callDescription = callDescription;
|
||||
}
|
||||
|
||||
public Point getPoint() {
|
||||
return point;
|
||||
}
|
||||
|
||||
public void setPoint(Point point) {
|
||||
this.point = point;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
JsoCall jsoCall = (JsoCall) o;
|
||||
return Objects.equals(incidentNumber, jsoCall.incidentNumber) && Objects.equals(dispatchedTime, jsoCall.dispatchedTime) && Objects.equals(address, jsoCall.address) && Objects.equals(signal, jsoCall.signal) && Objects.equals(callDescription, jsoCall.callDescription) && Objects.equals(point, jsoCall.point);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(incidentNumber, dispatchedTime, address, signal, callDescription, point);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JsoCall{" +
|
||||
"incidentNumber='" + incidentNumber + '\'' +
|
||||
", dispatchedTime=" + dispatchedTime +
|
||||
", address='" + address + '\'' +
|
||||
", signal='" + signal + '\'' +
|
||||
", callDescription='" + callDescription + '\'' +
|
||||
", point=" + point +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
106
src/main/java/com/c4181/model/JsoCallDecoder.java
Normal file
106
src/main/java/com/c4181/model/JsoCallDecoder.java
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
package com.c4181.model;
|
||||
|
||||
import com.google.maps.GeoApiContext;
|
||||
import com.google.maps.GeocodingApi;
|
||||
import com.google.maps.GeocodingApiRequest;
|
||||
import com.google.maps.model.GeocodingResult;
|
||||
import io.quarkus.logging.Log;
|
||||
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
import javax.inject.Inject;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ApplicationScoped
|
||||
public class JsoCallDecoder {
|
||||
|
||||
@Inject
|
||||
GeoApiContext geoApiContext;
|
||||
|
||||
public List<JsoCall> decodeJsoCallUpdates(String updates) {
|
||||
List<String> newCalls = Arrays.stream(updates.split("\n"))
|
||||
.filter(line -> line.contains("added"))
|
||||
.filter(line -> !line.contains("Last refreshed"))
|
||||
.map(line -> line.replace("(added )", ""))
|
||||
.map(String::trim)
|
||||
.toList();
|
||||
|
||||
String pattern = "(\\d+)\\s+(\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2})\\s+(.+)\\s+( \\d+\\s?[\\w\\d]*)\\s+(.+)";
|
||||
Pattern p = Pattern.compile(pattern);
|
||||
|
||||
List<JsoCall> jsoCalls = new ArrayList<>();
|
||||
for (String call : newCalls) {
|
||||
Matcher m = p.matcher(call);
|
||||
if (!m.matches() || m.groupCount() != 5) {
|
||||
Log.warnf("Failed to parse call\n%s", call);
|
||||
continue;
|
||||
}
|
||||
|
||||
JsoCall jsoCall = new JsoCall();
|
||||
jsoCall.setIncidentNumber(m.group(1).trim());
|
||||
jsoCall.setDispatchedTime(parseTimeWithoutYear(m.group(2).trim()));
|
||||
jsoCall.setAddress(m.group(3).trim());
|
||||
jsoCall.setSignal(m.group(4).trim());
|
||||
jsoCall.setCallDescription(m.group(5).trim());
|
||||
if (!jsoCall.getAddress().contains("I95")
|
||||
&& !jsoCall.getAddress().contains("I295") && !jsoCall.getAddress().contains("I10")) {
|
||||
jsoCall.setPoint(geoCodeAddress(jsoCall.getAddress()));
|
||||
}
|
||||
|
||||
jsoCalls.add(jsoCall);
|
||||
}
|
||||
|
||||
return jsoCalls;
|
||||
}
|
||||
|
||||
|
||||
private static LocalDateTime parseTimeWithoutYear(String stringWithoutYear) {
|
||||
ZoneId zone = ZoneId.of("America/New_York");
|
||||
LocalDateTime now = LocalDateTime.now(zone);
|
||||
int defaultYear = now.getYear();
|
||||
LocalDateTime dateTime = parseWithDefaultYear(stringWithoutYear, defaultYear);
|
||||
|
||||
if (dateTime.isAfter(now)) { // in the future
|
||||
defaultYear--;
|
||||
dateTime = parseWithDefaultYear(stringWithoutYear, defaultYear);
|
||||
}
|
||||
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
private static LocalDateTime parseWithDefaultYear(String stringWithoutYear, int defaultYear) {
|
||||
DateTimeFormatter parseFormatter = new DateTimeFormatterBuilder()
|
||||
.appendPattern("M-d HH:mm")
|
||||
.parseDefaulting(ChronoField.YEAR, defaultYear)
|
||||
.toFormatter(Locale.ENGLISH);
|
||||
|
||||
return LocalDateTime.parse(stringWithoutYear, parseFormatter);
|
||||
}
|
||||
|
||||
private Point geoCodeAddress(String address) {
|
||||
|
||||
GeocodingApiRequest request = GeocodingApi.newRequest(geoApiContext).address(address + "Jacksonville, FL");
|
||||
GeocodingResult[] results;
|
||||
try {
|
||||
results = request.await();
|
||||
} catch (Exception e) {
|
||||
Log.warnf("Geocode Request failed for %s due to %s", address, e);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (results == null || results[0] == null || results[0].geometry.location == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Point(results[0].geometry.location.lat, results[0].geometry.location.lng);
|
||||
}
|
||||
}
|
||||
50
src/main/java/com/c4181/model/Point.java
Normal file
50
src/main/java/com/c4181/model/Point.java
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
package com.c4181.model;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Point {
|
||||
private double lat;
|
||||
private double lng;
|
||||
|
||||
public Point(double lat, double lng) {
|
||||
this.lat = lat;
|
||||
this.lng = lng;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
return lat;
|
||||
}
|
||||
|
||||
public void setLat(double lat) {
|
||||
this.lat = lat;
|
||||
}
|
||||
|
||||
public double getLng() {
|
||||
return lng;
|
||||
}
|
||||
|
||||
public void setLng(double lng) {
|
||||
this.lng = lng;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
Point point = (Point) o;
|
||||
return Double.compare(point.lat, lat) == 0 && Double.compare(point.lng, lng) == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(lat, lng);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Point{" +
|
||||
"lat=" + lat +
|
||||
", lng=" + lng +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
16
src/main/java/com/c4181/properties/AppProperties.java
Normal file
16
src/main/java/com/c4181/properties/AppProperties.java
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package com.c4181.properties;
|
||||
|
||||
import io.smallrye.config.ConfigMapping;
|
||||
|
||||
@ConfigMapping(prefix = "app")
|
||||
public interface AppProperties {
|
||||
|
||||
String jsoCadUpdateRouteIn();
|
||||
String jsoCadUpdateRouteOut();
|
||||
String deadLetterRoute();
|
||||
String telegramRoute();
|
||||
String googleApiKey();
|
||||
double myLat();
|
||||
double myLong();
|
||||
double telegramNotificationThreshold();
|
||||
}
|
||||
17
src/main/resources/application.properties
Normal file
17
src/main/resources/application.properties
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
app.jso-cad-update-route-in=rabbitmq:${RABBITMQ_IP}/jso.cad.updates.to.postgres?queue=jso.cad.update.received&declare=false&vhost=jso&username=${RABBITMQ_USER}&password=${RABBITMQ_PASSWORD}&autoDelete=false
|
||||
app.jso-cad-update-route-out=sql:INSERT INTO calls(incident_number, dispatched_time, address, signal, call_description, point) VALUES (:#incident_number, :#dispatched_time, :#address, :#signal, :#call_description, point(:#x, :#y))
|
||||
app.dead-letter-route=rabbitmq:${RABBITMQ_IP}/failed.updates?declare=false&vhost=jso&username=${RABBITMQ_USER}&password=${RABBITMQ_PASSWORD}&autoDelete=false
|
||||
app.telegram-route=telegram:bots?authorizationToken=${TELEGRAM_BOT_ID}&chatId=${CHAT_ID}
|
||||
app.google-api-key=${GOOGLE_API_KEY}
|
||||
|
||||
app.my-lat=30.3025061
|
||||
app.my-long=-81.6436614
|
||||
app.telegram-notification-threshold=2.0
|
||||
|
||||
RABBITMQ_IP=192.168.1.117
|
||||
POSTGRES_IP=192.168.1.17
|
||||
|
||||
quarkus.datasource.db-kind=postgresql
|
||||
quarkus.datasource.username=${POSTGRES_USER}
|
||||
quarkus.datasource.password=${POSTGRES_PASSWORD}
|
||||
quarkus.datasource.jdbc.url=jdbc:postgresql://${POSTGRES_IP}:5432/jsoCad
|
||||
41
src/test/java/com/c4181/camel/CamelConfigTest.java
Normal file
41
src/test/java/com/c4181/camel/CamelConfigTest.java
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
package com.c4181.camel;
|
||||
|
||||
import com.c4181.model.JsoCall;
|
||||
import com.c4181.properties.AppProperties;
|
||||
import io.quarkus.test.junit.QuarkusTest;
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.ProducerTemplate;
|
||||
import org.apache.camel.component.mock.MockEndpoint;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
@QuarkusTest
|
||||
class CamelConfigTest {
|
||||
@Inject
|
||||
ProducerTemplate producerTemplate;
|
||||
|
||||
@Inject
|
||||
CamelContext camelContext;
|
||||
|
||||
@Inject
|
||||
AppProperties appProperties;
|
||||
|
||||
@Test
|
||||
void happyPathTest() throws IOException {
|
||||
MockEndpoint endpoint = (MockEndpoint) camelContext.getEndpoint(appProperties.jsoCadUpdateRouteOut());
|
||||
String data = Files.readString(Paths.get("src/test/resources/test-payload.txt"));
|
||||
|
||||
producerTemplate.sendBody(appProperties.jsoCadUpdateRouteIn(), data);
|
||||
|
||||
assertEquals(52, endpoint.getExchanges().size());
|
||||
JsoCall call = endpoint.getExchanges().get(0).getIn().getBody(JsoCall.class);
|
||||
assertEquals("202200769492", call.getIncidentNumber());
|
||||
}
|
||||
|
||||
}
|
||||
74
src/test/java/com/c4181/model/JsoCallDecoderTest.java
Normal file
74
src/test/java/com/c4181/model/JsoCallDecoderTest.java
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
package com.c4181.model;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
class JsoCallDecoderTest {
|
||||
|
||||
@Test
|
||||
void testDecode() throws IOException {
|
||||
String data = Files.readString(Paths.get("src/test/resources/test-payload.txt"));
|
||||
|
||||
JsoCallDecoder decoder = new JsoCallDecoder();
|
||||
List<JsoCall> calls = decoder.decodeJsoCallUpdates(data);
|
||||
assertEquals(52, calls.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testEdgeCaseSignals() throws IOException {
|
||||
String data = Files.readString(Paths.get("src/test/resources/edge-cases.txt"));
|
||||
|
||||
JsoCallDecoder decoder = new JsoCallDecoder();
|
||||
List<JsoCall> calls = decoder.decodeJsoCallUpdates(data);
|
||||
assertEquals(6, calls.size());
|
||||
|
||||
JsoCall firstCall = calls.get(0);
|
||||
assertEquals("202200769492", firstCall.getIncidentNumber());
|
||||
assertNotNull(firstCall.getDispatchedTime());
|
||||
assertEquals("5200 RAMONA BLVD", firstCall.getAddress());
|
||||
assertEquals("13", firstCall.getSignal());
|
||||
assertEquals("SUSPICIOUS PERSON", firstCall.getCallDescription());
|
||||
|
||||
JsoCall secondCall = calls.get(1);
|
||||
assertEquals("202200769474", secondCall.getIncidentNumber());
|
||||
assertNotNull(secondCall.getDispatchedTime());
|
||||
assertEquals("9100 MERRILL RD", secondCall.getAddress());
|
||||
assertEquals("4", secondCall.getSignal());
|
||||
assertEquals("AUTO CRASH", secondCall.getCallDescription());
|
||||
|
||||
JsoCall thirdCall = calls.get(2);
|
||||
assertEquals("202200769409", thirdCall.getIncidentNumber());
|
||||
assertNotNull(thirdCall.getDispatchedTime());
|
||||
assertEquals("1000 ST CLAIR ST", thirdCall.getAddress());
|
||||
assertEquals("21CT", thirdCall.getSignal());
|
||||
assertEquals("BURGLARY CONVEYANCE TELESERVE", thirdCall.getCallDescription());
|
||||
|
||||
JsoCall fourthCall = calls.get(3);
|
||||
assertEquals("202300004101", fourthCall.getIncidentNumber());
|
||||
assertNotNull(fourthCall.getDispatchedTime());
|
||||
assertEquals("12000 ATLANTIC BLVD", fourthCall.getAddress());
|
||||
assertEquals("1050", fourthCall.getSignal());
|
||||
assertEquals("TRAFFIC STOP", fourthCall.getCallDescription());
|
||||
|
||||
JsoCall fifthCall = calls.get(4);
|
||||
assertEquals("202300004011", fifthCall.getIncidentNumber());
|
||||
assertNotNull(fifthCall.getDispatchedTime());
|
||||
assertEquals("BULLS BAY HWY / BEAVER ST W", fifthCall.getAddress());
|
||||
assertEquals("0 13", fifthCall.getSignal());
|
||||
assertEquals("ARMED SUSPICIOUS PERSON", fifthCall.getCallDescription());
|
||||
|
||||
JsoCall sixthCall = calls.get(5);
|
||||
assertEquals("202300004560", sixthCall.getIncidentNumber());
|
||||
assertNotNull(sixthCall.getDispatchedTime());
|
||||
assertEquals("3700 TOLEDO RD", sixthCall.getAddress());
|
||||
assertEquals("37", sixthCall.getSignal());
|
||||
assertEquals("UNVERIFIED 911 CALL", sixthCall.getCallDescription());
|
||||
}
|
||||
}
|
||||
2
src/test/resources/application.properties
Normal file
2
src/test/resources/application.properties
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
app.jso-cad-update-route-in=direct:start
|
||||
app.jso-cad-update-route-out=mock:results
|
||||
23
src/test/resources/edge-cases.txt
Normal file
23
src/test/resources/edge-cases.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
JSO CAD
|
||||
|
||||
JACKSONVILLE SHERIFF'S OFFICE
|
||||
JSO Calls for Service
|
||||
|
||||
COMPLETED DISPATCHED CALLS FOR SERVICE
|
||||
|
||||
Welcome to the Jacksonville Sheriff’s Office Completed Dispatched Calls for Service webpage. This page displays calls for service made to the Jacksonville Sheriff's Office that have recently been completed. The data on this page is refreshed automatically.
|
||||
|
||||
This information is not intended to be used as official crime data. This program does not provide information about all crimes, and excludes specific incidents such as sexual assaults and child abuse.
|
||||
|
||||
Disclaimer: The Jacksonville Sheriff's Office makes every effort to produce and publish current and accurate information. No warranties, expressed or implied, are provided for the data herein, its use, or its interpretation. The services provided are for informational purposes only and should not be relied on for any type of legal action.
|
||||
|
||||
(changed) Last refreshed 12/31 12:49:22
|
||||
(into ) Last refreshed 12/31 13:45:54
|
||||
|
||||
Incident # Dispatched Block Address Signal Call Description
|
||||
(added ) 202200769492 12-31 12:26 5200 RAMONA BLVD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769474 12-31 12:19 9100 MERRILL RD 4 AUTO CRASH
|
||||
(added ) 202200769409 12-31 11:18 1000 ST CLAIR ST 21CT BURGLARY CONVEYANCE TELESERVE
|
||||
(added ) 202300004101 1-3 08:29 12000 ATLANTIC BLVD 1050 TRAFFIC STOP
|
||||
(added ) 202300004011 1-3 07:37 BULLS BAY HWY / BEAVER ST W 0 13 ARMED SUSPICIOUS PERSON
|
||||
(added ) 202300004560 1-3 11:44 3700 TOLEDO RD 37 UNVERIFIED 911 CALL
|
||||
386
src/test/resources/test-payload.txt
Normal file
386
src/test/resources/test-payload.txt
Normal file
|
|
@ -0,0 +1,386 @@
|
|||
JSO CAD
|
||||
|
||||
JACKSONVILLE SHERIFF'S OFFICE
|
||||
JSO Calls for Service
|
||||
|
||||
COMPLETED DISPATCHED CALLS FOR SERVICE
|
||||
|
||||
Welcome to the Jacksonville Sheriff’s Office Completed Dispatched Calls for Service webpage. This page displays calls for service made to the Jacksonville Sheriff's Office that have recently been completed. The data on this page is refreshed automatically.
|
||||
|
||||
This information is not intended to be used as official crime data. This program does not provide information about all crimes, and excludes specific incidents such as sexual assaults and child abuse.
|
||||
|
||||
Disclaimer: The Jacksonville Sheriff's Office makes every effort to produce and publish current and accurate information. No warranties, expressed or implied, are provided for the data herein, its use, or its interpretation. The services provided are for informational purposes only and should not be relied on for any type of legal action.
|
||||
|
||||
(changed) Last refreshed 12/31 12:49:22
|
||||
(into ) Last refreshed 12/31 13:45:54
|
||||
|
||||
Incident # Dispatched Block Address Signal Call Description
|
||||
(added ) 202200769492 12-31 12:26 5200 RAMONA BLVD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769428 12-31 12:25 EDGEWOOD AVE W / LUSAID DR 16 ROAD OBSTRUCTION
|
||||
(added ) 202200769469 12-31 12:20 700 MC DUFF AVE N 63 DISPUTE
|
||||
(added ) 202200769474 12-31 12:19 9100 MERRILL RD 4 AUTO CRASH
|
||||
(added ) 202200769494 12-31 12:12 5300 RIVERTON RD 22 DOMESTIC
|
||||
(added ) 202200769493 12-31 12:09 8800 BEACH 9 THEFT
|
||||
(added ) 202200769482 12-31 12:03 8600 BEACH BLVD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769478 12-31 12:00 3100 EDGEWOOD AVE N 63 DISPUTE
|
||||
(added ) 202200769459 12-31 11:56 900 MCDUFF AVE S 4 AUTO CRASH
|
||||
(added ) 202200769350 12-31 11:55 EVANS LN / MANDARIN RD 64 NOISE COMPLAINT
|
||||
(added ) 202200769465 12-31 11:49 10900 HECKSCHER DRIVE 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769396 12-31 11:40 9300 SAN JOSE BLVD 88 ASSAULT
|
||||
(added ) 202200769431 12-31 11:39 TOWN CENTER PKWY / BIG ISLAND DR 4 AUTO CRASH
|
||||
(added ) 202200769454 12-31 11:36 1200 KINGS RD 76 ASSIST OTHER AGENCY
|
||||
(added ) 202200769455 12-31 11:35 I95/BAY 1050 TRAFFIC STOP
|
||||
(added ) 202200769391 12-31 11:34 12700 SAN JOSE BLVD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769444 12-31 11:34 2200 INDIAN SPRINGS DR 63 DISPUTE
|
||||
(added ) 202200769406 12-31 11:34 3100 EDGEWOOD AVE N 27 MENTALLY ILL PERSON
|
||||
(added ) 202200769445 12-31 11:31 1200 AIRPORT RD 14CT VANDALISM CONVEYANCE TELESERVE
|
||||
(added ) 202200769403 12-31 11:25 1400 21ST ST W 22 DOMESTIC
|
||||
(added ) 202200769427 12-31 11:22 9700 WAYNESBORO AVE 9T THEFT (TELESERVE)
|
||||
(added ) 202200769409 12-31 11:18 1000 ST CLAIR ST 21CT BURGLARY CONVEYANCE TELESERVE
|
||||
202200769429 12-31 11:17 700 LIBERTY ST N 73 DRUG INVESTIGATION
|
||||
(added ) 202200769372 12-31 11:15 BAYMEADOWS RD / POINT MEADOWS DR 4 AUTO CRASH
|
||||
(added ) 202200769367 12-31 11:15 8300 WESTERN WAY 63 DISPUTE
|
||||
(added ) 202200769425 12-31 11:13 COLLINS RD / I295 N OFF RAMP 16 ROAD OBSTRUCTION
|
||||
202200769418 12-31 11:11 14100 BEACH BLVD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769359 12-31 11:07 10300 DE PAUL DR 63 DISPUTE
|
||||
(added ) 202200769388 12-31 11:07 1800 27TH ST E 22 DOMESTIC
|
||||
202200769414 12-31 11:06 STOCKTON ST / BEAVER ST W 1050 TRAFFIC STOP
|
||||
202200769354 12-31 11:06 5900 TOWNSEND RD 63 DISPUTE
|
||||
(added ) 202200769411 12-31 11:06 1200 GLENN DR 76 ASSIST OTHER AGENCY
|
||||
(added ) 202200769370 12-31 11:05 UNIVERSITY BLVD W / POWERS AVE 4 AUTO CRASH
|
||||
202200769410 12-31 11:04 10900 HECKSCHER DR 1050 TRAFFIC STOP
|
||||
202200769402 12-31 11:02 3700 MAIN ST N 1066 CANCEL
|
||||
202200769319 12-31 10:58 2800 FLANDERS ST 63 DISPUTE
|
||||
(added ) 202200769385 12-31 10:57 200 STATE ST E 63 DISPUTE
|
||||
202200769392 12-31 10:56 10900 HECKSCHER DR 1050 TRAFFIC STOP
|
||||
(added ) 202200769386 12-31 10:54 3400 BUCKMAN ST 60 SUICIDE OR ATTEMPT
|
||||
(added ) 202200769371 12-31 10:52 3500 RIBAULT SCENIC DR 33 DISCHARGING OF FIREARM
|
||||
(added ) 202200769363 12-31 10:48 200 STATE ST E 9J THEFT JUST OCCURRED
|
||||
(added ) 202200769364 12-31 10:48 5200 BURDETTE RD 21C BURGLARY CONVEYANCE
|
||||
202200769340 12-31 10:47 1500 BROWARD RD 13 SUSPICIOUS PERSON
|
||||
(added ) 202200769256 12-31 10:43 7600 MERRILL RD 4 AUTO CRASH
|
||||
(added ) 202200769368 12-31 10:42 3600 SILVER ST 21C BURGLARY CONVEYANCE
|
||||
(added ) 202200769289 12-31 10:41 1100 KENDALL TOWN BLVD 63 DISPUTE
|
||||
202200769356 12-31 10:38 2500 MCCOYS CREEK BLVD 21CT BURGLARY CONVEYANCE TELESERVE
|
||||
(added ) 202200769303 12-31 10:30 SAN JOSE BLVD / HALEY RD 4 AUTO CRASH
|
||||
202200769332 12-31 10:29 3900 MARIANNA RD 22 DOMESTIC
|
||||
(added ) 202200769309 12-31 10:29 3200 HUNT ST 63 DISPUTE
|
||||
(added ) 202200769351 12-31 10:28 LEM TURNER/EAGERTON 4 AUTO CRASH
|
||||
(added ) 202200769321 12-31 10:27 7800 BAYMEADOWS RD E 63 DISPUTE
|
||||
(added ) 202200769347 12-31 10:25 1300 HENDRICKS AVE 95IDT IDENTITY THEFT TELESERVE
|
||||
202200769346 12-31 10:25 10900 HECKSCHER DRIVE 63 DISPUTE
|
||||
202200769331 12-31 10:24 5200 UNIVERSITY BLVD W 76 ASSIST OTHER AGENCY
|
||||
202200769263 12-31 10:22 1200 ROLAND ST 22 DOMESTIC
|
||||
(added ) 202200769292 12-31 10:21 1700 BLANDING BLVD 14B VANDALISM BUSINESS
|
||||
202200769284 12-31 10:21 12300 BLUE STREAM DR 63 DISPUTE
|
||||
202200769334 12-31 10:19 7900 103RD ST 96 ASSIST MOTORIST
|
||||
202200769275 12-31 10:19 4800 RIVER CITY DR 27 MENTALLY ILL PERSON
|
||||
202200769264 12-31 10:15 3100 EDGEWOOD AVE N 63 DISPUTE
|
||||
202200769322 12-31 10:14 1800 45TH ST W 1066 CANCEL
|
||||
202200769325 12-31 10:12 800 DUNN AVE 63 DISPUTE
|
||||
(added ) 202200769324 12-31 10:11 8800 BEACH BLVD 9 THEFT
|
||||
202200769318 12-31 10:08 COLLINS RD / RAMPART RD 4 AUTO CRASH
|
||||
(added ) 202200769313 12-31 10:07 4600 WOOLMAN AVE 21R BURGLARY RESIDENCE
|
||||
202200769308 12-31 10:07 1800 BLANDING BLVD 63 DISPUTE
|
||||
202200769312 12-31 10:06 7300 CINNAMON LAKES DR 11 ABANDONED VEHICLE
|
||||
(added ) 202200769296 12-31 10:06 LEM TURNER RD / EAGERTON RD 4 AUTO CRASH
|
||||
202200769231 12-31 10:05 1000 EDGEWOOD AVE N 9 THEFT
|
||||
202200769285 12-31 10:03 43RD ST E / MAIN ST N 63 DISPUTE
|
||||
202200769310 12-31 10:03 MCDUFF AVE S / EDISON AVE 1050 TRAFFIC STOP
|
||||
202200769307 12-31 10:02 3100 GREEN ARBOR PL 63 DISPUTE
|
||||
202200769260 12-31 10:01 2500 SPRING POND LN 64 NOISE COMPLAINT
|
||||
202200769305 12-31 10:01 8400 103RD ST 1050 TRAFFIC STOP
|
||||
(added ) 202200769293 12-31 09:54 8800 BEACH BLVD 9 THEFT
|
||||
202282022842 12-31 09:50 10TH ST BEACH ACCESS 19 ANIMAL INVESTIGATION
|
||||
202200769278 12-31 09:45 OLD MIDDLEBURG RD N / VINING ST 1050 TRAFFIC STOP
|
||||
202200769247 12-31 09:44 5300 GOLF COURSE DR 21CT BURGLARY CONVEYANCE TELESERVE
|
||||
202200769273 12-31 09:43 8300 ODEN AVE 1066 CANCEL
|
||||
202200769238 12-31 09:43 OLD ST AUGUSTINE RD / SAN JOSE BLVD 91 TRAFFIC LIGHT/RR CROSSING MALFUNCTION
|
||||
202200769269 12-31 09:42 5100 UNIVERSITY BLVD W 63 DISPUTE
|
||||
202200769240 12-31 09:41 LANE AVE S / I10 W OFF RAMP 68 CON GAME/FLIM FLAM
|
||||
202200769265 12-31 09:35 103RD ST / KEN RD 13 SUSPICIOUS PERSON
|
||||
202200769258 12-31 09:33 1600 EL PRADO RD 63 DISPUTE
|
||||
202200769253 12-31 09:29 1100 CASSAT AVE 13 SUSPICIOUS PERSON
|
||||
202200769201 12-31 09:26 5100 ARMSGATE CT 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
(added ) 202200769248 12-31 09:25 9300 THUNDERBOLT DR 9 THEFT
|
||||
202200769239 12-31 09:23 SAN JOSE BLVD / SAN JOSE PL 29 WIRE DOWN
|
||||
202200769219 12-31 09:21 3500 SAN PABLO RD S 22 DOMESTIC
|
||||
202200769242 12-31 09:21 9000(910) BLK AUGUST DR 13 SUSPICIOUS PERSON
|
||||
202200769215 12-31 09:20 14400 BEACH BLVD 9J THEFT JUST OCCURRED
|
||||
202200769237 12-31 09:19 1500 GLENDALE ST 1066 CANCEL
|
||||
202200769235 12-31 09:16 OLD KINGS RD S / BAYMEADOWS RD 13 SUSPICIOUS PERSON
|
||||
202200769195 12-31 09:15 10100 DOGWOOD CREEK DR 86 LOST PROPERTY
|
||||
202200769233 12-31 09:14 1000 TURTLE CREEK DR N 76 ASSIST OTHER AGENCY
|
||||
(added ) 202200769234 12-31 09:14 6000 TERRY PARKER DR N 9 THEFT
|
||||
202200769217 12-31 09:13 8500 TOUCHTON RD 64 NOISE COMPLAINT
|
||||
202200769230 12-31 09:09 103RD ST / CALIFORNIA AVE 1050 TRAFFIC STOP
|
||||
202200769221 12-31 09:06 2700 ENDEAVOUR LN 64 NOISE COMPLAINT
|
||||
202200769216 12-31 09:05 9400 ATLANTIC BLVD 1066 CANCEL
|
||||
202200769191 12-31 09:03 1000 UNIVERSITY BLVD N 63 DISPUTE
|
||||
202200769220 12-31 09:00 5200 LA VENTURA CT E 63 DISPUTE
|
||||
202200769194 12-31 08:51 2500 SPRING POND LN 64 NOISE COMPLAINT
|
||||
202200769202 12-31 08:51 11100 LEM TURNER RD 14BT VANDALISM BUSINESS TELE-SERVE
|
||||
202200769214 12-31 08:49 4700 GRACE FARMS LN 88P ASSAULT IN PROGRESS
|
||||
202282022840 12-31 08:44 400 MAKO DR 1050 TRAFFIC STOP
|
||||
202200769209 12-31 08:40 8200 MONCRIEF-DINSMORE RD 3 HIT AND RUN CRASH
|
||||
202200769162 12-31 08:40 9600 MCDANIEL DR 22 DOMESTIC
|
||||
202200769210 12-31 08:39 LANE AVE S / NORMANDY BLVD 1050 TRAFFIC STOP
|
||||
202200769204 12-31 08:38 10200 ROADWAY DR 2 22 DOMESTIC DISTURBANCE
|
||||
(added ) 202200769207 12-31 08:37 8100 TEXAS ST 88P ASSAULT IN PROGRESS
|
||||
202200769181 12-31 08:32 11000 HARTS RD 21C BURGLARY CONVEYANCE
|
||||
202200769198 12-31 08:31 1500 LANE AVE S 54 ILLEGALLY PARKED CAR
|
||||
202200769197 12-31 08:27 1400 PRUDENTIAL DR 86T LOST PROPERTY (TELESERVE)
|
||||
202200769193 12-31 08:22 1200 LABELLE ST 88 ASSAULT
|
||||
202200769137 12-31 08:18 800 PRUDENTIAL DR 9 THEFT
|
||||
(added ) 202200769189 12-31 08:18 I95 S OFF RAMP / FOREST ST 4 AUTO CRASH
|
||||
202200769160 12-31 08:13 9900 SAN JOSE BLVD 29 WIRE DOWN
|
||||
202282022839 12-31 08:11 19TH ST BEACH ACCESS 19 ANIMAL INVESTIGATION
|
||||
202200769180 12-31 08:11 13500 BEACH BLVD 88J ASSAULT JUST OCCURRED
|
||||
202200769176 12-31 08:10 1700 26TH ST W 63 DISPUTE
|
||||
202200769177 12-31 07:58 YOUNGERMAN CIR / ARGYLE FOREST BLVD 1050 TRAFFIC STOP
|
||||
202200769173 12-31 07:52 14600 DUVAL RD 76 ASSIST OTHER AGENCY
|
||||
202200769165 12-31 07:52 3400 SHAUNA OAKS DR 10 VEHICLE THEFT
|
||||
202200769136 12-31 07:51 15600 DEWANNA RD 6388 DISPUTE WITH ASSAULT
|
||||
202200769158 12-31 07:51 STATE ST E / OCEAN ST N 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
(added ) 202200769171 12-31 07:47 11000 PHILIPS HWY 50 FOUND/ABANDONED PROPERTY
|
||||
202200769170 12-31 07:46 3700 WINTON DR 76 ASSIST OTHER AGENCY
|
||||
202200769172 12-31 07:46 1800 DONALD ST 1066 CANCEL
|
||||
202200769163 12-31 07:37 200 STATE ST E 26EB PERSON WITH EXTREME BEHAVIOR
|
||||
202200769156 12-31 07:36 5200 SOUTEL DR 0 63 ARMED DISPUTE
|
||||
202200769159 12-31 07:33 5200 BURDETTE RD 21CT BURGLARY CONVEYANCE TELESERVE
|
||||
202200769161 12-31 07:32 I10 AT MCDUFF AVE 1050 TRAFFIC STOP
|
||||
202200769144 12-31 07:30 4100 MARBLEWOOD LN 4 AUTO CRASH
|
||||
202200769153 12-31 07:29 9600 TOUCHTON RD 63 DISPUTE
|
||||
202200769123 12-31 07:26 1000 DETROIT ST 88 ASSAULT
|
||||
202200769148 12-31 07:26 14500 OLD ST AUGUSTINE RD 37 UNVERIFIED 911 CALL
|
||||
202200769150 12-31 07:24 5200 YELLOW WATER RD 10R VEHICLE THEFT RECOVERY
|
||||
202200769155 12-31 07:21 1700 CLYDE ST 63 DISPUTE
|
||||
202200769106 12-31 07:16 700 MARKET ST N 63 DISPUTE
|
||||
202200769152 12-31 07:16 5600 ALTA ST 76 ASSIST OTHER AGENCY
|
||||
202200769141 12-31 07:10 6200 ARLINGTON EXPY 63 DISPUTE
|
||||
202200769149 12-31 07:09 1900 ASHMORE GREEN DR 8 27 MISSING MENTALLY ILL
|
||||
202200769147 12-31 07:08 6900 WILEY RD 88 ASSAULT
|
||||
202200769120 12-31 07:03 9400 ATLANTIC BLVD 13 SUSPICIOUS PERSON
|
||||
202200769117 12-31 07:03 3300 ROGERO RD 63 DISPUTE
|
||||
202200769128 12-31 07:01 NORWOOD AVE / CARROLLTON RD 3 HIT AND RUN CRASH
|
||||
202200769115 12-31 06:59 3400 NATALIE DR N 22 DOMESTIC
|
||||
202200769143 12-31 06:57 10300 BEACH BLVD 0 63 ARMED DISPUTE
|
||||
202200769142 12-31 06:57 100 MAIN ST BRG S 60 SUICIDE OR ATTEMPT
|
||||
202282022836 12-31 06:53 100 AHERN ST 13 SUSPICIOUS PERSON
|
||||
202200769138 12-31 06:50 1900 BERKLEY ST 10J VEHICLE THEFT JUST OCCURRED
|
||||
202200769135 12-31 06:49 5500 PINEHILL LN 13 SUSPICIOUS PERSON
|
||||
202200769127 12-31 06:49 5400 COLLINS RD 14B VANDALISM BUSINESS
|
||||
202200769131 12-31 06:44 200 LANE AVE S 0 63 ARMED DISPUTE
|
||||
202200769083 12-31 06:43 10000 BELLE RIVE BLVD 64 NOISE COMPLAINT
|
||||
202200769111 12-31 06:42 11100 JUSTIN OAKS DR 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200769134 12-31 06:33 1600 FAIRFAX ST 96 ASSIST MOTORIST
|
||||
202200769114 12-31 06:15 400 CHURCH ST E 76 ASSIST OTHER AGENCY
|
||||
202282022832 12-31 06:14 300 AHERN ST 13 SUSPICIOUS PERSON
|
||||
202200768983 12-31 06:09 I295 N ON RAMP / I10 W OFF RAMP 4 AUTO CRASH
|
||||
202200769110 12-31 06:06 103RD ST / I295 S OFF RAMP 4 AUTO CRASH
|
||||
202200769098 12-31 06:05 5100 BIRKENHEAD RD 63 DISPUTE
|
||||
202282022831 12-31 06:02 100 OCEAN BLVD 13 SUSPICIOUS PERSON
|
||||
202200769092 12-31 05:54 5900 MONCRIEF RD W 63 DISPUTE
|
||||
202200769105 12-31 05:52 800 HAINES ST 50 FOUND/ABANDONED PROPERTY
|
||||
202200769099 12-31 05:50 6300 MORSE AVE 13 SUSPICIOUS PERSON
|
||||
202200769102 12-31 05:50 6800 SOUTHPOINT PKWY S 73 DRUG INVESTIGATION
|
||||
202200769095 12-31 05:47 6300 PICKETTVILLE RD 86 LOST PROPERTY
|
||||
202200769082 12-31 05:45 9500 SAN JOSE BLVD 88 ASSAULT
|
||||
202200769101 12-31 05:44 2400 TANNER LAKE CT 76 ASSIST OTHER AGENCY
|
||||
202200768329 12-31 05:39 9000 SOUTHSIDE BLVD 63 DISPUTE
|
||||
202200769094 12-31 05:37 10400 MONACO DR 63 DISPUTE
|
||||
202200769100 12-31 05:35 2400 TANNER LAKE CT 27 MENTALLY ILL PERSON
|
||||
202200769093 12-31 05:31 2500 JAMMES RD 13 SUSPICIOUS PERSON
|
||||
202200769060 12-31 05:30 8800 103RD ST 21CJ BURGLARY CONVEYANCE JUST OCCURRED
|
||||
202200769073 12-31 05:27 10200 ROADWAY DR 63 DISPUTE
|
||||
202200769059 12-31 05:22 1600 DUNN AVE 63 DISPUTE
|
||||
202200769079 12-31 05:18 1600 HAWKINS COVE DR W 13 SUSPICIOUS PERSON
|
||||
202200769090 12-31 05:18 PEARL ST N / GOLFAIR BLVD 16 ROAD OBSTRUCTION
|
||||
202200768967 12-31 05:13 10500 BESSENT RD N 22 DOMESTIC
|
||||
202200769088 12-31 05:09 1300 VAN BUREN ST 5388 ASSAULT INVOLVING INJURY
|
||||
202200769087 12-31 05:09 6600 MAIN ST N 21B BURGLARY BUSINESS
|
||||
202200769047 12-31 05:06 1600 DUNN AVE 13 SUSPICIOUS PERSON
|
||||
202200769044 12-31 05:06 8100 MARION CIR 22 DOMESTIC
|
||||
202200769075 12-31 05:01 6200 ARLINGTON EXPY 63 DISPUTE
|
||||
202200769085 12-31 04:59 8800 MONROE AVE 50 FOUND/ABANDONED PROPERTY
|
||||
202200769084 12-31 04:58 FREEDOM CROSSING TRL / PHILIPS HWY 1050 TRAFFIC STOP
|
||||
202200769081 12-31 04:53 3400 PHILIPS HWY 7 DEAD PERSON
|
||||
202200769077 12-31 04:44 TANNER LAKE CT / CARSON LAKE DR 76 ASSIST OTHER AGENCY
|
||||
202200768910 12-31 04:41 43RD ST W / DODGE RD 64 NOISE COMPLAINT
|
||||
202200769070 12-31 04:41 13400 GRAN BAY PKWY 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200769071 12-31 04:32 1100 WOODRUFF AVE 88P ASSAULT IN PROGRESS
|
||||
202200769069 12-31 04:26 9000 8TH AVE 1 IMPAIRED/DRUNK DRIVER
|
||||
202200769065 12-31 04:25 800 GARTH AVE 7 DEAD PERSON
|
||||
202200769068 12-31 04:23 R G SKINNER PKWY / ANNIE ELIZA RD 1050 TRAFFIC STOP
|
||||
202200769058 12-31 04:23 1300 KINGS RD 3 HIT AND RUN CRASH
|
||||
202200768985 12-31 04:21 6900 CORDAY RD 6388 DISPUTE WITH ASSAULT
|
||||
202200769061 12-31 04:21 1400 23RD CIR E 0 63 ARMED DISPUTE
|
||||
202200769053 12-31 04:15 13300 BEACH BLVD 63 DISPUTE
|
||||
202200769052 12-31 04:07 500 BAY ST E 1050 TRAFFIC STOP
|
||||
202200769049 12-31 04:05 5100 MAIN ST N 76 ASSIST OTHER AGENCY
|
||||
202200769048 12-31 04:02 4800 MONROE FOREST DR 8 MISSING PERSON
|
||||
202200769021 12-31 04:01 500 SPRING FOREST AVE 64 NOISE COMPLAINT
|
||||
202200769042 12-31 03:59 3400 NATALIE DR N 22 DOMESTIC
|
||||
202200769005 12-31 03:58 8700 PINON DR 2 63 DISPUTE IMPAIRED/INTOXICATED
|
||||
202200769043 12-31 03:51 100 MATHEWS BRG W 16 ROAD OBSTRUCTION
|
||||
202200768953 12-31 03:50 8300 GEOFFREY CT 21R BURGLARY RESIDENCE
|
||||
202200769033 12-31 03:48 7900 JASPER AVE 12 RECKLESS DRIVER
|
||||
202200768903 12-31 03:47 800 VICTORIA ST 63 DISPUTE
|
||||
202200769009 12-31 03:47 800 BRIDIER ST 22 DOMESTIC
|
||||
202200769032 12-31 03:42 1700 BROOKVIEW DR S 13 SUSPICIOUS PERSON
|
||||
202200769029 12-31 03:41 4900 RICHARD ST 13 SUSPICIOUS PERSON
|
||||
202200768994 12-31 03:39 8900 DEVONSHIRE BLVD 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768982 12-31 03:35 9000 NEW KINGS RD 21BJ BURGLARY BUSINESS JUST OCCURRED
|
||||
202200769008 12-31 03:34 1000 PARK ST 63 DISPUTE
|
||||
202200769007 12-31 03:34 200 SPRUCE ST 64 NOISE COMPLAINT
|
||||
202200769028 12-31 03:30 7000 COMMONWEALTH AVE 13 SUSPICIOUS PERSON
|
||||
202200769027 12-31 03:28 12500 HICKORY LAKES DR S 64 NOISE COMPLAINT
|
||||
202200769022 12-31 03:27 7700 PARADISE ISLAND BLVD 63 DISPUTE
|
||||
202200769023 12-31 03:25 300 RALEIGH RD 13 SUSPICIOUS PERSON
|
||||
202200769025 12-31 03:23 1000 GOLFAIR BLVD 63 DISPUTE
|
||||
202200769019 12-31 03:15 MAIN ST N / 10TH ST E 1050 TRAFFIC STOP
|
||||
202200769014 12-31 03:14 9700 WATERSHED CT 1066 CANCEL
|
||||
202200769013 12-31 03:11 6000 MAGGIES CIR 33 DISCHARGING OF FIREARM
|
||||
202200769012 12-31 03:08 9700 WATERSHED CT 76 ASSIST OTHER AGENCY
|
||||
202200769011 12-31 03:05 I295 S OFF RAMP / 103RD ST 4 AUTO CRASH
|
||||
202200769010 12-31 03:03 8800 MONROE AVE 60 SUICIDE OR ATTEMPT
|
||||
202200769000 12-31 02:59 JEFFERSON ST S / WATER ST 16 ROAD OBSTRUCTION
|
||||
202200768917 12-31 02:58 2200 FOREST HILLS RD 33 DISCHARGING OF FIREARM
|
||||
202200769001 12-31 02:57 900 KING ST 63 DISPUTE
|
||||
202200768977 12-31 02:56 8100 BAYMEADOWS WAY 73 DRUG INVESTIGATION
|
||||
202200768971 12-31 02:55 3900 TURTON AVE 90 FIREWORKS
|
||||
202200769006 12-31 02:54 8TH ST W / PEARL ST N 4 AUTO CRASH
|
||||
202200768996 12-31 02:51 4000 CEDAR ISLAND RD E 64 NOISE COMPLAINT
|
||||
202200768999 12-31 02:49 COLLINS RD / BLANDING BLVD 96 ASSIST MOTORIST
|
||||
202200768987 12-31 02:46 7700 PARADISE ISLAND BLVD 64 NOISE COMPLAINT
|
||||
202200768976 12-31 02:45 8700 PALM BREEZE RD 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768990 12-31 02:45 1000 MAYNARD ST 22 DOMESTIC
|
||||
202200768993 12-31 02:44 5900 SPORTSMAN CLUB RD 4 53 TRAFFIC CRASH PERSON INJURED
|
||||
202200768959 12-31 02:37 6700 COLLINS RD 64 NOISE COMPLAINT
|
||||
202200768986 12-31 02:37 LORETTO RD / SAN JOSE BLVD 13 SUSPICIOUS PERSON
|
||||
202200768945 12-31 02:35 6700 RAMONA BLVD 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768984 12-31 02:34 CANAL ST N / MARTIN LUTHER KING JR PKWY 1050 TRAFFIC STOP
|
||||
202200768980 12-31 02:32 8500 OSTEEN ST 5388 ASSAULT INVOLVING INJURY
|
||||
202200768981 12-31 02:32 I295 N ON RAMP / COMMONWEALTH AVE 4 AUTO CRASH
|
||||
202200768946 12-31 02:32 400 STARRATT RD 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768974 12-31 02:31 1900 COLLEGE CIR S 33 DISCHARGING OF FIREARM
|
||||
202200768979 12-31 02:30 11500 FT CAROLINE LAKES DR 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768972 12-31 02:29 4300 CONFEDERATE POINT RD 1066 CANCEL
|
||||
202200768975 12-31 02:26 I95 S ON RAMP / I295 S WBWY OFF RAMP 4 AUTO CRASH
|
||||
202200768919 12-31 02:23 5800 BARNES RD S 64 NOISE COMPLAINT
|
||||
202200768930 12-31 02:19 700 LANE AVE S 22 DOMESTIC
|
||||
202200768483 12-31 02:15 I95 N ON RAMP / MAX LEGGETT PKWY 3 HIT AND RUN CRASH
|
||||
202200768334 12-31 02:15 I295 N OFF RAMP / HECKSCHER DR 4 AUTO CRASH
|
||||
202200768966 12-31 02:11 100 BAY ST E 76 ASSIST OTHER AGENCY
|
||||
202200768951 12-31 02:10 MANDARIN RD / LORETTO RD 4 AUTO CRASH
|
||||
202200768962 12-31 02:05 MARTIN LUTHER KING JR PKWY / DIVISION ST 1050 TRAFFIC STOP
|
||||
202200768955 12-31 02:05 5600 LAFAYETTE PARK DR N 27 MENTALLY ILL PERSON
|
||||
202200768911 12-31 02:03 2500 SANDUSKY AVE E 73 DRUG INVESTIGATION
|
||||
202200768958 12-31 02:03 TALLULAH AVE / PEARL ST N 13 SUSPICIOUS PERSON
|
||||
202200768839 12-31 01:58 1900 24TH ST W 4 AUTO CRASH
|
||||
202200768947 12-31 01:57 EDGEWOOD AVE W / LEM TURNER RD 4 AUTO CRASH
|
||||
202200768950 12-31 01:54 8000 RAMONA BLVD W 63 DISPUTE
|
||||
202200768952 12-31 01:53 13TH ST E / PHOENIX AVE 76 ASSIST OTHER AGENCY
|
||||
202200768954 12-31 01:51 SHAD RD / PHILIPS HWY 1050 TRAFFIC STOP
|
||||
202200768938 12-31 01:50 IMESON RD / PRITCHARD RD 4 AUTO CRASH
|
||||
202200768949 12-31 01:50 100 BUCKMAN BRG S 13 SUSPICIOUS PERSON
|
||||
202200768948 12-31 01:49 400 CENTURY 21 DR 33 DISCHARGING OF FIREARM
|
||||
202200768943 12-31 01:46 4400 OAK VALLEY CT 27 MENTALLY ILL PERSON
|
||||
202200768940 12-31 01:44 3300 MABRY TER 33 DISCHARGING OF FIREARM
|
||||
202200768941 12-31 01:42 LENOX AVE / THOMPSON ST 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768914 12-31 01:42 2000 HODGES BLVD 64 NOISE COMPLAINT
|
||||
202200768939 12-31 01:38 6700 GASPAR CIR E 1050 TRAFFIC STOP
|
||||
202200768918 12-31 01:37 3100 ATLANTIC BLVD 63 DISPUTE
|
||||
202200768869 12-31 01:37 2800 UNIVERSITY BLVD S 64 NOISE COMPLAINT
|
||||
202200768925 12-31 01:36 100 FULLER WARREN BRG N 13 SUSPICIOUS PERSON
|
||||
202200768927 12-31 01:32 PRITCHARD RD / JONES BRANCH BLVD 4 53 TRAFFIC CRASH PERSON INJURED
|
||||
202200768932 12-31 01:32 5600 WELLER AVE 76 ASSIST OTHER AGENCY
|
||||
202200768897 12-31 01:32 3RD ST E / MAIN ST N 64 NOISE COMPLAINT
|
||||
202282022824 12-31 01:31 801(1000) BLK ATLANTIC BLVD 1050 TRAFFIC STOP
|
||||
202200768856 12-31 01:29 12300 MAIN ST N 27 MENTALLY ILL PERSON
|
||||
202200768921 12-31 01:29 5700 TIMUQUANA RD 13 SUSPICIOUS PERSON
|
||||
202200768924 12-31 01:28 1500 LIBERTY ST N 64 NOISE COMPLAINT
|
||||
202200768923 12-31 01:24 100 MAGNOLIA ST 64 NOISE COMPLAINT
|
||||
202200768922 12-31 01:24 BEACH BLVD / ST JOHNS BLUFF RD S 13 SUSPICIOUS PERSON
|
||||
202200768884 12-31 01:23 1300 HOLLYHOCK CIR E 13 SUSPICIOUS PERSON
|
||||
202282022823 12-31 01:18 801(1000) BLK ATLANTIC BLVD 1050 TRAFFIC STOP
|
||||
202200768895 12-31 01:17 25TH ST E / DANESE ST 64 NOISE COMPLAINT
|
||||
202200768912 12-31 01:15 2100 KINGS RD 21BJ BURGLARY BUSINESS JUST OCCURRED
|
||||
202200768783 12-31 01:14 1500 LANE AVE S 3 HIT AND RUN CRASH
|
||||
202200768908 12-31 01:13 RIVERPLACE BLVD / HENDRICKS AVE 60 SUICIDE OR ATTEMPT
|
||||
202200768909 12-31 01:13 BLUE AVE / 13TH ST W 1050 TRAFFIC STOP
|
||||
202200768885 12-31 01:13 9700 BEACH BLVD 1066 CANCEL
|
||||
202200768907 12-31 01:13 1600 SAN PABLO RD S 37 UNVERIFIED 911 CALL
|
||||
202200768791 12-31 01:11 4200 JILLIAN DR 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
202200768906 12-31 01:11 10800 HARTS ROAD 73 DRUG INVESTIGATION
|
||||
202200768901 12-31 01:09 5300 BLANDING BLVD 4 53 TRAFFIC CRASH PERSON INJURED
|
||||
202200768898 12-31 01:08 5700 BENEY RD 63 DISPUTE
|
||||
202200768904 12-31 01:08 GOLFAIR BLVD / I95 N OFF RAMP 1050 TRAFFIC STOP
|
||||
202200768886 12-31 01:07 6TH ST W / PAYNE AVE 64 NOISE COMPLAINT
|
||||
202200768879 12-31 01:05 10TH ST W / GRUNTHAL ST 64 NOISE COMPLAINT
|
||||
202200768900 12-31 01:05 1700 HODGES BLVD 22 DOMESTIC
|
||||
(changed) 202200768894 12-31 00:59 I95 S ON RAMP / PARK ST 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768863 12-31 00:57 400 LANE AVE S 63 DISPUTE
|
||||
(changed) 202200768878 12-31 00:57 1200 GROTHE ST 64 NOISE COMPLAINT
|
||||
(changed) 202200768892 12-31 00:54 BEACH BLVD / PEACH DR 1050 TRAFFIC STOP
|
||||
(changed) 202200768883 12-31 00:53 3800 PERRY ST 2288 DOMESTIC DISPUTE WITH/ASSAULT
|
||||
(changed) 202200768825 12-31 00:53 10200 OLD ST AUGUSTINE RD 64 NOISE COMPLAINT
|
||||
(changed) 202200768887 12-31 00:50 9100 BEAVER ST 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768881 12-31 00:49 42ND ST W / PEARL ST N 33 DISCHARGING OF FIREARM
|
||||
(changed) 202200768882 12-31 00:47 100 E FORSYTH ST 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768880 12-31 00:46 5900 YOUNGERMAN CIR E 57 PERSON CALLING FOR HELP
|
||||
(changed) 202200768875 12-31 00:44 1200 RIVERPLACE BLVD 61 FIGHT
|
||||
(changed) 202200768820 12-31 00:44 800 MAMIE RD 63 DISPUTE
|
||||
(changed) 202200768867 12-31 00:43 UNIVERSITY BLVD N / CESERY BLVD 16 ROAD OBSTRUCTION
|
||||
(changed) 202200768871 12-31 00:43 10600 DEERWOOD PARK BLVD 63 DISPUTE
|
||||
(changed) 202200768873 12-31 00:42 100 E BAY ST 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768831 12-31 00:41 600 NAUTICA DR 96 ASSIST MOTORIST
|
||||
(changed) 202200768872 12-31 00:41 9000 8TH AVE 2 22 DOMESTIC DISTURBANCE
|
||||
(changed) 202200768865 12-31 00:40 1500 EL PRADO RD 64 NOISE COMPLAINT
|
||||
(changed) 202200768843 12-31 00:39 EVERGREEN AVE / WINTHROP ST 64 NOISE COMPLAINT
|
||||
(changed) 202200768864 12-31 00:37 2300 PHILIPS HWY 0 63 ARMED DISPUTE
|
||||
(changed) 202200768868 12-31 00:37 1400 HELENA ST 1066 CANCEL
|
||||
(changed) 202200768784 12-31 00:34 2100 WRIGHT AVE 63 DISPUTE
|
||||
(changed) 202200768854 12-31 00:32 6000 PARK ST 33 DISCHARGING OF FIREARM
|
||||
(changed) 202200768849 12-31 00:32 A PHILIP RANDOLPH BLVD / GRANT ST 8 MISSING PERSON
|
||||
(changed) 202200768807 12-31 00:31 7500 WARBLER RD 64 NOISE COMPLAINT
|
||||
(changed) 202200768847 12-31 00:31 ARLINGTON EXPY / HAINESEXIT ARLX RP 96 ASSIST MOTORIST
|
||||
(changed) 202200768862 12-31 00:30 1700 HODGES BLVD 63 DISPUTE
|
||||
(changed) 202200768853 12-31 00:30 8900 9TH AVE 1066 CANCEL
|
||||
(changed) 202200768850 12-31 00:28 9800 CREEKFRONT RD 63 DISPUTE
|
||||
(changed) 202200768832 12-31 00:27 8400 THOR ST 64 NOISE COMPLAINT
|
||||
(changed) 202200768859 12-31 00:25 800 ARLINGTON RD N 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768823 12-31 00:24 2200 FOREST HILLS RD 90 FIREWORKS
|
||||
(changed) 202200768857 12-31 00:24 ARLINGTON XY SERVICE RD / ARLINGTON RD N 1050 TRAFFIC STOP
|
||||
(changed) 202200768833 12-31 00:24 2500 SANDUSKY AVE E 73 DRUG INVESTIGATION
|
||||
(changed) 202200768855 12-31 00:24 ST JOHNS BLUFF RD N / MONUMENT RD 16 ROAD OBSTRUCTION
|
||||
(changed) 202200768852 12-31 00:23 AJ 1050 TRAFFIC STOP
|
||||
(changed) 202200768660 12-31 00:21 9300 SAN JOSE BLVD 27 MENTALLY ILL PERSON
|
||||
(changed) 202200768805 12-31 00:20 2500 ATLANTIC BLVD 64 NOISE COMPLAINT
|
||||
(changed) 202200768775 12-31 00:20 1200 RIVERPLACE BLVD 64 NOISE COMPLAINT
|
||||
(changed) 202200768851 12-31 00:18 PEARL ST N / ADAMS ST W 1050 TRAFFIC STOP
|
||||
(changed) 202200768848 12-31 00:18 5400 SPRINGFIELD BLVD 63 DISPUTE
|
||||
(changed) 202200768846 12-31 00:17 5400 SPRINGFIELD BLVD 37 UNVERIFIED 911 CALL
|
||||
(changed) 202200768813 12-31 00:16 1500 LARUE AVE 64 NOISE COMPLAINT
|
||||
(changed) 202200768760 12-31 00:15 8400 HUNSTON MILL LN E 22 DOMESTIC
|
||||
(changed) 202200768770 12-31 00:15 8500 BLANDING BLVD 0 22 DOMESTIC DISTURBANCE W/WEAPON
|
||||
(changed) 202200768834 12-31 00:14 MONROE ST E / ADAMS ST E 12 RECKLESS DRIVER
|
||||
(changed) 202200768844 12-31 00:14 2100 UNIVERSITY BLVD N 88 ASSAULT
|
||||
(changed) 202200768828 12-31 00:13 400 CENTURY 21 DR 64 NOISE COMPLAINT
|
||||
(changed) 202200768845 12-31 00:13 7900 103RD ST 4 7 AUTO CRASH WITH FATALITY
|
||||
(changed) 202200768842 12-31 00:12 3000 PARENTAL HOME RD 8 MISSING PERSON
|
||||
(changed) 202200768840 12-31 00:11 3000 PARENTAL HOME RD 8 MISSING PERSON
|
||||
(changed) 202200768837 12-31 00:11 1700 HODGES BLVD 22 DOMESTIC
|
||||
(changed) 202200768836 12-31 00:10 3000 PARENTAL HOME RD 8 MISSING PERSON
|
||||
(changed) 202200768826 12-31 00:10 6200 SYRINGA LN 64 NOISE COMPLAINT
|
||||
(changed) 202200768835 12-31 00:10 SIBBALD RD / LEANDER J SHAW JR ST 1050 TRAFFIC STOP
|
||||
(changed) 202200768724 12-31 00:09 14200 DUVAL RD 63 DISPUTE
|
||||
(changed) 202200768830 12-31 00:08 BUFFALO AVE / 44TH ST E 1050 TRAFFIC STOP
|
||||
(changed) 202200768814 12-31 00:07 2400 JAMMES RD 73 DRUG INVESTIGATION
|
||||
(changed) 202200768822 12-31 00:07 7900 103RD ST 76 ASSIST OTHER AGENCY
|
||||
(changed) 202200768827 12-31 00:06 13700 BEACH BLVD 9 THEFT
|
||||
(changed) 202200768774 12-31 00:03 2000 TALLADEGA RD 22 DOMESTIC
|
||||
(changed) 202200768811 12-31 00:03 10800 HAWAII DR S 64 NOISE COMPLAINT
|
||||
(changed) 202200768741 12-31 00:02 5500 CABOT DR N 19 ANIMAL INVESTIGATION
|
||||
(changed)
|
||||
(into )
|
||||
Loading…
Reference in a new issue