MoneyMarketSecurity fix
This commit is contained in:
parent
8ee414ab1b
commit
0e8ec87211
2 changed files with 76 additions and 36 deletions
|
|
@ -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;
|
|||
* <p>
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<MoneyMarketSecurity> {
|
||||
|
|
@ -18,6 +21,9 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
|
||||
getFieldsSecurity(), "id");
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "MONEY_MARKET_SECURITY";
|
||||
|
|
@ -35,12 +41,29 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "INSTRUMENT_TYPE", "FULL_NAME", "SECURITY_SYMBOL"};
|
||||
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY"};
|
||||
}
|
||||
|
||||
public String[] getFieldsSecurity() {
|
||||
return new String[]{"ID", "CREATED_AT", "UPDATED_AT", "INSTRUMENT_TYPE", "ISSUER_ID", "SHORT_NAME", "FULL_NAME", "SHORT_NAME_ENG", "FULL_NAME_ENG", "SECURITY_SYMBOL", "WORKFLOW_STATUS"};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MoneyMarketSecurity objectReader(ResultSet resultSet) throws SQLException {
|
||||
MoneyMarketSecurity object = new MoneyMarketSecurity();
|
||||
|
||||
// object.setId(resultSet.getObject("id", Long.class));
|
||||
// object.setCreated(getInstantFromTimestamp(resultSet, "created_at"));
|
||||
// object.setUpdated(getInstantFromTimestamp(resultSet, "updated_at"));
|
||||
// object.setInstrumentType(resultSet.getObject("instrument_type", String.class));
|
||||
// object.setIssuerId(resultSet.getObject("issuer_id", Long.class));
|
||||
// object.setShortName(resultSet.getObject("short_name", String.class));
|
||||
// object.setFullName(resultSet.getObject("full_name", String.class));
|
||||
// object.setShortNameEng(resultSet.getObject("short_name_eng", String.class));
|
||||
// object.setFullNameEng(resultSet.getObject("full_name_eng", String.class));
|
||||
// object.setSecuritySymbol(resultSet.getObject("security_symbol", String.class));
|
||||
// object.setWorkflowStatus(resultSet.getObject("workflow_status", String.class));
|
||||
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
|
||||
object.setDescription(resultSet.getObject("DESCRIPTION", String.class));
|
||||
|
|
@ -48,12 +71,25 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
object.setEndDate(getLocalDateFromSqlDate(resultSet, "END_DATE"));
|
||||
object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class));
|
||||
object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", Long.class));
|
||||
object.setInstrumentType(resultSet.getObject("INSTRUMENT_TYPE", String.class));
|
||||
object.setFullName(resultSet.getObject("FULL_NAME", String.class));
|
||||
object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class));
|
||||
fillBySecurity(object, object.getSecurityId());
|
||||
return object;
|
||||
}
|
||||
|
||||
private void fillBySecurity(MoneyMarketSecurity object, Long securityId) {
|
||||
List<MoneyMarketSecurity> 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<MoneyMarketSec
|
|||
TimeUtil.toDateFromLocalDate(moneyMarketSecurity.getEndDate()),
|
||||
moneyMarketSecurity.getNominalValue(),
|
||||
moneyMarketSecurity.getNominalCurrency(),
|
||||
moneyMarketSecurity.getInstrumentType(),
|
||||
moneyMarketSecurity.getFullName(),
|
||||
moneyMarketSecurity.getSecuritySymbol()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
protected Object[] securityField(MoneyMarketSecurity object) {
|
||||
Object[] args = new Object[]{
|
||||
object.getSecurityId(),
|
||||
TimeUtil.toDateFromInstant(object.getCreated()),
|
||||
TimeUtil.toDateFromInstant(object.getUpdated()),
|
||||
object.getInstrumentType(),
|
||||
object.getIssuerId(),
|
||||
object.getShortName(),
|
||||
object.getFullName(),
|
||||
object.getShortNameEng(),
|
||||
object.getFullNameEng(),
|
||||
object.getSecuritySymbol(),
|
||||
object.getWorkflowStatus()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void store(Map<Long, MoneyMarketSecurity> map) {
|
||||
List<Object[]> moneyMarketArgs = new ArrayList<>();
|
||||
List<Object[]> securityArgs = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<Long, MoneyMarketSecurity> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue