diff --git a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java index dcc8277..2288bd9 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/SignalService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/SignalService.java @@ -82,6 +82,9 @@ public class SignalService { log.info("Subjects were registered. PackageId: {}", packageId); } + /** + * Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру + */ public boolean updateSubjects(Integer packageId, Predicate filter) { boolean updated = false; int offset = 0; @@ -108,6 +111,9 @@ public class SignalService { return updated; } + /** + * Обрабатывает пачку PhoneFidMap: обновляет фиды и флаги просрочек + */ public void updateFlags(List subjects, Integer packageId) { if (subjects.isEmpty()) { return; @@ -169,6 +175,10 @@ public class SignalService { userPackageService.updatePackageStatus(packageId, status); } + /** + * Формирует файл запроса в официальный сервис сигналов, выгружая паспортные данные пачками и сразу записывая их в файл + * @return Путь к файлу запроса к официальному сервису сигналов на постановку на мониторинг + */ public String writeSignals(Integer packageId, Predicate filter) { String folderPath = config.getLoadDir() + File.separator + "tmp_folder" + File.separator + packageId + File.separator; String filePath = folderPath + UUID.randomUUID() + "_output.xml"; @@ -194,11 +204,13 @@ public class SignalService { Auth auth = new Auth(); auth.setUser(config.getSignalsuser()); signals.setAuth(auth); - - return signals; } + /** + * Обрабатывает все PhoneFidMap по packageId, выгружая их пачками и фильтруя по переданному фильтру. + * writer записывает пачку сразу в файл + */ private void buildPersons(Integer packageId, Predicate filter, Consumer> writer) { int offset = 0; List batch; @@ -211,13 +223,16 @@ public class SignalService { persons = findPersons(batch); } if (!persons.isEmpty()) { - writer.accept(persons); + writer.accept(persons); // записывает пачку Persons в файл } offset += batchSize; } while (!batch.isEmpty()); } + /** + * Формирует список Person для постановки на мониторинг в официальный сервис сигналов на основе списка PhoneFidMap + */ private List findPersons(List subjects) { if (subjects.isEmpty()) { return Collections.emptyList();