Я написал пакетное приложение Spring, которое обрабатывает данные, поступающие из 3 разных файлов. Данные в файле 1, должны быть сгруппированы на основе номеров заказов клиентов, потому что мне нужно создать отчет для всех заказов в файле, которые применяются к этому клиенту. Мой текущий подход заключается в следующем. У меня есть класс, который читает файл в список заказов. У меня есть похожий класс для файла 2 и файла 3. Обратите внимание, что файл 2 содержит данные заказа клиента, отличные от файла 1. Файл 2 содержит данные изменения адреса, которые содержат номер клиента, присутствующий в файле 1. Я считал данные в файле 2 Аналогичным образом и вернуть карту, мне нужно совместить изменение адреса с заказом на доставку обновлений. Файл 3 содержит информацию о продвижении, которую необходимо применить. Он также содержит номер клиента и рекламную информацию и скидки. В конце процесс должен объединить данные во всех 3 файлах и применить изменения. Подход для файла 2 и файла 3 аналогичен подходу для файла 1.
Карта addressChangeMap
class OrderManager {
FileReader fr;
Map<String, List<Order> orderMap;
public Map<String,List<Order> readOrders(@Value("${file_loc_1}") filePath){
....
}
}
После считывания данных файла из всех 3 файлов. Процесс у меня в данный момент работает. Есть ли способ сделать это с помощью Spring Batch для группировки без чтения всего файла? На всех трех этапах мне сначала нужно было прочитать все заказы в файле 1, адреса в файле 2, а также рекламные акции и скидки в файле 3. В итоге я получаю Карты для файла 1, файла 2 и файла 3, где каждый ключ это номер клиента. Я просто не нашел примеров, близких к тому, что я хотел бы выполнить sh, или, может быть, это не что-то для Spring Batch, даже в Руководстве для Spring Batch (2019).
Map<String,Address> for File 2
Map<String,List<Promotion> For File 3
После построения Карт я объединяю их в тасклет. Можно ли выполнить задачу с помощью Spring Batch, и если да, то может ли кто-нибудь указать мне на скелетный подход?
Спасибо