diff --git a/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java b/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java index f778c0c..cb2f859 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java +++ b/src/main/java/ru/nbch/credit_tracker/service/task/impl/FidNameUpdater.java @@ -49,15 +49,17 @@ public class FidNameUpdater implements Handler { List notFoundFidPhones = new ArrayList<>(); subjects.forEach(subjectProfile -> { Name name = nameByPhone.get(CTUtil.normalizePhoneNumber(subjectProfile.getPhone())); - if (subjectProfile.getFid() == null && name == null) { + if (name != null) { + if (subjectProfile.getFid() == null || !subjectProfile.getFid().equals(name.getFid())) { + subjectProfile.setFid(name.getFid()); + subjectProfile.getNameData().setFirstName(name.getFirst()); + subjectProfile.getNameData().setLastName(name.getLast()); + subjectProfile.getNameData().setMiddleName(name.getMiddle()); + subjectProfile.getNameData().setBirthDate(name.getBirthDate()); + changingFidPhones.add(subjectProfile); + } + } else if (subjectProfile.getFid() != null) { notFoundFidPhones.add(subjectProfile.getPhone()); - } else if (subjectProfile.getFid() == null || !subjectProfile.getFid().equals(name.getFid())) { - subjectProfile.setFid(name.getFid()); - subjectProfile.getNameData().setFirstName(name.getFirst()); - subjectProfile.getNameData().setLastName(name.getLast()); - subjectProfile.getNameData().setMiddleName(name.getMiddle()); - subjectProfile.getNameData().setBirthDate(name.getBirthDate()); - changingFidPhones.add(subjectProfile); } }); List changingFids = new ArrayList<>(); diff --git a/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml b/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml index e113bbd..4b19495 100644 --- a/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/PackageRecordsMapper.xml @@ -28,7 +28,10 @@ FROM json_to_recordset(#{json}::json) AS t( phone bigint )) - select distinct (package_id) from signals_packages_records where phone_l in (select * from src) + select distinct (package_id) + from signals_packages_records spr + join signals_user_packages sup on sup.id = spr.package_id + where spr.phone_l in (select * from src) and sup.status = 'ON_MONITORING'