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