notification sending on duplicate transaction number added in dbf-importer http://jira.mfd.msk:8088/browse/CLS-724

This commit is contained in:
Ivan Nikolaev-Axenov 2024-08-07 16:39:47 +03:00
parent cd341bf166
commit ed69bd7ec2
4 changed files with 40 additions and 34 deletions

View file

@ -1,13 +1,12 @@
package ru.spcex.clearing.dbf.importer.logic.data.tables;
import java.math.BigDecimal;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.imdg.iml.hazelcast.adapter.ImdgHazelcast;
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
import java.math.BigDecimal;
public abstract class AbstractTable<T extends SpcexObjectBase> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final String prefix;
@ -42,14 +41,13 @@ public abstract class AbstractTable<T extends SpcexObjectBase> {
if (map == null) {
bootMap();
}
if (checkOnExisting(obj)) {
map.insert(obj);
}
map.insert(obj);
}
protected boolean checkOnExisting(T obj){
public boolean checkOnExisting(T obj){
return true;
}
protected void bootMap() {
map = (ImdgHazelcast<T>) hazelcastService.getImdg(nameOfMap, clazz);
}

View file

@ -1,15 +1,14 @@
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.time.Instant;
import java.util.Collection;
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> {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -83,7 +82,7 @@ public class SDf57Table extends AbstractTable<SDf57> {
}
@Override
protected boolean checkOnExisting(SDf57 obj) {
public boolean checkOnExisting(SDf57 obj) {
if (map == null) {
bootMap();
}

View file

@ -1,5 +1,11 @@
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.LoggerFactory;
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.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
public class DbfImportKafkaMessenger implements InitializingBean {
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;
NotificationNewRequest request = new NotificationNewRequest();
//request.setObjectId();

View file

@ -1,23 +1,26 @@
package ru.spcex.clearing.dbf.importer.logic.stages;
import com.linuxense.javadbf.DBFReader;
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 static ru.spcex.clearing.dbf.importer.logic.data.enums.ETable.DF_01;
import com.linuxense.javadbf.DBFReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Map;
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.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);
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)){
kafkaMessenger.sendPairSdfRequest(table, currTable.getPrefix());