From 0cc25b5a4bcb7ea879eb4aab570d318c53733c03 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Thu, 11 Sep 2025 16:06:04 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3199 Moved findErrors into separate service --- .../credit_tracker/facade/SignalFacade.java | 28 +++---------- .../MonitoringErrorProcesingService.java | 42 +++++++++++++++++++ .../UpdateProcessingPackagesService.java | 7 +++- .../service/UpdatingFlagsService.java | 4 ++ 4 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java index 9c1ca2e..12e7bf7 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java @@ -1,7 +1,6 @@ package ru.nbch.credit_tracker.facade; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.io.FileUrlResource; import org.springframework.core.io.Resource; @@ -22,6 +21,7 @@ import ru.nbch.credit_tracker.enums.SignalError; import ru.nbch.credit_tracker.enums.Status; import ru.nbch.credit_tracker.enums.XmlErrorFormat; import ru.nbch.credit_tracker.exceptions.SignalClientException; +import ru.nbch.credit_tracker.service.MonitoringErrorProcesingService; import ru.nbch.credit_tracker.service.SignalService; import ru.nbch.credit_tracker.service.scoring.AuthorizationService; import ru.nbch.credit_tracker.service.signal.SignalRestService; @@ -55,6 +55,7 @@ public class SignalFacade { private final AuthorizationService authorizationService; private final SignalService signalService; private final SignalRestService signalRestService; + private final MonitoringErrorProcesingService monitoringErrorProcesingService; private final StaxXmlProcessor staxXmlProcessor; private final ExecutorService executor; @@ -65,12 +66,14 @@ public class SignalFacade { AuthorizationService authorizationService, SignalService signalService, SignalRestService signalRestService, + MonitoringErrorProcesingService monitoringErrorProcesingService, StaxXmlProcessor staxXmlProcessor, @Qualifier("executorService") ExecutorService executor) { this.config = config; this.authorizationService = authorizationService; this.signalService = signalService; this.signalRestService = signalRestService; + this.monitoringErrorProcesingService = monitoringErrorProcesingService; this.staxXmlProcessor = staxXmlProcessor; this.executor = executor; this.maxXmlFileSize = config.getMaxXmlFileSize() * 1024 * 1024; @@ -226,7 +229,7 @@ public class SignalFacade { if (signalRestService.setupMonitoring(packageId)) { log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ON_MONITORING); - findErrors(packageId); + monitoringErrorProcesingService.findErrors(packageId); } else { log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ERROR); @@ -239,27 +242,6 @@ public class SignalFacade { }); } - private void findErrors(Integer packageId) { - UserPackage userPackage = signalService.findPackage(packageId); - if (userPackage != null) { - String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName(); - log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId); - String fileName = signalRestService.getErrorFileName(packageId, packCode); - if (StringUtils.isNotBlank(fileName)) { - String filePath = signalRestService.loadErrorFile(packageId, fileName); - if (StringUtils.isNotBlank(filePath)) { - try { - signalService.updateSubjectsErrors(filePath, packageId); - CTUtil.removeFile(filePath); - } catch (Exception e) { - log.error("Ошибка при записи сообщений об ошибках в сформированных субъектах для мониторинга. Файл ошибок не будет удален. filePath = {}, Package_id = {}", - fileName, packageId, e); - } - } - } - } - } - private boolean isZipFile(MultipartFile file) { return file.getContentType() != null && (file.getContentType().equals("application/zip") || file.getContentType().equals("application/x-zip-compressed")) || diff --git a/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java new file mode 100644 index 0000000..68dbe66 --- /dev/null +++ b/src/main/java/ru/nbch/credit_tracker/service/MonitoringErrorProcesingService.java @@ -0,0 +1,42 @@ +package ru.nbch.credit_tracker.service; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import ru.nbch.credit_tracker.entities.dto.UserPackage; +import ru.nbch.credit_tracker.service.signal.SignalRestService; +import ru.nbch.credit_tracker.utils.CTUtil; + +@Slf4j +@Service +public class MonitoringErrorProcesingService { + + private final SignalService signalService; + private final SignalRestService signalRestService; + + public MonitoringErrorProcesingService(SignalService signalService, SignalRestService signalRestService) { + this.signalService = signalService; + this.signalRestService = signalRestService; + } + + public void findErrors(Integer packageId) { + UserPackage userPackage = signalService.findPackage(packageId); + if (userPackage != null) { + String packCode = userPackage.getUserId().substring(0, 6) + "_" + userPackage.getPackageName(); + log.info("Проверка на ошибки при постановке на мониторинг. packCode={}, packageId={}", packCode, packageId); + String fileName = signalRestService.getErrorFileName(packageId, packCode); + if (StringUtils.isNotBlank(fileName)) { + String filePath = signalRestService.loadErrorFile(packageId, fileName); + if (StringUtils.isNotBlank(filePath)) { + try { + signalService.updateSubjectsErrors(filePath, packageId); + CTUtil.removeFile(filePath); + } catch (Exception e) { + log.error("Ошибка при записи сообщений об ошибках в сформированных субъектах для мониторинга. Файл ошибок не будет удален. filePath = {}, Package_id = {}", + fileName, packageId, e); + } + } + } + } + } +} diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java index 9f4191c..2888c82 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdateProcessingPackagesService.java @@ -18,10 +18,14 @@ public class UpdateProcessingPackagesService { private final SignalService signalService; private final SignalRestService signalRestService; + private final MonitoringErrorProcesingService monitoringErrorProcesingService; - public UpdateProcessingPackagesService(SignalService signalService, SignalRestService signalRestService) { + public UpdateProcessingPackagesService(SignalService signalService, + SignalRestService signalRestService, + MonitoringErrorProcesingService monitoringErrorProcesingService) { this.signalService = signalService; this.signalRestService = signalRestService; + this.monitoringErrorProcesingService = monitoringErrorProcesingService; } public void run() { @@ -45,6 +49,7 @@ public class UpdateProcessingPackagesService { if (signalRestService.setupMonitoring(packageId)) { log.info("Package was successfully registered in signal service. PackageId: {} PackageName: {}", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ON_MONITORING); + monitoringErrorProcesingService.findErrors(packageId); } else { log.info("Package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ERROR); diff --git a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java index 954d7a0..19549fb 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UpdatingFlagsService.java @@ -27,14 +27,17 @@ public class UpdatingFlagsService { private final SignalService signalService; private final SignalRestService signalRestService; + private final MonitoringErrorProcesingService monitoringErrorProcesingService; private final Long daysToUpdateFlags; private final Long updateFlagsInterval; public UpdatingFlagsService(SignalService signalService, SignalRestService signalRestService, + MonitoringErrorProcesingService monitoringErrorProcesingService, CreditTrackerSettings config) { this.signalService = signalService; this.signalRestService = signalRestService; + this.monitoringErrorProcesingService = monitoringErrorProcesingService; this.daysToUpdateFlags = config.getDaysToUpdateFlags() != null ? config.getDaysToUpdateFlags() : 1; this.updateFlagsInterval = config.getUpdateFlagsInterval() != null ? config.getUpdateFlagsInterval() : 1; } @@ -63,6 +66,7 @@ public class UpdatingFlagsService { if (signalRestService.setupMonitoring(packageId)) { log.info("Flags were updated successfully. PackageId: {} PackageName: {}. Package status changed to ON_MONITORING", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ON_MONITORING); + monitoringErrorProcesingService.findErrors(packageId); } else { log.info("Updated package registration was rejected by signal service. PackageId: {} PackageName: {}", packageId, packageName); signalService.updatePackageStatus(packageId, Status.ERROR);