Added comments for SignalService

This commit is contained in:
Mikhail Trofimov 2025-07-24 15:40:02 +03:00
parent 7120fd9dd2
commit 997bcc6c4a

View file

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