#5 -- remove jsf
This commit is contained in:
parent
e3ce7c0647
commit
f92a2900a4
23
build.gradle
23
build.gradle
@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*
|
||||
*/
|
||||
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
|
||||
@ -12,9 +18,6 @@ jar {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url "https://repository.primefaces.org/"
|
||||
}
|
||||
}
|
||||
|
||||
sourceCompatibility = 11
|
||||
@ -29,15 +32,11 @@ dependencies {
|
||||
}
|
||||
|
||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web'
|
||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security'
|
||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'
|
||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf'
|
||||
implementation group: 'org.slf4j', name: 'slf4j-api', version: versionSLF4J
|
||||
implementation group: 'org.primefaces', name: 'primefaces', version: '7.0'
|
||||
implementation group: 'net.bootsfaces', name: 'bootsfaces', version: '1.4.2'
|
||||
implementation group: 'org.joinfaces', name: 'jsf-spring-boot-starter', version: '4.0.8'
|
||||
implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect'
|
||||
implementation group: 'org.javassist', name: 'javassist', version: '3.25.0-GA'
|
||||
implementation group: 'org.primefaces.themes', name: 'all-themes', version: '1.0.10'
|
||||
|
||||
implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versionJetty
|
||||
|
||||
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versionJackson
|
||||
@ -47,6 +46,12 @@ dependencies {
|
||||
implementation group: 'io.springfox', name: 'springfox-swagger2', version: versionSwagger
|
||||
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: versionSwagger
|
||||
|
||||
implementation group: 'org.webjars', name: 'jquery', version: '3.6.0'
|
||||
implementation group: 'org.webjars', name: 'bootstrap', version: '4.6.0'
|
||||
implementation group: 'org.webjars', name: 'bootstrap-select', version: '1.13.8'
|
||||
implementation group: 'org.webjars', name: 'font-awesome', version: '4.7.0'
|
||||
implementation group: 'org.webjars', name: 'highcharts', version: '7.0.0'
|
||||
|
||||
testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test'
|
||||
}
|
||||
|
||||
|
BIN
java_pid12196.hprof
Normal file
BIN
java_pid12196.hprof
Normal file
Binary file not shown.
@ -1,6 +1,13 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*
|
||||
*/
|
||||
|
||||
package ru.ulstu.configuration;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@ -8,7 +15,14 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
public class MvcConfiguration implements WebMvcConfigurer {
|
||||
@Override
|
||||
public void addViewControllers(ViewControllerRegistry registry) {
|
||||
registry.addRedirectViewController("/", "/index.xhtml");
|
||||
registry.addRedirectViewController("/default", "/index.xhtml");
|
||||
registry.addViewController("/{articlename:\\w+}");
|
||||
registry.addRedirectViewController("/", "/index.html");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||
registry
|
||||
.addResourceHandler("/webjars/**")
|
||||
.addResourceLocations("/webjars/");
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
package ru.ulstu.configuration;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
|
||||
@Configuration
|
||||
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
http.authorizeRequests().anyRequest().permitAll();
|
||||
http.csrf().disable();
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*
|
||||
*/
|
||||
|
||||
package ru.ulstu.configuration;
|
||||
|
||||
import nz.net.ultraq.thymeleaf.LayoutDialect;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
|
||||
import org.thymeleaf.spring5.SpringTemplateEngine;
|
||||
import org.thymeleaf.templateresolver.ITemplateResolver;
|
||||
|
||||
@Configuration
|
||||
public class TemplateConfiguration {
|
||||
|
||||
@Bean
|
||||
public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {
|
||||
final SpringTemplateEngine templateEngine = new SpringTemplateEngine();
|
||||
templateEngine.addTemplateResolver(templateResolver);
|
||||
templateEngine.addDialect(new LayoutDialect());
|
||||
templateEngine.setMessageSource(messageSource());
|
||||
return templateEngine;
|
||||
}
|
||||
|
||||
@Value("${messages.basename.path}")
|
||||
private String messagesBasename;
|
||||
|
||||
public MessageSource messageSource() {
|
||||
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
|
||||
messageSource.setFallbackToSystemLocale(false);
|
||||
messageSource.setBasenames("file:" + messagesBasename);
|
||||
return messageSource;
|
||||
}
|
||||
}
|
66
src/main/java/ru/ulstu/controller/IndexController.java
Normal file
66
src/main/java/ru/ulstu/controller/IndexController.java
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*
|
||||
*/
|
||||
|
||||
package ru.ulstu.controller;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import ru.ulstu.datamodel.ts.TimeSeries;
|
||||
import ru.ulstu.datamodel.ts.TimeSeriesValue;
|
||||
import ru.ulstu.service.TimeSeriesService;
|
||||
import ru.ulstu.service.UtilService;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Controller
|
||||
@ApiIgnore
|
||||
public class IndexController {
|
||||
private final UtilService utilService;
|
||||
private final TimeSeriesService timeSeriesService;
|
||||
|
||||
private final static Logger LOG = LoggerFactory.getLogger(IndexController.class);
|
||||
|
||||
public IndexController(UtilService utilService,
|
||||
TimeSeriesService timeSeriesService) {
|
||||
this.utilService = utilService;
|
||||
this.timeSeriesService = timeSeriesService;
|
||||
}
|
||||
|
||||
@GetMapping("/index.html")
|
||||
public String index(Model model) {
|
||||
TimeSeries timeSeries = utilService.getRandomTimeSeries(100);
|
||||
TimeSeries timeSeriesModel = null;
|
||||
TimeSeries forecast = null;
|
||||
try {
|
||||
timeSeriesModel = timeSeriesService.smoothTimeSeries(timeSeries);
|
||||
forecast = timeSeriesService.getForecast(timeSeries, 5).getTimeSeries();
|
||||
} catch (Exception e) {
|
||||
LOG.warn(e.getMessage());
|
||||
}
|
||||
|
||||
Set<String> dates = timeSeries.getValues().stream()
|
||||
.map(v -> v.getDate().format(DateTimeFormatter.ISO_DATE))
|
||||
.collect(Collectors.toSet());
|
||||
dates.addAll(forecast.getValues().stream()
|
||||
.map(v -> v.getDate().format(DateTimeFormatter.ISO_DATE))
|
||||
.collect(Collectors.toSet()));
|
||||
model.addAttribute("dates", dates);
|
||||
model.addAttribute("timeSeries", timeSeries.getValues().stream().map(TimeSeriesValue::getValue).toArray());
|
||||
model.addAttribute("model", timeSeriesModel.getValues().stream().map(TimeSeriesValue::getValue).toArray());
|
||||
timeSeries.getValues().remove(timeSeries.getValues().size() - 1);
|
||||
List<Double> forecastValues = timeSeries.getValues().stream().map(v -> (Double) null).collect(Collectors.toList());
|
||||
forecastValues.addAll(forecast.getValues().stream().map(TimeSeriesValue::getValue).collect(Collectors.toList()));
|
||||
model.addAttribute("forecast", forecastValues.toArray());
|
||||
return "index.html";
|
||||
}
|
||||
}
|
@ -16,6 +16,10 @@ public class TimeSeriesMeta {
|
||||
public TimeSeriesMeta() {
|
||||
}
|
||||
|
||||
public TimeSeriesMeta(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public TimeSeriesMeta(TimeSeries timeSeries) {
|
||||
this.key = timeSeries.getName();
|
||||
this.hasDateTime = timeSeries.getValues().stream().anyMatch(v -> v.getDate() != null);
|
||||
|
@ -1,106 +1,144 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*
|
||||
*/
|
||||
|
||||
package ru.ulstu.page;
|
||||
|
||||
import org.primefaces.model.chart.AxisType;
|
||||
import org.primefaces.model.chart.DateAxis;
|
||||
import org.primefaces.model.chart.LegendPlacement;
|
||||
import org.primefaces.model.chart.LineChartModel;
|
||||
import org.primefaces.model.chart.LineChartSeries;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import ru.ulstu.datamodel.exception.ModelingException;
|
||||
import ru.ulstu.datamodel.ts.TimeSeries;
|
||||
import ru.ulstu.datamodel.ts.TimeSeriesValue;
|
||||
import ru.ulstu.service.TimeSeriesService;
|
||||
import ru.ulstu.service.UtilService;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.faces.view.ViewScoped;
|
||||
import javax.inject.Named;
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Named
|
||||
@ViewScoped
|
||||
public class IndexView implements Serializable {
|
||||
private final static Logger LOG = LoggerFactory.getLogger(IndexView.class);
|
||||
|
||||
@Autowired
|
||||
private transient TimeSeriesService timeSeriesService;
|
||||
|
||||
@Autowired
|
||||
private transient UtilService utilService;
|
||||
|
||||
private LineChartModel model;
|
||||
private String timeSeriesString;
|
||||
|
||||
@PostConstruct
|
||||
public void init() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
||||
timeSeriesString = utilService.getTimeSeriesToString(utilService.getRandomTimeSeries(50));
|
||||
createChart();
|
||||
}
|
||||
|
||||
private LineChartModel initLinearModel() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
||||
LineChartModel model = new LineChartModel();
|
||||
|
||||
LineChartSeries series1 = new LineChartSeries();
|
||||
series1.setLabel("Временной ряд");
|
||||
|
||||
TimeSeries timeSeries = utilService.getTimeSeriesFromString(timeSeriesString);
|
||||
for (TimeSeriesValue value : timeSeries.getValues()) {
|
||||
series1.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
}
|
||||
|
||||
LineChartSeries series2 = new LineChartSeries();
|
||||
series2.setLabel("Сглаженный ряд");
|
||||
try {
|
||||
TimeSeries smoothedTimeSeries = timeSeriesService.smoothTimeSeries(timeSeries);
|
||||
for (TimeSeriesValue value : smoothedTimeSeries.getValues()) {
|
||||
series2.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LOG.warn(ex.getMessage());
|
||||
}
|
||||
LineChartSeries series3 = new LineChartSeries();
|
||||
series3.setLabel("Прогноз");
|
||||
TimeSeries forecast = timeSeriesService.getForecast(timeSeries, 20).getTimeSeries();
|
||||
for (TimeSeriesValue value : forecast.getValues()) {
|
||||
series3.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
}
|
||||
model.addSeries(series1);
|
||||
model.addSeries(series2);
|
||||
model.addSeries(series3);
|
||||
return model;
|
||||
}
|
||||
|
||||
public void createChart() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
||||
model = initLinearModel();
|
||||
model.setTitle("Сглаживание временного ряда");
|
||||
model.setLegendPosition("d");
|
||||
model.setLegendPlacement(LegendPlacement.OUTSIDEGRID);
|
||||
DateAxis xAxis = new DateAxis("Time");
|
||||
xAxis.setTickFormat("%#d %b %Y");
|
||||
model.getAxes().put(AxisType.X, xAxis);
|
||||
}
|
||||
|
||||
public LineChartModel getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public String getTimeSeriesString() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException {
|
||||
createChart();
|
||||
return timeSeriesString;
|
||||
}
|
||||
|
||||
public void setTimeSeriesString(String timeSeriesString) {
|
||||
this.timeSeriesString = timeSeriesString;
|
||||
}
|
||||
}
|
||||
///*
|
||||
// * Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
// * You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
// *
|
||||
// */
|
||||
//
|
||||
//package ru.ulstu.page;
|
||||
//
|
||||
//import org.primefaces.model.chart.AxisType;
|
||||
//import org.primefaces.model.chart.DateAxis;
|
||||
//import org.primefaces.model.chart.LegendPlacement;
|
||||
//import org.primefaces.model.chart.LineChartModel;
|
||||
//import org.primefaces.model.chart.LineChartSeries;
|
||||
//import org.slf4j.Logger;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
//import org.springframework.beans.factory.annotation.Autowired;
|
||||
//import ru.ulstu.datamodel.exception.ModelingException;
|
||||
//import ru.ulstu.datamodel.ts.TimeSeries;
|
||||
//import ru.ulstu.datamodel.ts.TimeSeriesValue;
|
||||
//import ru.ulstu.db.DbService;
|
||||
//import ru.ulstu.db.model.TimeSeriesMeta;
|
||||
//import ru.ulstu.db.model.TimeSeriesSet;
|
||||
//import ru.ulstu.service.TimeSeriesService;
|
||||
//import ru.ulstu.service.UtilService;
|
||||
//
|
||||
//import javax.annotation.PostConstruct;
|
||||
//import javax.faces.model.SelectItem;
|
||||
//import javax.faces.view.ViewScoped;
|
||||
//import javax.inject.Named;
|
||||
//import java.io.IOException;
|
||||
//import java.io.Serializable;
|
||||
//import java.lang.reflect.InvocationTargetException;
|
||||
//import java.time.format.DateTimeFormatter;
|
||||
//import java.util.List;
|
||||
//import java.util.concurrent.ExecutionException;
|
||||
//import java.util.stream.Collectors;
|
||||
//
|
||||
//@Named
|
||||
//@ViewScoped
|
||||
//public class IndexView implements Serializable {
|
||||
// private final static Logger LOG = LoggerFactory.getLogger(IndexView.class);
|
||||
//
|
||||
// @Autowired
|
||||
// private transient TimeSeriesService timeSeriesService;
|
||||
//
|
||||
// @Autowired
|
||||
// private transient DbService dbService;
|
||||
//
|
||||
// @Autowired
|
||||
// private transient UtilService utilService;
|
||||
//
|
||||
// private LineChartModel model;
|
||||
// private List<TimeSeriesMeta> timeSeriesMetas;
|
||||
// private TimeSeriesMeta timeSeriesMeta;
|
||||
//
|
||||
// @PostConstruct
|
||||
// public void init() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException {
|
||||
// timeSeriesMetas = dbService.getTimeSeriesMeta(new TimeSeriesSet("NN3"));
|
||||
// timeSeriesMeta = timeSeriesMetas.get(0);
|
||||
// createChart();
|
||||
// }
|
||||
//
|
||||
// private LineChartModel initLinearModel() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException {
|
||||
// LineChartModel model = new LineChartModel();
|
||||
//
|
||||
// LineChartSeries series1 = new LineChartSeries();
|
||||
// series1.setLabel("Временной ряд");
|
||||
//
|
||||
// TimeSeries timeSeries = dbService.getTimeSeries(new TimeSeriesSet("NN3"), timeSeriesMeta.getKey());
|
||||
// for (TimeSeriesValue value : timeSeries.getValues()) {
|
||||
// series1.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
// }
|
||||
//
|
||||
// LineChartSeries series2 = new LineChartSeries();
|
||||
// series2.setLabel("Сглаженный ряд");
|
||||
// try {
|
||||
// TimeSeries smoothedTimeSeries = timeSeriesService.smoothTimeSeries(timeSeries);
|
||||
// for (TimeSeriesValue value : smoothedTimeSeries.getValues()) {
|
||||
// series2.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
// }
|
||||
// } catch (Exception ex) {
|
||||
// LOG.warn(ex.getMessage());
|
||||
// }
|
||||
// LineChartSeries series3 = new LineChartSeries();
|
||||
// series3.setLabel("Прогноз");
|
||||
// TimeSeries forecast = timeSeriesService.getForecast(timeSeries, 20).getTimeSeries();
|
||||
// for (TimeSeriesValue value : forecast.getValues()) {
|
||||
// series3.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue());
|
||||
// }
|
||||
// model.addSeries(series1);
|
||||
// model.addSeries(series2);
|
||||
// model.addSeries(series3);
|
||||
// return model;
|
||||
// }
|
||||
//
|
||||
// public void createChart() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException {
|
||||
// model = initLinearModel();
|
||||
// model.setTitle("Сглаживание временного ряда");
|
||||
// model.setLegendPosition("d");
|
||||
// model.setLegendPlacement(LegendPlacement.OUTSIDEGRID);
|
||||
// DateAxis xAxis = new DateAxis("Time");
|
||||
// xAxis.setTickFormat("%#d %b %Y");
|
||||
// model.getAxes().put(AxisType.X, xAxis);
|
||||
// }
|
||||
//
|
||||
// public LineChartModel getModel() {
|
||||
// return model;
|
||||
// }
|
||||
//
|
||||
// public List<TimeSeriesMeta> getTimeSeriesMetas() {
|
||||
// return timeSeriesMetas;
|
||||
// }
|
||||
//
|
||||
// public TimeSeriesMeta getTimeSeriesMeta() {
|
||||
// return timeSeriesMeta;
|
||||
// }
|
||||
//
|
||||
// public void setTimeSeriesMeta(String timeSeriesMeta) {
|
||||
// System.out.println(timeSeriesMeta);
|
||||
// try {
|
||||
// createChart();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public void setTimeSeriesMeta(Object timeSeriesMeta) {
|
||||
// System.out.println(timeSeriesMeta);
|
||||
// try {
|
||||
// createChart();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public void setTimeSeriesMeta(TimeSeriesMeta timeSeriesMeta) {
|
||||
// System.out.println(timeSeriesMeta);
|
||||
// try {
|
||||
// createChart();
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
@ -1,21 +1,32 @@
|
||||
<!--
|
||||
- Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
- You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
-
|
||||
-->
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui"
|
||||
xmlns:h="http://java.sun.com/jsf/html">
|
||||
xmlns:h="http://java.sun.com/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core">
|
||||
<ui:composition template="/basicTemplate.xhtml">
|
||||
<ui:define name="content">
|
||||
<h:form>
|
||||
<h:form id="form">
|
||||
<div class="ui-g">
|
||||
<div class="ui-g-12 ui-md-12 ui-lg-12">
|
||||
<p:inputTextarea id="timeSeriesString" style="height:200px; width:100%;"
|
||||
placeholder="Paste time series here"
|
||||
autoResize="false" value="#{indexView.timeSeriesString}">
|
||||
<p:ajax event="change" update="chart"/>
|
||||
<p:ajax event="keypress" update="chart"/>
|
||||
</p:inputTextarea>
|
||||
<p:commandButton value="Refresh" update="chart" process="timeSeriesString"/>
|
||||
<p:selectOneMenu id="timeSeriesSelect" value="#{indexView.timeSeriesMeta}"
|
||||
converter="timeSeriesMetaConverter">
|
||||
<f:selectItem itemLabel="Выберите временной ряд из базы" itemValue=""/>
|
||||
<f:selectItems value="#{indexView.timeSeriesMetas}"
|
||||
var="meta"
|
||||
itemLabel="#{meta.key}"
|
||||
itemValue="#{meta.key}"/>
|
||||
<!-- <p:ajax event="change" process="@this" update="form:chart" />-->
|
||||
</p:selectOneMenu>
|
||||
<p:commandButton action="#{indexView.createChart}" value="Refresh" update="form:chart"
|
||||
process="form:timeSeriesSelect" ajax="true"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ui-g">
|
||||
|
7
src/main/resources/messages.properties
Normal file
7
src/main/resources/messages.properties
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
#
|
||||
#
|
||||
messages.app-name=Time Series Smoothing
|
||||
messages.menu.home=Main
|
7
src/main/resources/messages_en.properties
Normal file
7
src/main/resources/messages_en.properties
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
#
|
||||
#
|
||||
messages.app-name=Time Series Smoothing
|
||||
messages.menu.home=Main
|
7
src/main/resources/messages_ru.properties
Normal file
7
src/main/resources/messages_ru.properties
Normal file
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
# You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
#
|
||||
#
|
||||
messages.app-name=Time Series Smoothing
|
||||
messages.menu.home=На главную
|
57
src/main/resources/templates/default.html
Normal file
57
src/main/resources/templates/default.html
Normal file
@ -0,0 +1,57 @@
|
||||
<!--
|
||||
~ Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
~ You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
~
|
||||
-->
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<title th:text="#{messages.app-name}">app-name</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<script type="text/javascript" src="/webjars/jquery/3.6.0/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/webjars/bootstrap/4.6.0/js/bootstrap.bundle.min.js"></script>
|
||||
<script type="text/javascript" src="/webjars/bootstrap-select/1.13.8/js/bootstrap-select.min.js"></script>
|
||||
<link rel="stylesheet" href="/webjars/bootstrap/4.6.0/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="/webjars/bootstrap-select/1.13.8/css/bootstrap-select.min.css"/>
|
||||
<link rel="stylesheet" href="/webjars/font-awesome/4.7.0/css/font-awesome.min.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<nav class="navbar navbar-light bg-light">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img src="img/logo.png" width="180" height="60" alt="">
|
||||
</a>
|
||||
</nav>
|
||||
<div class="wrapper">
|
||||
<div id="sidebar" class="collapse navbar-collapse sidebar-mobile">
|
||||
<ul id="menu" class="list-unstyled">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<div id="breadcrumbs" class="container-fluid">
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<ul id="messages" class="feedback-panel">
|
||||
<div class="alert alert-danger" role="alert" th:if="${error}" th:text="${error}">
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
<div layout:fragment="content">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-md-3 ui-lg-3">Ulyanovsk State Technical University</div>
|
||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||
<a href="http://ulstu.ru">ulstu.ru</a>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-3 col-lg-3">
|
||||
<a target="_blank" href="/swagger-ui.html">api for developers</a>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-3 col-lg-3">2020</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
49
src/main/resources/templates/error.html
Normal file
49
src/main/resources/templates/error.html
Normal file
@ -0,0 +1,49 @@
|
||||
<!--
|
||||
~ Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
~ You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
~
|
||||
-->
|
||||
|
||||
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:th="http://www.thymeleaf.org"
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||
layout:decorate="~{default}">
|
||||
|
||||
<div class="container" layout:fragment="content">
|
||||
<h1>Ошибка</h1>
|
||||
|
||||
<p th:if="${url}">
|
||||
<b>Страница:</b> <span th:text="${url}">Page URL</span>
|
||||
</p>
|
||||
|
||||
<p th:if="${timestamp}" id='created'>
|
||||
<b>Время:</b> <span th:text="${timestamp}">Timestamp</span>
|
||||
</p>
|
||||
|
||||
<p th:if="${status}">
|
||||
<b>Response Status:</b> <span th:text="${status}">status-code</span> <span
|
||||
th:if="${error}" th:text="'('+${error}+')'">error ...</span>
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false"
|
||||
aria-controls="collapseExample">
|
||||
Показать stack trace
|
||||
</a>
|
||||
</p>
|
||||
<!-- <div class="collapse" id="collapseExample">-->
|
||||
<!-- <p class="card card-body">-->
|
||||
<!-- <div th:utext="'Failed URL: ' + ${url}" th:remove="tag">${url}</div>-->
|
||||
<!-- </p>-->
|
||||
<!-- <div th:if="${exception != null}" th:utext="'Exception: ' + ${exception.message}" th:remove="tag">-->
|
||||
<!-- ${exception.message}-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul th:remove="tag">-->
|
||||
<!-- <li th:if="${exception != null && exception.stackTrace != null}" th:each="ste : ${exception.stackTrace}"-->
|
||||
<!-- th:remove="tag"><span-->
|
||||
<!-- th:utext="${ste}" th:remove="tag">${ste}</span></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
97
src/main/resources/templates/index.html
Normal file
97
src/main/resources/templates/index.html
Normal file
@ -0,0 +1,97 @@
|
||||
<!--
|
||||
~ Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
~ You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
~
|
||||
-->
|
||||
|
||||
<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
|
||||
<html
|
||||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:th="http://www.w3.org/1999/xhtml"
|
||||
layout:decorate="~{default}">
|
||||
<head>
|
||||
<title>Time series smoothing</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
</head>
|
||||
<div class="container" layout:fragment="content">
|
||||
<script src="/webjars/highcharts/7.0.0/highcharts.js"></script>
|
||||
<script th:inline="javascript">
|
||||
$(document).ready(function () {
|
||||
var title = {
|
||||
text: 'Прогноз временного ряда'
|
||||
};
|
||||
var xAxis = {
|
||||
categories: [[${dates}]],
|
||||
title: {
|
||||
enabled: true,
|
||||
text: 'Дата'
|
||||
},
|
||||
startOnTick: true,
|
||||
endOnTick: true,
|
||||
showLastLabel: true
|
||||
};
|
||||
var yAxis = {
|
||||
title: {
|
||||
text: 'Уровень'
|
||||
}
|
||||
};
|
||||
var plotOptions = {
|
||||
scatter: {
|
||||
marker: {
|
||||
radius: 5,
|
||||
states: {
|
||||
hover: {
|
||||
enabled: true,
|
||||
lineColor: 'rgb(100,100,100)'
|
||||
}
|
||||
}
|
||||
},
|
||||
states: {
|
||||
hover: {
|
||||
marker: {
|
||||
enabled: false
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
headerFormat: '<b>{series.name}</b><br>',
|
||||
pointFormat: '{point.y}'
|
||||
}
|
||||
}
|
||||
};
|
||||
var series = [
|
||||
{
|
||||
name: 'Временной ряд',
|
||||
color: 'rgba(119,152,191,0.5)',
|
||||
data: [[${timeSeries}]]
|
||||
},
|
||||
{
|
||||
name: 'Модель',
|
||||
color: 'rgba(255,200,0,0.5)',
|
||||
data: [[${model}]]
|
||||
},
|
||||
{
|
||||
name: 'Прогноз',
|
||||
color: 'rgba(255,0,0,0.5)',
|
||||
data: [[${forecast}]]
|
||||
}
|
||||
];
|
||||
|
||||
var json = {};
|
||||
json.title = title;
|
||||
json.xAxis = xAxis;
|
||||
json.yAxis = yAxis;
|
||||
json.series = series;
|
||||
json.plotOptions = plotOptions;
|
||||
$('#container').highcharts(json);
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
<form>
|
||||
<!-- <form action="#" th:action="/index" th:object="${filterForm}" method="get">-->
|
||||
<div class="row">
|
||||
<div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</html>
|
1
time-series-db/NN3/101.csv.meta
Normal file
1
time-series-db/NN3/101.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"101","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/102.csv.meta
Normal file
1
time-series-db/NN3/102.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"102","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/103.csv.meta
Normal file
1
time-series-db/NN3/103.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"103","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/104.csv.meta
Normal file
1
time-series-db/NN3/104.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"104","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/105.csv.meta
Normal file
1
time-series-db/NN3/105.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"105","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/106.csv.meta
Normal file
1
time-series-db/NN3/106.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"106","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/107.csv.meta
Normal file
1
time-series-db/NN3/107.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"107","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/108.csv.meta
Normal file
1
time-series-db/NN3/108.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"108","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/109.csv.meta
Normal file
1
time-series-db/NN3/109.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"109","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/110.csv.meta
Normal file
1
time-series-db/NN3/110.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"110","size":126,"hasDateTime":false}
|
1
time-series-db/NN3/111.csv.meta
Normal file
1
time-series-db/NN3/111.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"111","size":126,"hasDateTime":false}
|
126
time-series-db/qqq/111.csv
Normal file
126
time-series-db/qqq/111.csv
Normal file
@ -0,0 +1,126 @@
|
||||
2021-03-25T14:46:05.9380134;3140.0
|
||||
2021-03-26T14:46:05.9380134;3270.0
|
||||
2021-03-27T14:46:05.9380134;3690.0
|
||||
2021-03-28T14:46:05.9380134;4360.0
|
||||
2021-03-29T14:46:05.9380134;3520.0
|
||||
2021-03-30T14:46:05.9380134;4140.0
|
||||
2021-03-31T14:46:05.9380134;3440.0
|
||||
2021-04-01T14:46:05.9380134;3750.0
|
||||
2021-04-02T14:46:05.9380134;4140.0
|
||||
2021-04-03T14:46:05.9380134;5610.0
|
||||
2021-04-04T14:46:05.9380134;5350.0
|
||||
2021-04-05T14:46:05.9380134;4270.0
|
||||
2021-04-06T14:46:05.9380134;3160.0
|
||||
2021-04-07T14:46:05.9380134;2560.0
|
||||
2021-04-08T14:46:05.9380134;3410.0
|
||||
2021-04-09T14:46:05.9380134;3670.0
|
||||
2021-04-10T14:46:05.9380134;3670.0
|
||||
2021-04-11T14:46:05.9380134;3200.0
|
||||
2021-04-12T14:46:05.9380134;3700.0
|
||||
2021-04-13T14:46:05.9380134;3430.0
|
||||
2021-04-14T14:46:05.9380134;4130.0
|
||||
2021-04-15T14:46:05.9380134;4870.0
|
||||
2021-04-16T14:46:05.9380134;6310.0
|
||||
2021-04-17T14:46:05.9380134;4680.0
|
||||
2021-04-18T14:46:05.9380134;2380.0
|
||||
2021-04-19T14:46:05.9380134;3430.0
|
||||
2021-04-20T14:46:05.9380134;2950.0
|
||||
2021-04-21T14:46:05.9380134;3130.0
|
||||
2021-04-22T14:46:05.9380134;3650.0
|
||||
2021-04-23T14:46:05.9380134;2980.0
|
||||
2021-04-24T14:46:05.9380134;3720.0
|
||||
2021-04-25T14:46:05.9380134;2960.0
|
||||
2021-04-26T14:46:05.9380134;4300.0
|
||||
2021-04-27T14:46:05.9380134;5550.0
|
||||
2021-04-28T14:46:05.9380134;4380.0
|
||||
2021-04-29T14:46:05.9380134;3620.0
|
||||
2021-04-30T14:46:05.9380134;3350.0
|
||||
2021-05-01T14:46:05.9380134;3300.0
|
||||
2021-05-02T14:46:05.9380134;3800.0
|
||||
2021-05-03T14:46:05.9380134;3420.0
|
||||
2021-05-04T14:46:05.9380134;3860.0
|
||||
2021-05-05T14:46:05.9380134;2900.0
|
||||
2021-05-06T14:46:05.9380134;3240.0
|
||||
2021-05-07T14:46:05.9380134;3150.0
|
||||
2021-05-08T14:46:05.9380134;4460.0
|
||||
2021-05-09T14:46:05.9380134;5040.0
|
||||
2021-05-10T14:46:05.9380134;4660.0
|
||||
2021-05-11T14:46:05.9380134;3450.0
|
||||
2021-05-12T14:46:05.9380134;2660.0
|
||||
2021-05-13T14:46:05.9380134;2400.0
|
||||
2021-05-14T14:46:05.9380134;2200.0
|
||||
2021-05-15T14:46:05.9380134;3020.0
|
||||
2021-05-16T14:46:05.9380134;3450.0
|
||||
2021-05-17T14:46:05.9380134;4110.0
|
||||
2021-05-18T14:46:05.9380134;2760.0
|
||||
2021-05-19T14:46:05.9380134;3390.0
|
||||
2021-05-20T14:46:05.9380134;3740.0
|
||||
2021-05-21T14:46:05.9380134;4830.0
|
||||
2021-05-22T14:46:05.9380134;4450.0
|
||||
2021-05-23T14:46:05.9380134;3140.0
|
||||
2021-05-24T14:46:05.9380134;4700.0
|
||||
2021-05-25T14:46:05.9380134;2330.0
|
||||
2021-05-26T14:46:05.9380134;2740.0
|
||||
2021-05-27T14:46:05.9380134;2480.0
|
||||
2021-05-28T14:46:05.9380134;2690.0
|
||||
2021-05-29T14:46:05.9380134;5850.0
|
||||
2021-05-30T14:46:05.9380134;2450.0
|
||||
2021-05-31T14:46:05.9380134;3720.0
|
||||
2021-06-01T14:46:05.9380134;2780.0
|
||||
2021-06-02T14:46:05.9380134;5690.0
|
||||
2021-06-03T14:46:05.9380134;4150.0
|
||||
2021-06-04T14:46:05.9380134;4460.0
|
||||
2021-06-05T14:46:05.9380134;2730.0
|
||||
2021-06-06T14:46:05.9380134;3580.0
|
||||
2021-06-07T14:46:05.9380134;2870.0
|
||||
2021-06-08T14:46:05.9380134;4210.0
|
||||
2021-06-09T14:46:05.9380134;4500.0
|
||||
2021-06-10T14:46:05.9380134;3560.0
|
||||
2021-06-11T14:46:05.9380134;3800.0
|
||||
2021-06-12T14:46:05.9380134;3260.0
|
||||
2021-06-13T14:46:05.9380134;3410.0
|
||||
2021-06-14T14:46:05.9380134;3860.0
|
||||
2021-06-15T14:46:05.9380134;5000.0
|
||||
2021-06-16T14:46:05.9380134;3840.0
|
||||
2021-06-17T14:46:05.9380134;3210.0
|
||||
2021-06-18T14:46:05.9380134;2930.0
|
||||
2021-06-19T14:46:05.9380134;3630.0
|
||||
2021-06-20T14:46:05.9380134;2760.0
|
||||
2021-06-21T14:46:05.9380134;3310.0
|
||||
2021-06-22T14:46:05.9380134;4320.0
|
||||
2021-06-23T14:46:05.9380134;3010.0
|
||||
2021-06-24T14:46:05.9380134;3440.0
|
||||
2021-06-25T14:46:05.9380134;5100.0
|
||||
2021-06-26T14:46:05.9380134;4170.0
|
||||
2021-06-27T14:46:05.9380134;4540.0
|
||||
2021-06-28T14:46:05.9380134;3410.0
|
||||
2021-06-29T14:46:05.9380134;2590.0
|
||||
2021-06-30T14:46:05.9380134;2640.0
|
||||
2021-07-01T14:46:05.9380134;2970.0
|
||||
2021-07-02T14:46:05.9380134;3000.0
|
||||
2021-07-03T14:46:05.9380134;2900.0
|
||||
2021-07-04T14:46:05.9380134;3010.0
|
||||
2021-07-05T14:46:05.9380134;3380.0
|
||||
2021-07-06T14:46:05.9380134;3060.0
|
||||
2021-07-07T14:46:05.9380134;3100.0
|
||||
2021-07-08T14:46:05.9380134;3940.0
|
||||
2021-07-09T14:46:05.9380134;5360.0
|
||||
2021-07-10T14:46:05.9380134;3280.0
|
||||
2021-07-11T14:46:05.9380134;3190.0
|
||||
2021-07-12T14:46:05.9380134;4950.0
|
||||
2021-07-13T14:46:05.9380134;2910.0
|
||||
2021-07-14T14:46:05.9380134;2820.0
|
||||
2021-07-15T14:46:05.9380134;3050.0
|
||||
2021-07-16T14:46:05.9380134;2930.0
|
||||
2021-07-17T14:46:05.9380134;2800.0
|
||||
2021-07-18T14:46:05.9380134;3220.0
|
||||
2021-07-19T14:46:05.9380134;3120.0
|
||||
2021-07-20T14:46:05.9380134;4000.0
|
||||
2021-07-21T14:46:05.9380134;4840.0
|
||||
2021-07-22T14:46:05.9380134;2630.0
|
||||
2021-07-23T14:46:05.9380134;2920.0
|
||||
2021-07-24T14:46:05.9380134;2350.0
|
||||
2021-07-25T14:46:05.9380134;2850.0
|
||||
2021-07-26T14:46:05.9380134;2700.0
|
||||
2021-07-27T14:46:05.9380134;2870.0
|
||||
2021-07-28T14:46:05.9380134;2580.0
|
|
1
time-series-db/qqq/111.csv.meta
Normal file
1
time-series-db/qqq/111.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"111","size":126,"hasDateTime":false}
|
126
time-series-db/qqq/1112.csv
Normal file
126
time-series-db/qqq/1112.csv
Normal file
@ -0,0 +1,126 @@
|
||||
2021-03-25T14:46:05.9380134;3140.0
|
||||
2021-03-26T14:46:05.9380134;3270.0
|
||||
2021-03-27T14:46:05.9380134;3690.0
|
||||
2021-03-28T14:46:05.9380134;4360.0
|
||||
2021-03-29T14:46:05.9380134;3520.0
|
||||
2021-03-30T14:46:05.9380134;4140.0
|
||||
2021-03-31T14:46:05.9380134;3440.0
|
||||
2021-04-01T14:46:05.9380134;3750.0
|
||||
2021-04-02T14:46:05.9380134;4140.0
|
||||
2021-04-03T14:46:05.9380134;5610.0
|
||||
2021-04-04T14:46:05.9380134;5350.0
|
||||
2021-04-05T14:46:05.9380134;4270.0
|
||||
2021-04-06T14:46:05.9380134;3160.0
|
||||
2021-04-07T14:46:05.9380134;2560.0
|
||||
2021-04-08T14:46:05.9380134;3410.0
|
||||
2021-04-09T14:46:05.9380134;3670.0
|
||||
2021-04-10T14:46:05.9380134;3670.0
|
||||
2021-04-11T14:46:05.9380134;3200.0
|
||||
2021-04-12T14:46:05.9380134;3700.0
|
||||
2021-04-13T14:46:05.9380134;3430.0
|
||||
2021-04-14T14:46:05.9380134;4130.0
|
||||
2021-04-15T14:46:05.9380134;4870.0
|
||||
2021-04-16T14:46:05.9380134;6310.0
|
||||
2021-04-17T14:46:05.9380134;4680.0
|
||||
2021-04-18T14:46:05.9380134;2380.0
|
||||
2021-04-19T14:46:05.9380134;3430.0
|
||||
2021-04-20T14:46:05.9380134;2950.0
|
||||
2021-04-21T14:46:05.9380134;3130.0
|
||||
2021-04-22T14:46:05.9380134;3650.0
|
||||
2021-04-23T14:46:05.9380134;2980.0
|
||||
2021-04-24T14:46:05.9380134;3720.0
|
||||
2021-04-25T14:46:05.9380134;2960.0
|
||||
2021-04-26T14:46:05.9380134;4300.0
|
||||
2021-04-27T14:46:05.9380134;5550.0
|
||||
2021-04-28T14:46:05.9380134;4380.0
|
||||
2021-04-29T14:46:05.9380134;3620.0
|
||||
2021-04-30T14:46:05.9380134;3350.0
|
||||
2021-05-01T14:46:05.9380134;3300.0
|
||||
2021-05-02T14:46:05.9380134;3800.0
|
||||
2021-05-03T14:46:05.9380134;3420.0
|
||||
2021-05-04T14:46:05.9380134;3860.0
|
||||
2021-05-05T14:46:05.9380134;2900.0
|
||||
2021-05-06T14:46:05.9380134;3240.0
|
||||
2021-05-07T14:46:05.9380134;3150.0
|
||||
2021-05-08T14:46:05.9380134;4460.0
|
||||
2021-05-09T14:46:05.9380134;5040.0
|
||||
2021-05-10T14:46:05.9380134;4660.0
|
||||
2021-05-11T14:46:05.9380134;3450.0
|
||||
2021-05-12T14:46:05.9380134;2660.0
|
||||
2021-05-13T14:46:05.9380134;2400.0
|
||||
2021-05-14T14:46:05.9380134;2200.0
|
||||
2021-05-15T14:46:05.9380134;3020.0
|
||||
2021-05-16T14:46:05.9380134;3450.0
|
||||
2021-05-17T14:46:05.9380134;4110.0
|
||||
2021-05-18T14:46:05.9380134;2760.0
|
||||
2021-05-19T14:46:05.9380134;3390.0
|
||||
2021-05-20T14:46:05.9380134;3740.0
|
||||
2021-05-21T14:46:05.9380134;4830.0
|
||||
2021-05-22T14:46:05.9380134;4450.0
|
||||
2021-05-23T14:46:05.9380134;3140.0
|
||||
2021-05-24T14:46:05.9380134;4700.0
|
||||
2021-05-25T14:46:05.9380134;2330.0
|
||||
2021-05-26T14:46:05.9380134;2740.0
|
||||
2021-05-27T14:46:05.9380134;2480.0
|
||||
2021-05-28T14:46:05.9380134;2690.0
|
||||
2021-05-29T14:46:05.9380134;5850.0
|
||||
2021-05-30T14:46:05.9380134;2450.0
|
||||
2021-05-31T14:46:05.9380134;3720.0
|
||||
2021-06-01T14:46:05.9380134;2780.0
|
||||
2021-06-02T14:46:05.9380134;5690.0
|
||||
2021-06-03T14:46:05.9380134;4150.0
|
||||
2021-06-04T14:46:05.9380134;4460.0
|
||||
2021-06-05T14:46:05.9380134;2730.0
|
||||
2021-06-06T14:46:05.9380134;3580.0
|
||||
2021-06-07T14:46:05.9380134;2870.0
|
||||
2021-06-08T14:46:05.9380134;4210.0
|
||||
2021-06-09T14:46:05.9380134;4500.0
|
||||
2021-06-10T14:46:05.9380134;3560.0
|
||||
2021-06-11T14:46:05.9380134;3800.0
|
||||
2021-06-12T14:46:05.9380134;3260.0
|
||||
2021-06-13T14:46:05.9380134;3410.0
|
||||
2021-06-14T14:46:05.9380134;3860.0
|
||||
2021-06-15T14:46:05.9380134;5000.0
|
||||
2021-06-16T14:46:05.9380134;3840.0
|
||||
2021-06-17T14:46:05.9380134;3210.0
|
||||
2021-06-18T14:46:05.9380134;2930.0
|
||||
2021-06-19T14:46:05.9380134;3630.0
|
||||
2021-06-20T14:46:05.9380134;2760.0
|
||||
2021-06-21T14:46:05.9380134;3310.0
|
||||
2021-06-22T14:46:05.9380134;4320.0
|
||||
2021-06-23T14:46:05.9380134;3010.0
|
||||
2021-06-24T14:46:05.9380134;3440.0
|
||||
2021-06-25T14:46:05.9380134;5100.0
|
||||
2021-06-26T14:46:05.9380134;4170.0
|
||||
2021-06-27T14:46:05.9380134;4540.0
|
||||
2021-06-28T14:46:05.9380134;3410.0
|
||||
2021-06-29T14:46:05.9380134;2590.0
|
||||
2021-06-30T14:46:05.9380134;2640.0
|
||||
2021-07-01T14:46:05.9380134;2970.0
|
||||
2021-07-02T14:46:05.9380134;3000.0
|
||||
2021-07-03T14:46:05.9380134;2900.0
|
||||
2021-07-04T14:46:05.9380134;3010.0
|
||||
2021-07-05T14:46:05.9380134;3380.0
|
||||
2021-07-06T14:46:05.9380134;3060.0
|
||||
2021-07-07T14:46:05.9380134;3100.0
|
||||
2021-07-08T14:46:05.9380134;3940.0
|
||||
2021-07-09T14:46:05.9380134;5360.0
|
||||
2021-07-10T14:46:05.9380134;3280.0
|
||||
2021-07-11T14:46:05.9380134;3190.0
|
||||
2021-07-12T14:46:05.9380134;4950.0
|
||||
2021-07-13T14:46:05.9380134;2910.0
|
||||
2021-07-14T14:46:05.9380134;2820.0
|
||||
2021-07-15T14:46:05.9380134;3050.0
|
||||
2021-07-16T14:46:05.9380134;2930.0
|
||||
2021-07-17T14:46:05.9380134;2800.0
|
||||
2021-07-18T14:46:05.9380134;3220.0
|
||||
2021-07-19T14:46:05.9380134;3120.0
|
||||
2021-07-20T14:46:05.9380134;4000.0
|
||||
2021-07-21T14:46:05.9380134;4840.0
|
||||
2021-07-22T14:46:05.9380134;2630.0
|
||||
2021-07-23T14:46:05.9380134;2920.0
|
||||
2021-07-24T14:46:05.9380134;2350.0
|
||||
2021-07-25T14:46:05.9380134;2850.0
|
||||
2021-07-26T14:46:05.9380134;2700.0
|
||||
2021-07-27T14:46:05.9380134;2870.0
|
||||
2021-07-28T14:46:05.9380134;2580.0
|
|
1
time-series-db/qqq/1112.csv.meta
Normal file
1
time-series-db/qqq/1112.csv.meta
Normal file
@ -0,0 +1 @@
|
||||
{"key":"1112","size":126,"hasDateTime":false}
|
Loading…
Reference in New Issue
Block a user