notification sending on duplicate transaction number added in dbf-importer http://jira.mfd.msk:8088/browse/CLS-724
This commit is contained in:
parent
cd341bf166
commit
ed69bd7ec2
4 changed files with 40 additions and 34 deletions
|
|
@ -1,13 +1,12 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
|
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
|
||||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
public abstract class AbstractTable<T extends SpcexObjectBase> {
|
public abstract class AbstractTable<T extends SpcexObjectBase> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final String prefix;
|
private final String prefix;
|
||||||
|
|
@ -42,14 +41,13 @@ public abstract class AbstractTable<T extends SpcexObjectBase> {
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
bootMap();
|
bootMap();
|
||||||
}
|
}
|
||||||
if (checkOnExisting(obj)) {
|
map.insert(obj);
|
||||||
map.insert(obj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean checkOnExisting(T obj){
|
public boolean checkOnExisting(T obj){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void bootMap() {
|
protected void bootMap() {
|
||||||
map = (ImdgHazelcast<T>) hazelcastService.getImdg(nameOfMap, clazz);
|
map = (ImdgHazelcast<T>) hazelcastService.getImdg(nameOfMap, clazz);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,14 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
package ru.spcex.clearing.dbf.importer.logic.data.tables;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf57;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
||||||
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
||||||
public class SDf57Table extends AbstractTable<SDf57> {
|
public class SDf57Table extends AbstractTable<SDf57> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -83,7 +82,7 @@ public class SDf57Table extends AbstractTable<SDf57> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean checkOnExisting(SDf57 obj) {
|
public boolean checkOnExisting(SDf57 obj) {
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
bootMap();
|
bootMap();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,11 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.stages;
|
package ru.spcex.clearing.dbf.importer.logic.stages;
|
||||||
|
|
||||||
|
import static ru.spcex.clearing.platform.messaging.domain.Consts.PAIR_SDF;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
|
@ -19,13 +25,6 @@ import ru.spcex.platform.enumeration.ObjectType;
|
||||||
import ru.spcex.platform.enumeration.Priority;
|
import ru.spcex.platform.enumeration.Priority;
|
||||||
import ru.spcex.platform.enumeration.SdfTable;
|
import ru.spcex.platform.enumeration.SdfTable;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.PAIR_SDF;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DbfImportKafkaMessenger implements InitializingBean {
|
public class DbfImportKafkaMessenger implements InitializingBean {
|
||||||
final Logger log = LoggerFactory.getLogger(getClass());
|
final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -82,7 +81,7 @@ public class DbfImportKafkaMessenger implements InitializingBean {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendUserNotification(ObjectType objectType, String comment, Priority priority) {
|
public void sendUserNotification(ObjectType objectType, String comment, Priority priority) {
|
||||||
final String destination = Consts.NOTIFICATION_NEW;
|
final String destination = Consts.NOTIFICATION_NEW;
|
||||||
NotificationNewRequest request = new NotificationNewRequest();
|
NotificationNewRequest request = new NotificationNewRequest();
|
||||||
//request.setObjectId();
|
//request.setObjectId();
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,26 @@
|
||||||
package ru.spcex.clearing.dbf.importer.logic.stages;
|
package ru.spcex.clearing.dbf.importer.logic.stages;
|
||||||
|
|
||||||
import com.linuxense.javadbf.DBFReader;
|
import static ru.spcex.clearing.dbf.importer.logic.data.enums.ETable.DF_01;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
|
|
||||||
import ru.spcex.clearing.dbf.importer.logic.data.tables.AbstractTable;
|
|
||||||
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
|
||||||
|
|
||||||
|
import com.linuxense.javadbf.DBFReader;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import static ru.spcex.clearing.dbf.importer.logic.data.enums.ETable.DF_01;
|
import org.springframework.stereotype.Component;
|
||||||
|
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||||
|
import ru.spcex.clearing.dbf.importer.config.settings.ImportDBFServiceSettings;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.ResultContainer;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.enums.ETable;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.enums.StageResult;
|
||||||
|
import ru.spcex.clearing.dbf.importer.logic.data.tables.AbstractTable;
|
||||||
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
|
import ru.spcex.platform.enumeration.ObjectType;
|
||||||
|
import ru.spcex.platform.enumeration.Priority;
|
||||||
|
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
|
||||||
|
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Заливка проверенных данных в базу
|
* Заливка проверенных данных в базу
|
||||||
|
|
@ -58,7 +61,14 @@ public class ImportToDB extends Stage {
|
||||||
log.warn("record index {} null", i);
|
log.warn("record index {} null", i);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
table.injectEntity(table.getEntity(entity));
|
SpcexObjectBase entityTable = table.getEntity(entity);
|
||||||
|
if (!table.checkOnExisting(entityTable) && entityTable instanceof SDf57) {
|
||||||
|
kafkaMessenger.sendUserNotification(ObjectType.rgst,
|
||||||
|
"Номер транзакции " + ((SDf57) entityTable).getDbfId() + " в полученном df57 уже был обработан ранее",
|
||||||
|
Priority.HIGH);
|
||||||
|
} else {
|
||||||
|
table.injectEntity(entityTable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (DF_01.equals(currTable)){
|
if (DF_01.equals(currTable)){
|
||||||
kafkaMessenger.sendPairSdfRequest(table, currTable.getPrefix());
|
kafkaMessenger.sendPairSdfRequest(table, currTable.getPrefix());
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue