Привел модуль в соответствие с новым ТЗ.
This commit is contained in:
parent
fe79868712
commit
2b038a3b04
25 changed files with 474 additions and 398 deletions
|
|
@ -21,10 +21,6 @@
|
|||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import org.springframework.context.annotation.Configuration;
|
|||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.stages.ExportFromHazelcast;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.stages.Journal;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.stages.Stage;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
|
@ -50,6 +51,7 @@ public class DBFExporterConfig {
|
|||
|
||||
pipeline.add(context.getBean(PrepareDBFFile.class));
|
||||
pipeline.add(context.getBean(ExportFromHazelcast.class));
|
||||
pipeline.add(context.getBean(Journal.class));
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class KafkaSenderConfig {
|
|||
return KafkaProducerFactory.producerFactory(kafkaSettings);
|
||||
}
|
||||
|
||||
@Autowired(required = false)
|
||||
// @Autowired(required = false)
|
||||
@Bean("kafkaTemplate")
|
||||
public KafkaTemplate<String, Object> kafkaTemplate(ProducerFactory<String, Object> pf) {
|
||||
if (pf == null) {
|
||||
|
|
@ -47,7 +47,7 @@ public class KafkaSenderConfig {
|
|||
return new KafkaTemplate<>(pf);
|
||||
}
|
||||
|
||||
@Autowired(required = false)
|
||||
// @Autowired(required = false)
|
||||
@Bean
|
||||
public KafkaSender kafkaSender(KafkaTemplate<String, Object> kafkaTemplate,
|
||||
ImdgProvider imdgProvider) {
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
package ru.spcex.clearing.dbf.exporter.controller;
|
||||
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import ru.spcex.clearing.dbf.exporter.services.DBFExportService;
|
||||
|
||||
@Controller("/")
|
||||
public class ExporterController implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final DBFExportService dbfExportService;
|
||||
|
||||
public ExporterController(@Qualifier("dbfExportService") DBFExportService dbfExportService) {
|
||||
this.dbfExportService = dbfExportService;
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, path = "/export", produces = MediaType.TEXT_PLAIN_VALUE)
|
||||
@ResponseBody
|
||||
public String exportTables() {
|
||||
log.info("Call export method for exporter controller");
|
||||
dbfExportService.run();
|
||||
return "export done";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
log.info("controller started");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
|||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
|
@ -15,6 +16,8 @@ public class ResultContainer {
|
|||
private File fileForExport;
|
||||
private Long groupId;
|
||||
private StageResult lastStageResult;
|
||||
private LocalDateTime registrationDateTime;
|
||||
private String mamberCode;
|
||||
|
||||
protected ResultContainer() {}
|
||||
|
||||
|
|
@ -64,4 +67,20 @@ public class ResultContainer {
|
|||
public void setLastStageResult(StageResult lastStageResult) {
|
||||
this.lastStageResult = lastStageResult;
|
||||
}
|
||||
|
||||
public LocalDateTime getRegistrationDateTime() {
|
||||
return registrationDateTime;
|
||||
}
|
||||
|
||||
public void setRegistrationDateTime(LocalDateTime registrationDateTime) {
|
||||
this.registrationDateTime = registrationDateTime;
|
||||
}
|
||||
|
||||
public String getMamberCode() {
|
||||
return mamberCode;
|
||||
}
|
||||
|
||||
public void setMamberCode(String mamberCode) {
|
||||
this.mamberCode = mamberCode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,105 @@
|
|||
package ru.spcex.clearing.dbf.exporter.logic.data.enums;
|
||||
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
import static ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile.SECTION;
|
||||
import static ru.spcex.clearing.dbf.exporter.logic.stages.PrepareDBFFile.outDir;
|
||||
|
||||
public enum FilenameTemplate {
|
||||
df_section_dateTime {
|
||||
@Override
|
||||
public String getFileName(ResultContainer resultContainer) {
|
||||
return appendSection(resultContainer)
|
||||
.append(dateTime(resultContainer))
|
||||
.append(".DBF").toString();
|
||||
}
|
||||
},
|
||||
df_section_dateTime_counter {
|
||||
@Override
|
||||
public String getFileName(ResultContainer resultContainer) {
|
||||
return appendSection(resultContainer)
|
||||
.append(dateTime(resultContainer))
|
||||
.append(counter(resultContainer))
|
||||
.append(".DBF").toString();
|
||||
}
|
||||
},
|
||||
df_section_dateTime_counter_mamberCode {
|
||||
@Override
|
||||
public String getFileName(ResultContainer resultContainer) {
|
||||
return appendSection(resultContainer)
|
||||
.append(dateTime(resultContainer))
|
||||
.append(counter(resultContainer))
|
||||
.append(mamberCode(resultContainer))
|
||||
.append(".DBF").toString();
|
||||
}
|
||||
};
|
||||
|
||||
protected StringBuilder appendSection(ResultContainer resultContainer) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append(outDir);
|
||||
result.append(File.separator);
|
||||
result.append(resultContainer.getTableForExport().getFilePrefix().toUpperCase(Locale.ROOT));
|
||||
result.append('_');
|
||||
result.append(SECTION);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected StringBuilder dateTime(ResultContainer resultContainer) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append('_');
|
||||
result.append("PRC");
|
||||
result.append(tsFormatter.format(resultContainer.getRegistrationDateTime()));
|
||||
return result;
|
||||
}
|
||||
|
||||
protected StringBuilder counter(ResultContainer resultContainer) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append('_');
|
||||
result.append(countSameFilesInDir(resultContainer.getTableForExport().getFilePrefix(), outDir) + 1);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected StringBuilder mamberCode(ResultContainer resultContainer) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append('_');
|
||||
result.append(resultContainer.getMamberCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
protected Integer countSameFilesInDir(String prefixOfTable, String outDir) {
|
||||
int res = 0;
|
||||
File directory = new File(outDir);
|
||||
String timestampNow = utilFormatter.format(LocalDateTime.now());
|
||||
if (directory.exists()) {
|
||||
for (File file : Objects.requireNonNull(directory.listFiles())) {
|
||||
String name = file.getName();
|
||||
String[] splitName = name.split("_");
|
||||
String prefix = splitName[0];
|
||||
String timestamp = splitName[2];
|
||||
|
||||
if (prefix.equalsIgnoreCase(prefixOfTable) && timestamp.contains(timestampNow)) {
|
||||
String counter = splitName[3];
|
||||
int positionOfDot = counter.indexOf('.');
|
||||
if (positionOfDot != -1) {
|
||||
counter = counter.substring(0, positionOfDot);
|
||||
}
|
||||
res = Integer.max(res, Integer.parseInt(counter));
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
private static final DateTimeFormatter tsFormatter = DateTimeFormatter.ofPattern("yyMMddHHmm");
|
||||
private static final DateTimeFormatter utilFormatter = DateTimeFormatter.ofPattern("yyMMdd");
|
||||
|
||||
public String getFileName(ResultContainer resultContainer) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -7,11 +7,13 @@ import ru.spcex.platform.classes.base.SpcexObjectBase;
|
|||
public enum Table {
|
||||
S_DF02("DF-02", IMDGDistributedNames.Map_SDf02, SDf02.class),
|
||||
S_DF03("DF-03", IMDGDistributedNames.Map_SDf03, SDf03.class),
|
||||
S_DF08("DF-08", IMDGDistributedNames.Map_SDf08, SDf08.class),
|
||||
S_DF11("DF-11", IMDGDistributedNames.Map_SDf11, SDf11.class),
|
||||
S_DF18("DF-18", IMDGDistributedNames.Map_SDf18, SDf18.class),
|
||||
S_DF10("DF-10", IMDGDistributedNames.Map_SDf10, SDf10.class),
|
||||
S_DF17("DF-17", IMDGDistributedNames.Map_SDf17, SDf17.class);
|
||||
S_DF05("DF-05", IMDGDistributedNames.Map_SDf05, SDf05.class),
|
||||
S_DF07("DF-07", IMDGDistributedNames.Map_SDf07, SDf07.class),
|
||||
S_DF51("DF-51", IMDGDistributedNames.Map_SDf51, SDf51.class),
|
||||
S_DF53("DF-53", IMDGDistributedNames.Map_SDf53, SDf53.class),
|
||||
S_DF54("DF-54", IMDGDistributedNames.Map_SDf54, SDf54.class),
|
||||
S_DF56("DF-56", IMDGDistributedNames.Map_SDf56, SDf56.class);
|
||||
|
||||
|
||||
/**
|
||||
* Префикс имени файла для экспорта
|
||||
|
|
|
|||
|
|
@ -33,11 +33,12 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
|
||||
private final S_DF02_Converter s_df02_converter;
|
||||
private final S_DF03_Converter s_df03_converter;
|
||||
private final S_DF08_Converter s_df08_converter;
|
||||
private final S_DF11_Converter s_df11_converter;
|
||||
private final S_DF18_Converter s_df18_converter;
|
||||
private final S_DF10_Converter s_df10_converter;
|
||||
private final S_DF17_Converter s_df17_converter;
|
||||
private final S_DF05_Converter s_df05_converter;
|
||||
private final S_DF07_Converter s_df07_converter;
|
||||
private final S_DF51_Converter s_df51_converter;
|
||||
private final S_DF53_Converter s_df53_converter;
|
||||
private final S_DF54_Converter s_df54_converter;
|
||||
private final S_DF56_Converter s_df56_converter;
|
||||
|
||||
private final Map<Table, DBFField[]> dbfFieldsForTable = new HashMap<>();
|
||||
private Charset dbfCharset;
|
||||
|
|
@ -46,20 +47,22 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
@Qualifier("imdgProvider") ImdgProvider imdgProvider,
|
||||
S_DF02_Converter s_df02_converter,
|
||||
S_DF03_Converter s_df03_converter,
|
||||
S_DF08_Converter s_df08_converter,
|
||||
S_DF11_Converter s_df11_converter,
|
||||
S_DF18_Converter s_df18_converter,
|
||||
S_DF10_Converter s_df10_converter,
|
||||
S_DF17_Converter s_df17_converter) {
|
||||
S_DF07_Converter s_df07_converter,
|
||||
S_DF05_Converter s_df05_converter,
|
||||
S_DF51_Converter s_df51_converter,
|
||||
S_DF54_Converter s_df54_converter,
|
||||
S_DF53_Converter s_df53_converter,
|
||||
S_DF56_Converter s_df56_converter) {
|
||||
this.settings = settings;
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.s_df02_converter = s_df02_converter;
|
||||
this.s_df03_converter = s_df03_converter;
|
||||
this.s_df08_converter = s_df08_converter;
|
||||
this.s_df11_converter = s_df11_converter;
|
||||
this.s_df18_converter = s_df18_converter;
|
||||
this.s_df10_converter = s_df10_converter;
|
||||
this.s_df17_converter = s_df17_converter;
|
||||
this.s_df07_converter = s_df07_converter;
|
||||
this.s_df05_converter = s_df05_converter;
|
||||
this.s_df51_converter = s_df51_converter;
|
||||
this.s_df54_converter = s_df54_converter;
|
||||
this.s_df53_converter = s_df53_converter;
|
||||
this.s_df56_converter = s_df56_converter;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -89,11 +92,12 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
Object[] values;
|
||||
if (value instanceof SDf02 sDf02Value) values = s_df02_converter.toObjectArray(sDf02Value);
|
||||
else if (value instanceof SDf03 sDf03Value) values = s_df03_converter.toObjectArray(sDf03Value);
|
||||
else if (value instanceof SDf08 sDf08Value) values = s_df08_converter.toObjectArray(sDf08Value);
|
||||
else if (value instanceof SDf11 sDf11Value) values = s_df11_converter.toObjectArray(sDf11Value);
|
||||
else if (value instanceof SDf18 sDf18Value) values = s_df18_converter.toObjectArray(sDf18Value);
|
||||
else if (value instanceof SDf10 sDf10Value) values = s_df10_converter.toObjectArray(sDf10Value);
|
||||
else if (value instanceof SDf17 sDf17Value) values = s_df17_converter.toObjectArray(sDf17Value);
|
||||
else if (value instanceof SDf05 sDf05Value) values = s_df05_converter.toObjectArray(sDf05Value);
|
||||
else if (value instanceof SDf07 sDf07Value) values = s_df07_converter.toObjectArray(sDf07Value);
|
||||
else if (value instanceof SDf51 sDf51Value) values = s_df51_converter.toObjectArray(sDf51Value);
|
||||
else if (value instanceof SDf53 sDf53Value) values = s_df53_converter.toObjectArray(sDf53Value);
|
||||
else if (value instanceof SDf54 sDf54Value) values = s_df54_converter.toObjectArray(sDf54Value);
|
||||
else if (value instanceof SDf56 sDf56Value) values = s_df56_converter.toObjectArray(sDf56Value);
|
||||
else throw new Exception("Get unknown object from imdg. Class: " + value.getClass().getSimpleName());
|
||||
dbfWriter.addRecord(values);
|
||||
}
|
||||
|
|
@ -131,11 +135,12 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
private void initExportFileStructure() {
|
||||
dbfFieldsForTable.put(Table.S_DF02, s_df02_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF03, s_df03_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF08, s_df08_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF18, s_df18_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF10, s_df10_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF11, s_df11_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF17, s_df17_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF05, s_df05_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF07, s_df07_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF51, s_df51_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF53, s_df53_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF54, s_df54_converter.getDBFHeaders());
|
||||
dbfFieldsForTable.put(Table.S_DF56, s_df56_converter.getDBFHeaders());
|
||||
}
|
||||
|
||||
private void initDBFCharset() {
|
||||
|
|
|
|||
|
|
@ -11,25 +11,21 @@ import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.system.JournalSdf;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.EXPORT_COMPLETED;
|
||||
|
||||
@Component
|
||||
public class Journal extends Stage implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final KafkaSender kafkaSender;
|
||||
|
||||
@Autowired(required = false)
|
||||
@Autowired
|
||||
public Journal(KafkaSender kafkaSender) {
|
||||
this.kafkaSender = kafkaSender;
|
||||
}
|
||||
|
||||
public Journal() {
|
||||
this.kafkaSender = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean skipCompleted() {
|
||||
return false;
|
||||
|
|
@ -43,13 +39,13 @@ public class Journal extends Stage implements InitializingBean {
|
|||
}
|
||||
JournalSdf journalSdf = new JournalSdf();
|
||||
//todo read file attibutes
|
||||
journalSdf.setRegistrationDate(LocalDate.now());
|
||||
journalSdf.setRegistrationTime(LocalTime.now());
|
||||
journalSdf.setRegistrationDate(resultContainer.getRegistrationDateTime().toLocalDate());
|
||||
journalSdf.setRegistrationTime(resultContainer.getRegistrationDateTime().toLocalTime());
|
||||
journalSdf.setRegistrationNumber(resultContainer.getGroupId());
|
||||
journalSdf.setDocumentName(documentNames.get(resultContainer.getTableForExport()));
|
||||
journalSdf.setDossierNumber(dossierNumber.get(resultContainer.getTableForExport()));
|
||||
journalSdf.setResultStatus(StageResult.ERROR.equals(resultContainer.getLastStageResult()) ? "NACK" : "ACK");
|
||||
// kafkaSender.sendRequestToQueue();
|
||||
kafkaSender.sendRequestToQueue(EXPORT_COMPLETED, journalSdf);
|
||||
return StageResult.COMPLETE;
|
||||
}
|
||||
|
||||
|
|
@ -61,23 +57,23 @@ public class Journal extends Stage implements InitializingBean {
|
|||
static {
|
||||
documentNames.put(Table.S_DF02, "Уведомлений об исполнении операции загрузки денежных средств или уведомление об ошибке");
|
||||
documentNames.put(Table.S_DF03, "Сводное платёжное поручение по итогу проведения расчетов, направляемое в РО");
|
||||
//documentNames.put(Table.S_DF05, "Уведомление о завершении расчетов в секции");
|
||||
documentNames.put(Table.S_DF08, "Запрос остатков по всем счетам, направляемый в РО");
|
||||
documentNames.put(Table.S_DF10, "Подтверждение о загрузке по поступлению на клиринговый счет");
|
||||
documentNames.put(Table.S_DF11, "Распоряжение на списание с ТБС УК на Клиринговый счет (по итогам проведения расчетов по возврату депозита) / Распоряжение на списание с ТБС УК на Корреспонденский счет УК");
|
||||
//documentNames.put(Table.S_DF13, "Распоряжение на списание денежных средств УК категории В (с клирингового счета)");
|
||||
documentNames.put(Table.S_DF17, "Подтверждение о загрузке Уведомления о возврате ден.ср. по договору депозита");
|
||||
documentNames.put(Table.S_DF05, "Уведомление о завершении расчетов в секции");
|
||||
documentNames.put(Table.S_DF07, "Подтверждение о загрузке Уведомления о возврате ден.ср. по договору депозита");
|
||||
documentNames.put(Table.S_DF51, "Запрос остатков по всем счетам, направляемый в РО");
|
||||
documentNames.put(Table.S_DF53, "");
|
||||
documentNames.put(Table.S_DF54, "Распоряжение на списание денежных средств УК категории В (с клирингового счета)");
|
||||
documentNames.put(Table.S_DF56, "");
|
||||
}
|
||||
|
||||
private static final Map<Table, String> dossierNumber = new EnumMap<>(Table.class);
|
||||
static {
|
||||
dossierNumber.put(Table.S_DF02, "07-50");
|
||||
dossierNumber.put(Table.S_DF03, "07-51");
|
||||
//dossierNumber.put(Table.S_DF05, "07-53");
|
||||
dossierNumber.put(Table.S_DF08, "07-55");
|
||||
dossierNumber.put(Table.S_DF10, "07-56");
|
||||
dossierNumber.put(Table.S_DF11, "07-36");
|
||||
//dossierNumber.put(Table.S_DF13, "07-48");
|
||||
dossierNumber.put(Table.S_DF17, "07-58");
|
||||
dossierNumber.put(Table.S_DF05, "07-53");
|
||||
dossierNumber.put(Table.S_DF07, "07-58");
|
||||
dossierNumber.put(Table.S_DF51, "07-55");
|
||||
dossierNumber.put(Table.S_DF53, "");
|
||||
dossierNumber.put(Table.S_DF54, "07-48");
|
||||
dossierNumber.put(Table.S_DF56, "");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import org.springframework.beans.factory.InitializingBean;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.clearing.dbf.exporter.config.settings.ExportDBFServiceSettings;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.FilenameTemplate;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.StageResult;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||
|
||||
|
|
@ -12,8 +13,8 @@ import java.io.IOException;
|
|||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Locale;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -21,12 +22,10 @@ import java.util.Objects;
|
|||
*/
|
||||
@Component
|
||||
public class PrepareDBFFile extends Stage implements InitializingBean {
|
||||
private static final String SECTION = "U";
|
||||
private static final String CODE_OF_MEMBER = null;
|
||||
private static final DateTimeFormatter tsFormatter = DateTimeFormatter.ofPattern("yyMMddHHmm");
|
||||
private static final DateTimeFormatter utilFormatter = DateTimeFormatter.ofPattern("yyMMdd");
|
||||
public static final String SECTION = "U";
|
||||
public static final String CODE_OF_MEMBER = null;
|
||||
private final ExportDBFServiceSettings settings;
|
||||
private String outDir;
|
||||
public static String outDir;
|
||||
|
||||
public PrepareDBFFile(ExportDBFServiceSettings settings) {
|
||||
this.settings = settings;
|
||||
|
|
@ -37,7 +36,9 @@ public class PrepareDBFFile extends Stage implements InitializingBean {
|
|||
Objects.requireNonNull(resultContainer.getTableForExport());
|
||||
|
||||
Table table = resultContainer.getTableForExport();
|
||||
File dbfFile = new File(prepareFilename(table, SECTION, CODE_OF_MEMBER, outDir));
|
||||
LocalDateTime currentDateTime = LocalDateTime.now();
|
||||
resultContainer.setRegistrationDateTime(currentDateTime);
|
||||
File dbfFile = new File(nameTemplates.get(table).getFileName(resultContainer));
|
||||
try {
|
||||
Path dbfFilePath = dbfFile.toPath();
|
||||
Files.deleteIfExists(dbfFilePath);
|
||||
|
|
@ -61,50 +62,16 @@ public class PrepareDBFFile extends Stage implements InitializingBean {
|
|||
this.outDir = outDirPath;
|
||||
}
|
||||
|
||||
private String prepareFilename(Table table, String section, String codeOfMember, String outDir) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
String prefixOfTable = table.getFilePrefix();
|
||||
String time = "PRC" + tsFormatter.format(LocalDateTime.now());
|
||||
private static final Map<Table, FilenameTemplate> nameTemplates = new EnumMap<>(Table.class);
|
||||
|
||||
result.append(outDir);
|
||||
result.append(File.separator);
|
||||
result.append(prefixOfTable.toUpperCase(Locale.ROOT));
|
||||
result.append('_');
|
||||
result.append(section);
|
||||
result.append('_');
|
||||
result.append(time);
|
||||
result.append('_');
|
||||
result.append(countSameFilesInDir(prefixOfTable, outDir) + 1);
|
||||
if (codeOfMember != null) {
|
||||
result.append('_');
|
||||
result.append(codeOfMember);
|
||||
}
|
||||
result.append(".DBF");
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
private Integer countSameFilesInDir(String prefixOfTable, String outDir) {
|
||||
int res = 0;
|
||||
File directory = new File(outDir);
|
||||
if (directory.exists()) {
|
||||
for (File file : Objects.requireNonNull(directory.listFiles())) {
|
||||
String name = file.getName();
|
||||
String[] splitName = name.split("_");
|
||||
String prefix = splitName[0];
|
||||
String timestamp = splitName[2];
|
||||
String timestampNow = utilFormatter.format(LocalDateTime.now());
|
||||
|
||||
if (prefix.equalsIgnoreCase(prefixOfTable) && timestamp.contains(timestampNow)) {
|
||||
String counter = splitName[3];
|
||||
int positionOfDot = counter.indexOf('.');
|
||||
if (positionOfDot != -1) {
|
||||
counter = counter.substring(0, positionOfDot);
|
||||
}
|
||||
res = Integer.max(res, Integer.parseInt(counter));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
static {
|
||||
nameTemplates.put(Table.S_DF02, FilenameTemplate.df_section_dateTime);
|
||||
nameTemplates.put(Table.S_DF03, FilenameTemplate.df_section_dateTime_counter_mamberCode);
|
||||
nameTemplates.put(Table.S_DF05, FilenameTemplate.df_section_dateTime);
|
||||
nameTemplates.put(Table.S_DF07, FilenameTemplate.df_section_dateTime_counter);
|
||||
nameTemplates.put(Table.S_DF51, FilenameTemplate.df_section_dateTime_counter);
|
||||
nameTemplates.put(Table.S_DF53, FilenameTemplate.df_section_dateTime_counter);
|
||||
nameTemplates.put(Table.S_DF54, FilenameTemplate.df_section_dateTime_counter);
|
||||
nameTemplates.put(Table.S_DF56, FilenameTemplate.df_section_dateTime_counter);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,12 +35,30 @@ public class CommandService extends QueueConsumer implements InitializingBean {
|
|||
callback(ExportToFileRequest.class)
|
||||
.setConsumer(this::process)
|
||||
.forDestination(Consts.EXPORT_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF02, r))
|
||||
.forDestination(Consts.SDF02_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF03, r)) // todo необходимо в отдельную папку: "в отдельную директорию SettlementHouse_Fail (чтобы не отдавать такие файлы в ПРЦ"
|
||||
.forDestination(Consts.SDF03_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF11, r))
|
||||
.forDestination(Consts.SDF11_PROCESS, callbacks::put);
|
||||
.setConsumer(r -> processSpecial(Table.S_DF05, r))
|
||||
.forDestination(Consts.SDF05_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF07, r))
|
||||
.forDestination(Consts.SDF07_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF51, r))
|
||||
.forDestination(Consts.SDF51_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF53, r))
|
||||
.forDestination(Consts.SDF53_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF54, r))
|
||||
.forDestination(Consts.SDF54_PROCESS, callbacks::put);
|
||||
callback(SdfClearingRequest.class)
|
||||
.setConsumer(r -> processSpecial(Table.S_DF56, r))
|
||||
.forDestination(Consts.SDF56_PROCESS, callbacks::put);
|
||||
init();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.Processor;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.ResultContainer;
|
||||
import ru.spcex.clearing.dbf.exporter.logic.data.enums.Table;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@Service("dbfExportService")
|
||||
public class DBFExportService {
|
||||
Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final ThreadPoolTaskExecutor executor;
|
||||
private final Processor processor;
|
||||
protected final ImdgProvider imdgProvider;
|
||||
|
||||
public DBFExportService(@Qualifier("executor") ThreadPoolTaskExecutor executor,
|
||||
@Qualifier("processor") Processor processor,
|
||||
ImdgProvider imdgProvider) {
|
||||
this.executor = executor;
|
||||
this.processor = processor;
|
||||
this.imdgProvider = imdgProvider;
|
||||
log.debug("Check IMDG...");
|
||||
imdgProvider.waitAvailable();
|
||||
log.debug("IMDG ready...");
|
||||
}
|
||||
|
||||
public void run() {
|
||||
log.debug("Do export for all: {}", Arrays.toString(Table.values()));
|
||||
for (Table tableForExport : Table.values()) {
|
||||
executor.submit(() -> processor.process(ResultContainer.createNewTask(tableForExport)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package ru.spcex.clearing.dbf.exporter.services.converters;
|
|||
import com.linuxense.javadbf.DBFField;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Date;
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
|
|
@ -25,4 +26,14 @@ public abstract class DFConverter<T extends SpcexObjectBase> {
|
|||
if (src instanceof LocalTime srcLocalTime) return Time.valueOf(srcLocalTime);
|
||||
return src;
|
||||
}
|
||||
|
||||
protected Long convertStrToLong(String s) {
|
||||
if (s == null) return null;
|
||||
return Long.valueOf(s);
|
||||
}
|
||||
|
||||
protected BigDecimal convertStrToBigDecimal(String s) {
|
||||
if (s == null) return null;
|
||||
return new BigDecimal(s).setScale(0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class S_DF02_Converter extends DFConverter<SDf02> {
|
|||
dbfFields.add(new DBFField("ACC_TYPE", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("SUMENGAGE", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("SUMUNBLOCK", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("FILE_TYPE", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("FILE_TYPE", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("RESULT", DBFDataType.CHARACTER, 3));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,15 +69,15 @@ public class S_DF03_Converter extends DFConverter<SDf03> {
|
|||
dbfFields.add(new DBFField("DOC_TYPE", DBFDataType.CHARACTER, 4));
|
||||
dbfFields.add(new DBFField("DOCNM_REF", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("DOCNMPREV", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("PRIORITY", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("SBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
// dbfFields.add(new DBFField("PRIORITY", DBFDataType.CHARACTER, 1));
|
||||
// dbfFields.add(new DBFField("SBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
// dbfFields.add(new DBFField("RBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_CRED", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
|
|
@ -85,31 +85,31 @@ public class S_DF03_Converter extends DFConverter<SDf03> {
|
|||
dbfFields.add(new DBFField("RBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("PAY_DATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("EXT_DATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("PAY_VAL", DBFDataType.CHARACTER, 12));
|
||||
// dbfFields.add(new DBFField("EXT_DATE", DBFDataType.CHARACTER, 8));
|
||||
// dbfFields.add(new DBFField("PAY_VAL", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("SUM_DEB", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("SCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SC_CODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("ACC_KR_1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("ACC_KR_2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SP_CODE", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("SPECIF_1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_6", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SEND_TYPE", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("SERVDATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("DOC_RESULT", DBFDataType.CHARACTER, 2));
|
||||
// dbfFields.add(new DBFField("SCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SC_CODE", DBFDataType.CHARACTER, 12));
|
||||
// dbfFields.add(new DBFField("ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("RCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("RCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("RCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("RCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("ACC_KR_1", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("ACC_KR_2", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SP_CODE", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("SPECIF_1", DBFDataType.CHARACTER, 255));
|
||||
// dbfFields.add(new DBFField("SPECIF_2", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SPECIF_3", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SPECIF_4", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SPECIF_5", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SPECIF_6", DBFDataType.CHARACTER, 35));
|
||||
// dbfFields.add(new DBFField("SEND_TYPE", DBFDataType.CHARACTER, 10));
|
||||
// dbfFields.add(new DBFField("SERVDATE", DBFDataType.CHARACTER, 8));
|
||||
// dbfFields.add(new DBFField("DOC_RESULT", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("IMP_RESULT", DBFDataType.CHARACTER, 3));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services.converters;
|
||||
|
||||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf05;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF05_Converter extends DFConverter<SDf05> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf05 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
values.add(typeMatch(entity.getTp()));
|
||||
values.add(typeMatch(entity.getDt()));
|
||||
values.add(typeMatch(entity.getTm()));
|
||||
values.add(typeMatch(entity.getPr()));
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
Date date = new Date();
|
||||
dbfFields.add(new DBFField("TP", DBFDataType.NUMERIC, 72, 18));
|
||||
dbfFields.add(new DBFField("DT", DBFDataType.DATE));
|
||||
dbfFields.add(new DBFField("TM", DBFDataType.DATE));
|
||||
dbfFields.add(new DBFField("PR", DBFDataType.CHARACTER, 1));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,20 +3,22 @@ package ru.spcex.clearing.dbf.exporter.services.converters;
|
|||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf17;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf07;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF17_Converter extends DFConverter<SDf17> {
|
||||
public class S_DF07_Converter extends DFConverter<SDf07> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf17 entity) {
|
||||
public Object[] toObjectArray(SDf07 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
values.add(typeMatch(entity.getAccount()));
|
||||
values.add(typeMatch(entity.getSum()));
|
||||
values.add(typeMatch(entity.getMarket()));
|
||||
values.add(typeMatch(entity.getType()));
|
||||
values.add(typeMatch(entity.getDeal()));
|
||||
values.add(typeMatch(entity.getClientN()));
|
||||
values.add(typeMatch(entity.getInn()));
|
||||
values.add(typeMatch(entity.getBic()));
|
||||
values.add(typeMatch(entity.getSpec()));
|
||||
|
|
@ -29,14 +31,16 @@ public class S_DF17_Converter extends DFConverter<SDf17> {
|
|||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("ACCOUNT", DBFDataType.CHARACTER, 20));
|
||||
dbfFields.add(new DBFField("SUM", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("SUM", DBFDataType.NUMERIC, 72, 18));
|
||||
dbfFields.add(new DBFField("MARKET", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("TYPE", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("_I_N_N", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("_B_I_C", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("_S_P_E_C", DBFDataType.CHARACTER, 254));
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("RESULT", DBFDataType.NUMERIC, 1));
|
||||
dbfFields.add(new DBFField("DEAL", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("CLIENT_N", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("_I_N_N", DBFDataType.NUMERIC, 72, 18));
|
||||
dbfFields.add(new DBFField("_B_I_C", DBFDataType.NUMERIC, 72, 18));
|
||||
dbfFields.add(new DBFField("_S_P_E_C", DBFDataType.CHARACTER, 255));
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 72, 18));
|
||||
dbfFields.add(new DBFField("RESULT", DBFDataType.NUMERIC, 72, 18));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services.converters;
|
||||
|
||||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf10;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF10_Converter extends DFConverter<SDf10> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf10 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
// values.add(typeMatch(entity.getAccount()));
|
||||
// values.add(typeMatch(entity.getSum()));
|
||||
// values.add(typeMatch(entity.getMarket()));
|
||||
// values.add(typeMatch(entity.getType()));
|
||||
// values.add(typeMatch(entity.getNumber()));
|
||||
// values.add(typeMatch(entity.getInn()));
|
||||
// values.add(typeMatch(entity.getResult()));
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("ACCOUNT", DBFDataType.CHARACTER, 20));
|
||||
dbfFields.add(new DBFField("SUM", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("MARKET", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("TYPE", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("_I_N_N", DBFDataType.NUMERIC, 32, 18));
|
||||
dbfFields.add(new DBFField("RESULT", DBFDataType.CHARACTER, 3));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services.converters;
|
||||
|
||||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf11;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF11_Converter extends DFConverter<SDf11> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf11 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
// values.add(typeMatch(entity.getSeg_type()));
|
||||
// values.add(typeMatch(entity.getDoc_type()));
|
||||
// values.add(typeMatch(entity.getDocnm_ref()));
|
||||
// values.add(typeMatch(entity.getDocnmprev()));
|
||||
// values.add(typeMatch(entity.getPriority()));
|
||||
// values.add(typeMatch(entity.getSbankcode()));
|
||||
// values.add(typeMatch(entity.getC_acc_deb()));
|
||||
// values.add(typeMatch(entity.getSbanknam1()));
|
||||
// values.add(typeMatch(entity.getSbanknam2()));
|
||||
// values.add(typeMatch(entity.getSbanknam3()));
|
||||
// values.add(typeMatch(entity.getSbanknam4()));
|
||||
// values.add(typeMatch(entity.getSbanknam5()));
|
||||
// values.add(typeMatch(entity.getRbankcode()));
|
||||
// values.add(typeMatch(entity.getC_acc_cred()));
|
||||
// values.add(typeMatch(entity.getRbanknam1()));
|
||||
// values.add(typeMatch(entity.getRbanknam2()));
|
||||
// values.add(typeMatch(entity.getRbanknam3()));
|
||||
// values.add(typeMatch(entity.getRbanknam4()));
|
||||
// values.add(typeMatch(entity.getRbanknam5()));
|
||||
// values.add(typeMatch(entity.getPay_date()));
|
||||
// values.add(typeMatch(entity.getExt_date()));
|
||||
// values.add(typeMatch(entity.getPay_val()));
|
||||
// values.add(typeMatch(entity.getSum_deb()));
|
||||
// values.add(typeMatch(entity.getSclientn1()));
|
||||
// values.add(typeMatch(entity.getSclientn2()));
|
||||
// values.add(typeMatch(entity.getSclientn3()));
|
||||
// values.add(typeMatch(entity.getSclientn4()));
|
||||
// values.add(typeMatch(entity.getSc_code()));
|
||||
// values.add(typeMatch(entity.getAcc_deb()));
|
||||
// values.add(typeMatch(entity.getRclientn1()));
|
||||
// values.add(typeMatch(entity.getRclientn2()));
|
||||
// values.add(typeMatch(entity.getRclientn3()));
|
||||
// values.add(typeMatch(entity.getRclientn4()));
|
||||
// values.add(typeMatch(entity.getAcc_kr_1()));
|
||||
// values.add(typeMatch(entity.getAcc_kr_2()));
|
||||
// values.add(typeMatch(entity.getSp_code()));
|
||||
// values.add(typeMatch(entity.getSpecif_1()));
|
||||
// values.add(typeMatch(entity.getSpecif_2()));
|
||||
// values.add(typeMatch(entity.getSpecif_3()));
|
||||
// values.add(typeMatch(entity.getSpecif_4()));
|
||||
// values.add(typeMatch(entity.getSpecif_5()));
|
||||
// values.add(typeMatch(entity.getSpecif_6()));
|
||||
// values.add(typeMatch(entity.getSend_type()));
|
||||
// values.add(typeMatch(entity.getServdate()));
|
||||
// values.add(typeMatch(entity.getDoc_result()));
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("SEG_TYPE", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("DOC_TYPE", DBFDataType.CHARACTER, 4));
|
||||
dbfFields.add(new DBFField("DOCNM_REF", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("DOCNMPREV", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("PRIORITY", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("SBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_CRED", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("PAY_DATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("EXT_DATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("PAY_VAL", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("SUM_DEB", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("SCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SC_CODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("ACC_KR_1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("ACC_KR_2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SP_CODE", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("SPECIF_1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF_6", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SEND_TYPE", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("SERVDATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("DOC_RESULT", DBFDataType.CHARACTER, 2));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -3,35 +3,30 @@ package ru.spcex.clearing.dbf.exporter.services.converters;
|
|||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf08;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf51;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF08_Converter extends DFConverter<SDf08> {
|
||||
public class S_DF51_Converter extends DFConverter<SDf51> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf08 entity) {
|
||||
public Object[] toObjectArray(SDf51 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
// values.add(convertStrToLong(entity.getNumber()));
|
||||
// values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME
|
||||
values.add(typeMatch(entity.getNumber()));
|
||||
values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.NUMERIC, 10));
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("DATETIME", DBFDataType.NUMERIC, 13)); // UNIX TIME
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
Long convertStrToLong(String s) {
|
||||
if (s == null) return null;
|
||||
return Long.valueOf(s);
|
||||
}
|
||||
|
||||
private static final DateTimeFormatter DATE_FMT = DateTimeFormatter.ofPattern("dd.MM.yyyy");
|
||||
private static final DateTimeFormatter DATE_TIME_FMT = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
|
||||
|
||||
|
|
@ -3,15 +3,15 @@ package ru.spcex.clearing.dbf.exporter.services.converters;
|
|||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf18;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf53;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF18_Converter extends DFConverter<SDf18> {
|
||||
public class S_DF53_Converter extends DFConverter<SDf53> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf18 entity) {
|
||||
public Object[] toObjectArray(SDf53 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
values.add(typeMatch(entity.getAccount()));
|
||||
values.add(typeMatch(entity.getDeal()));
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services.converters;
|
||||
|
||||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf54;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF54_Converter extends DFConverter<SDf54> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf54 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
values.add(typeMatch(entity.getSeg_type()));
|
||||
values.add(typeMatch(entity.getDoc_type()));
|
||||
values.add(typeMatch(entity.getDocnm_ref()));
|
||||
values.add(typeMatch(entity.getDocnmprev()));
|
||||
values.add(typeMatch(entity.getSbankcode()));
|
||||
values.add(typeMatch(entity.getC_acc_deb()));
|
||||
values.add(typeMatch(entity.getSbanknam1()));
|
||||
values.add(typeMatch(entity.getSbanknam2()));
|
||||
values.add(typeMatch(entity.getSbanknam3()));
|
||||
values.add(typeMatch(entity.getSbanknam4()));
|
||||
values.add(typeMatch(entity.getSbanknam5()));
|
||||
values.add(typeMatch(entity.getRbankcode()));
|
||||
values.add(typeMatch(entity.getC_acc_cred()));
|
||||
values.add(typeMatch(entity.getRbanknam1()));
|
||||
values.add(typeMatch(entity.getRbanknam2()));
|
||||
values.add(typeMatch(entity.getRbanknam3()));
|
||||
values.add(typeMatch(entity.getRbanknam4()));
|
||||
values.add(typeMatch(entity.getRbanknam5()));
|
||||
values.add(typeMatch(entity.getOp_type()));
|
||||
values.add(typeMatch(entity.getOp_order()));
|
||||
values.add(typeMatch(entity.getPay_date()));
|
||||
values.add(typeMatch(entity.getPay_val()));
|
||||
values.add(typeMatch(entity.getSum_deb()));
|
||||
values.add(typeMatch(entity.getSclientn1()));
|
||||
values.add(typeMatch(entity.getSclientn2()));
|
||||
values.add(typeMatch(entity.getSclientn3()));
|
||||
values.add(typeMatch(entity.getSclientn4()));
|
||||
values.add(typeMatch(entity.getInn_deb()));
|
||||
values.add(typeMatch(entity.getKpp_deb()));
|
||||
values.add(typeMatch(entity.getAcc_deb()));
|
||||
values.add(typeMatch(entity.getRclientn1()));
|
||||
values.add(typeMatch(entity.getRclientn2()));
|
||||
values.add(typeMatch(entity.getRclientn3()));
|
||||
values.add(typeMatch(entity.getRclientn4()));
|
||||
values.add(typeMatch(entity.getInn_cred()));
|
||||
values.add(typeMatch(entity.getKpp_cred()));
|
||||
values.add(typeMatch(entity.getAcc_kr_1()));
|
||||
values.add(typeMatch(entity.getSpecif_1()));
|
||||
values.add(typeMatch(entity.getSend_type()));
|
||||
values.add(typeMatch(entity.getDoc_result()));
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("SEG_TYPE", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("DOC_TYPE", DBFDataType.CHARACTER, 13));
|
||||
dbfFields.add(new DBFField("DOCNM_REF", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("DOCNMPREV", DBFDataType.CHARACTER, 16));
|
||||
dbfFields.add(new DBFField("SBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKCODE", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("C_ACC_CRED", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RBANKNAM5", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("OP_TYPE", DBFDataType.CHARACTER, 2));
|
||||
dbfFields.add(new DBFField("OP_ORDER", DBFDataType.CHARACTER, 1));
|
||||
dbfFields.add(new DBFField("PAY_DATE", DBFDataType.CHARACTER, 8));
|
||||
dbfFields.add(new DBFField("PAY_VAL", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("SUM_DEB", DBFDataType.CHARACTER, 22));
|
||||
dbfFields.add(new DBFField("SCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("INN_DEB", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("KPP_DEB", DBFDataType.CHARACTER, 9));
|
||||
dbfFields.add(new DBFField("ACC_DEB", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN2", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN3", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("RCLIENTN4", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("INN_CRED", DBFDataType.CHARACTER, 12));
|
||||
dbfFields.add(new DBFField("KPP_CRED", DBFDataType.CHARACTER, 9));
|
||||
dbfFields.add(new DBFField("ACC_KR1", DBFDataType.CHARACTER, 35));
|
||||
dbfFields.add(new DBFField("SPECIF1", DBFDataType.CHARACTER, 255));
|
||||
dbfFields.add(new DBFField("SEND_TYPE", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("DOC_RESULT", DBFDataType.CHARACTER, 2));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package ru.spcex.clearing.dbf.exporter.services.converters;
|
||||
|
||||
import com.linuxense.javadbf.DBFDataType;
|
||||
import com.linuxense.javadbf.DBFField;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf56;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class S_DF56_Converter extends DFConverter<SDf56> {
|
||||
@Override
|
||||
public Object[] toObjectArray(SDf56 entity) {
|
||||
List<Object> values = new LinkedList<>();
|
||||
values.add(typeMatch(entity.getNumber()));
|
||||
values.add(convertStrToBigDecimal(entity.getStart_datetime())); // UNIX DATE TIME
|
||||
values.add(convertStrToBigDecimal(entity.getEnd_datetime())); // UNIX DATE TIME
|
||||
values.add(typeMatch(entity.getAccount()));
|
||||
values.add(typeMatch(entity.getDeal()));
|
||||
return values.toArray(Object[]::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DBFField[] getDBFHeaders() {
|
||||
List<DBFField> dbfFields = new LinkedList<>();
|
||||
dbfFields.add(new DBFField("NUMBER", DBFDataType.CHARACTER, 10));
|
||||
dbfFields.add(new DBFField("START_DATETIME", DBFDataType.NUMERIC, 10));
|
||||
dbfFields.add(new DBFField("END_DATETIME", DBFDataType.NUMERIC, 10));
|
||||
dbfFields.add(new DBFField("ACCOUNT", DBFDataType.CHARACTER, 25));
|
||||
dbfFields.add(new DBFField("DEAL", DBFDataType.CHARACTER, 4));
|
||||
return dbfFields.toArray(DBFField[]::new);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,4 @@
|
|||
server.port=8080
|
||||
server.servlet.context-path=/exporter
|
||||
spring.main.web-application-type=servlet
|
||||
spring.main.web-application-type=none
|
||||
|
||||
export-dbf-service.hazelcast.cluster-members=10.200.200.181:5701
|
||||
export-dbf-service.hazelcast.login=dev
|
||||
|
|
@ -18,3 +16,10 @@ export-dbf-service.kafka-consumer.session-timeout-ms=30000
|
|||
export-dbf-service.kafka-consumer.auto-offset-reset=latest
|
||||
export-dbf-service.kafka-consumer.linger-ms=1
|
||||
export-dbf-service.kafka-consumer.buffer-memory=33554432
|
||||
|
||||
export-dbf-service.kafka-producer.bootstrap-servers=localhost:9092
|
||||
export-dbf-service.kafka-producer.acks=all
|
||||
export-dbf-service.kafka-producer.retries=0
|
||||
export-dbf-service.kafka-producer.batch-size=16384
|
||||
export-dbf-service.kafka-producer.linger-ms=1
|
||||
export-dbf-service.kafka-producer.buffer-memory=33554432
|
||||
|
|
|
|||
|
|
@ -100,12 +100,19 @@ public interface Consts {
|
|||
String USER_SETTINGS_UPDATE = "user-settings-update";
|
||||
|
||||
String STATEMENT_PROCESS = "statement-process";
|
||||
String SDF04_PROCESS = "sdf04-process";
|
||||
String SDF02_PROCESS = "sdf02-process";
|
||||
String SDF03_PROCESS = "sdf03-process";
|
||||
String SDF04_PROCESS = "sdf04-process";
|
||||
String SDF05_PROCESS = "sdf05-process";
|
||||
String SDF07_PROCESS = "sdf07-process";
|
||||
String SDF11_PROCESS = "sdf11-process";
|
||||
String SDF51_PROCESS = "sdf51-process";
|
||||
String SDF53_PROCESS = "sdf53-process";
|
||||
String SDF54_PROCESS = "sdf54-process";
|
||||
String SDF56_PROCESS = "sdf56-process";
|
||||
String SDF57_PROCESS = "sdf57-process";
|
||||
String EXPORT_PROCESS = "export-process";
|
||||
String EXPORT_COMPLETED = "export_completed";
|
||||
String S_TRADES_IMPORTED = "s_trades-imported";
|
||||
String LIM_EXPORTED = "lim_exported";
|
||||
String ACCOUNT_TERMINATION = "account-termination";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue