diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java index 3bd92b8bea60de1833b01817e8946b2efd367be0..5f72ff0e78d8893e53f60da77fb65792993a9136 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/java/de/tobias/playpad/plugin/playout/viewcontroller/PlayoutLogViewController.java @@ -1,5 +1,6 @@ package de.tobias.playpad.plugin.playout.viewcontroller; +import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvSchema; @@ -160,8 +161,15 @@ public class PlayoutLogViewController extends NVC { // create mapper and schema CsvMapper mapper = new CsvMapper(); mapper.registerModule(new DefaultScalaModule()); - - CsvSchema schema = mapper.schemaFor(CsvPlayoutLogExport.CsvColumn.class); + mapper.configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true); + + CsvSchema schema = CsvSchema.builder() + .addColumn("Name") + .addColumn("Zähler") + .addColumn("Sessions") + .addColumn("Erstes Datem") + .addColumn("Letztes Datem") + .build(); schema = schema.withColumnSeparator(';').withHeader(); // output writer diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/scala/de/tobias/playpad/plugin/playout/export/CsvPlayoutLogExport.scala b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/scala/de/tobias/playpad/plugin/playout/export/CsvPlayoutLogExport.scala index b8f322ab2dc0cbbb4a8af9ce096b96dc701f17b5..f9faca540568da1635ea42c44ecbc893f4232c93 100644 --- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/scala/de/tobias/playpad/plugin/playout/export/CsvPlayoutLogExport.scala +++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/scala/de/tobias/playpad/plugin/playout/export/CsvPlayoutLogExport.scala @@ -1,8 +1,8 @@ package de.tobias.playpad.plugin.playout.export -import java.util.UUID +import java.util.{Date, UUID} -import com.fasterxml.jackson.annotation.JsonPropertyOrder +import com.fasterxml.jackson.annotation.{JsonFormat, JsonIgnore, JsonProperty, JsonPropertyOrder} import de.tobias.playpad.plugin.playout.log.LogSeason import scala.jdk.CollectionConverters._ @@ -12,12 +12,20 @@ object CsvPlayoutLogExport { @JsonPropertyOrder(value = Array("name", "count", "seasonCount", "firstTime", "lastTime")) class CsvColumn ( + @JsonIgnore var id: UUID, + @JsonProperty("Name") var name: String, + @JsonProperty("Zähler") var count: Int, + @JsonProperty("Sessions") var seasonCount: Int, - var firstTime: Long, - var lastTime: Long + @JsonProperty("Erstes Datem") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm") + var firstTime: Date, + @JsonProperty("Letztes Datem") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm") + var lastTime: Date ) { } @@ -26,7 +34,7 @@ object CsvPlayoutLogExport { .map(_.getLogItems.asScala) .flatten .distinctBy(_.getUuid) - .map(entry => new CsvColumn(entry.getUuid, entry.getName, 0, 0, 0, 0)) + .map(entry => new CsvColumn(entry.getUuid, entry.getName, 0, 0, null, null)) sessions .map(_.getLogItems.asScala) @@ -55,8 +63,10 @@ object CsvPlayoutLogExport { val min: Long = timeMapping.filter(i => i._1 == item.id).minByOption(_._2).map(_._2).getOrElse(0) val max: Long = timeMapping.filter(i => i._1 == item.id).maxByOption(_._2).map(_._2).getOrElse(0) - item.firstTime = min - item.lastTime = max + if (min != 0) + item.firstTime = new Date(min) + if (max != 0) + item.lastTime = new Date(max) }) items