Minor fix: put phoneFid to map not only if name found

This commit is contained in:
Mikhail Trofimov 2025-10-15 18:03:01 +03:00
parent bc34f3f89c
commit 7fe066c42d

View file

@ -86,20 +86,20 @@ public class PhoneService2 {
Map<Integer, List<PhoneRepository.FidsDataWithName>> fidFidsDataMap = phonesByFid.stream()
.collect(Collectors.groupingBy(PhoneRepository.FidsDataWithName::getFid));
Map<String, PhoneRepository.FidsDataWithName> phoneToFidsMap = new HashMap<>();
Map<String, Integer> phoneToFidsMap = new HashMap<>();
for (PhoneRepository.FidsDataWithName fidsData : phonesByFid) {
if (!phoneToFidsMap.containsKey(fidsData.getPhone())) {
phoneToFidsMap.put(fidsData.getPhone(), fidsData);
phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid());
}
}
for (PhoneFidMap phoneFid : subjects) {
String phone = "9" + phoneFid.getPhone();
PhoneRepository.FidsDataWithName fidsData = phoneToFidsMap.get(phone);
if (fidsData != null) {
phoneFid.setFid(fidsData.getFid());
Integer fid = phoneToFidsMap.get(phone);
if (fid != null) {
phoneFid.setFid(fid);
List<PhoneRepository.FidsDataWithName> fidsDataWithNames = fidFidsDataMap.get(fidsData.getFid());
List<PhoneRepository.FidsDataWithName> fidsDataWithNames = fidFidsDataMap.get(fid);
if (fidsDataWithNames != null) {
PhoneRepository.FidsDataWithName nameData = defineNameData(fidsDataWithNames);
@ -111,10 +111,10 @@ public class PhoneService2 {
phoneFid.setFileSinceDate(nameData.getFileSinceDateName());
}
phoneFidMap.put(fidsData.getFid(), phoneFid);
phoneToFidsMap.remove(phone);
fidFidsDataMap.remove(fidsData.getFid());
fidFidsDataMap.remove(fid);
}
phoneFidMap.put(fid, phoneFid); // TODO можно перезатереть запись если у разных phone нашлись одинаковые фиды
phoneToFidsMap.remove(phone);
}
}
log.debug("End merging fids and names");