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.ColorsService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
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.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.ReportTemplateService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||||
@ -107,6 +108,7 @@ public class DossierTemplateImportService {
|
|||||||
private final ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
private final ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||||
private final EntityTypeImportService entityTypeImportService;
|
private final EntityTypeImportService entityTypeImportService;
|
||||||
private final SystemManagedTypesImport systemManagedTypesImport;
|
private final SystemManagedTypesImport systemManagedTypesImport;
|
||||||
|
private final DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||||
|
|
||||||
|
|
||||||
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
||||||
@ -493,13 +495,18 @@ public class DossierTemplateImportService {
|
|||||||
|
|
||||||
private void setDataFormats(ImportTemplateResult request, String dossierTemplateId) {
|
private void setDataFormats(ImportTemplateResult request, String dossierTemplateId) {
|
||||||
|
|
||||||
if (request.getDateFormats() != null) {
|
String dateFormats = request.getDateFormats();
|
||||||
List<DateFormatPatternErrorMessage> dateFormatPatternErrorMessages = dateFormatsValidationService.validateDateFormats(request.getDateFormats());
|
if (dateFormats == null && applicationType.equals("DocuMine")) {
|
||||||
|
dateFormats = defaultDateFormatsProvider.getDateFormats();
|
||||||
|
}
|
||||||
|
if (dateFormats != null) {
|
||||||
|
List<DateFormatPatternErrorMessage> dateFormatPatternErrorMessages = dateFormatsValidationService.validateDateFormats(dateFormats);
|
||||||
if (!dateFormatPatternErrorMessages.isEmpty()) {
|
if (!dateFormatPatternErrorMessages.isEmpty()) {
|
||||||
throw new BadRequestException("The date formats file contains errors");
|
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.getTypes().removeIf(t -> systemManagedTypesIdsFromImport.contains(t.getType()));
|
||||||
|
|
||||||
importModel.getEntries().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getEntries().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
importModel.getFalsePositives().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getFalsePositives().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
importModel.getFalseRecommendations().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getFalseRecommendations().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
importModel.getDeletedEntries().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getDeletedEntries().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
importModel.getDeletedFalsePositives().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getDeletedFalsePositives().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
importModel.getDeletedFalseRecommendations().keySet().removeIf(key -> systemManagedTypesIdsFromImport.contains(key));
|
importModel.getDeletedFalseRecommendations().keySet().removeIf(systemManagedTypesIdsFromImport::contains);
|
||||||
}
|
}
|
||||||
return importModel;
|
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.entity.dossier.DossierTemplateEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
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.DateFormatsPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||||
|
|
||||||
@ -33,11 +34,13 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
|||||||
DateFormatsPersistenceService dateFormatsPersistenceService;
|
DateFormatsPersistenceService dateFormatsPersistenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
|
@Autowired
|
||||||
|
DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||||
|
|
||||||
@Value("${application.type}")
|
@Value("${application.type}")
|
||||||
private String applicationType;
|
private String applicationType;
|
||||||
|
|
||||||
|
|
||||||
public AddDateFormatsToTemplatesMigration25() {
|
public AddDateFormatsToTemplatesMigration25() {
|
||||||
|
|
||||||
super(NAME, VERSION);
|
super(NAME, VERSION);
|
||||||
@ -48,19 +51,15 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected void migrate() {
|
protected void migrate() {
|
||||||
|
|
||||||
if(!applicationType.equalsIgnoreCase("DocuMine")){
|
if (!applicationType.equalsIgnoreCase("DocuMine")) {
|
||||||
log.info("Skipping AddDateFormatsToTemplatesMigration25 as application type is not DocuMine!!!");
|
log.info("Skipping AddDateFormatsToTemplatesMigration25 as application type is not DocuMine!!!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DossierTemplateEntity> allDossierTemplates = dossierTemplatePersistenceService.getAllDossierTemplates();
|
List<DossierTemplateEntity> allDossierTemplates = dossierTemplatePersistenceService.getAllDossierTemplates();
|
||||||
allDossierTemplates.forEach(dt -> {
|
allDossierTemplates.forEach(dt -> {
|
||||||
Resource resource = new ClassPathResource("files/dateFormats.txt");
|
try {
|
||||||
|
dateFormatsPersistenceService.setDateFormats(defaultDateFormatsProvider.getDateFormats(), dt.getId(), -1);
|
||||||
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);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("Could not update dossier template {}, error: {}", dt.getId(), e.getMessage());
|
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