From 10dd8bdd1d3c2ac48b286eb1f3ecb66139bd33c2 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 26 Sep 2022 17:31:19 +0300 Subject: [PATCH] some imdg refactoring --- clearing-parent/imdg/pom.xml | 1 - .../imdg/base/ObjectBaseMapStore.java | 1 - .../imdg/base/SimpleObjectMapStore.java | 54 ++-- .../imdg/base/TemplateEventMapStore.java | 4 +- .../imdg/base/TemplateHistoryMapStore.java | 13 +- .../clearing/imdg/base/TemplateMapStore.java | 18 +- .../businessevent/AccountHistoryMapStore.java | 6 +- .../businessevent/CompanyHistoryMapStore.java | 15 +- .../RelationHistoryMapStore.java | 6 +- .../SecurityHistoryMapStore.java | 11 +- .../UserConnectHistoryMapStore.java | 12 +- .../businessevent/UserHistoryMapStore.java | 6 +- .../imdg/businessobject/AccountMapStore.java | 6 +- .../imdg/businessobject/CompanyMapStore.java | 11 +- .../businessobject/ErrorTextMapStore.java | 8 +- .../imdg/businessobject/RelationMapStore.java | 6 +- .../businessobject/SchedulerMapStore.java | 12 +- .../imdg/businessobject/SecurityMapStore.java | 8 +- .../businessobject/StatementMapStore.java | 12 +- .../businessobject/TaskRunnerMapStore.java | 8 +- .../businessobject/TimetableMapStore.java | 10 +- .../TradingCalendarMapStore.java | 10 +- .../businessobject/UserConnectMapStore.java | 14 +- .../imdg/businessobject/UserMapStore.java | 6 +- .../imdg/object/CompanySymbolsMapStore.java | 3 +- .../clearing/imdg/object/ContactMapStore.java | 3 +- .../object/InDocumentJournalMapStore.java | 12 +- .../clearing/imdg/object/KeyRateMapStore.java | 8 +- .../object/MoneyMarketSecurityMapStore.java | 8 +- .../object/OutDocumentJournalMapStore.java | 12 +- .../imdg/object/ProfileDocumentMapStore.java | 11 +- .../clearing/imdg/object/SDf01MapStore.java | 6 +- .../clearing/imdg/object/SDf02MapStore.java | 6 +- .../clearing/imdg/object/SDf03MapStore.java | 4 +- .../clearing/imdg/object/SDf05MapStore.java | 8 +- .../clearing/imdg/object/SDf08MapStore.java | 8 +- .../clearing/imdg/object/SDf10MapStore.java | 4 +- .../clearing/imdg/object/SDf11MapStore.java | 4 +- .../clearing/imdg/object/SDf12MapStore.java | 6 +- .../clearing/imdg/object/SDf13MapStore.java | 4 +- .../clearing/imdg/object/SDf16MapStore.java | 8 +- .../clearing/imdg/object/SDf17MapStore.java | 4 +- .../clearing/imdg/object/SDf18MapStore.java | 8 +- .../object/SchedulerAllTodayMapStore.java | 8 +- .../imdg/object/UserRoleSessionMapStore.java | 3 - .../imdg/object/UserSettingsMapStore.java | 3 - .../clearing/imdg/utils/BigDecimalUtil.java | 111 ------- .../clearing/imdg/utils/DbDefaultConfig.java | 10 - .../clearing/imdg/utils/DbUtilsHelper.java | 51 --- .../spcex/clearing/imdg/utils/TimeUtil.java | 294 ------------------ .../imdg/utils/DbUtilsHelperTest.java | 15 - .../spcex/platform/utils/text/TextUtil.java | 29 ++ .../spcex/platform/utils/time/TimeUtil.java | 23 +- pom.xml | 2 +- 54 files changed, 213 insertions(+), 721 deletions(-) delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/BigDecimalUtil.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbDefaultConfig.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbUtilsHelper.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/TimeUtil.java delete mode 100644 clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbUtilsHelperTest.java create mode 100644 platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java diff --git a/clearing-parent/imdg/pom.xml b/clearing-parent/imdg/pom.xml index c9082ec35..c0db709b4 100644 --- a/clearing-parent/imdg/pom.xml +++ b/clearing-parent/imdg/pom.xml @@ -55,7 +55,6 @@ com.mchange c3p0 - 0.9.5.5 diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java index f89460479..330fa70ac 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/ObjectBaseMapStore.java @@ -81,7 +81,6 @@ public abstract class ObjectBaseMapStore extends Simp return rs.getObject(columnName, Long.class); } - // todo отрефакторить метод - длинное название protected Instant getInstantFromTimestamp(ResultSet rs, String column) throws SQLException { Timestamp date = rs.getTimestamp(column); return date != null ? date.toInstant() : null; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java index 50a6a8f60..7cdc489b8 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/SimpleObjectMapStore.java @@ -9,6 +9,7 @@ import org.springframework.jdbc.core.SqlTypeValue; import org.springframework.jdbc.core.StatementCreatorUtils; import org.springframework.lang.NonNull; import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.utils.text.TextUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -16,6 +17,7 @@ import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.time.Instant; import java.util.*; +import java.util.stream.Collectors; /** * MapStore для выгрузки обычных объектов @@ -25,9 +27,9 @@ import java.util.*; public abstract class SimpleObjectMapStore implements MapStore { protected final Logger log = LoggerFactory.getLogger(this.getClass()); - protected SimpleDateFormat FIREBIRD_DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");//todo уже не firebird, а PostgreSQL + private final static int BATCH_SIZE = 1000; + protected SimpleDateFormat DB_DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); protected final JdbcTemplate jdbcTemplate; - private final int bathSize = 1000; protected SimpleObjectMapStore(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; @@ -37,13 +39,8 @@ public abstract class SimpleObjectMapStore implements public abstract String[] getFields(); - private boolean oidIsPresentInTheFields = Arrays.stream(getFields()).anyMatch(anotherString -> { - if (anotherString == null) return false; - return "oid".equalsIgnoreCase(anotherString.trim()); - }); - public boolean deleteIsSupported() { - return !oidIsPresentInTheFields; + return false; } @Override @@ -91,7 +88,8 @@ public abstract class SimpleObjectMapStore implements for (Long id : collection) listOfID.add(new Object[]{id}); try { - jdbcTemplate.batchUpdate("DELETE FROM " + getTableName() + " WHERE id=?", listOfID); + String sql = String.format("DELETE FROM %s WHERE id = ?", getTableName()); + jdbcTemplate.batchUpdate(sql, listOfID); } catch (Exception e) { log.error("SQL error at batch DELETE FROM {}\n{}", getTableName(), ExceptionUtils.getStackTrace(e)); log.info("List of non deleted ID {}", collection); // показать список неудалённых UUID @@ -124,25 +122,9 @@ public abstract class SimpleObjectMapStore implements return keys; } - /** - * Загружает ключи только за текущий день. - * where CAST(tradingday as DATE) = ? - * Осторожно со знаком: в некоторых случаях требуется за текущий и будущие дни, тогда этот метод не подходит. - * См. так же loadAllKeys(). - * - * @return список id - */ - protected List defaultLoadAllKeysOnTradingDay() { - log.debug("loadAllKeys from " + getTableName()); - return jdbcTemplate.query("select id from " + getTableName() + " where CAST(tradingday as DATE) = ?", - new Object[]{FIREBIRD_DATE_FORMATTER.format(new Date())}, - (resultSet, i) -> resultSet.getObject("id", Long.class)); - } - - protected void batchInsertUpdate(@NonNull String insertStatement, @NonNull List args) { try { - int[][] ret = jdbcTemplate.batchUpdate(insertStatement, args, bathSize, (ps, params) -> { + int[][] ret = jdbcTemplate.batchUpdate(insertStatement, args, BATCH_SIZE, (ps, params) -> { for (int i = 0; i < params.length; i++) { Object value = params[i]; try { @@ -165,8 +147,22 @@ public abstract class SimpleObjectMapStore implements return date != null ? date.toInstant() : null; } - protected Timestamp timestampFromInstant(Instant instant) { - if (instant == null) return null; - return Timestamp.from(instant); + protected String makeInsertSql(String tableName, String[] fields, String matchingKey) { + String INSERT_TEMPLATE = "INSERT INTO ${tableName} (${columnsEnumeration}) VALUES (${valuesEnumeration}) ON CONFLICT (${matchingKey}) DO UPDATE SET ${excludedColumns}"; + + String columnsEnumeration = Arrays.stream(fields).map(f -> "" + f.toUpperCase() + "").collect(Collectors.joining(", ")); + String valuesEnumeration = String.join(", ", Collections.nCopies(fields.length, "?")); + String excludedColumns = Arrays.stream(fields).filter(f -> !matchingKey.equalsIgnoreCase(f)). + map(f -> "" + f.toUpperCase() + "=EXCLUDED." + f.toUpperCase() + "").collect(Collectors.joining(", ")); + + Map params = new HashMap<>(); + params.put("tableName", tableName); + params.put("columnsEnumeration", columnsEnumeration); + params.put("valuesEnumeration", valuesEnumeration); + params.put("matchingKey", matchingKey.toUpperCase()); + params.put("excludedColumns", excludedColumns); + + + return TextUtil.format(INSERT_TEMPLATE, params); } } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java index 1c54c3ed1..38d2dad01 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateEventMapStore.java @@ -2,8 +2,6 @@ package ru.spcex.clearing.imdg.base; import org.springframework.jdbc.core.JdbcTemplate; import ru.clearing.classes.objects.BusinessEvent; -import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; import java.util.*; @@ -13,7 +11,7 @@ public abstract class TemplateEventMapStore { protected final int validateSize = getFields().length; - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); public TemplateEventMapStore(JdbcTemplate jdbcTemplate) { super(jdbcTemplate); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateHistoryMapStore.java index ac5df0179..a9ec50ed1 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/base/TemplateHistoryMapStore.java @@ -3,8 +3,7 @@ package ru.spcex.clearing.imdg.base; import org.springframework.jdbc.core.JdbcTemplate; import ru.clearing.classes.objects.BusinessEvent; import ru.clearing.classes.objects.BusinessObject; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.util.ArrayList; import java.util.Arrays; @@ -16,7 +15,7 @@ import java.util.Map; public abstract class TemplateHistoryMapStore> extends BusinessEventMapStore { protected final int validateSize = getFields().length; - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); public TemplateHistoryMapStore(JdbcTemplate jdbcTemplate) { super(jdbcTemplate); @@ -45,7 +44,7 @@ public abstract class TemplateHistoryMapStore lst=new ArrayList<>(); lst.add(updateObject.getId()); - lst.add(TimeUtil.fromInstant(updateObject.getEventTime())); + lst.add(TimeUtil.toDateFromInstant(updateObject.getEventTime())); lst.add(updateObject.getUserId()); lst.addAll(Arrays.asList(objectToField(object))); //todo order? @@ -55,12 +54,12 @@ public abstract class TemplateHistoryMapStore extends Object protected final int validateSize = getFields().length; - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); public TemplateMapStore(JdbcTemplate jdbcTemplate) { super(jdbcTemplate); } -// @Override -// public String getTableName() { -// return "COMPANY_ROLE_SET"; -// } -// -// @Override -// public String[] getFields() { -// return new String[]{"id", "roleid", "companyid"}; -// } - -// //todo TradingDay флаг -// protected boolean useTradingDay() { -// return false; -// } - /** * * @return IMDGDistributedNames.* diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/AccountHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/AccountHistoryMapStore.java index b81c750ee..a40eb1851 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/AccountHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/AccountHistoryMapStore.java @@ -6,7 +6,7 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.AccountHistory; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateEventMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; @Component public class AccountHistoryMapStore extends TemplateEventMapStore { @@ -41,8 +41,8 @@ public class AccountHistoryMapStore extends TemplateEventMapStore map) { @@ -57,12 +56,12 @@ public class CompanyHistoryMapStore extends BusinessEventMapStore companyInfoToSQLArgs(@NonNull CompanyInfo companyInfo, CompanyHistory rootUpdate) { return new ArrayList<>(Arrays.asList( rootUpdate.getId(), - TimeUtil.fromInstant(rootUpdate.getEventTime()), + TimeUtil.toDateFromInstant(rootUpdate.getEventTime()), rootUpdate.getUserId(), companyInfo.getId(), // company_info_id diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RelationHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RelationHistoryMapStore.java index 222103160..f721fd1b1 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RelationHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/RelationHistoryMapStore.java @@ -6,7 +6,7 @@ import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.company.relation.RelationHistory; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateEventMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; @Component @@ -42,8 +42,8 @@ public class RelationHistoryMapStore extends TemplateEventMapStore { @@ -46,8 +41,8 @@ public class SecurityHistoryMapStore extends TemplateEventMapStore { @@ -41,15 +41,15 @@ public class UserConnectHistoryMapStore extends TemplateEventMapStore { @@ -41,8 +41,8 @@ public class UserHistoryMapStore extends TemplateEventMapStore { historyLog.getUserId(), object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getIdentifier() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java index d0431cbbb..2d69f9852 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountMapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.account.Account; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -52,8 +52,8 @@ public class AccountMapStore extends TemplateMapStore { public Object[] objectToField(Account object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getAccount(), object.getAccountType(), object.getRelationId(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java index 008a082f3..3d465867a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java @@ -7,8 +7,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.CompanyInfo; import ru.spcex.clearing.imdg.base.BusinessObjectMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.util.*; @@ -39,8 +38,8 @@ public class CompanyMapStore extends BusinessObjectMapStore { }; } - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); - protected final String insertCompanyInfoStatement = DbUtilsHelper.createUpdateOrInsert("COMPANY_INFO", getFieldsForCompanyInfo(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); + protected final String insertCompanyInfoStatement = makeInsertSql("COMPANY_INFO", getFieldsForCompanyInfo(), "id"); @Override public Collection load(Collection keys) { @@ -70,8 +69,8 @@ public class CompanyMapStore extends BusinessObjectMapStore { Object[] args = new Object[]{ company.getId(), - TimeUtil.fromInstant(company.getCreated()), - TimeUtil.fromInstant(company.getUpdated()), + TimeUtil.toDateFromInstant(company.getCreated()), + TimeUtil.toDateFromInstant(company.getUpdated()), company.getTradingCode(), company.getClearingCode(), company.getRegistrationCode(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ErrorTextMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ErrorTextMapStore.java index 96c411492..875f7df7a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ErrorTextMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ErrorTextMapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.messages.ErrorText; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -51,12 +51,12 @@ public class ErrorTextMapStore extends TemplateMapStore { public Object[] objectToField(ErrorText object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getErrorCode(), object.getText(), object.getUserId(), - TimeUtil.fromInstant(object.getClearingDate()) + TimeUtil.toDateFromInstant(object.getClearingDate()) }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java index 8f0ffa210..2a58c9f55 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/RelationMapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -53,8 +53,8 @@ public class RelationMapStore extends TemplateMapStore { public Object[] objectToField(Relation object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getConsumerId(), object.getSupplierId(), object.getServiceStatus(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SchedulerMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SchedulerMapStore.java index b6a1707c5..d8d2971b6 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SchedulerMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SchedulerMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.scheduler.Scheduler; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SchedulerMapStore extends TemplateMapStore { @@ -55,11 +53,11 @@ public class SchedulerMapStore extends TemplateMapStore { public Object[] objectToField(Scheduler object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getTask(), - TimeUtil.fromInstant(object.getTaskTime()), - TimeUtil.fromInstant(object.getClearingDate()), + TimeUtil.toDateFromInstant(object.getTaskTime()), + TimeUtil.toDateFromInstant(object.getClearingDate()), object.getMarket(), object.getTaskStatus(), object.getSecurityId() diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java index 622cb206f..27f012d96 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/SecurityMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SecurityMapStore extends TemplateMapStore { @@ -57,8 +55,8 @@ public class SecurityMapStore extends TemplateMapStore { public Object[] objectToField(Security object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getInstrumentType(), object.getIssuerId(), object.getShortName(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java index d5704e253..4213448be 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java @@ -5,13 +5,11 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.statement.Statement; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class StatementMapStore extends TemplateMapStore { @@ -69,15 +67,15 @@ public class StatementMapStore extends TemplateMapStore { object.getId(), object.getAddresseeId(), object.getSenderId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), - TimeUtil.fromInstant(object.getClearingDate()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getClearingDate()), object.getStatementTypeId(), object.getComment(), object.getAccountId(), object.getAccount(), object.getInOutDirection(), - TimeUtil.fromInstant(object.getSettlementDate()), + TimeUtil.toDateFromInstant(object.getSettlementDate()), object.getAmount(), object.getCashMovementCurrencyCode(), object.getStatus(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TaskRunnerMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TaskRunnerMapStore.java index 622d59898..e9d0452e8 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TaskRunnerMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TaskRunnerMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.scheduler.TaskRunner; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class TaskRunnerMapStore extends TemplateMapStore { @@ -51,8 +49,8 @@ public class TaskRunnerMapStore extends TemplateMapStore { public Object[] objectToField(TaskRunner object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getSenderId(), object.getTask() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TimetableMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TimetableMapStore.java index 02fc1c213..b8e0a1693 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TimetableMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TimetableMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.scheduler.Timetable; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class TimetableMapStore extends TemplateMapStore { @@ -52,10 +50,10 @@ public class TimetableMapStore extends TemplateMapStore { public Object[] objectToField(Timetable object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getTask(), - TimeUtil.fromInstant(object.getTaskTime()), + TimeUtil.toDateFromInstant(object.getTaskTime()), object.getTaskStatus() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TradingCalendarMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TradingCalendarMapStore.java index 5d49efc74..0eaf4d2f7 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TradingCalendarMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/TradingCalendarMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.scheduler.TradingCalendar; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class TradingCalendarMapStore extends TemplateMapStore { @@ -52,9 +50,9 @@ public class TradingCalendarMapStore extends TemplateMapStore { public Object[] objectToField(TradingCalendar object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), - TimeUtil.fromInstant(object.getClearingDate()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getClearingDate()), object.getCompanyId(), object.getTradingStatus() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserConnectMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserConnectMapStore.java index c8e37bda6..2f97b89f9 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserConnectMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserConnectMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.user.UserConnect; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class UserConnectMapStore extends TemplateMapStore { @@ -58,15 +56,15 @@ public class UserConnectMapStore extends TemplateMapStore { public Object[] objectToField(UserConnect object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getUserId(), - TimeUtil.fromInstant(object.getConnectionTime()), - TimeUtil.fromInstant(object.getDisconnectionTime()), + TimeUtil.toDateFromInstant(object.getConnectionTime()), + TimeUtil.toDateFromInstant(object.getDisconnectionTime()), object.getServerIP(), object.getClientIP(), object.getConnectionState(), - TimeUtil.fromInstant(object.getClearingDate()), + TimeUtil.toDateFromInstant(object.getClearingDate()), object.getErrorCode(), object.getErrorText() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserMapStore.java index 18c5c9f00..7a27be31c 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/UserMapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.user.User; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -48,8 +48,8 @@ public class UserMapStore extends TemplateMapStore { public Object[] objectToField(User object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getCreated()), - TimeUtil.fromInstant(object.getUpdated()), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getIdentifier() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanySymbolsMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanySymbolsMapStore.java index 5952a177b..c8e3735e1 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanySymbolsMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanySymbolsMapStore.java @@ -4,7 +4,6 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.spcex.clearing.imdg.base.ObjectBaseMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; import java.util.*; @@ -27,7 +26,7 @@ public class CompanySymbolsMapStore extends ObjectBaseMapStore { }; } - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); @Override public Collection load(Collection keys) { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContactMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContactMapStore.java index f03a3c79f..5bf6ca2c0 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContactMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContactMapStore.java @@ -4,7 +4,6 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.profile.Contact; import ru.spcex.clearing.imdg.base.ObjectBaseMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; import java.util.*; @@ -27,7 +26,7 @@ public class ContactMapStore extends ObjectBaseMapStore { }; } - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); @Override public Collection load(Collection keys) { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/InDocumentJournalMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/InDocumentJournalMapStore.java index 92318d548..00b977451 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/InDocumentJournalMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/InDocumentJournalMapStore.java @@ -5,13 +5,11 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.journal.InDocumentJournal; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class InDocumentJournalMapStore extends TemplateMapStore { @@ -61,19 +59,19 @@ public class InDocumentJournalMapStore extends TemplateMapStore { Object[] args = new Object[]{ partnerList.getId(), partnerList.getRate(), - TimeUtil.fromInstant(partnerList.getStartDate()), - TimeUtil.fromInstant(partnerList.getEndDate()), + TimeUtil.toDateFromInstant(partnerList.getStartDate()), + TimeUtil.toDateFromInstant(partnerList.getEndDate()), partnerList.getDocument(), partnerList.getWorkflowStatus() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java index cd635835b..3a4ae51bd 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java @@ -3,9 +3,9 @@ package ru.spcex.clearing.imdg.object; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.misc.MoneyMarketSecurity; -import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; @@ -60,8 +60,8 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore { @@ -60,18 +58,18 @@ public class OutDocumentJournalMapStore extends TemplateMapStore }; } - protected final String insertStatement = DbUtilsHelper.createUpdateOrInsert(getTableName(), getFields(), "id"); + protected final String insertStatement = makeInsertSql(getTableName(), getFields(), "id"); @Override public Collection load(Collection keys) { @@ -65,15 +64,15 @@ public class ProfileDocumentMapStore extends ObjectBaseMapStore profileDocument.getId(), profileDocument.getCompanyId(), profileDocument.getDocumentType(), - TimeUtil.fromInstant(profileDocument.getIssueDate()), + TimeUtil.toDateFromInstant(profileDocument.getIssueDate()), profileDocument.getIssuePlace(), profileDocument.getIssuer(), profileDocument.getIssuerCode(), profileDocument.getName(), profileDocument.getNumber(), profileDocument.getPlace(), - TimeUtil.fromInstant(profileDocument.getValidFromDate()), - TimeUtil.fromInstant(profileDocument.getValidToDate()), + TimeUtil.toDateFromInstant(profileDocument.getValidFromDate()), + TimeUtil.toDateFromInstant(profileDocument.getValidToDate()), profileDocument.getLink() }; batchArgs.add(args); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf01MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf01MapStore.java index d58c9efca..027b96675 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf01MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf01MapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf01; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf01MapStore extends TemplateMapStore { @@ -75,7 +73,7 @@ public class SDf01MapStore extends TemplateMapStore { object.getSumunblock(), object.getFile_type(), object.getFileName(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf02MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf02MapStore.java index 1a53b17fe..033945344 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf02MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf02MapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf02; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf02MapStore extends TemplateMapStore { @@ -76,7 +74,7 @@ public class SDf02MapStore extends TemplateMapStore { object.getSumunblock(), object.getFile_type(), object.getResult(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), object.getInSDf01Id() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java index 6bac1c8ee..f549d9bff 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf03; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -142,7 +142,7 @@ public class SDf03MapStore extends TemplateMapStore { object.getServdate(), object.getDoc_result(), object.getImp_result(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf05MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf05MapStore.java index 01bb8340a..88c86a7cd 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf05MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf05MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf05; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; @@ -53,10 +53,10 @@ public class SDf05MapStore extends TemplateMapStore { Object[] args = new Object[]{ object.getId(), object.getTp(), - TimeUtil.from(object.getDt()), - TimeUtil.from(object.getTm()), + TimeUtil.toDateFromLocalDate(object.getDt()), + TimeUtil.toDateFromLocalTime(object.getTm()), object.getPr(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java index 5943090fe..6681bef28 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java @@ -5,13 +5,11 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf08; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf08MapStore extends TemplateMapStore { @@ -53,8 +51,8 @@ public class SDf08MapStore extends TemplateMapStore { Object[] args = new Object[]{ object.getId(), object.getNumber(), - TimeUtil.fromInstant(object.getDatetime()), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getDatetime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java index 8400341f7..d6cfa16df 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf10; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; @@ -62,7 +62,7 @@ public class SDf10MapStore extends TemplateMapStore { object.getNumber(), object.getINN(), object.getResult(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), object.getIn_s_df09_id() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java index c9772ae51..7667a2acd 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf11; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -142,7 +142,7 @@ public class SDf11MapStore extends TemplateMapStore { object.getSend_type(), object.getServdate(), object.getDoc_result(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java index 9ba204d21..46c8663b4 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java @@ -6,13 +6,11 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf12; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf12MapStore extends TemplateMapStore { @@ -59,7 +57,7 @@ public class SDf12MapStore extends TemplateMapStore { object.getDeal(), object.getStatus(), object.getFileName(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java index 6ac85f0df..42925b4aa 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf13; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; @@ -140,7 +140,7 @@ public class SDf13MapStore extends TemplateMapStore { object.getSend_type(), object.getServdate(), object.getDoc_result(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java index 8d3b58187..edd7bf445 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java @@ -5,13 +5,11 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf16; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf16MapStore extends TemplateMapStore { @@ -61,7 +59,7 @@ public class SDf16MapStore extends TemplateMapStore { public Object[] objectToField(SDf16 object) { Object[] args = new Object[]{ object.getId(), - TimeUtil.fromInstant(object.getDate()), + TimeUtil.toDateFromInstant(object.getDate()), object.getAccount(), object.getSum(), object.getMarket(), @@ -72,7 +70,7 @@ public class SDf16MapStore extends TemplateMapStore { object.getNumber(), object.getResultCode(), object.getFileName(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; return args; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java index 66b7a6518..369505d65 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java @@ -5,7 +5,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.sdf.SDf17; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; @@ -67,7 +67,7 @@ public class SDf17MapStore extends TemplateMapStore { object.getSPEC(), object.getNumber(), object.getResult(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), object.getIn_s_df16_id() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java index 406f66499..a7ab87623 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java @@ -2,16 +2,14 @@ package ru.spcex.clearing.imdg.object; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; -import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.clearing.classes.statics.data.sdf.SDf18; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SDf18MapStore extends TemplateMapStore { @@ -59,7 +57,7 @@ public class SDf18MapStore extends TemplateMapStore { object.getDeal(), object.getStatus(), object.getResult(), - TimeUtil.fromInstant(object.getGenerationTime()), + TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), object.getInSDf12Id() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SchedulerAllTodayMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SchedulerAllTodayMapStore.java index e7ea70879..6071dbd9a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SchedulerAllTodayMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SchedulerAllTodayMapStore.java @@ -5,12 +5,10 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.scheduler.SchedulerAllToday; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; +import ru.spcex.platform.utils.time.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class SchedulerAllTodayMapStore extends TemplateMapStore { @@ -56,8 +54,8 @@ public class SchedulerAllTodayMapStore extends TemplateMapStore { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserSettingsMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserSettingsMapStore.java index 606ed4b8e..81192e239 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserSettingsMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserSettingsMapStore.java @@ -5,12 +5,9 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.user.UserSettings; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.TimeUtil; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class UserSettingsMapStore extends TemplateMapStore { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/BigDecimalUtil.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/BigDecimalUtil.java deleted file mode 100644 index 98164f6e1..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/BigDecimalUtil.java +++ /dev/null @@ -1,111 +0,0 @@ -package ru.spcex.clearing.imdg.utils; - -import java.math.BigDecimal; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; - -public class BigDecimalUtil { - - private static final DecimalFormat defaultDecimalFormat; - - static { - DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(); - decimalFormatSymbols.setDecimalSeparator('.'); - decimalFormatSymbols.setGroupingSeparator(' '); - defaultDecimalFormat = new DecimalFormat("#,###.00", decimalFormatSymbols); - } - - public static BigDecimal sum(BigDecimal num1, BigDecimal num2) { - BigDecimal sum = BigDecimal.ZERO; - if (num1 != null) - sum = sum.add(num1); - if (num2 != null) - sum = sum.add(num2); - return sum; - } - - /** - * @param value - * @param dbSize общее кол-во позиций - * @param dbScale кол-во позиций под дробную часть - * @return true, если размер целой части не превышает значения, указанные в параметрах - */ - public static boolean checkSize(BigDecimal value, int dbSize, int dbScale) { - if (value == null) - return true; - return value.precision() - value.scale() <= dbSize - dbScale; - } - - public static BigDecimal genMaxValueForInsert(int dbSize, int dbScale) { - int maxIntSizeForInsert = dbSize - dbScale; - long newLongValue = new BigDecimal(Math.pow(10, maxIntSizeForInsert)).longValue(); - return new BigDecimal(newLongValue - 1); - } - - public static BigDecimal chooseHighest(BigDecimal oldPrice, BigDecimal newPrice) { - if (newPrice != null && (oldPrice == null || isLess(oldPrice, newPrice))) { - return newPrice; - } else { - return oldPrice; - } - } - - public static BigDecimal chooseSmallest(BigDecimal oldPrice, BigDecimal newPrice) { - if (newPrice != null && (oldPrice == null || isLess(newPrice, oldPrice))) { - return newPrice; - } else { - return oldPrice; - } - } - - /** - * Если bestPrice меньше price, то true, иначе false - * - * @param bestPrice - * @param price - * @return - */ - public static boolean isLess(BigDecimal bestPrice, BigDecimal price) { - return price != null && bestPrice != null && bestPrice.compareTo(price) < 0; - } - - public static Integer nullSafeAdd(Integer a, Integer b) { - if (a == null) { - return b; - } else if (b == null) { - return a; - } else { - return a + b; - } - } - - public static BigDecimal nullSafeAdd(BigDecimal a, BigDecimal b) { - if (a == null) { - return b; - } else if (b == null) { - return a; - } else { - return a.add(b); - } - } - - public static Long nullSafeAdd(Long a, Long b) { - if (a == null) { - return b; - } else if (b == null) { - return a; - } else { - return a + b; - } - } - - public static String defaultFormatValue(BigDecimal val) { - DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(); - decimalFormatSymbols.setDecimalSeparator('.'); - decimalFormatSymbols.setGroupingSeparator(' '); - if (val == null) { - return ""; - } - return defaultDecimalFormat.format(val); - } -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbDefaultConfig.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbDefaultConfig.java deleted file mode 100644 index 561ce1995..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbDefaultConfig.java +++ /dev/null @@ -1,10 +0,0 @@ -package ru.spcex.clearing.imdg.utils; - - -import javax.sql.DataSource; - -public class DbDefaultConfig { - public static DataSource getEmbeddedDatabase(String embeddedFilePath) { - throw new UnsupportedOperationException("Are PostgreSQL not supported embedded DB?");//todo PsotgreSQL для юнит тестов - } -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbUtilsHelper.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbUtilsHelper.java deleted file mode 100644 index a7b2af8ca..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/DbUtilsHelper.java +++ /dev/null @@ -1,51 +0,0 @@ -package ru.spcex.clearing.imdg.utils; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Arrays; -import java.util.Collections; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -//todo зарефакторить -public class DbUtilsHelper { - - private static String generateValuesBlock(int querySignCount) { - return StringUtils.rightPad("(?", querySignCount * 3 - 1, ", ?") + ")"; - } - - private static Pattern pGetColumns = Pattern.compile("(?m)(?i)INTO\\s+[0-9a-z\" _$]+\\s+\\(\\s*([0-9a-z_\\- ,\"\\n+]*?)\\s*\\)"); - - public static String fillValuesBlock(String insertStatement) { - - Matcher m = pGetColumns.matcher(insertStatement); - if (m.find()) { - String g = m.group(1); - String block = generateValuesBlock(g.split(",").length); - return insertStatement.replaceAll("%values_block%", block); - } else { - return insertStatement; - } - } - - public static String createInsert(String tableName, String[] fields) { - return "INSERT INTO " + tableName + - " (" + Arrays.stream(fields).map(f -> "\"" + f.toUpperCase() + "\"").collect(Collectors.joining(", ")) + ") values (" + - // Arrays.stream(fields).map(f -> "\"" + f.toUpperCase() + "\"").collect(Collectors.joining(", ", ":", "")); - String.join(", ", Collections.nCopies(fields.length, "?")) + - ")"; - } - - public static String createUpdateOrInsert(String tableName, String[] fields, String matchingKey) { - String updateOrInsert = "INSERT INTO " + tableName + - " (" + Arrays.stream(fields).map(f -> "" + f.toUpperCase() + "").collect(Collectors.joining(", ")) + ") values (" + - // Arrays.stream(fields).map(f -> "\"" + f.toUpperCase() + "\"").collect(Collectors.joining(", ", ":", "")); - String.join(", ", Collections.nCopies(fields.length, "?")) + - ") ON CONFLICT "; - updateOrInsert += "(" + matchingKey.toUpperCase()+")"; - updateOrInsert += " DO UPDATE SET " + Arrays.stream(fields).filter(f->!matchingKey.equalsIgnoreCase(f)).map(f -> "" + f.toUpperCase() + "=EXCLUDED." + f.toUpperCase() + "").collect(Collectors.joining(", ")); - - return updateOrInsert; - } -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/TimeUtil.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/TimeUtil.java deleted file mode 100644 index 0bf9cd1fd..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/TimeUtil.java +++ /dev/null @@ -1,294 +0,0 @@ -package ru.spcex.clearing.imdg.utils; - -import org.apache.commons.lang3.exception.ExceptionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.sql.Time; -import java.time.*; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; - -/** - * Для работы с java.util.Date - * И конвертация в новый формат - * todo добавить юниттест. - * todo зарефакторить - */ -public class TimeUtil { - private static final Logger log = LoggerFactory.getLogger(TimeUtil.class); - public static final ZoneId zone = ZoneId.systemDefault(); - - /** - * Получить дату без времени (начало дня) - * - * @param date - * @return - */ - public static Date getDateOnStartOfDay(Date date) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - calendar.set(Calendar.MILLISECOND, 0); - return calendar.getTime(); - } - - /** - * Получить начало следующего дня - * - * @param date - * @return - */ - public static Date getDateNextDay(Date date) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - calendar.set(Calendar.MILLISECOND, 0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - return calendar.getTime(); - } - - public static LocalDateTime toDateTime(Date fromDate) { - if (fromDate == null) - return null; - if (fromDate instanceof java.sql.Timestamp) - return ((java.sql.Timestamp) fromDate).toLocalDateTime(); - if (fromDate instanceof java.sql.Date || fromDate instanceof java.sql.Time) - log.debug("Warning at converting date/time: for class {} may not contain date or time. unixtime={}", fromDate.getClass(), fromDate.getTime()); - return toDateTime0(fromDate); - } - - private static LocalDateTime toDateTime0(Date fromDate) { - try { - if (fromDate instanceof java.sql.Date) { - Instant instant = Instant.now(); //can be LocalDateTime - ZoneId systemZone = ZoneId.systemDefault(); // my timezone - ZoneOffset currentOffsetForMyZone = systemZone.getRules().getOffset(instant); - return LocalDateTime.ofEpochSecond(fromDate.getTime() / 1000, 0, currentOffsetForMyZone); - } - return LocalDateTime.ofInstant(fromDate.toInstant(), ZoneId.systemDefault()); - } catch (UnsupportedOperationException ue) { - log.warn("Error(warn) convert type of date/time: {}({}) class: {}. Retry", fromDate, fromDate.getTime(), fromDate.getClass()); - try { - Instant instant = Instant.now(); //can be LocalDateTime - ZoneId systemZone = ZoneId.systemDefault(); // my timezone - ZoneOffset currentOffsetForMyZone = systemZone.getRules().getOffset(instant); - return LocalDateTime.ofEpochSecond(fromDate.getTime() / 1000, 0, currentOffsetForMyZone); - } catch (Exception e) { - log.error("Error convert type2 of date/time: {} class: {}\n{}", fromDate, fromDate.getClass(), ExceptionUtils.getStackTrace(ue)); - return null; - } - } -// Date out = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant()); - } - - public static LocalDate toDate(Date fromDate) { - if (fromDate == null) - return null; - if (fromDate instanceof java.sql.Date) - return ((java.sql.Date) fromDate).toLocalDate(); - if (fromDate instanceof java.sql.Time) - log.debug("Warning at converting date/time: for class {} may not contain date. unixtime={}", fromDate.getClass(), fromDate.getTime()); - return toDateTime0(fromDate).toLocalDate(); - } - - public static LocalTime toTime(Date fromDate) { - if (fromDate == null) - return null; - if (fromDate instanceof java.sql.Time) - return ((java.sql.Time) fromDate).toLocalTime(); - if (fromDate instanceof java.sql.Date) - log.debug("Warning at converting date/time: for class {} may not contain time. unixtime={}", fromDate.getClass(), fromDate.getTime()); - return toDateTime0(fromDate).toLocalTime(); - } - - /** - * Последовательный ряд дат дней между двумя датами. - * - * @param from с даты, включительно - * @param to по дату, включительно. - * @return - */ - public static Date[] makeDateRange(Date from, Date to) { - ArrayList datesL = new ArrayList(); - LocalDate fromDate = toDate(from); - LocalDate toDate = toDate(to); - datesL.add(from); - for (LocalDate dateI = fromDate.plusDays(1); dateI.isBefore(toDate); dateI = dateI.plusDays(1)) { - Date date = Date.from(dateI.atStartOfDay(ZoneId.systemDefault()).toInstant()); - datesL.add(date); - } - if (!fromDate.equals(toDate)) - datesL.add(to); - Date[] dates = datesL.toArray(new Date[0]); - return dates; - } - - public static Date fromInstant(Instant instant) { - if (instant == null) return null; - return Date.from(instant); - } - - public static Date from(LocalDateTime localDateTime) { - return localDateTime != null ? Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()) : null; - } - - public static Time from(LocalTime localTime) { - return localTime != null ? Time.valueOf(localTime) : null; - } - - public static Date from(LocalDate localDate) { - return localDate != null ? Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()) : null; - } - - /** - * иногда встречается java.sql.Date - * у них toInstant() не поддерживается - */ - public static Instant fromDate(Date dateToConvert) { - try { - if (dateToConvert == null) return null; - return dateToConvert.toInstant(); - } catch (UnsupportedOperationException e) { -// log.warn("java.sql.Date"); - if (dateToConvert instanceof java.sql.Date) { - return ((java.sql.Date) dateToConvert).toLocalDate().atStartOfDay(ZoneId.systemDefault()).toInstant(); - } else { - throw e; - } - } - } - - public static Instant fromDate(LocalDate dateToConvert) { - return dateToConvert == null ? null : dateToConvert.atStartOfDay(ZoneId.systemDefault()).toInstant(); - } - - public static LocalDateTime toDateTime(Instant instant) { - if (instant == null) { - return null; - } else { - return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); - } - } - - public static Date toUtilDate(java.sql.Date sqlDate) { - return sqlDate != null ? new Date(sqlDate.getTime()) : null; - } - - - public static boolean isCurrentTradingDay(Date date) { - Date tradingDay = getDateOnStartOfDay(date); - Date currentDay = getDateOnStartOfDay(new Date()); - return currentDay.equals(tradingDay); - } - - /** - * Начало дня по текущей временной зоне - */ - public static Instant startOfDayNow() { - ZonedDateTime zdtStart = ZonedDateTime.now(); - zdtStart = zdtStart.truncatedTo(ChronoUnit.DAYS); - return zdtStart.toInstant(); - } - - /** - * Начало дня по текущей временной зоне. - * - * @param from - * @return - */ - public static Instant startOfDay(Instant from) { - ZonedDateTime zdtStart = from.atZone(ZoneId.systemDefault()); - zdtStart = zdtStart.truncatedTo(ChronoUnit.DAYS); - return zdtStart.toInstant(); - } - - public static ZonedDateTime toZoned(Instant instant) { - if (instant == null) return null; - return instant.atZone(zone); - } - - public static LocalDate toDate(Instant instant) { - ZonedDateTime zoned = toZoned(instant); - if (zoned == null) return null; - return zoned.toLocalDate(); - } - - /** - * Сегодня (от начала дня) или позднее - * - * @param instant дата, может ыть null - * @return - */ - public static boolean afterToday(Instant instant) { - LocalDate localDate = toDate(instant); - return afterToday(localDate); - } - - /** - * Сегодня (от начала дня) или позднее - * - * @param date дата, может ыть null - * @return - */ - public static boolean afterToday(Date date) { - LocalDate localDate = toDate(date); - return afterToday(localDate); - } - - /** - * Сегодня (от начала дня) или позднее - * - * @param localDate дата, может ыть null - * @return - */ - public static boolean afterToday(LocalDate localDate) { - if (localDate == null) return false; - return !localDate.isBefore(LocalDate.now()); - } - - public static boolean isToday(Instant instant) { - LocalDate localDate = toDate(instant); - return isToday(localDate); - } - - public static boolean isToday(Date date) { - LocalDate localDate = toDate(date); - return isToday(localDate); - } - - public static boolean isToday(LocalDate localDate) { - if (localDate == null) return false; - return localDate.equals(LocalDate.now()); - } - - /** - * Если instant без даты (1970 год), то берёт из него время и добавляет текущую дату. - * - * @param time может быть null - * @return time, или если не указана дата, то текущая дата + время из time - */ - public static Instant addDateTodayToTimeIfNeeded(Instant time) { - if (time == null) - return null; - LocalDateTime ldt = TimeUtil.toDateTime(time); - if (ldt.getYear() == 1970 && ldt.getMonth() == Month.JANUARY && ldt.getDayOfMonth() == 1) { - // time without date - ldt = LocalDateTime.of(LocalDate.now(), ldt.toLocalTime()); - return ldt.atZone(ZoneId.systemDefault()).toInstant(); - } - return time; - } - - public static String formatInstantToString(DateTimeFormatter formatter, Instant date) { - if (formatter == null || date == null) return ""; - return formatter.format(date); - } -} diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbUtilsHelperTest.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbUtilsHelperTest.java deleted file mode 100644 index 94692143e..000000000 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/utils/DbUtilsHelperTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package ru.spcex.clearing.imdg.utils; - -import static org.testng.Assert.*; - -public class DbUtilsHelperTest { - - @org.testng.annotations.Test - public void testCreateUpdateOrInsert() { - String sql = DbUtilsHelper.createUpdateOrInsert("ENERGY", - new String[]{"id", "power", "circle", "of", "fantasy", "prime"}, "id"); - assertEquals(sql, - "INSERT INTO ENERGY (ID, POWER, CIRCLE, OF, FANTASY, PRIME) values (?, ?, ?, ?, ?, ?) ON CONFLICT (ID) DO UPDATE SET POWER=EXCLUDED.POWER, CIRCLE=EXCLUDED.CIRCLE, OF=EXCLUDED.OF, FANTASY=EXCLUDED.FANTASY, PRIME=EXCLUDED.PRIME" - ); - } -} \ No newline at end of file diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java new file mode 100644 index 000000000..e1041a0c9 --- /dev/null +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java @@ -0,0 +1,29 @@ +package ru.spcex.platform.utils.text; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class TextUtil { + public static String format(String template, Map parameters) { + StringBuilder newTemplate = new StringBuilder(template); + List valueList = new ArrayList<>(); + + Matcher matcher = Pattern.compile("[$][{](\\w+)}").matcher(template); + + while (matcher.find()) { + String key = matcher.group(1); + + String paramName = "${" + key + "}"; + int index = newTemplate.indexOf(paramName); + if (index != -1) { + newTemplate.replace(index, index + paramName.length(), "%s"); + valueList.add(parameters.get(key)); + } + } + + return String.format(newTemplate.toString(), valueList.toArray()); + } +} diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java index 3b9d7b8b7..d3fcf9119 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/time/TimeUtil.java @@ -1,9 +1,9 @@ package ru.spcex.platform.utils.time; -import java.time.Instant; -import java.time.LocalDate; -import java.time.ZoneId; +import java.sql.Time; +import java.time.*; import java.time.format.DateTimeFormatter; +import java.util.Date; import java.util.Objects; public class TimeUtil { @@ -22,6 +22,23 @@ public class TimeUtil { return formatter.format(date.atZone(zone)); } + public static Date toDateFromInstant(Instant instant) { + if (instant == null) return null; + return Date.from(instant); + } + + public static Date toDateFromLocalDateTime(LocalDateTime localDateTime) { + return localDateTime != null ? Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()) : null; + } + + public static Time toDateFromLocalTime(LocalTime localTime) { + return localTime != null ? Time.valueOf(localTime) : null; + } + + public static Date toDateFromLocalDate(LocalDate localDate) { + return localDate != null ? Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()) : null; + } + public static Instant today() { return localDateToInstant(LocalDate.now()); } diff --git a/pom.xml b/pom.xml index c0f8a8fe6..a70f4b92f 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,7 @@ com.mchange c3p0 - 0.9.5.2 + 0.9.5.5 org.apache.kafka