From 0e8ec8721154fd523ff55d698ff075efc5389732 Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 18 Oct 2022 19:26:12 +0300 Subject: [PATCH] MoneyMarketSecurity fix --- .../data/misc/MoneyMarketSecurity.java | 31 +------ .../object/MoneyMarketSecurityMapStore.java | 81 +++++++++++++++++-- 2 files changed, 76 insertions(+), 36 deletions(-) diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java index bae2e34bf..4327af478 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java @@ -1,6 +1,6 @@ package ru.clearing.classes.statics.data.misc; -import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.clearing.classes.statics.data.security.Security; import java.math.BigDecimal; import java.time.LocalDate; @@ -10,16 +10,13 @@ import java.time.LocalDate; *

* DB table: MONEY_MARKET_SECURITY **/ -public class MoneyMarketSecurity extends SpcexObjectBase { +public class MoneyMarketSecurity extends Security { private Long securityId;// (linked to security) private String description; private LocalDate startDate; private LocalDate endDate; private BigDecimal nominalValue; private Long nominalCurrency; // (linked to currencyCode) - private String instrumentType; // (linked to instrumentType) - private String fullName; - private String securitySymbol; public Long getSecurityId() { return securityId; @@ -68,28 +65,4 @@ public class MoneyMarketSecurity extends SpcexObjectBase { public void setNominalCurrency(Long nominalCurrency) { this.nominalCurrency = nominalCurrency; } - - public String getInstrumentType() { - return instrumentType; - } - - public void setInstrumentType(String instrumentType) { - this.instrumentType = instrumentType; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } } 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 03d526135..48c86d863 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 @@ -10,6 +10,9 @@ import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; @Component public class MoneyMarketSecurityMapStore extends TemplateMapStore { @@ -18,6 +21,9 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore resouts = jdbcTemplate.query( + "SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId}, + (rs, rowNum) -> { + object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class)); + object.setFullName(rs.getObject("FULL_NAME", String.class)); + object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class)); + return object; + } + ); + if (resouts.size() != 1) { + log.warn("Result size={} not expected for table MONEY_MARKET_SECURITY where id={}", resouts.size(), securityId); + } + } + @Override protected Object[] objectToField(MoneyMarketSecurity moneyMarketSecurity) { Object[] args = new Object[]{ @@ -64,11 +100,42 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore map) { + List moneyMarketArgs = new ArrayList<>(); + List securityArgs = new ArrayList<>(); + + for (Map.Entry entry : map.entrySet()) { + MoneyMarketSecurity obj = entry.getValue(); + Object[] args = objectToField(obj); + if (args.length != validateSize) { + throw new IllegalArgumentException("objectToField return " + args.length + " arguments, but expected " + validateSize); + } + moneyMarketArgs.add(args); + securityArgs.add(securityField(obj)); + } + batchInsertUpdate(insertStatement, moneyMarketArgs); + batchInsertUpdate(insertToSecurityStatement, securityArgs); + } }