From 6c99e6408ed0e981236a25150cba87aca1c84fa5 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 11 Feb 2026 12:30:20 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3241 --- docker_compose/docker-compose.yml | 1 + .../credit_tracker/facade/SignalFacadeV3.java | 23 +++++++++++++++---- .../mapper/signal/UserPackageMapper.java | 1 + .../service/UserPackageService.java | 4 ++++ .../mode/monitoring/MonitoringService.java | 3 --- .../mapper/signal/UserPackageMapper.xml | 17 ++++++++++++++ 6 files changed, 42 insertions(+), 7 deletions(-) diff --git a/docker_compose/docker-compose.yml b/docker_compose/docker-compose.yml index 6226551..67f5c4c 100644 --- a/docker_compose/docker-compose.yml +++ b/docker_compose/docker-compose.yml @@ -16,6 +16,7 @@ services: - XMX=4G - XMS=1G - TZ=Europe/Moscow + - ${JVM_EXTRA_OPTS:-} \ - APM_SERVICE_NAME=${APM_SERVICE_NAME}-${APP_JAR} - APM_SERVER_URLS=${APM_SERVER_URLS} - APM_ENVIRONMENT=${APM_ENVIRONMENT} diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java index b355e68..1495aa4 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java @@ -9,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; import java.util.concurrent.ExecutorService; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.xml.stream.XMLStreamException; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.FileUrlResource; @@ -46,7 +48,6 @@ import ru.nbch.credit_tracker.service.task.PipelinePackageOrchestrator; import ru.nbch.credit_tracker.service.task.SetupParam; import ru.nbch.credit_tracker.service.task.impl.PipelineMode; import ru.nbch.credit_tracker.service.task.impl.Saver; -import ru.nbch.credit_tracker.utils.CTUtil; import ru.nbch.credit_tracker.utils.CtFileUtils; import ru.nbch.credit_tracker.utils.EnumUtil; import ru.nbch.credit_tracker.utils.LogUtil; @@ -68,6 +69,7 @@ public class SignalFacadeV3 { private final ExecutorService pipelineExecutorService; private final ExecutorService saverExecutorService; private final PipelinePackageOrchestrator pipelineOrchestrator; + private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?[A-Za-z0-9]{6})_(?[A-Za-z0-9_]+)_(?\\d{4}-\\d{2}-\\d{2}T\\d{2}-\\d{2}-\\d{2})(?:\\.xml)?\\.zip$"); public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator, CreditTrackerSettings config, @@ -330,11 +332,24 @@ public class SignalFacadeV3 { public ResponseEntity downloadFile(String fileName) { try { - String memberCode = CTUtil.getMemberCodeFromFileName(fileName); - if (memberCode == null) { + Matcher matcher = DOWNLOAD_FILE_PATTERN.matcher(fileName); + String packageName = null; + if (matcher.matches()) { + packageName = matcher.group("package"); + } + + if (packageName == null) { throw clientExcp(SignalError.ERROR_014, XmlErrorFormat.MonitoringDownloadError, fileName); } - String dirPath = config.getLoadDir() + File.separator + memberCode; + UserPackage userPackage = userPackageService.findByPackageName(packageName); + + if (userPackage == null) { + throw clientExcp(SignalError.ERROR_014, XmlErrorFormat.MonitoringDownloadError, fileName); + } + String dirPath = config.getLoadDir() + + File.separator + "tmp" + + File.separator + userPackage.getUserId() + + File.separator + userPackage.getPackageName(); File folder = new File(dirPath); if (folder.exists() && folder.isDirectory()) { diff --git a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java index 4323aaa..3e268b1 100644 --- a/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java +++ b/src/main/java/ru/nbch/credit_tracker/mapper/signal/UserPackageMapper.java @@ -32,6 +32,7 @@ public interface UserPackageMapper { List findAllPackagesByStatus(@Param("statuses") String... statuses); List findAllPackagesByUserId(@Param("userId") String userId); + UserPackage findByPackageName(@Param("packageName") String packageName); List findOnMonitoringPackages(); List findByMemberCodeAndPackageName(@Param("memberCode") String memberCode, @Param("packageName") String packageName); diff --git a/src/main/java/ru/nbch/credit_tracker/service/UserPackageService.java b/src/main/java/ru/nbch/credit_tracker/service/UserPackageService.java index 789babc..56986af 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/UserPackageService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/UserPackageService.java @@ -59,6 +59,10 @@ public class UserPackageService { return userPackageMapper.findUserPackages(userId.substring(0, 6), Arrays.asList(Status.ON_MONITORING.name(), Status.NO_FID.name())); } + public UserPackage findByPackageName(String packageName) { + return userPackageMapper.findByPackageName(packageName); + } + public void setFidChanged(List id) { userPackageMapper.setFidChanged(id); } diff --git a/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java b/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java index 4fadb09..e6e6f68 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/mode/monitoring/MonitoringService.java @@ -91,9 +91,6 @@ public class MonitoringService { List packages = userPackageMapper.findAllPackagesByStatus(Status.ON_MONITORING.name(), Status.PROCESSING_REPEATED.name()); for (UserPackage userPackage : packages) { - if (!userPackage.getPackageName().equals("MY_BATCH_TEST_0209_01")) { - continue; - } MDC.put("ru.nbch.credit_tracker.log.mdc.key", "[" + userPackage.getPackageName() + "]"); processPackage(userPackage); MDC.remove("ru.nbch.credit_tracker.log.mdc.key"); diff --git a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml index 3470183..6088cc1 100644 --- a/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml +++ b/src/main/resources/mybatis/mapper/signal/UserPackageMapper.xml @@ -131,6 +131,23 @@ LIMIT 1 + +