This commit is contained in:
parent
6ad9d5606d
commit
09d7f53143
5 changed files with 38 additions and 16 deletions
|
|
@ -11,4 +11,6 @@ public interface PackagesRecordsMapper {
|
|||
List<Long> registerJson(@Param("json") String json);
|
||||
List<PackagesRecordsMap> findFullPhoneFidMap(@Param("packageId") Long packageId, @Param("limit") int limit, @Param("offset") int offset);
|
||||
Long deleteByPackageId(@Param("packageId") Long id);
|
||||
|
||||
PackagesRecordsMap findById(Long id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,8 +20,9 @@ import org.slf4j.MDC;
|
|||
import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.nbch.credit_tracker.config.settings.CreditTrackerSettings;
|
||||
import ru.nbch.credit_tracker.entities.app.FlagDetail;
|
||||
import ru.nbch.credit_tracker.entities.app.Hit;
|
||||
import ru.nbch.credit_tracker.entities.app.PackagesRecordsMap;
|
||||
import ru.nbch.credit_tracker.entities.app.PhonesMap;
|
||||
import ru.nbch.credit_tracker.entities.app.UserPackage;
|
||||
import ru.nbch.credit_tracker.entities.external_response.online_download.Inquiry;
|
||||
import ru.nbch.credit_tracker.entities.external_response.online_download.Person;
|
||||
|
|
@ -198,7 +199,7 @@ public class MonitoringService {
|
|||
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(loadedReportPath), 8 * 1024 * 1024)) {
|
||||
staxXmlProcessor.read(in, Persons.class,
|
||||
personsData -> { // как только считали пачку Persons сразу записали ее в результирующий файл
|
||||
List<Subject> subjectsBatch = processPersons(personsData.getPersons());
|
||||
List<Subject> subjectsBatch = processPersons(personsData.getPersons(), userPackage);
|
||||
if (!subjectsBatch.isEmpty()) {
|
||||
generateResponse.compareAndSet(false, true);
|
||||
}
|
||||
|
|
@ -220,17 +221,19 @@ public class MonitoringService {
|
|||
return responsePath.get();
|
||||
}
|
||||
|
||||
private List<Subject> processPersons(List<Person> persons) {
|
||||
private List<Subject> processPersons(List<Person> persons, UserPackage userPackage) {
|
||||
List<Subject> subjects = new ArrayList<>();
|
||||
for (Person person : persons) {
|
||||
Signals signals = new Signals();
|
||||
for (Inquiry inquiry : person.getInquiries()) {
|
||||
// Отбираем только тех фл, у которых bus_category in (MFO, MKK, MFK) и есть сигналы с кодом 16
|
||||
if (!CTUtil.checkBusCategory(inquiry.getBusCategory()) || inquiry.getSignals().stream().noneMatch(signal -> signal.getN().equals(16))) {
|
||||
Integer signalType = CTUtil.checkBusCategory(inquiry.getBusCategory());
|
||||
if (signalType == -1 || inquiry.getSignals().stream().noneMatch(signal -> signal.getN().equals(16)) ||
|
||||
!userPackage.getSignalTypes().contains(signalType.toString())) {
|
||||
continue;
|
||||
}
|
||||
Signal signal = new Signal();
|
||||
signal.setSignalType(1); // Код типа сигнала по внутреннему справочнику. В текущей версии: 1 = сигнал 16 от MFO/MKK/MFK
|
||||
signal.setSignalType(signalType); // Код типа сигнала по внутреннему справочнику. В текущей версии: 1 = сигнал 16 от MFO/MKK/MFK
|
||||
signal.setInquiryDate(inquiry.getDate()); // Дата и время запроса КИ
|
||||
signal.setInquiryPurpose(inquiry.getInqP()); // Цель запроса КИ
|
||||
signals.getSignals().add(signal);
|
||||
|
|
@ -238,13 +241,14 @@ public class MonitoringService {
|
|||
|
||||
// Если есть хотя бы один заполненный сигнал, значит заполняем остальные данные
|
||||
if (!signals.getSignals().isEmpty()) {
|
||||
FlagDetail flagDetail = flagDetailMapper.getByMapId(person.getUid());
|
||||
if (flagDetail != null) {
|
||||
PackagesRecordsMap packagesRecord = packageRecordsService.findPackageRecordsById(person.getUid());
|
||||
PhonesMap cacheByPhone = packageRecordsService.findCachedByPhone(Long.valueOf(packagesRecord.getPhone()));
|
||||
if (cacheByPhone != null) {
|
||||
Subject subject = new Subject();
|
||||
subject.setId(flagDetail.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
||||
subject.setClientId(flagDetail.getPhone());
|
||||
subject.setFlagDebt5000(flagDetail.getFlagDebt5000());
|
||||
subject.setFlag9012(flagDetail.getFlag90days());
|
||||
subject.setId(packagesRecord.getSubjectId()); // Уникальный идентификатор субъекта (равен Id из XML-пакета при установке мониторинга)
|
||||
subject.setClientId(packagesRecord.getPhone());
|
||||
subject.setFlagDebt5000(cacheByPhone.getFlagDebt5000());
|
||||
subject.setFlag9012(cacheByPhone.getFlag90days());
|
||||
subject.setSignals(signals);
|
||||
subjects.add(subject);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,11 @@ public class PackageRecordsService {
|
|||
}
|
||||
}
|
||||
|
||||
public PhonesMap findByPhone(Long phone) {
|
||||
public PhonesMap findCachedByPhone(Long phone) {
|
||||
return phonesMapMapper.findByPhone(phone);
|
||||
}
|
||||
|
||||
public PackagesRecordsMap findPackageRecordsById(Long id) {
|
||||
return packagesRecordsMapper.findById(id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,16 +39,19 @@ public class CTUtil {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static boolean checkBusCategory(String busCategory) {
|
||||
public static Integer checkBusCategory(String busCategory) {
|
||||
if (StringUtils.isBlank(busCategory)) {
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
switch (busCategory) {
|
||||
case "MFO", "MKK", "MFK" -> {
|
||||
return true;
|
||||
return 1;
|
||||
}
|
||||
case "BANK" -> {
|
||||
return 2;
|
||||
}
|
||||
default -> {
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,15 @@
|
|||
<result property="errorText" column="error_text"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="findById" parameterType="long" resultMap="PhoneFidMapResultMap">
|
||||
SELECT id,
|
||||
package_id,
|
||||
subject_id,
|
||||
phone,
|
||||
error_text
|
||||
FROM signals_packages_records
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
<select id="registerJson" parameterType="string" resultType="long">
|
||||
WITH src AS (SELECT row_number() OVER () AS rn,
|
||||
subject_id,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue