Skip to content
Snippets Groups Projects
Commit 0dff5a9f authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Improve Playout csv export (Format Date, exclude uuid)

parent eb9cbf7f
No related branches found
No related tags found
No related merge requests found
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
......
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment