diff --git a/backend/src/main/java/ervu_business_metrics/controller/DataDateController.java b/backend/src/main/java/ervu_business_metrics/controller/DataDateController.java new file mode 100644 index 0000000..f8110ce --- /dev/null +++ b/backend/src/main/java/ervu_business_metrics/controller/DataDateController.java @@ -0,0 +1,24 @@ +package ervu_business_metrics.controller; + +import ervu_business_metrics.service.DataDateService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author Adel Kalimullin + */ +@RestController +public class DataDateController { + + private final DataDateService dataDateService; + + public DataDateController(DataDateService dataDateService) { + this.dataDateService = dataDateService; + } + + @GetMapping("/data-date") + public String getDataDate(@RequestHeader("Client-Time-Zone") String clientTimeZone) { + return dataDateService.getDataDate(clientTimeZone); + } +} diff --git a/backend/src/main/java/ervu_business_metrics/dao/DataDateDao.java b/backend/src/main/java/ervu_business_metrics/dao/DataDateDao.java new file mode 100644 index 0000000..053f730 --- /dev/null +++ b/backend/src/main/java/ervu_business_metrics/dao/DataDateDao.java @@ -0,0 +1,31 @@ +package ervu_business_metrics.dao; + + + +import java.sql.Timestamp; + +import org.jooq.DSLContext; +import org.springframework.stereotype.Repository; + +import static ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.LastRecordingDate.LAST_RECORDING_DATE;; + +/** + * @author Adel Kalimullin + */ +@Repository +public class DataDateDao { + + private final DSLContext dslContext; + + public DataDateDao(DSLContext dslContext) { + this.dslContext = dslContext; + } + + public Timestamp getDataDate() { + return dslContext.select(LAST_RECORDING_DATE.LAST_RECORDING_DATE_) + .from(LAST_RECORDING_DATE) + .orderBy(LAST_RECORDING_DATE.LAST_RECORDING_DATE_.desc()) + .limit(1) + .fetchOne(LAST_RECORDING_DATE.LAST_RECORDING_DATE_); + } +} diff --git a/backend/src/main/java/ervu_business_metrics/service/DataDateService.java b/backend/src/main/java/ervu_business_metrics/service/DataDateService.java new file mode 100644 index 0000000..e4cff99 --- /dev/null +++ b/backend/src/main/java/ervu_business_metrics/service/DataDateService.java @@ -0,0 +1,26 @@ +package ervu_business_metrics.service; + +import java.sql.Timestamp; + +import ervu_business_metrics.dao.DataDateDao; +import ervu_business_metrics.util.DateUtils; +import org.springframework.stereotype.Service; + +/** + * @author Adel Kalimullin + */ +@Service +public class DataDateService { + + private final DataDateDao dataDateDao; + + public DataDateService(DataDateDao dataDateDao) { + this.dataDateDao = dataDateDao; + } + + public String getDataDate(String clientTimeZone) { + Timestamp dataDate = dataDateDao.getDataDate(); + String formattedClientDate = DateUtils.getFormattedClientDate(dataDate, clientTimeZone); + return "Данные на " + formattedClientDate + " г."; + } +} diff --git a/backend/src/main/java/ervu_business_metrics/util/DateUtils.java b/backend/src/main/java/ervu_business_metrics/util/DateUtils.java new file mode 100644 index 0000000..a8d13d1 --- /dev/null +++ b/backend/src/main/java/ervu_business_metrics/util/DateUtils.java @@ -0,0 +1,35 @@ +package ervu_business_metrics.util; + +import java.sql.Timestamp; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Locale; + +/** + * @author Adel Kalimullin + */ +public final class DateUtils { + private static final DateTimeFormatter DATE_FORMATTER_RU = DateTimeFormatter.ofPattern( + "d MMMM yyyy", new Locale("ru", "RU") + ); + + private DateUtils() { + } + + public static String getFormattedClientDate(Timestamp timestamp, String clientTimeZone) { + if (timestamp == null) { + return ""; + } + + ZoneId zoneId; + try { + zoneId = ZoneId.of(clientTimeZone); + } + catch (Exception e) { + zoneId = ZoneId.systemDefault(); + } + return timestamp.toInstant() + .atZone(zoneId) + .format(DATE_FORMATTER_RU); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/ErvuBusinessMetrics.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/ErvuBusinessMetrics.java new file mode 100644 index 0000000..5f7c642 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/ErvuBusinessMetrics.java @@ -0,0 +1,76 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics; + + +import java.util.Arrays; +import java.util.List; + +import org.jooq.Catalog; +import org.jooq.Table; +import org.jooq.impl.SchemaImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.DefaultCatalog; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangelog; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangeloglock; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.LastRecordingDate; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Shedlock; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ErvuBusinessMetrics extends SchemaImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_business_metrics + */ + public static final ErvuBusinessMetrics ERVU_BUSINESS_METRICS = new ErvuBusinessMetrics(); + + /** + * The table ervu_business_metrics.databasechangelog. + */ + public final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table ervu_business_metrics.databasechangeloglock. + */ + public final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * Таблица для хранения даты и времени последней записи + */ + public final LastRecordingDate LAST_RECORDING_DATE = LastRecordingDate.LAST_RECORDING_DATE; + + /** + * Таблица для хранения блокировок ShedLock + */ + public final Shedlock SHEDLOCK = Shedlock.SHEDLOCK; + + /** + * No further instances allowed + */ + private ErvuBusinessMetrics() { + super("ervu_business_metrics", null); + } + + + @Override + public Catalog getCatalog() { + return DefaultCatalog.DEFAULT_CATALOG; + } + + @Override + public final List> getTables() { + return Arrays.asList( + Databasechangelog.DATABASECHANGELOG, + Databasechangeloglock.DATABASECHANGELOGLOCK, + LastRecordingDate.LAST_RECORDING_DATE, + Shedlock.SHEDLOCK + ); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Keys.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Keys.java new file mode 100644 index 0000000..97ce47b --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Keys.java @@ -0,0 +1,31 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics; + + +import org.jooq.TableField; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.Internal; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangeloglock; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Shedlock; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.DatabasechangeloglockRecord; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.ShedlockRecord; + + +/** + * A class modelling foreign key relationships and constraints of tables in + * ervu_business_metrics. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Keys { + + // ------------------------------------------------------------------------- + // UNIQUE and PRIMARY KEY definitions + // ------------------------------------------------------------------------- + + public static final UniqueKey DATABASECHANGELOGLOCK_PKEY = Internal.createUniqueKey(Databasechangeloglock.DATABASECHANGELOGLOCK, DSL.name("databasechangeloglock_pkey"), new TableField[] { Databasechangeloglock.DATABASECHANGELOGLOCK.ID }, true); + public static final UniqueKey SHEDLOCK_PK = Internal.createUniqueKey(Shedlock.SHEDLOCK, DSL.name("shedlock_pk"), new TableField[] { Shedlock.SHEDLOCK.NAME }, true); +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Tables.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Tables.java new file mode 100644 index 0000000..ea87b70 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/Tables.java @@ -0,0 +1,38 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics; + + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangelog; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangeloglock; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.LastRecordingDate; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Shedlock; + + +/** + * Convenience access to all tables in ervu_business_metrics. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Tables { + + /** + * The table ervu_business_metrics.databasechangelog. + */ + public static final Databasechangelog DATABASECHANGELOG = Databasechangelog.DATABASECHANGELOG; + + /** + * The table ervu_business_metrics.databasechangeloglock. + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = Databasechangeloglock.DATABASECHANGELOGLOCK; + + /** + * Таблица для хранения даты и времени последней записи + */ + public static final LastRecordingDate LAST_RECORDING_DATE = LastRecordingDate.LAST_RECORDING_DATE; + + /** + * Таблица для хранения блокировок ShedLock + */ + public static final Shedlock SHEDLOCK = Shedlock.SHEDLOCK; +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangelog.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangelog.java new file mode 100644 index 0000000..9a24326 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangelog.java @@ -0,0 +1,286 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables; + + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.ErvuBusinessMetrics; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.DatabasechangelogRecord; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangelog extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * ervu_business_metrics.databasechangelog + */ + public static final Databasechangelog DATABASECHANGELOG = new Databasechangelog(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangelogRecord.class; + } + + /** + * The column ervu_business_metrics.databasechangelog.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.author. + */ + public final TableField AUTHOR = createField(DSL.name("author"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.filename. + */ + public final TableField FILENAME = createField(DSL.name("filename"), SQLDataType.VARCHAR(255).nullable(false), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangelog.dateexecuted. + */ + public final TableField DATEEXECUTED = createField(DSL.name("dateexecuted"), SQLDataType.TIMESTAMP(0).nullable(false), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangelog.orderexecuted. + */ + public final TableField ORDEREXECUTED = createField(DSL.name("orderexecuted"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.exectype. + */ + public final TableField EXECTYPE = createField(DSL.name("exectype"), SQLDataType.VARCHAR(10).nullable(false), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.md5sum. + */ + public final TableField MD5SUM = createField(DSL.name("md5sum"), SQLDataType.VARCHAR(35), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangelog.description. + */ + public final TableField DESCRIPTION = createField(DSL.name("description"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.comments. + */ + public final TableField COMMENTS = createField(DSL.name("comments"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.tag. + */ + public final TableField TAG = createField(DSL.name("tag"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangelog.liquibase. + */ + public final TableField LIQUIBASE = createField(DSL.name("liquibase"), SQLDataType.VARCHAR(20), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.contexts. + */ + public final TableField CONTEXTS = createField(DSL.name("contexts"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column ervu_business_metrics.databasechangelog.labels. + */ + public final TableField LABELS = createField(DSL.name("labels"), SQLDataType.VARCHAR(255), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangelog.deployment_id. + */ + public final TableField DEPLOYMENT_ID = createField(DSL.name("deployment_id"), SQLDataType.VARCHAR(10), this, ""); + + private Databasechangelog(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangelog(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_business_metrics.databasechangelog + * table reference + */ + public Databasechangelog(String alias) { + this(DSL.name(alias), DATABASECHANGELOG); + } + + /** + * Create an aliased ervu_business_metrics.databasechangelog + * table reference + */ + public Databasechangelog(Name alias) { + this(alias, DATABASECHANGELOG); + } + + /** + * Create a ervu_business_metrics.databasechangelog table + * reference + */ + public Databasechangelog() { + this(DSL.name("databasechangelog"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuBusinessMetrics.ERVU_BUSINESS_METRICS; + } + + @Override + public Databasechangelog as(String alias) { + return new Databasechangelog(DSL.name(alias), this); + } + + @Override + public Databasechangelog as(Name alias) { + return new Databasechangelog(alias, this); + } + + @Override + public Databasechangelog as(Table alias) { + return new Databasechangelog(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(String name) { + return new Databasechangelog(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Name name) { + return new Databasechangelog(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangelog rename(Table name) { + return new Databasechangelog(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition condition) { + return new Databasechangelog(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangelog where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangelog whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangeloglock.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangeloglock.java new file mode 100644 index 0000000..6b9b6ab --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Databasechangeloglock.java @@ -0,0 +1,241 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables; + + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.ErvuBusinessMetrics; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.Keys; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.DatabasechangeloglockRecord; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Databasechangeloglock extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * ervu_business_metrics.databasechangeloglock + */ + public static final Databasechangeloglock DATABASECHANGELOGLOCK = new Databasechangeloglock(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return DatabasechangeloglockRecord.class; + } + + /** + * The column ervu_business_metrics.databasechangeloglock.id. + */ + public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangeloglock.locked. + */ + public final TableField LOCKED = createField(DSL.name("locked"), SQLDataType.BOOLEAN.nullable(false), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangeloglock.lockgranted. + */ + public final TableField LOCKGRANTED = createField(DSL.name("lockgranted"), SQLDataType.TIMESTAMP(0), this, ""); + + /** + * The column + * ervu_business_metrics.databasechangeloglock.lockedby. + */ + public final TableField LOCKEDBY = createField(DSL.name("lockedby"), SQLDataType.VARCHAR(255), this, ""); + + private Databasechangeloglock(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Databasechangeloglock(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table(), where); + } + + /** + * Create an aliased + * ervu_business_metrics.databasechangeloglock table reference + */ + public Databasechangeloglock(String alias) { + this(DSL.name(alias), DATABASECHANGELOGLOCK); + } + + /** + * Create an aliased + * ervu_business_metrics.databasechangeloglock table reference + */ + public Databasechangeloglock(Name alias) { + this(alias, DATABASECHANGELOGLOCK); + } + + /** + * Create a ervu_business_metrics.databasechangeloglock table + * reference + */ + public Databasechangeloglock() { + this(DSL.name("databasechangeloglock"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuBusinessMetrics.ERVU_BUSINESS_METRICS; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.DATABASECHANGELOGLOCK_PKEY; + } + + @Override + public Databasechangeloglock as(String alias) { + return new Databasechangeloglock(DSL.name(alias), this); + } + + @Override + public Databasechangeloglock as(Name alias) { + return new Databasechangeloglock(alias, this); + } + + @Override + public Databasechangeloglock as(Table alias) { + return new Databasechangeloglock(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(String name) { + return new Databasechangeloglock(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Name name) { + return new Databasechangeloglock(name, null); + } + + /** + * Rename this table + */ + @Override + public Databasechangeloglock rename(Table name) { + return new Databasechangeloglock(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition condition) { + return new Databasechangeloglock(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Databasechangeloglock where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Databasechangeloglock whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/LastRecordingDate.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/LastRecordingDate.java new file mode 100644 index 0000000..4356c79 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/LastRecordingDate.java @@ -0,0 +1,222 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables; + + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.ErvuBusinessMetrics; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.LastRecordingDateRecord; + + +/** + * Таблица для хранения даты и времени последней записи + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class LastRecordingDate extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of + * ervu_business_metrics.last_recording_date + */ + public static final LastRecordingDate LAST_RECORDING_DATE = new LastRecordingDate(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return LastRecordingDateRecord.class; + } + + /** + * The column + * ervu_business_metrics.last_recording_date.last_recording_date. + */ + public final TableField LAST_RECORDING_DATE_ = createField(DSL.name("last_recording_date"), SQLDataType.TIMESTAMP(0).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); + + /** + * The column ervu_business_metrics.last_recording_date.entry. + */ + public final TableField ENTRY = createField(DSL.name("entry"), SQLDataType.CLOB, this, ""); + + private LastRecordingDate(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private LastRecordingDate(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("Таблица для хранения даты и времени последней записи"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_business_metrics.last_recording_date + * table reference + */ + public LastRecordingDate(String alias) { + this(DSL.name(alias), LAST_RECORDING_DATE); + } + + /** + * Create an aliased ervu_business_metrics.last_recording_date + * table reference + */ + public LastRecordingDate(Name alias) { + this(alias, LAST_RECORDING_DATE); + } + + /** + * Create a ervu_business_metrics.last_recording_date table + * reference + */ + public LastRecordingDate() { + this(DSL.name("last_recording_date"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuBusinessMetrics.ERVU_BUSINESS_METRICS; + } + + @Override + public LastRecordingDate as(String alias) { + return new LastRecordingDate(DSL.name(alias), this); + } + + @Override + public LastRecordingDate as(Name alias) { + return new LastRecordingDate(alias, this); + } + + @Override + public LastRecordingDate as(Table alias) { + return new LastRecordingDate(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public LastRecordingDate rename(String name) { + return new LastRecordingDate(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public LastRecordingDate rename(Name name) { + return new LastRecordingDate(name, null); + } + + /** + * Rename this table + */ + @Override + public LastRecordingDate rename(Table name) { + return new LastRecordingDate(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate where(Condition condition) { + return new LastRecordingDate(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LastRecordingDate where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LastRecordingDate where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LastRecordingDate where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public LastRecordingDate where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public LastRecordingDate whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Shedlock.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Shedlock.java new file mode 100644 index 0000000..aa927b8 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/Shedlock.java @@ -0,0 +1,240 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables; + + +import java.sql.Timestamp; +import java.util.Collection; + +import org.jooq.Condition; +import org.jooq.Field; +import org.jooq.Name; +import org.jooq.PlainSQL; +import org.jooq.QueryPart; +import org.jooq.SQL; +import org.jooq.Schema; +import org.jooq.Select; +import org.jooq.Stringly; +import org.jooq.Table; +import org.jooq.TableField; +import org.jooq.TableOptions; +import org.jooq.UniqueKey; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; +import org.jooq.impl.TableImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.ErvuBusinessMetrics; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.Keys; +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records.ShedlockRecord; + + +/** + * Таблица для хранения блокировок ShedLock + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class Shedlock extends TableImpl { + + private static final long serialVersionUID = 1L; + + /** + * The reference instance of ervu_business_metrics.shedlock + */ + public static final Shedlock SHEDLOCK = new Shedlock(); + + /** + * The class holding records for this type + */ + @Override + public Class getRecordType() { + return ShedlockRecord.class; + } + + /** + * The column ervu_business_metrics.shedlock.name. Имя ресурса + * блокировки + */ + public final TableField NAME = createField(DSL.name("name"), SQLDataType.VARCHAR(255).nullable(false), this, "Имя ресурса блокировки"); + + /** + * The column ervu_business_metrics.shedlock.lock_until. Время, + * до которого действует блокировка + */ + public final TableField LOCK_UNTIL = createField(DSL.name("lock_until"), SQLDataType.TIMESTAMP(0), this, "Время, до которого действует блокировка"); + + /** + * The column ervu_business_metrics.shedlock.locked_at. Время + * создания блокировки + */ + public final TableField LOCKED_AT = createField(DSL.name("locked_at"), SQLDataType.TIMESTAMP(0), this, "Время создания блокировки"); + + /** + * The column ervu_business_metrics.shedlock.locked_by. + * Идентификатор узла, установившего блокировку + */ + public final TableField LOCKED_BY = createField(DSL.name("locked_by"), SQLDataType.VARCHAR(255), this, "Идентификатор узла, установившего блокировку"); + + private Shedlock(Name alias, Table aliased) { + this(alias, aliased, (Field[]) null, null); + } + + private Shedlock(Name alias, Table aliased, Field[] parameters, Condition where) { + super(alias, null, aliased, parameters, DSL.comment("Таблица для хранения блокировок ShedLock"), TableOptions.table(), where); + } + + /** + * Create an aliased ervu_business_metrics.shedlock table + * reference + */ + public Shedlock(String alias) { + this(DSL.name(alias), SHEDLOCK); + } + + /** + * Create an aliased ervu_business_metrics.shedlock table + * reference + */ + public Shedlock(Name alias) { + this(alias, SHEDLOCK); + } + + /** + * Create a ervu_business_metrics.shedlock table reference + */ + public Shedlock() { + this(DSL.name("shedlock"), null); + } + + @Override + public Schema getSchema() { + return aliased() ? null : ErvuBusinessMetrics.ERVU_BUSINESS_METRICS; + } + + @Override + public UniqueKey getPrimaryKey() { + return Keys.SHEDLOCK_PK; + } + + @Override + public Shedlock as(String alias) { + return new Shedlock(DSL.name(alias), this); + } + + @Override + public Shedlock as(Name alias) { + return new Shedlock(alias, this); + } + + @Override + public Shedlock as(Table alias) { + return new Shedlock(alias.getQualifiedName(), this); + } + + /** + * Rename this table + */ + @Override + public Shedlock rename(String name) { + return new Shedlock(DSL.name(name), null); + } + + /** + * Rename this table + */ + @Override + public Shedlock rename(Name name) { + return new Shedlock(name, null); + } + + /** + * Rename this table + */ + @Override + public Shedlock rename(Table name) { + return new Shedlock(name.getQualifiedName(), null); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock where(Condition condition) { + return new Shedlock(getQualifiedName(), aliased() ? this : null, null, condition); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock where(Collection conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock where(Condition... conditions) { + return where(DSL.and(conditions)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock where(Field condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Shedlock where(SQL condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Shedlock where(@Stringly.SQL String condition) { + return where(DSL.condition(condition)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Shedlock where(@Stringly.SQL String condition, Object... binds) { + return where(DSL.condition(condition, binds)); + } + + /** + * Create an inline derived table from this table + */ + @Override + @PlainSQL + public Shedlock where(@Stringly.SQL String condition, QueryPart... parts) { + return where(DSL.condition(condition, parts)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock whereExists(Select select) { + return where(DSL.exists(select)); + } + + /** + * Create an inline derived table from this table + */ + @Override + public Shedlock whereNotExists(Select select) { + return where(DSL.notExists(select)); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangelogRecord.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangelogRecord.java new file mode 100644 index 0000000..fb5885e --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangelogRecord.java @@ -0,0 +1,261 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records; + + +import java.sql.Timestamp; + +import org.jooq.impl.TableRecordImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangelog; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangelogRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_business_metrics.databasechangelog.id. + */ + public void setId(String value) { + set(0, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.id. + */ + public String getId() { + return (String) get(0); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.author. + */ + public void setAuthor(String value) { + set(1, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.author. + */ + public String getAuthor() { + return (String) get(1); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.filename. + */ + public void setFilename(String value) { + set(2, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.filename. + */ + public String getFilename() { + return (String) get(2); + } + + /** + * Setter for + * ervu_business_metrics.databasechangelog.dateexecuted. + */ + public void setDateexecuted(Timestamp value) { + set(3, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangelog.dateexecuted. + */ + public Timestamp getDateexecuted() { + return (Timestamp) get(3); + } + + /** + * Setter for + * ervu_business_metrics.databasechangelog.orderexecuted. + */ + public void setOrderexecuted(Integer value) { + set(4, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangelog.orderexecuted. + */ + public Integer getOrderexecuted() { + return (Integer) get(4); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.exectype. + */ + public void setExectype(String value) { + set(5, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.exectype. + */ + public String getExectype() { + return (String) get(5); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.md5sum. + */ + public void setMd5sum(String value) { + set(6, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.md5sum. + */ + public String getMd5sum() { + return (String) get(6); + } + + /** + * Setter for + * ervu_business_metrics.databasechangelog.description. + */ + public void setDescription(String value) { + set(7, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangelog.description. + */ + public String getDescription() { + return (String) get(7); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.comments. + */ + public void setComments(String value) { + set(8, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.comments. + */ + public String getComments() { + return (String) get(8); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.tag. + */ + public void setTag(String value) { + set(9, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.tag. + */ + public String getTag() { + return (String) get(9); + } + + /** + * Setter for + * ervu_business_metrics.databasechangelog.liquibase. + */ + public void setLiquibase(String value) { + set(10, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangelog.liquibase. + */ + public String getLiquibase() { + return (String) get(10); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.contexts. + */ + public void setContexts(String value) { + set(11, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.contexts. + */ + public String getContexts() { + return (String) get(11); + } + + /** + * Setter for ervu_business_metrics.databasechangelog.labels. + */ + public void setLabels(String value) { + set(12, value); + } + + /** + * Getter for ervu_business_metrics.databasechangelog.labels. + */ + public String getLabels() { + return (String) get(12); + } + + /** + * Setter for + * ervu_business_metrics.databasechangelog.deployment_id. + */ + public void setDeploymentId(String value) { + set(13, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangelog.deployment_id. + */ + public String getDeploymentId() { + return (String) get(13); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangelogRecord + */ + public DatabasechangelogRecord() { + super(Databasechangelog.DATABASECHANGELOG); + } + + /** + * Create a detached, initialised DatabasechangelogRecord + */ + public DatabasechangelogRecord(String id, String author, String filename, Timestamp dateexecuted, Integer orderexecuted, String exectype, String md5sum, String description, String comments, String tag, String liquibase, String contexts, String labels, String deploymentId) { + super(Databasechangelog.DATABASECHANGELOG); + + setId(id); + setAuthor(author); + setFilename(filename); + setDateexecuted(dateexecuted); + setOrderexecuted(orderexecuted); + setExectype(exectype); + setMd5sum(md5sum); + setDescription(description); + setComments(comments); + setTag(tag); + setLiquibase(liquibase); + setContexts(contexts); + setLabels(labels); + setDeploymentId(deploymentId); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangeloglockRecord.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangeloglockRecord.java new file mode 100644 index 0000000..a7075d9 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/DatabasechangeloglockRecord.java @@ -0,0 +1,117 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records; + + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Databasechangeloglock; + + +/** + * This class is generated by jOOQ. + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class DatabasechangeloglockRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_business_metrics.databasechangeloglock.id. + */ + public void setId(Integer value) { + set(0, value); + } + + /** + * Getter for ervu_business_metrics.databasechangeloglock.id. + */ + public Integer getId() { + return (Integer) get(0); + } + + /** + * Setter for + * ervu_business_metrics.databasechangeloglock.locked. + */ + public void setLocked(Boolean value) { + set(1, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangeloglock.locked. + */ + public Boolean getLocked() { + return (Boolean) get(1); + } + + /** + * Setter for + * ervu_business_metrics.databasechangeloglock.lockgranted. + */ + public void setLockgranted(Timestamp value) { + set(2, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangeloglock.lockgranted. + */ + public Timestamp getLockgranted() { + return (Timestamp) get(2); + } + + /** + * Setter for + * ervu_business_metrics.databasechangeloglock.lockedby. + */ + public void setLockedby(String value) { + set(3, value); + } + + /** + * Getter for + * ervu_business_metrics.databasechangeloglock.lockedby. + */ + public String getLockedby() { + return (String) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord() { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + } + + /** + * Create a detached, initialised DatabasechangeloglockRecord + */ + public DatabasechangeloglockRecord(Integer id, Boolean locked, Timestamp lockgranted, String lockedby) { + super(Databasechangeloglock.DATABASECHANGELOGLOCK); + + setId(id); + setLocked(locked); + setLockgranted(lockgranted); + setLockedby(lockedby); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/LastRecordingDateRecord.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/LastRecordingDateRecord.java new file mode 100644 index 0000000..25478a8 --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/LastRecordingDateRecord.java @@ -0,0 +1,73 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records; + + +import java.sql.Timestamp; + +import org.jooq.impl.TableRecordImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.LastRecordingDate; + + +/** + * Таблица для хранения даты и времени последней записи + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class LastRecordingDateRecord extends TableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for + * ervu_business_metrics.last_recording_date.last_recording_date. + */ + public void setLastRecordingDate(Timestamp value) { + set(0, value); + } + + /** + * Getter for + * ervu_business_metrics.last_recording_date.last_recording_date. + */ + public Timestamp getLastRecordingDate() { + return (Timestamp) get(0); + } + + /** + * Setter for ervu_business_metrics.last_recording_date.entry. + */ + public void setEntry(String value) { + set(1, value); + } + + /** + * Getter for ervu_business_metrics.last_recording_date.entry. + */ + public String getEntry() { + return (String) get(1); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached LastRecordingDateRecord + */ + public LastRecordingDateRecord() { + super(LastRecordingDate.LAST_RECORDING_DATE); + } + + /** + * Create a detached, initialised LastRecordingDateRecord + */ + public LastRecordingDateRecord(Timestamp lastRecordingDate, String entry) { + super(LastRecordingDate.LAST_RECORDING_DATE); + + setLastRecordingDate(lastRecordingDate); + setEntry(entry); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/ShedlockRecord.java b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/ShedlockRecord.java new file mode 100644 index 0000000..629d90a --- /dev/null +++ b/backend/src/main/java/ru/micord/webbpm/ervu/business_metrics/db_beans/ervu_business_metrics/tables/records/ShedlockRecord.java @@ -0,0 +1,119 @@ +/* + * This file is generated by jOOQ. + */ +package ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.records; + + +import java.sql.Timestamp; + +import org.jooq.Record1; +import org.jooq.impl.UpdatableRecordImpl; + +import ru.micord.webbpm.ervu.business_metrics.db_beans.ervu_business_metrics.tables.Shedlock; + + +/** + * Таблица для хранения блокировок ShedLock + */ +@SuppressWarnings({ "all", "unchecked", "rawtypes" }) +public class ShedlockRecord extends UpdatableRecordImpl { + + private static final long serialVersionUID = 1L; + + /** + * Setter for ervu_business_metrics.shedlock.name. Имя ресурса + * блокировки + */ + public void setName(String value) { + set(0, value); + } + + /** + * Getter for ervu_business_metrics.shedlock.name. Имя ресурса + * блокировки + */ + public String getName() { + return (String) get(0); + } + + /** + * Setter for ervu_business_metrics.shedlock.lock_until. Время, + * до которого действует блокировка + */ + public void setLockUntil(Timestamp value) { + set(1, value); + } + + /** + * Getter for ervu_business_metrics.shedlock.lock_until. Время, + * до которого действует блокировка + */ + public Timestamp getLockUntil() { + return (Timestamp) get(1); + } + + /** + * Setter for ervu_business_metrics.shedlock.locked_at. Время + * создания блокировки + */ + public void setLockedAt(Timestamp value) { + set(2, value); + } + + /** + * Getter for ervu_business_metrics.shedlock.locked_at. Время + * создания блокировки + */ + public Timestamp getLockedAt() { + return (Timestamp) get(2); + } + + /** + * Setter for ervu_business_metrics.shedlock.locked_by. + * Идентификатор узла, установившего блокировку + */ + public void setLockedBy(String value) { + set(3, value); + } + + /** + * Getter for ervu_business_metrics.shedlock.locked_by. + * Идентификатор узла, установившего блокировку + */ + public String getLockedBy() { + return (String) get(3); + } + + // ------------------------------------------------------------------------- + // Primary key information + // ------------------------------------------------------------------------- + + @Override + public Record1 key() { + return (Record1) super.key(); + } + + // ------------------------------------------------------------------------- + // Constructors + // ------------------------------------------------------------------------- + + /** + * Create a detached ShedlockRecord + */ + public ShedlockRecord() { + super(Shedlock.SHEDLOCK); + } + + /** + * Create a detached, initialised ShedlockRecord + */ + public ShedlockRecord(String name, Timestamp lockUntil, Timestamp lockedAt, String lockedBy) { + super(Shedlock.SHEDLOCK); + + setName(name); + setLockUntil(lockUntil); + setLockedAt(lockedAt); + setLockedBy(lockedBy); + resetChangedOnNotNull(); + } +} diff --git a/backend/src/main/resources/config/v_1.0/20250821-last_recording_date.xml b/backend/src/main/resources/config/v_1.0/20250821-last_recording_date.xml new file mode 100644 index 0000000..2b53ee9 --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/20250821-last_recording_date.xml @@ -0,0 +1,22 @@ + + + + + + fix view deregistration.view_generated_solutions + + CREATE TABLE IF NOT EXISTS ervu_business_metrics.last_recording_date( + last_recording_date TIMESTAMP DEFAULT now(), + entry text + ); + + COMMENT ON TABLE ervu_business_metrics.last_recording_date IS 'Таблица для хранения даты и времени последней записи'; + + + + + \ No newline at end of file diff --git a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml index 42e6583..81dbecd 100644 --- a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml +++ b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml @@ -38,4 +38,5 @@ + \ No newline at end of file diff --git a/frontend/src/resources/template/app/component/app_header.html b/frontend/src/resources/template/app/component/app_header.html index 3e6682a..f763198 100644 --- a/frontend/src/resources/template/app/component/app_header.html +++ b/frontend/src/resources/template/app/component/app_header.html @@ -1,5 +1,10 @@ diff --git a/frontend/src/resources/template/app/component/data-date.html b/frontend/src/resources/template/app/component/data-date.html new file mode 100644 index 0000000..ecf0607 --- /dev/null +++ b/frontend/src/resources/template/app/component/data-date.html @@ -0,0 +1 @@ +{{dataDate}} \ No newline at end of file diff --git a/frontend/src/ts/modules/app/app.module.ts b/frontend/src/ts/modules/app/app.module.ts index e82cc22..8013678 100644 --- a/frontend/src/ts/modules/app/app.module.ts +++ b/frontend/src/ts/modules/app/app.module.ts @@ -25,6 +25,7 @@ import {DropdownTreeViewComponent} from "../../component/field/DropdownTreeViewC import {DropdownTreeviewSelectComponent} from "../../component/external/ngx-treeview/dropdown-treeview-select/dropdown-treeview-select.component"; import {TreeviewModule} from "ngx-treeview"; import {ErvuChartTooltip} from "../../ervu_business_metrics/component/chart/ErvuChartTooltip"; +import {DataDateComponent} from "./component/data-date.component"; registerLocaleData(localeRu); export const DIRECTIVES = [ @@ -36,7 +37,8 @@ export const DIRECTIVES = [ forwardRef(() => FilterContainer), forwardRef(() => DropdownTreeViewComponent), forwardRef(() => DropdownTreeviewSelectComponent), - forwardRef(() => ErvuChartTooltip) + forwardRef(() => ErvuChartTooltip), + forwardRef(() => DataDateComponent) ]; @NgModule({ diff --git a/frontend/src/ts/modules/app/component/data-date.component.ts b/frontend/src/ts/modules/app/component/data-date.component.ts new file mode 100644 index 0000000..b45086c --- /dev/null +++ b/frontend/src/ts/modules/app/component/data-date.component.ts @@ -0,0 +1,31 @@ +import {ChangeDetectionStrategy, ChangeDetectorRef, Component} from "@angular/core"; +import {HttpClient} from "@angular/common/http"; + +@Component({ + moduleId: module.id, + selector: 'data-date', + templateUrl: '../../../../../src/resources/template/app/component/data-date.html', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DataDateComponent { + public dataDate: string; + + constructor(private httpClient: HttpClient, private cd: ChangeDetectorRef) { + this.getLastRecordDate(); + } + + private getLastRecordDate(): void { + const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; + this.httpClient.get("data-date", + { + headers: { + "Client-Time-Zone": timeZone, + } + } + ).toPromise() + .then((dataDate: string) => { + this.dataDate = dataDate; + this.cd.markForCheck(); + }); + } +} \ No newline at end of file diff --git a/resources/src/main/resources/database/datasource.xml b/resources/src/main/resources/database/datasource.xml index af41d21..263d6e0 100644 --- a/resources/src/main/resources/database/datasource.xml +++ b/resources/src/main/resources/database/datasource.xml @@ -11,6 +11,7 @@ admin_indicators auth deregistration + ervu_business_metrics idm_reconcile init_registration_info journal_log