Merge branch 'RED-8878' into 'release/1.363.x'
RED-8878: Added endpoint to recalcuated flags for all files See merge request redactmanager/persistence-service!426
This commit is contained in:
commit
803f7d554b
@ -18,6 +18,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.annotations.Delete
|
||||
public interface ReanalysisResource {
|
||||
|
||||
String REANALYZE_PATH = "/reanalyze";
|
||||
String RECALCULATE_FLAGS = "/recalculate-flags";
|
||||
String IMPORT_REDACTIONS_PATH = "/import-redactions";
|
||||
String CONVERT_TEXT_HIGHLIGHTS_PATH = "/convert-texthighlights";
|
||||
String OCR_REANALYZE_PATH = "/ocr/reanalyze";
|
||||
@ -33,6 +34,8 @@ public interface ReanalysisResource {
|
||||
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM)
|
||||
void reanalyzeDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force);
|
||||
|
||||
@PostMapping(value = RECALCULATE_FLAGS)
|
||||
void recalculateFlags();
|
||||
|
||||
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + BULK_REST_PATH)
|
||||
void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||
|
||||
@ -18,6 +18,7 @@ import com.google.common.collect.Sets;
|
||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument;
|
||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.highlights.TextHighlightConversionOperation;
|
||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.highlights.TextHighlightConversionRequest;
|
||||
import com.iqser.red.service.peristence.v1.server.service.AnalysisFlagsCalculationService;
|
||||
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
|
||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||
import com.iqser.red.service.peristence.v1.server.service.IndexingService;
|
||||
@ -46,7 +47,7 @@ public class ReanalysisController implements ReanalysisResource {
|
||||
private final IndexingService indexingService;
|
||||
private final PDFTronRedactionClient pDFTronRedactionClient;
|
||||
private final FileManagementStorageService fileManagementStorageService;
|
||||
private final ObjectMapper objectMapper;
|
||||
private final AnalysisFlagsCalculationService analysisFlagsCalculationService;
|
||||
|
||||
|
||||
@Override
|
||||
@ -56,6 +57,11 @@ public class ReanalysisController implements ReanalysisResource {
|
||||
reanalyseFiles(dossierId, force, relevantFiles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void recalculateFlags(){
|
||||
analysisFlagsCalculationService.calculateFlagsForAllFiles();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
package com.iqser.red.service.peristence.v1.server.service;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
|
||||
@ -25,10 +30,34 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@RequiredArgsConstructor
|
||||
public class AnalysisFlagsCalculationService {
|
||||
|
||||
private final DossierPersistenceService dossierPersistenceService;
|
||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||
private final RedactionLogService redactionLogService;
|
||||
private final ViewedPagesPersistenceService viewedPagesPersistenceService;
|
||||
|
||||
|
||||
@Async
|
||||
public void calculateFlagsForAllFiles(){
|
||||
|
||||
Set<FileEntity> files = new HashSet<>();
|
||||
|
||||
dossierPersistenceService.findAllDossiers()
|
||||
.stream().filter(dossier -> dossier.getHardDeletedTime() == null && dossier.getSoftDeletedTime() == null)
|
||||
.forEach(dossier -> {
|
||||
files.addAll(fileStatusPersistenceService.getActiveFiles(dossier.getId()));
|
||||
});
|
||||
|
||||
log.info("Starting to recalculated flags for {} files", files.size());
|
||||
|
||||
int i = 1;
|
||||
for(FileEntity file: files){
|
||||
calculateFlags(file.getDossierId(), file.getId());
|
||||
log.info("Successfully recalculated flags for {}/{} files", i, files.size());
|
||||
}
|
||||
|
||||
log.info("Flag recalculation for all files finished.");
|
||||
}
|
||||
|
||||
@Timed("redactmanager_calculateFlags")
|
||||
public void calculateFlags(String dossierId, String fileId) {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user