http://jira.mfd.msk:8088/browse/BKI-3213 Optimize fids searching
This commit is contained in:
parent
ae18c5d568
commit
ae7260d790
1 changed files with 16 additions and 10 deletions
|
|
@ -12,7 +12,10 @@ import org.springframework.stereotype.Service;
|
||||||
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
import ru.nbch.credit_tracker.entities.dto.PhoneFidMap;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -66,17 +69,20 @@ public class PhoneService2 {
|
||||||
new FidsData(rs.getInt("fid"), rs.getString("number"), rs.getObject("file_since_dt", LocalDate.class))
|
new FidsData(rs.getInt("fid"), rs.getString("number"), rs.getObject("file_since_dt", LocalDate.class))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Map<String, Integer> phoneToFidsMap = new HashMap<>();
|
||||||
|
for (FidsData fidsData : phonesByFid) {
|
||||||
|
if (!phoneToFidsMap.containsKey(fidsData.getPhone())) {
|
||||||
|
phoneToFidsMap.put(fidsData.getPhone(), fidsData.getFid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("Start merging fids");
|
log.debug("Start merging fids");
|
||||||
for (PhoneFidMap phoneFid : subjects) {
|
for (PhoneFidMap phoneFid : subjects) {
|
||||||
Iterator<FidsData> iterator = phonesByFid.iterator();
|
String phone = "9" + phoneFid.getPhone();
|
||||||
while (iterator.hasNext()) {
|
Integer fid = phoneToFidsMap.get(phone);
|
||||||
FidsData fidsData = iterator.next();
|
if (fid != null) {
|
||||||
if (fidsData.getPhone().equals(9 + phoneFid.getPhone())) {
|
phoneFidMap.put(fid, phoneFid);
|
||||||
//fixme доступ по ссылке, страшно, придумать что-то еще
|
phoneToFidsMap.remove(phone);
|
||||||
phoneFidMap.put(fidsData.getFid(), phoneFid);
|
|
||||||
iterator.remove();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.debug("End merging fids");
|
log.debug("End merging fids");
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue