Skip to content

Fedor-Bystrov/transaction-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Утилита для сверки транзакций из csv файла с транзакциями хранящимися в базе. В качестве базы используется in memory h2, которая инициализируется с помощью data.sql и schema.sql лежащими в src/main/resources.

Сборка

Собирать на java 11. Выполнить ./mvnw clean package в директории с проектом, в результате чего мавен соберет target/tran-check-0.0.1-SNAPSHOT.jar.

Или выполнить ./mvnw spring-boot:run в корне проекта, в результате должен появится файл report#..._.csv рядом с ptxs.csv в корне проекта

Запуск

  • Создать config.properties рядом с jar файлом. В нем указать csvFile=<полный путь до csv с транзакциями>. Пример:
csvFile=./ptxs.csv
  • Выполнить java -jar tran-check-0.0.1-SNAPSHOT.jar. Полезно смотреть в лог, нет ли ERROR.
  • В случае успеха в логе будет строка Creating report file at <путь до репорта>. Репорт будет лежать рядом с csv файлом с транзакциями.

Файл с транзакциями

PID;PAMOUNT;PDATA;
123;94.7;20160101120000;
124;150.75;20160101120001;
125;1020.2;20160101120002;
126;15.5;20160101120003;
127;120.74;20160101120004;
128;;20160101120003;
TOTAL;6;

Транзакции с PID: 123-127 валидные, утилита может их распознать. У транзакции с PID: 128 не указан amount, считаем эту запись невалидной.

Файл с отчетом

PID;PAMOUNT;PDATA;RESULT;
RECOGNIZED;
123;94.7;20160101120000;Wrong transaction amount;
124;150.75;20160101120001;Transaction approved;
125;1020.2;20160101120002;Wrong transaction amount;
126;15.5;20160101120003;Transaction approved;
127;120.74;20160101120004;Transaction was not found in DB;
MALFORMED;
128;;20160101120003;

Формат файла с отчетом отчасти повторяет формат файла с транзакциями. Но делит список транзакций на два:

RECOGNIZED означает что следующие транзакции были успешно прочитаны из файла и сверены с транзакциями в базе. Рядом с каждой транзакцией появилась еще одна запись RESULT с сообщением от валидатора транзакций.

Возможные варианты сообщений:

  • Wrong transaction amount - amount транзакции из csv не совпадает с amount'ом в базе
  • Transaction approved - транзакция из файла соответствует транзакции в базе
  • Transaction was not found in DB - транзакция с таким id отсутствует в базе

MALFORMED означает что следующие транзакции не смогли быть распознаны парсером. Например, как у PID: 128, не указан amount.

About

Bank transactions checker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages