http://jira.mfd.msk:8088/browse/BKI-3241 old destination for client's reports

This commit is contained in:
etreschenkov 2026-02-11 15:38:52 +03:00
parent 6c99e6408e
commit 5fc51a58c8
3 changed files with 20 additions and 20 deletions

View file

@ -10,7 +10,7 @@
</parent> </parent>
<groupId>ru.nbch</groupId> <groupId>ru.nbch</groupId>
<artifactId>credit-tracker</artifactId> <artifactId>credit-tracker</artifactId>
<version>2.21.1</version> <version>2.21.2</version>
<name>credit_tracker</name> <name>credit_tracker</name>
<description>Credit Tracker Application</description> <description>Credit Tracker Application</description>

View file

@ -303,8 +303,10 @@ public class SignalFacadeV3 {
throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName); throw clientExcp(SignalError.ERROR_012, XmlErrorFormat.MonitoringReportListError, packageName);
} }
Path folderPath = Path.of(config.getLoadDir(),"tmp", userPackage.getUserId(), userPackage.getPackageName()); String memberCode = username.substring(0, 6);
File folder = folderPath.toFile(); String filePrefix = (memberCode + "_" + packageName).toUpperCase();
String dirPath = config.getLoadDir() + File.separator + memberCode;
File folder = new File(dirPath);
log.debug("searching for reports from: {}", folder.getAbsolutePath()); log.debug("searching for reports from: {}", folder.getAbsolutePath());
MonitoringReportListResponse.Reports reports = new MonitoringReportListResponse.Reports(); MonitoringReportListResponse.Reports reports = new MonitoringReportListResponse.Reports();
@ -312,7 +314,7 @@ public class SignalFacadeV3 {
File[] files = folder.listFiles(); File[] files = folder.listFiles();
if (files != null) { if (files != null) {
for (File file : files) { for (File file : files) {
if (file.isFile() && file.getName().endsWith(".zip")) { if (file.isFile() && file.getName().startsWith(filePrefix)) {
reports.getReports().add(file.getName()); reports.getReports().add(file.getName());
} }
} }
@ -333,27 +335,20 @@ public class SignalFacadeV3 {
public ResponseEntity<Resource> downloadFile(String fileName) { public ResponseEntity<Resource> downloadFile(String fileName) {
try { try {
Matcher matcher = DOWNLOAD_FILE_PATTERN.matcher(fileName); Matcher matcher = DOWNLOAD_FILE_PATTERN.matcher(fileName);
String packageName = null; String memberCode = null;
if (matcher.matches()) { if (matcher.matches()) {
packageName = matcher.group("package"); memberCode = matcher.group("member");
} }
if (packageName == null) { if (memberCode == null) {
throw clientExcp(SignalError.ERROR_014, XmlErrorFormat.MonitoringDownloadError, fileName); throw clientExcp(SignalError.ERROR_014, XmlErrorFormat.MonitoringDownloadError, fileName);
} }
UserPackage userPackage = userPackageService.findByPackageName(packageName); Path reportRootPath = Path.of(config.getLoadDir(), memberCode);
File folder = reportRootPath.toFile();
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()) { if (folder.exists() && folder.isDirectory()) {
File file = new File(dirPath + File.separator + fileName); Path filePath = reportRootPath.resolve(fileName);
File file = filePath.toFile();
if (file.exists() && file.isFile()) { if (file.exists() && file.isFile()) {
return ResponseEntity.ok().body(new FileUrlResource(file.getPath())); return ResponseEntity.ok().body(new FileUrlResource(file.getPath()));
} }

View file

@ -186,10 +186,15 @@ public class MonitoringService {
// Выставляется в true, если хотя бы один субъект с мониторинга подошел под условие срабатывания сигнала. В этом случае отчет сохраняется // Выставляется в true, если хотя бы один субъект с мониторинга подошел под условие срабатывания сигнала. В этом случае отчет сохраняется
AtomicBoolean generateResponse = new AtomicBoolean(false); AtomicBoolean generateResponse = new AtomicBoolean(false);
String commonMembercode = userPackage.getUserId().substring(0, 6);
Path rootReportPath = Path.of(config.getLoadDir(), commonMembercode);
if (!Files.exists(rootReportPath)) {
Files.createDirectories(rootReportPath);
}
AtomicReference<Path> responsePath = new AtomicReference<>( AtomicReference<Path> responsePath = new AtomicReference<>(
loadedReportPath.resolveSibling( rootReportPath.resolve(
String.format("%s_%s_%s.xml", String.format("%s_%s_%s.xml",
userPackage.getUserId().substring(0, 6), commonMembercode,
userPackage.getPackageName(), userPackage.getPackageName(),
CTUtil.getDateFromReportFileName(reportName)) CTUtil.getDateFromReportFileName(reportName))
)); ));