This commit is contained in:
parent
8475bb5f37
commit
62f842ed08
2 changed files with 16 additions and 10 deletions
|
|
@ -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<Path> responsePath = new AtomicReference<>(loadedReportPath.resolveSibling(
|
||||
userPackage.getUserId().substring(0, 6) + userPackage.getPackageName() +
|
||||
CTUtil.getDateFromReportFileName(reportName) + ".xml"));
|
||||
AtomicReference<Path> 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<Hit> 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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ public class MonitoringSignalResponseStaxXmlWriter extends StaxXmlWriter<Monitor
|
|||
writerWrapper.addStartDocument(charsetName);
|
||||
|
||||
writerWrapper.addStartElement("MonitoringSignalResponse");
|
||||
writerWrapper.addSimplelement("PackageName", obj.getPackageName());
|
||||
writerWrapper.addStartElement("Subjects");
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue