some fix
This commit is contained in:
parent
be7876e90f
commit
7f2b1081d3
2 changed files with 24 additions and 3 deletions
2
pom.xml
2
pom.xml
|
|
@ -10,7 +10,7 @@
|
|||
</parent>
|
||||
<groupId>ru.nbch</groupId>
|
||||
<artifactId>credit-tracker</artifactId>
|
||||
<version>2.1</version>
|
||||
<version>2.2</version>
|
||||
<name>credit_tracker</name>
|
||||
<description>Credit Tracker Application</description>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ import java.nio.file.Path;
|
|||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
|
@ -227,6 +229,7 @@ public class MonitoringService {
|
|||
|
||||
private List<Subject> processPersons(List<Person> persons, UserPackage userPackage) {
|
||||
List<Subject> subjects = new ArrayList<>();
|
||||
Map<Long, SubjectRepInfo> subjectRepInfoMap = new HashMap<>();
|
||||
for (Person person : persons) {
|
||||
Signals signals = new Signals();
|
||||
for (Inquiry inquiry : person.getInquiries()) {
|
||||
|
|
@ -245,8 +248,17 @@ public class MonitoringService {
|
|||
|
||||
// Если есть хотя бы один заполненный сигнал, значит заполняем остальные данные
|
||||
if (!signals.getSignals().isEmpty()) {
|
||||
PackagesRecordsMap packagesRecord = packageRecordsService.findPackageRecordsById(person.getUid());
|
||||
PhonesMap cacheByPhone = packageRecordsService.findCachedByPhone(Long.valueOf(packagesRecord.getPhone()));
|
||||
PackagesRecordsMap packagesRecord;
|
||||
PhonesMap cacheByPhone;
|
||||
if (subjectRepInfoMap.containsKey(person.getUid())) {
|
||||
SubjectRepInfo subjectRepInfo = subjectRepInfoMap.get(person.getUid());
|
||||
packagesRecord = subjectRepInfo.packagesRecord;
|
||||
cacheByPhone = subjectRepInfo.cacheByPhone;
|
||||
} else {
|
||||
packagesRecord = packageRecordsService.findPackageRecordsById(person.getUid());
|
||||
cacheByPhone = packageRecordsService.findCachedByPhone(Long.valueOf(packagesRecord.getPhone()));
|
||||
subjectRepInfoMap.put(person.getUid(), new SubjectRepInfo(packagesRecord, cacheByPhone));
|
||||
}
|
||||
if (cacheByPhone != null) {
|
||||
Subject subject = new Subject();
|
||||
subject.setId(packagesRecord.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
||||
|
|
@ -299,4 +311,13 @@ public class MonitoringService {
|
|||
log.info("Signal hits updated for package {}", userPackage.getPackageName());
|
||||
}
|
||||
|
||||
private class SubjectRepInfo {
|
||||
private final PackagesRecordsMap packagesRecord;
|
||||
private final PhonesMap cacheByPhone;
|
||||
|
||||
private SubjectRepInfo(PackagesRecordsMap packagesRecord, PhonesMap cacheByPhone) {
|
||||
this.packagesRecord = packagesRecord;
|
||||
this.cacheByPhone = cacheByPhone;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue