RED-2200 - Dossier Template export and import
- fix conflict for watermarks - when import to override a template and template's new name is not valid, set a valid one
This commit is contained in:
parent
618b5dc0bb
commit
4e2a07ae57
@ -109,8 +109,12 @@ public class DossierTemplateImportService {
|
||||
var watermarkNameToEntity = currentWatermarkConfigs.stream().collect(Collectors.toMap(WatermarkEntity::getName, Function.identity()));
|
||||
|
||||
request.getWatermarks().forEach(watermark -> {
|
||||
log.info("watermark to add: " + watermark.getName());
|
||||
if (!watermarkNameToEntity.isEmpty() && watermarkNameToEntity.get(watermark.getName()) != null) {
|
||||
|
||||
watermark.setId(watermarkNameToEntity.get(watermark.getName()).getId());
|
||||
} else {
|
||||
watermark.setId(null);
|
||||
}
|
||||
watermark.setDossierTemplateId(dossierTemplateId);
|
||||
watermarkService.createOrUpdateWatermark(watermark);
|
||||
@ -265,7 +269,7 @@ public class DossierTemplateImportService {
|
||||
|
||||
private void updateDossierTemplateMeta(DossierTemplateEntity dossierTemplateEntity, DossierTemplate dossierTemplate, String userId) {
|
||||
if (!dossierTemplateEntity.getName().equalsIgnoreCase(dossierTemplate.getName())) {
|
||||
dossierTemplatePersistenceService.validateDossierTemplateNameIsUnique(dossierTemplate.getName());
|
||||
this.validateDossierTemplateName(dossierTemplate);
|
||||
}
|
||||
OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
|
||||
dossierTemplateEntity.setName(dossierTemplate.getName());
|
||||
|
||||
@ -13,6 +13,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.*;
|
||||
@ -49,14 +50,19 @@ public class DossierTemplateExportService {
|
||||
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
|
||||
private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
|
||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||
private final DictionaryPersistenceService dictionaryPersistenceService;
|
||||
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
|
||||
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
||||
private final RulesPersistenceService rulesPersistenceService;
|
||||
private final FileManagementStorageService fileManagementStorageService;
|
||||
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
|
||||
private final ColorsService colorsService;
|
||||
private final EntryPersistenceService entryPersistenceService;
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
private final WatermarkService watermarkService;
|
||||
|
||||
private final RabbitTemplate rabbitTemplate;
|
||||
|
||||
public JSONPrimitive<String> prepareExportDownload(ExportDownloadRequest request) {
|
||||
@ -87,7 +93,7 @@ public class DossierTemplateExportService {
|
||||
objectMapper.writeValueAsBytes(convert(dossierTemplate, DossierTemplate.class))));
|
||||
|
||||
//add watermark json file
|
||||
var watermarkList = dossierTemplate.getWatermarkConfigs();
|
||||
var watermarkList = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId);
|
||||
fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.WATERMARK, JSON_EXT),
|
||||
objectMapper.writeValueAsBytes(convert(watermarkList, Watermark.class))));
|
||||
|
||||
@ -97,7 +103,7 @@ public class DossierTemplateExportService {
|
||||
objectMapper.writeValueAsBytes(convert(colors, Colors.class))));
|
||||
|
||||
// add dossier statuses
|
||||
var dossierStatusList = dossierTemplate.getDossierStatusList();
|
||||
var dossierStatusList = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId);
|
||||
fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.DOSSIER_STATUS, JSON_EXT),
|
||||
objectMapper.writeValueAsBytes(convert(dossierStatusList, DossierStatusInfo.class))));
|
||||
|
||||
@ -107,7 +113,7 @@ public class DossierTemplateExportService {
|
||||
objectMapper.writeValueAsBytes(convert(dossierAttributesConfig, DossierAttributeConfig.class))));
|
||||
|
||||
// add file attribute configs
|
||||
var fileAttributeConfigList = dossierTemplate.getFileAttributeConfigs();
|
||||
var fileAttributeConfigList = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId);
|
||||
fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.FILE_ATTRIBUTE_CONFIG, JSON_EXT),
|
||||
objectMapper.writeValueAsBytes(convert(fileAttributeConfigList, FileAttributeConfig.class))));
|
||||
|
||||
@ -127,7 +133,7 @@ public class DossierTemplateExportService {
|
||||
objectMapper.writeValueAsBytes(ruleSet.getValue())));
|
||||
|
||||
//N files with the related report templates
|
||||
var reportTemplateList = dossierTemplate.getReportTemplates();
|
||||
var reportTemplateList = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplate.getId());
|
||||
fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.REPORT_TEMPLATE, JSON_EXT),
|
||||
objectMapper.writeValueAsBytes(convert(reportTemplateList, ReportTemplate.class))));
|
||||
reportTemplateList.forEach(reportTemplate -> {
|
||||
@ -141,9 +147,7 @@ public class DossierTemplateExportService {
|
||||
// and 1 txt file for every type: entries, false positives and false recommendation
|
||||
|
||||
// remove the types related to dossiers and also the ones that are deleted
|
||||
var dossierTypes = dossierTemplate.getDossierTypes().stream()
|
||||
.filter(t -> t.getDossierId() == null)
|
||||
.filter(t -> !t.isDeleted()).collect(Collectors.toList());
|
||||
var dossierTypes = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, false);
|
||||
for (TypeEntity typeEntity : dossierTypes) {
|
||||
// log.info("type: " + typeEntity.getType() + " " + typeEntity.getDossierId() + " " + typeEntity.isDeleted());
|
||||
fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(typeEntity.getType(), getFilename(ExportFilename.DOSSIER_TYPE, JSON_EXT),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user