Merge branch 'feature/RED-10297' into 'master'
RED-10297: Provide default date format file when missing on dossier template import Closes RED-10297 See merge request redactmanager/persistence-service!808
This commit is contained in:
commit
bbd8d5be9b
@ -41,6 +41,7 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zi
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DateFormatsValidationService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||
@ -107,6 +108,7 @@ public class DossierTemplateImportService {
|
||||
private final ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||
private final EntityTypeImportService entityTypeImportService;
|
||||
private final SystemManagedTypesImport systemManagedTypesImport;
|
||||
private final DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||
|
||||
|
||||
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
||||
@ -493,13 +495,18 @@ public class DossierTemplateImportService {
|
||||
|
||||
private void setDataFormats(ImportTemplateResult request, String dossierTemplateId) {
|
||||
|
||||
if (request.getDateFormats() != null) {
|
||||
List<DateFormatPatternErrorMessage> dateFormatPatternErrorMessages = dateFormatsValidationService.validateDateFormats(request.getDateFormats());
|
||||
String dateFormats = request.getDateFormats();
|
||||
if (dateFormats == null && applicationType.equals("DocuMine")) {
|
||||
dateFormats = defaultDateFormatsProvider.getDateFormats();
|
||||
}
|
||||
if (dateFormats != null) {
|
||||
List<DateFormatPatternErrorMessage> dateFormatPatternErrorMessages = dateFormatsValidationService.validateDateFormats(dateFormats);
|
||||
if (!dateFormatPatternErrorMessages.isEmpty()) {
|
||||
throw new BadRequestException("The date formats file contains errors");
|
||||
}
|
||||
dateFormatsPersistenceService.setDateFormats(request.dateFormats, dossierTemplateId, request.getDateFormatsExportModel().getVersion());
|
||||
dateFormatsPersistenceService.setDateFormats(dateFormats, dossierTemplateId, request.getDateFormatsExportModel().getVersion());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -689,12 +696,12 @@ public class DossierTemplateImportService {
|
||||
|
||||
importModel.getTypes().removeIf(t -> systemManagedTypesIdsFromImport.contains(t.getType()));
|
||||
|
||||
importModel.getEntries().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getFalsePositives().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getFalseRecommendations().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getDeletedEntries().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getDeletedFalsePositives().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getDeletedFalseRecommendations().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
||||
importModel.getEntries().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
importModel.getFalsePositives().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
importModel.getFalseRecommendations().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
importModel.getDeletedEntries().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
importModel.getDeletedFalsePositives().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
importModel.getDeletedFalseRecommendations().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||
}
|
||||
return importModel;
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||
|
||||
@ -33,11 +34,13 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
||||
DateFormatsPersistenceService dateFormatsPersistenceService;
|
||||
@Autowired
|
||||
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||
|
||||
@Autowired
|
||||
DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||
|
||||
@Value("${application.type}")
|
||||
private String applicationType;
|
||||
|
||||
|
||||
public AddDateFormatsToTemplatesMigration25() {
|
||||
|
||||
super(NAME, VERSION);
|
||||
@ -48,19 +51,15 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
||||
@SneakyThrows
|
||||
protected void migrate() {
|
||||
|
||||
if(!applicationType.equalsIgnoreCase("DocuMine")){
|
||||
if (!applicationType.equalsIgnoreCase("DocuMine")) {
|
||||
log.info("Skipping AddDateFormatsToTemplatesMigration25 as application type is not DocuMine!!!");
|
||||
return;
|
||||
}
|
||||
|
||||
List<DossierTemplateEntity> allDossierTemplates = dossierTemplatePersistenceService.getAllDossierTemplates();
|
||||
allDossierTemplates.forEach(dt -> {
|
||||
Resource resource = new ClassPathResource("files/dateFormats.txt");
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
|
||||
String dateFormats = reader.lines().collect(Collectors.joining(System.lineSeparator()));
|
||||
dateFormatsPersistenceService.setDateFormats(dateFormats, dt.getId(), -1);
|
||||
|
||||
try {
|
||||
dateFormatsPersistenceService.setDateFormats(defaultDateFormatsProvider.getDateFormats(), dt.getId(), -1);
|
||||
} catch (Exception e) {
|
||||
log.info("Could not update dossier template {}, error: {}", dt.getId(), e.getMessage());
|
||||
}
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
@Service
|
||||
public class DefaultDateFormatsProvider {
|
||||
|
||||
private String dateFormats;
|
||||
|
||||
|
||||
@SneakyThrows
|
||||
public String getDateFormats() {
|
||||
|
||||
if (dateFormats == null) {
|
||||
Resource resource = new ClassPathResource("files/dateFormats.txt");
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
|
||||
dateFormats = reader.lines()
|
||||
.collect(Collectors.joining(System.lineSeparator()));
|
||||
}
|
||||
}
|
||||
|
||||
return dateFormats;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user