RED-8878: Added endpoint to recalcuated flags for all files
This commit is contained in:
parent
00c932dc9b
commit
9ace6acac9
@ -18,6 +18,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.annotations.Delete
|
|||||||
public interface ReanalysisResource {
|
public interface ReanalysisResource {
|
||||||
|
|
||||||
String REANALYZE_PATH = "/reanalyze";
|
String REANALYZE_PATH = "/reanalyze";
|
||||||
|
String RECALCULATE_FLAGS = "/recalculate-flags";
|
||||||
String IMPORT_REDACTIONS_PATH = "/import-redactions";
|
String IMPORT_REDACTIONS_PATH = "/import-redactions";
|
||||||
String CONVERT_TEXT_HIGHLIGHTS_PATH = "/convert-texthighlights";
|
String CONVERT_TEXT_HIGHLIGHTS_PATH = "/convert-texthighlights";
|
||||||
String OCR_REANALYZE_PATH = "/ocr/reanalyze";
|
String OCR_REANALYZE_PATH = "/ocr/reanalyze";
|
||||||
@ -33,6 +34,8 @@ public interface ReanalysisResource {
|
|||||||
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM)
|
@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);
|
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)
|
@PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + BULK_REST_PATH)
|
||||||
void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
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.ByteContentDocument;
|
||||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.highlights.TextHighlightConversionOperation;
|
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.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.FileManagementStorageService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.IndexingService;
|
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 IndexingService indexingService;
|
||||||
private final PDFTronRedactionClient pDFTronRedactionClient;
|
private final PDFTronRedactionClient pDFTronRedactionClient;
|
||||||
private final FileManagementStorageService fileManagementStorageService;
|
private final FileManagementStorageService fileManagementStorageService;
|
||||||
private final ObjectMapper objectMapper;
|
private final AnalysisFlagsCalculationService analysisFlagsCalculationService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -56,6 +57,11 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
reanalyseFiles(dossierId, force, relevantFiles);
|
reanalyseFiles(dossierId, force, relevantFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void recalculateFlags(){
|
||||||
|
analysisFlagsCalculationService.calculateFlagsForAllFiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
public void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||||
|
|||||||
@ -1,13 +1,18 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.service;
|
package com.iqser.red.service.peristence.v1.server.service;
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
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.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.FileStatusPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
|
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
|
||||||
@ -25,10 +30,34 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AnalysisFlagsCalculationService {
|
public class AnalysisFlagsCalculationService {
|
||||||
|
|
||||||
|
private final DossierPersistenceService dossierPersistenceService;
|
||||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||||
private final RedactionLogService redactionLogService;
|
private final RedactionLogService redactionLogService;
|
||||||
private final ViewedPagesPersistenceService viewedPagesPersistenceService;
|
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")
|
@Timed("redactmanager_calculateFlags")
|
||||||
public void calculateFlags(String dossierId, String fileId) {
|
public void calculateFlags(String dossierId, String fileId) {
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user