From 41493097e3071c579aa3e165703c6c31c5bb456d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sevket=20G=C3=B6kay?= Date: Sun, 26 Jan 2025 14:27:19 +0100 Subject: [PATCH] add "note" to chargepoint and ocpptag queries --- .../repository/impl/ChargePointRepositoryImpl.java | 4 ++++ .../repository/impl/OcppTagRepositoryImpl.java | 5 +++++ .../idsg/steve/web/dto/ChargePointQueryForm.java | 6 ++++++ .../rwth/idsg/steve/web/dto/OcppTagQueryForm.java | 13 +++++++++++++ .../webapp/WEB-INF/views/data-man/chargepoints.jsp | 4 ++++ .../webapp/WEB-INF/views/data-man/ocppTags.jsp | 4 ++++ 6 files changed, 36 insertions(+) diff --git a/src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java b/src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java index b6af1ca6f..005fa0f86 100644 --- a/src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java +++ b/src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java @@ -158,6 +158,10 @@ private Result> getOverviewIn selectQuery.addConditions(includes(CHARGE_BOX.CHARGE_BOX_ID, form.getChargeBoxId())); } + if (form.isSetNote()) { + selectQuery.addConditions(includes(CHARGE_BOX.NOTE, form.getNote())); + } + switch (form.getHeartbeatPeriod()) { case ALL: break; diff --git a/src/main/java/de/rwth/idsg/steve/repository/impl/OcppTagRepositoryImpl.java b/src/main/java/de/rwth/idsg/steve/repository/impl/OcppTagRepositoryImpl.java index 2f8a42d41..d1a3ccb7f 100644 --- a/src/main/java/de/rwth/idsg/steve/repository/impl/OcppTagRepositoryImpl.java +++ b/src/main/java/de/rwth/idsg/steve/repository/impl/OcppTagRepositoryImpl.java @@ -43,6 +43,7 @@ import java.util.List; import java.util.stream.Collectors; +import static de.rwth.idsg.steve.utils.CustomDSL.includes; import static de.rwth.idsg.steve.utils.DateTimeUtils.humanize; import static de.rwth.idsg.steve.utils.DateTimeUtils.toDateTime; import static jooq.steve.db.tables.OcppTag.OCPP_TAG; @@ -98,6 +99,10 @@ public List getOverview(OcppTagQueryForm form) { selectQuery.addConditions(OCPP_TAG_ACTIVITY.PARENT_ID_TAG.eq(form.getParentIdTag())); } + if (form.isNoteSet()) { + selectQuery.addConditions(includes(OCPP_TAG_ACTIVITY.NOTE, form.getNote())); + } + switch (form.getExpired()) { case ALL: break; diff --git a/src/main/java/de/rwth/idsg/steve/web/dto/ChargePointQueryForm.java b/src/main/java/de/rwth/idsg/steve/web/dto/ChargePointQueryForm.java index eb73fc3ec..8b703ca83 100644 --- a/src/main/java/de/rwth/idsg/steve/web/dto/ChargePointQueryForm.java +++ b/src/main/java/de/rwth/idsg/steve/web/dto/ChargePointQueryForm.java @@ -18,6 +18,7 @@ */ package de.rwth.idsg.steve.web.dto; +import com.google.common.base.Strings; import de.rwth.idsg.steve.ocpp.OcppVersion; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -35,6 +36,7 @@ public class ChargePointQueryForm { private String chargeBoxId; private String description; + private String note; private OcppVersion ocppVersion; private QueryPeriodType heartbeatPeriod; @@ -57,6 +59,10 @@ public boolean isSetChargeBoxId() { return chargeBoxId != null; } + public boolean isSetNote() { + return !Strings.isNullOrEmpty(note); + } + @RequiredArgsConstructor public enum QueryPeriodType { ALL("All"), diff --git a/src/main/java/de/rwth/idsg/steve/web/dto/OcppTagQueryForm.java b/src/main/java/de/rwth/idsg/steve/web/dto/OcppTagQueryForm.java index 90ce2b1a1..240b45d90 100644 --- a/src/main/java/de/rwth/idsg/steve/web/dto/OcppTagQueryForm.java +++ b/src/main/java/de/rwth/idsg/steve/web/dto/OcppTagQueryForm.java @@ -18,6 +18,7 @@ */ package de.rwth.idsg.steve.web.dto; +import com.google.common.base.Strings; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -53,6 +54,13 @@ public class OcppTagQueryForm { @Schema(description = "Return blocked, not blocked, or all Ocpp tags? Defaults to ALL") private BooleanType blocked = BooleanType.FALSE; + @Schema(description = """ + Query by the note associated with the OCPP tag. + The value of this field does not have to exactly match the note. + A substring is also accepted. + """) + private String note; + @Schema(hidden = true) public boolean isOcppTagPkSet() { return ocppTagPk != null; @@ -68,6 +76,11 @@ public boolean isParentIdTagSet() { return parentIdTag != null; } + @Schema(hidden = true) + public boolean isNoteSet() { + return !Strings.isNullOrEmpty(note); + } + public BooleanType getExpired() { return Objects.requireNonNullElse(expired, BooleanType.ALL); } diff --git a/src/main/resources/webapp/WEB-INF/views/data-man/chargepoints.jsp b/src/main/resources/webapp/WEB-INF/views/data-man/chargepoints.jsp index 1c26cd3d6..989095314 100644 --- a/src/main/resources/webapp/WEB-INF/views/data-man/chargepoints.jsp +++ b/src/main/resources/webapp/WEB-INF/views/data-man/chargepoints.jsp @@ -98,6 +98,10 @@ + + Note: + + diff --git a/src/main/resources/webapp/WEB-INF/views/data-man/ocppTags.jsp b/src/main/resources/webapp/WEB-INF/views/data-man/ocppTags.jsp index 5a0a9cdf1..0d4b5f59e 100644 --- a/src/main/resources/webapp/WEB-INF/views/data-man/ocppTags.jsp +++ b/src/main/resources/webapp/WEB-INF/views/data-man/ocppTags.jsp @@ -112,6 +112,10 @@ + + Note: + +