Minor fix: put phoneFid to map not only if name found
This commit is contained in:
parent
bc34f3f89c
commit
7fe066c42d
1 changed files with 9 additions and 9 deletions
|
|
@ -86,20 +86,20 @@ public class PhoneService2 {
|
||||||
Map<Integer, List<PhoneRepository.FidsDataWithName>> fidFidsDataMap = phonesByFid.stream()
|
Map<Integer, List<PhoneRepository.FidsDataWithName>> fidFidsDataMap = phonesByFid.stream()
|
||||||
.collect(Collectors.groupingBy(PhoneRepository.FidsDataWithName::getFid));
|
.collect(Collectors.groupingBy(PhoneRepository.FidsDataWithName::getFid));
|
||||||
|
|
||||||
Map<String, PhoneRepository.FidsDataWithName> phoneToFidsMap = new HashMap<>();
|
Map<String, Integer> phoneToFidsMap = new HashMap<>();
|
||||||
for (PhoneRepository.FidsDataWithName fidsData : phonesByFid) {
|
for (PhoneRepository.FidsDataWithName fidsData : phonesByFid) {
|
||||||
if (!phoneToFidsMap.containsKey(fidsData.getPhone())) {
|
if (!phoneToFidsMap.containsKey(fidsData.getPhone())) {
|
||||||
phoneToFidsMap.put(fidsData.getPhone(), fidsData);
|
phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (PhoneFidMap phoneFid : subjects) {
|
for (PhoneFidMap phoneFid : subjects) {
|
||||||
String phone = "9" + phoneFid.getPhone();
|
String phone = "9" + phoneFid.getPhone();
|
||||||
PhoneRepository.FidsDataWithName fidsData = phoneToFidsMap.get(phone);
|
Integer fid = phoneToFidsMap.get(phone);
|
||||||
if (fidsData != null) {
|
if (fid != null) {
|
||||||
phoneFid.setFid(fidsData.getFid());
|
phoneFid.setFid(fid);
|
||||||
|
|
||||||
List<PhoneRepository.FidsDataWithName> fidsDataWithNames = fidFidsDataMap.get(fidsData.getFid());
|
List<PhoneRepository.FidsDataWithName> fidsDataWithNames = fidFidsDataMap.get(fid);
|
||||||
if (fidsDataWithNames != null) {
|
if (fidsDataWithNames != null) {
|
||||||
PhoneRepository.FidsDataWithName nameData = defineNameData(fidsDataWithNames);
|
PhoneRepository.FidsDataWithName nameData = defineNameData(fidsDataWithNames);
|
||||||
|
|
||||||
|
|
@ -111,10 +111,10 @@ public class PhoneService2 {
|
||||||
phoneFid.setFileSinceDate(nameData.getFileSinceDateName());
|
phoneFid.setFileSinceDate(nameData.getFileSinceDateName());
|
||||||
}
|
}
|
||||||
|
|
||||||
phoneFidMap.put(fidsData.getFid(), phoneFid);
|
fidFidsDataMap.remove(fid);
|
||||||
phoneToFidsMap.remove(phone);
|
|
||||||
fidFidsDataMap.remove(fidsData.getFid());
|
|
||||||
}
|
}
|
||||||
|
phoneFidMap.put(fid, phoneFid); // TODO можно перезатереть запись если у разных phone нашлись одинаковые фиды
|
||||||
|
phoneToFidsMap.remove(phone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.debug("End merging fids and names");
|
log.debug("End merging fids and names");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue