Создание новых элементов / строк CSV в Spring Batch Processor в пакетном задании
Резюме: мне нужно экспортировать некоторые CSV-файлы со строками, которые создаются во время пакетного экспорта.
У меня уже есть JdbcItemreader для получения данных из моей БД. Процессор форматирует OutputData в требуемый формат. И у меня есть базовый FlatFileItemWriter, который записывает CSV-файлы
Вот как выглядят мои экспортированные CSV-строки:
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
Я знаю, что эти строки выглядят некрасиво, но это требование другого импортера CSV. теперь мне нужно вычислить "строки суммы", которые и добавить их перед двумя строками с одинаковыми идентификаторами. Расчетная "итоговая линия" должна выглядеть так:
040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
Итак, окончательный результат должен выглядеть так:
040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
Вот мои вопросы:
- можно ли добавлять строки между другими строками в CSV-файле через FlatFileItemWriter? или я должен сгенерировать итоговые строки перед записью файла?
- возможно ли каким-то образом получить доступ к полному блоку данных в ItemWriter / Processor? так что я могу добавить новые строки в блок перед записью их в файл?