From 62f842ed088bd8c67cef3685330c770c900f2fbb Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 13 Jan 2026 13:27:32 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3299 --- .../service/MonitoringService.java | 25 +++++++++++-------- ...MonitoringSignalResponseStaxXmlWriter.java | 1 + 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java index 45e47c1..02b688c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringService.java @@ -164,7 +164,7 @@ public class MonitoringService { if (responsePath != null) { Path zipFile = ZipUtils.zipFile(responsePath); log.info("New report file by path: {}", zipFile); - updateSignalHits(userPackage, responsePath.toString(), zipFile.toString()); + updateSignalHits(userPackage, responsePath, zipFile); userPackageMapper.updatePackageLastDownloadedReport(userPackage.getId(), newReport); } else { log.info("Report was not created for package"); @@ -184,9 +184,13 @@ public class MonitoringService { // Выставляется в true, если хотя бы один субъект с мониторинга подошел под условие срабатывания сигнала. В этом случае отчет сохраняется AtomicBoolean generateResponse = new AtomicBoolean(false); - AtomicReference responsePath = new AtomicReference<>(loadedReportPath.resolveSibling( - userPackage.getUserId().substring(0, 6) + userPackage.getPackageName() + - CTUtil.getDateFromReportFileName(reportName) + ".xml")); + AtomicReference responsePath = new AtomicReference<>( + loadedReportPath.resolveSibling( + String.format("%s_%s_%s.xml", + userPackage.getUserId().substring(0, 6), + userPackage.getPackageName(), + CTUtil.getDateFromReportFileName(reportName)) + )); MonitoringSignalResponse response = new MonitoringSignalResponse(); //Имя пакета, переданного при установке @@ -257,22 +261,23 @@ public class MonitoringService { return subjects; } - private void updateSignalHits(UserPackage userPackage, String responsePath, String reportFileName) { + private void updateSignalHits(UserPackage userPackage, Path responsePath, Path reportFileName) { log.info("Updating signal hits for {}", userPackage.getPackageName()); LocalDateTime responseSentAt = LocalDateTime.now(); // Считываем результирующий файл пачками и обновляем таблицу hits - try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(Path.of(responsePath)), 8 * 1024 * 1024)) { + try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(responsePath), 8 * 1024 * 1024)) { staxXmlProcessor.read(in, MonitoringSignalResponse.class, - response -> { // как только считали пачку Subjects сразу обновлям таблицу hits + response -> { // как только считали пачку Subjects сразу обновляем таблицу hits List hits = new ArrayList<>(); response.getSubjects().getSubjects().forEach(subject -> { subject.getSignals().getSignals().forEach(signal -> { Hit hit = new Hit(); hit.setPackageId(userPackage.getId()); hit.setSubjectId(subject.getId()); - hit.setSignalType(1); + hit.setPhone(Long.valueOf(subject.getClientId())); + hit.setSignalType(signal.getSignalType()); hit.setResponseSentAt(responseSentAt); - hit.setReportFileName(reportFileName); + hit.setReportFileName(reportFileName.getFileName().toString()); hits.add(hit); }); if (!hits.isEmpty()) { @@ -288,7 +293,7 @@ public class MonitoringService { } catch (IOException e) { throw new RuntimeException("Error while updating hits", e); } - CtFileUtils.deleteQuietly(Path.of(responsePath)); // удалям результирующий xml файл с диска (Он уже заархивирован к этому моменту) + CtFileUtils.deleteQuietly(responsePath); // удалям результирующий xml файл с диска (Он уже заархивирован к этому моменту) log.info("Signal hits updated for package {}", userPackage.getPackageName()); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringSignalResponseStaxXmlWriter.java b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringSignalResponseStaxXmlWriter.java index 3cd9343..9f46c2c 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringSignalResponseStaxXmlWriter.java +++ b/src/main/java/ru/nbch/credit_tracker/service/xml/stax/MonitoringSignalResponseStaxXmlWriter.java @@ -32,6 +32,7 @@ public class MonitoringSignalResponseStaxXmlWriter extends StaxXmlWriter