Skip to content
Snippets Groups Projects

Ozg 7037 refactor package structure

1 unresolved thread
10 files
+ 428
290
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -21,7 +21,7 @@
@@ -21,7 +21,7 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
*/
package de.ozgcloud.archive.vorgang;
package de.ozgcloud.archive.archivierung;
import java.util.function.Consumer;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.Predicate;
@@ -34,12 +34,11 @@ import org.springframework.security.core.context.SecurityContext;
@@ -34,12 +34,11 @@ import org.springframework.security.core.context.SecurityContext;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Component;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.attributes.ClientAttributeService;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.callcontext.CurrentUserService;
import de.ozgcloud.archive.common.callcontext.CurrentUserService;
import de.ozgcloud.archive.common.command.CommandService;
import de.ozgcloud.archive.common.command.CommandService;
import de.ozgcloud.archive.common.errorhandling.TimeoutException;
import de.ozgcloud.archive.common.errorhandling.TimeoutException;
import de.ozgcloud.archive.export.ExportService;
import de.ozgcloud.archive.vorgang.VorgangService;
import de.ozgcloud.command.Command;
import de.ozgcloud.command.Command;
import de.ozgcloud.command.CommandCreatedEvent;
import de.ozgcloud.command.CommandCreatedEvent;
import de.ozgcloud.command.CommandFailedEvent;
import de.ozgcloud.command.CommandFailedEvent;
@@ -69,15 +68,14 @@ class ArchiveEventListener {
@@ -69,15 +68,14 @@ class ArchiveEventListener {
@Qualifier(ArchiveManagerConfiguration.CURRENT_USER_SERVICE_NAME) // NOSONAR
@Qualifier(ArchiveManagerConfiguration.CURRENT_USER_SERVICE_NAME) // NOSONAR
private final CurrentUserService currentUserService;
private final CurrentUserService currentUserService;
@Qualifier(ArchiveManagerConfiguration.CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
private final ClientAttributeService clientAttributeService;
@Qualifier(ArchiveManagerConfiguration.VORGANG_SERVICE_NAME) // NOSONAR
@Qualifier(ArchiveManagerConfiguration.VORGANG_SERVICE_NAME) // NOSONAR
private final VorgangService vorgangService;
private final VorgangService vorgangService;
private final ApplicationEventPublisher eventPublisher;
private final ApplicationEventPublisher eventPublisher;
 
 
@Qualifier(ArchiveManagerConfiguration.COMMAND_SERVICE_NAME) // NOSONAR
private final CommandService commandService;
private final CommandService commandService;
private final ExportService exportService;
private final ArchiveService archiveService;
@EventListener(condition = IS_ARCHIVE_VORGANG_EVENT)
@EventListener(condition = IS_ARCHIVE_VORGANG_EVENT)
void onArchiveVorgangEvent(CommandCreatedEvent event) {
void onArchiveVorgangEvent(CommandCreatedEvent event) {
@@ -85,14 +83,14 @@ class ArchiveEventListener {
@@ -85,14 +83,14 @@ class ArchiveEventListener {
}
}
void doLockVorgang(Command command) {
void doLockVorgang(Command command) {
clientAttributeService.setVorgangArchiving(command.getVorgangId());
archiveService.setVorgangArchiving(command.getVorgangId());
vorgangService.lockVorgang(command);
vorgangService.lockVorgang(command);
}
}
@EventListener(condition = IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT)
@EventListener(condition = IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT)
public void onVorgangLockedEvent(VorgangLockedEvent event) {
public void onVorgangLockedEvent(VorgangLockedEvent event) {
waitForPendingCommandsToFinish(event.getCommand().getVorgangId(), WAIT_INTERVAL);
waitForPendingCommandsToFinish(event.getCommand().getVorgangId(), WAIT_INTERVAL);
runWithSecurityContext(event.getCommand(), exportService::archiveVorgang);
runWithSecurityContext(event.getCommand(), archiveService::archiveVorgang);
}
}
void waitForPendingCommandsToFinish(String vorgangId, long waitIntervalInMillis) {
void waitForPendingCommandsToFinish(String vorgangId, long waitIntervalInMillis) {
@@ -21,7 +21,14 @@
@@ -21,7 +21,14 @@
* Die sprachspezifischen Genehmigungen und Beschränkungen
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
*/
package de.ozgcloud.archive.attributes;
package de.ozgcloud.archive.archivierung;
Please register or sign in to reply
 
 
import java.io.File;
 
import java.io.IOException;
 
import java.util.UUID;
 
 
import jakarta.activation.DataHandler;
 
import jakarta.activation.FileDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
@@ -32,17 +39,22 @@ import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
@@ -32,17 +39,22 @@ import de.ozgcloud.apilib.client_attribute.OzgCloudClientAttributeService;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.apilib.vorgang.OzgCloudVorgangIdMapper;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
import de.ozgcloud.archive.common.callcontext.CallContextUser;
 
import de.ozgcloud.archive.common.xta.XtaService;
 
import de.ozgcloud.archive.export.ExportService;
 
import de.ozgcloud.command.Command;
 
import de.ozgcloud.common.errorhandling.TechnicalException;
 
import de.ozgcloud.xta.client.model.XtaFile;
import lombok.RequiredArgsConstructor;
import lombok.RequiredArgsConstructor;
@Service(ArchiveManagerConfiguration.CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public class ClientAttributeService {
class ArchiveService {
public static final String ATTRIBUTE_NAME_ANTRAG_ARCHIVING = "ARCHIVING";
public static final String ATTRIBUTE_NAME_ANTRAG_ARCHIVING = "ARCHIVING";
private final XtaService xtaService;
 
private final ExportService exportService;
@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
@Qualifier(ArchiveManagerConfiguration.OZGCLOUD_CLIENT_ATTRIBUTE_SERVICE_NAME) // NOSONAR
private final OzgCloudClientAttributeService ozgCloudAttributesService;
private final OzgCloudClientAttributeService ozgCloudAttributesService;
private final OzgCloudVorgangIdMapper vorgangIdMapper;
private final OzgCloudVorgangIdMapper vorgangIdMapper;
public void setVorgangArchiving(String vorgangId) {
public void setVorgangArchiving(String vorgangId) {
@@ -58,4 +70,37 @@ public class ClientAttributeService {
@@ -58,4 +70,37 @@ public class ClientAttributeService {
.build();
.build();
}
}
 
public void archiveVorgang(Command command) {
 
xtaService.sendXdomeaFile(buildXdomeaXtaFile(command.getVorgangId()));
 
}
 
 
XtaFile buildXdomeaXtaFile(String vorgangId) {
 
var fileNameId = createFileNameId();
 
return XtaFile.builder()
 
.name(exportService.buildXdomeaFileName(fileNameId))
 
.content(createFileContent(vorgangId, fileNameId))
 
.contentType("application/zip")
 
.build();
 
}
 
 
String createFileNameId() {
 
return UUID.randomUUID().toString();
 
}
 
 
DataHandler createFileContent(String vorgangId, String fileNameId) {
 
try {
 
var tempFile = createTempFile(fileNameId);
 
var fileDataSource = new FileDataSource(tempFile);
 
exportService.writeXdomeaFileContent(vorgangId, fileNameId, fileDataSource.getOutputStream());
 
return new DataHandler(fileDataSource);
 
} catch (IOException e) {
 
throw new TechnicalException("Error on creating file content for xDomea file!", e);
 
}
 
}
 
 
File createTempFile(String fileNameId) throws IOException {
 
var tempFile = File.createTempFile(fileNameId, ".zip");
 
tempFile.deleteOnExit();
 
return tempFile;
 
}
}
}
@@ -23,22 +23,17 @@
@@ -23,22 +23,17 @@
*/
*/
package de.ozgcloud.archive.export;
package de.ozgcloud.archive.export;
import java.io.File;
import java.io.IOException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.nio.charset.StandardCharsets;
import java.util.Optional;
import java.util.Optional;
import java.util.Set;
import java.util.Set;
import java.util.UUID;
import java.util.function.Function;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipOutputStream;
import jakarta.activation.DataHandler;
import jakarta.activation.FileDataSource;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.stereotype.Service;
@@ -46,7 +41,6 @@ import org.springframework.stereotype.Service;
@@ -46,7 +41,6 @@ import org.springframework.stereotype.Service;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.ArchiveManagerConfiguration;
import de.ozgcloud.archive.bescheid.ExportBescheidService;
import de.ozgcloud.archive.bescheid.ExportBescheidService;
import de.ozgcloud.archive.common.ExportFilenameGenerator;
import de.ozgcloud.archive.common.ExportFilenameGenerator;
import de.ozgcloud.archive.common.xta.XtaService;
import de.ozgcloud.archive.file.ExportFileService;
import de.ozgcloud.archive.file.ExportFileService;
import de.ozgcloud.archive.file.OzgFile;
import de.ozgcloud.archive.file.OzgFile;
import de.ozgcloud.archive.historie.ExportHistorieService;
import de.ozgcloud.archive.historie.ExportHistorieService;
@@ -56,9 +50,7 @@ import de.ozgcloud.archive.vorgang.Eingang;
@@ -56,9 +50,7 @@ import de.ozgcloud.archive.vorgang.Eingang;
import de.ozgcloud.archive.vorgang.EingangHeader;
import de.ozgcloud.archive.vorgang.EingangHeader;
import de.ozgcloud.archive.vorgang.VorgangService;
import de.ozgcloud.archive.vorgang.VorgangService;
import de.ozgcloud.archive.vorgang.VorgangWithEingang;
import de.ozgcloud.archive.vorgang.VorgangWithEingang;
import de.ozgcloud.command.Command;
import de.ozgcloud.common.errorhandling.TechnicalException;
import de.ozgcloud.common.errorhandling.TechnicalException;
import de.ozgcloud.xta.client.model.XtaFile;
import de.xoev.xdomea.AbgabeAbgabe0401;
import de.xoev.xdomea.AbgabeAbgabe0401;
import lombok.RequiredArgsConstructor;
import lombok.RequiredArgsConstructor;
@@ -80,46 +72,11 @@ public class ExportService {
@@ -80,46 +72,11 @@ public class ExportService {
private final ExportKommentarService exportKommentarService;
private final ExportKommentarService exportKommentarService;
private final ExportNachrichtService exportNachrichtService;
private final ExportNachrichtService exportNachrichtService;
private final ExportBescheidService exportBescheidService;
private final ExportBescheidService exportBescheidService;
private final XtaService xtaService;
public void archiveVorgang(Command command) {
xtaService.sendXdomeaFile(buildXdomeaXtaFile(command.getVorgangId()));
}
XtaFile buildXdomeaXtaFile(String vorgangId) {
var fileNameId = createFileNameId();
return XtaFile.builder()
.name(buildXdomeaFileName(fileNameId))
.content(createFileContent(vorgangId, fileNameId))
.contentType("application/zip")
.build();
}
String createFileNameId() {
return UUID.randomUUID().toString();
}
public String buildXdomeaFileName(String fileNameId) {
public String buildXdomeaFileName(String fileNameId) {
return String.format(EXPORT_XDOMEA_FILENAME_TEMPLATE, fileNameId);
return String.format(EXPORT_XDOMEA_FILENAME_TEMPLATE, fileNameId);
}
}
DataHandler createFileContent(String vorgangId, String fileNameId) {
try {
var tempFile = createTempFile(fileNameId);
var fileDataSource = new FileDataSource(tempFile);
writeXdomeaFileContent(vorgangId, fileNameId, fileDataSource.getOutputStream());
return new DataHandler(fileDataSource);
} catch (IOException e) {
throw new TechnicalException("Error on creating file content for xDomea file!", e);
}
}
File createTempFile(String fileNameId) throws IOException {
var tempFile = File.createTempFile(fileNameId, ".zip");
tempFile.deleteOnExit();
return tempFile;
}
public void writeXdomeaFileContent(String vorgangId, String filenameId, OutputStream outputStream) {
public void writeXdomeaFileContent(String vorgangId, String filenameId, OutputStream outputStream) {
var exportData = collectExportData(vorgangId, filenameId);
var exportData = collectExportData(vorgangId, filenameId);
writeZipFile(exportData, outputStream);
writeZipFile(exportData, outputStream);
Loading