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