swt-importer SDF21 transactionNumber

This commit is contained in:
ialbert 2023-08-11 12:01:24 +03:00
parent c2a1f4a20a
commit c01cc429a0
3 changed files with 20 additions and 1 deletions

View file

@ -17,6 +17,7 @@ import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.classes.statics.data.sdf.*;
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
import ru.clearing.classes.statics.data.security.Security;
import ru.clearing.classes.statics.data.statement.Statement;
import ru.clearing.platform.dictionary.SectionDictionary;
import ru.spcex.clearing.error.ClearingError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -51,6 +52,7 @@ public class ValidationConfig {
Imdg<TradingClearingRegistry> imdgTradingClearingRegistry;
Imdg<Session> imdgSession;
Imdg<SectionDictionary> imdgSectionDictionary;
Imdg<Statement> imdgStatement;
ImdgProvider imdgProvider;
public ValidationConfig(ImdgProvider imdgProvider) {
@ -67,6 +69,7 @@ public class ValidationConfig {
this.imdgMoneyMarketSecurity = imdgProvider.getImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class);
this.fixedIncomeSecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_FixedIncomeSecurity, FixedIncomeSecurity.class);
this.equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
this.imdgStatement = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
this.imdgProvider = imdgProvider;
}

View file

@ -41,7 +41,7 @@ public abstract class AbstractTable<T extends SpcexObjectBase> {
map.insert(obj);
}
private void bootMap() {
protected void bootMap() {
map = (ImdgHazelcast<T>) hazelcastService.getImdg(nameOfMap, clazz);
}
}

View file

@ -1,5 +1,7 @@
package ru.spcex.clearing.swt.importer.logic.data.tables;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.classes.statics.data.sdf.SDf21;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.swt.importer.logic.data.enums.ETable;
@ -8,6 +10,7 @@ import ru.spcex.clearing.swt.importer.readers.SWTRecord;
import java.time.Instant;
public class SDf21Table extends AbstractTable<SDf21> {
private final Logger log = LoggerFactory.getLogger(getClass());
private static final String PREFIX = ETable.S_DF_21.name();
private static final Class<SDf21> CLAZZ = SDf21.class;
@ -36,7 +39,20 @@ public class SDf21Table extends AbstractTable<SDf21> {
result.setFileName(filename);
result.setGenerationTime(Instant.now());
result.setGenerationId(fileId);
result.setTransactionNumber(record.getValFor23Tag());
return result;
}
@Override
public void injectEntity(SDf21 obj) {
if (map == null) {
bootMap();
}
SDf21 firstObjectBySQL = map.getFirstObjectBySQL("transactionNumber = '%s'".formatted(obj.getTransactionNumber()));
if (firstObjectBySQL != null) {
log.warn("Skip insert by {}, sdf21.transactionNumber: {}", PREFIX, obj.getTransactionNumber());
} else {
map.insert(obj);
}
}
}