Pull request #181: RED-2896 Trigger Index Queue when assignee, file attributes or workflow status changes
Merge in RED/persistence-service from feature/RED-2896 to master * commit 'b9df862ebff74e798c28c4ff4678d9f99cd2e55a': RED-2896 Trigger Index Queue when assignee, file attributes or workflow status changes
This commit is contained in:
commit
f98e7d4e06
@ -3,6 +3,7 @@ package com.iqser.red.service.peristence.v1.server.controller;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.iqser.red.service.peristence.v1.server.service.DossierService;
|
||||
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.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
|
||||
@ -15,6 +16,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Im
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.utils.SuppressFBWarnings;
|
||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||
import com.opencsv.CSVParser;
|
||||
import com.opencsv.CSVParserBuilder;
|
||||
import com.opencsv.CSVReader;
|
||||
@ -45,6 +47,7 @@ public class FileAttributesController implements FileAttributesResource {
|
||||
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
|
||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||
private final DossierService dossierService;
|
||||
private final IndexingService indexingService;
|
||||
|
||||
|
||||
@Transactional
|
||||
@ -111,6 +114,7 @@ public class FileAttributesController implements FileAttributesResource {
|
||||
String fileId = fileStatusByFilename.get(fileStatusMappingColumn.trim()).getId();
|
||||
|
||||
fileStatusPersistenceService.setFileAttributes(dossierId, fileId, attributeIdToValue);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
affectedFileIds.add(fileId);
|
||||
}
|
||||
|
||||
@ -123,6 +127,7 @@ public class FileAttributesController implements FileAttributesResource {
|
||||
@PathVariable(FILE_ID) String fileId, @RequestBody Map<String, String> fileAttributesMap) {
|
||||
|
||||
fileStatusPersistenceService.setFileAttributes(dossierId, fileId, fileAttributesMap);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ public class FileStatusController implements StatusResource {
|
||||
assignee = userId;
|
||||
fileStatusService.setAssignee(dossierId, fileId, assignee);
|
||||
}
|
||||
fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_REVIEW : WorkflowStatus.NEW);
|
||||
fileStatusService.setStatusSuccessful(dossierId, fileId, assignee != null ? WorkflowStatus.UNDER_REVIEW : WorkflowStatus.NEW);
|
||||
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ public class FileStatusController implements StatusResource {
|
||||
|
||||
}
|
||||
fileStatusService.setAssignee(dossierId, fileId, approverId);
|
||||
fileStatusService.setStatusSuccessful(fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW);
|
||||
fileStatusService.setStatusSuccessful(dossierId, fileId, assignee != null ? WorkflowStatus.UNDER_APPROVAL : WorkflowStatus.NEW);
|
||||
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
||||
}
|
||||
|
||||
@ -131,7 +131,7 @@ public class FileStatusController implements StatusResource {
|
||||
assignee = approverId;
|
||||
}
|
||||
fileStatusService.setAssignee(dossierId, fileId, assignee);
|
||||
fileStatusService.setApprovalStatusSuccessful(fileId, WorkflowStatus.APPROVED);
|
||||
fileStatusService.setApprovalStatusSuccessful(dossierId, fileId, WorkflowStatus.APPROVED);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimiti
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.BinaryFileRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
|
||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||
import feign.FeignException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -251,7 +252,8 @@ public class FileService {
|
||||
}
|
||||
});
|
||||
|
||||
indexingService.addToIndexingQueue(dossierTemplateId, dossierId, fileId, 2);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.INSERT, dossierTemplateId, dossierId, fileId, 2);
|
||||
|
||||
}
|
||||
|
||||
private String generateFileId(BinaryFileRequest file) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.iqser.red.service.peristence.v1.server.service;
|
||||
|
||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||
import org.springframework.retry.support.RetryTemplate;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@ -43,7 +44,7 @@ public class FileStatusProcessingUpdateService {
|
||||
});
|
||||
|
||||
if (!analyzeResult.isWasReanalyzed()) {
|
||||
indexingService.addToIndexingQueue(dossier.getDossierTemplateId(), dossierId, fileId, 2);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.INSERT, dossier.getDossierTemplateId(), dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
||||
|
||||
@ -18,16 +18,14 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do
|
||||
import com.iqser.red.service.redaction.v1.model.AnalyzeRequest;
|
||||
import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
|
||||
import com.iqser.red.service.redaction.v1.model.MessageType;
|
||||
|
||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -44,9 +42,7 @@ public class FileStatusService {
|
||||
private final ObjectMapper objectMapper;
|
||||
private final RulesController rulesController;
|
||||
private final ManualRedactionProviderService manualRedactionProviderService;
|
||||
|
||||
private final FileManagementStorageService fileManagementStorageService;
|
||||
|
||||
private final LegalBasisChangePersistenceService legalBasisChangePersistenceService;
|
||||
private final ImageRecategorizationPersistenceService imageRecategorizationPersistenceService;
|
||||
private final CommentPersistenceService commentPersistenceService;
|
||||
@ -55,6 +51,7 @@ public class FileStatusService {
|
||||
private final AddRedactionPersistenceService addRedactionPersistenceService;
|
||||
private final ResizeRedactionPersistenceService resizeRedactionPersistenceService;
|
||||
private final FileManagementServiceSettings settings;
|
||||
private final IndexingService indexingService;
|
||||
|
||||
|
||||
public List<FileEntity> getActiveFiles(String dossierId) {
|
||||
@ -106,18 +103,21 @@ public class FileStatusService {
|
||||
analyzeResult.getLegalBasisVersion(), analyzeResult.getDuration(),
|
||||
analyzeResult.getDossierDictionaryVersion(), analyzeResult.getAnalysisVersion(),
|
||||
analyzeResult.getAnalysisNumber());
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
|
||||
public void setStatusSuccessful(String fileId, WorkflowStatus workflowStatus) {
|
||||
public void setStatusSuccessful(String dossierId, String fileId, WorkflowStatus workflowStatus) {
|
||||
|
||||
fileStatusPersistenceService.updateWorkflowStatus(fileId, workflowStatus, false);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
|
||||
public void setApprovalStatusSuccessful(String fileId, WorkflowStatus workflowStatus) {
|
||||
public void setApprovalStatusSuccessful(String dossierId, String fileId, WorkflowStatus workflowStatus) {
|
||||
|
||||
fileStatusPersistenceService.updateWorkflowStatus(fileId, workflowStatus, true);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
|
||||
@ -236,6 +236,7 @@ public class FileStatusService {
|
||||
}
|
||||
|
||||
fileStatusPersistenceService.setAssignee(fileId, assignee, lastReviewer, lastApprover);
|
||||
indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, fileId, 2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,9 +5,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
||||
import com.iqser.red.service.search.v1.model.IndexMessage;
|
||||
import com.iqser.red.service.search.v1.model.IndexMessageType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
@ -24,9 +26,8 @@ public class IndexingService {
|
||||
|
||||
private final RabbitTemplate rabbitTemplate;
|
||||
private final ObjectMapper objectMapper;
|
||||
private final FileStatusService fileStatusService;
|
||||
private final DossierService dossierService;
|
||||
|
||||
private final FileStatusPersistenceService fileStatusPersistenceService;
|
||||
|
||||
public void reindex(String dossierId, Set<String> fileIds) {
|
||||
|
||||
@ -46,7 +47,7 @@ public class IndexingService {
|
||||
}
|
||||
|
||||
for (Pair<String, String> reindexDossierId : reindexDossierIds) {
|
||||
List<FileEntity> fileStatuses = fileStatusService.getDossierStatus(reindexDossierId.getRight());
|
||||
List<FileEntity> fileStatuses = fileStatusPersistenceService.getStatusesForDossier(reindexDossierId.getRight());
|
||||
for (FileEntity fileStatus : fileStatuses) {
|
||||
if (fileStatus.getProcessingStatus().equals(ProcessingStatus.DELETED)) {
|
||||
continue;
|
||||
@ -54,16 +55,17 @@ public class IndexingService {
|
||||
if (fileIds != null && !fileIds.isEmpty() && !fileIds.contains(fileStatus.getId())) {
|
||||
continue;
|
||||
}
|
||||
addToIndexingQueue(reindexDossierId.getLeft(), reindexDossierId.getRight(), fileStatus.getId(), 2);
|
||||
addToIndexingQueue(IndexMessageType.INSERT, reindexDossierId.getLeft(), reindexDossierId.getRight(), fileStatus.getId(), 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void addToIndexingQueue(String dossierTemplateId, String dossierId, String fileId, int priority) {
|
||||
public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) {
|
||||
|
||||
try {
|
||||
rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString(IndexMessage.builder()
|
||||
.messageType(indexMessageType)
|
||||
.dossierTemplateId(dossierTemplateId)
|
||||
.dossierId(dossierId)
|
||||
.fileId(fileId)
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
|
||||
<properties>
|
||||
<redaction-service.version>3.56.0</redaction-service.version>
|
||||
<search-service.version>2.10.0</search-service.version>
|
||||
<search-service.version>2.18.0</search-service.version>
|
||||
<pdftron-redaction-service.version>3.17.0</pdftron-redaction-service.version>
|
||||
<redaction-report-service.version>3.19.0</redaction-report-service.version>
|
||||
</properties>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user