RED-3899 Dossier Template stats
This commit is contained in:
parent
3608c4bc0d
commit
4f814d4dc4
@ -1,18 +1,5 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.service.persistence;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||
@ -22,8 +9,18 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@ -165,7 +162,7 @@ public class FileStatusPersistenceService {
|
||||
|
||||
var fileAttributeEntities = convertFileAttributes(dossierId, file, fileAttributes);
|
||||
fileAttributesRepository.saveAllAndFlush(fileAttributeEntities);
|
||||
fileRepository.updateLastAttributeChangeDate(fileId,OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
fileRepository.updateLastAttributeChangeDate(fileId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||
|
||||
}, () -> {
|
||||
throw new NotFoundException("Unknown file=" + fileId);
|
||||
@ -329,7 +326,7 @@ public class FileStatusPersistenceService {
|
||||
.findAny().map(FileAttributeConfigEntity::getId)
|
||||
.orElseThrow(() -> new BadRequestException("Invalid File Attribute Id")));
|
||||
fa.setFileAttributeId(id);
|
||||
fa.setValue(StringUtils.isBlank(entry.getValue())? null : entry.getValue());
|
||||
fa.setValue(StringUtils.isBlank(entry.getValue()) ? null : entry.getValue());
|
||||
return fa;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
@ -354,9 +351,9 @@ public class FileStatusPersistenceService {
|
||||
}
|
||||
|
||||
|
||||
public int countSoftDeletedFiles(String dossierId) {
|
||||
public int countSoftDeletedFiles(String dossierTemplateId) {
|
||||
|
||||
return fileRepository.countSoftDeletedFiles(dossierId);
|
||||
return fileRepository.countSoftDeletedFiles(dossierTemplateId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -133,8 +133,10 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
|
||||
int overwriteFile(String fileId, String filename, String uploader, ProcessingStatus processingStatus, WorkflowStatus workflowStatus, OffsetDateTime lastUploaded,
|
||||
OffsetDateTime lastUpdated, boolean hasHighlights);
|
||||
|
||||
@Query("select count(f) from FileEntity f where f.dossierId = :dossierId and f.deleted is not null and f.hardDeletedTime is null")
|
||||
int countSoftDeletedFiles(String dossierId);
|
||||
@Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where d.dossierTemplateId = :dossierTemplateId" +
|
||||
" and ((f.deleted is not null and f.hardDeletedTime is null) or " +
|
||||
" (d.softDeletedTime is not null and d.hardDeletedTime is null)) and d.archivedTime is null")
|
||||
int countSoftDeletedFiles(String dossierTemplateId);
|
||||
|
||||
@Query("select distinct f.dossierId from FileEntity f where f.lastUpdated > :since")
|
||||
List<String> findDossierChangeByLastUpdatedIsAfter(OffsetDateTime since);
|
||||
@ -182,7 +184,7 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
|
||||
FilePageCountsProjection countPages(String dossierTemplateId);
|
||||
|
||||
@Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where " +
|
||||
"f.hardDeletedTime is not null and f.deleted is not null and " +
|
||||
"f.hardDeletedTime is null and f.deleted is null and " +
|
||||
"d.dossierTemplateId = :dossierTemplateId and " +
|
||||
"d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null")
|
||||
int countActiveFiles(String dossierTemplateId);
|
||||
|
||||
@ -83,7 +83,7 @@ public class DossierTemplateStatsService {
|
||||
dts.setNumberOfActiveDossiers(dossierRepository.countActive(dossierTemplateId));
|
||||
dts.setNumberOfDeletedDossiers(dossierRepository.countSofDeleted(dossierTemplateId));
|
||||
dts.setNumberOfActiveFiles(fileRepository.countActiveFiles(dossierTemplateId));
|
||||
dts.setNumberOfActiveFiles(fileRepository.countSoftDeletedFiles(dossierTemplateId));
|
||||
dts.setNumberOfSoftDeletedFiles(fileRepository.countSoftDeletedFiles(dossierTemplateId));
|
||||
|
||||
var processingCounts = fileRepository.countFilesByProcessingStatus(dossierTemplateId);
|
||||
var workflowCounts = fileRepository.countFilesByWorkflowStatus(dossierTemplateId);
|
||||
|
||||
@ -41,7 +41,7 @@ public class AutomaticAnalysisJob implements Job {
|
||||
.getMessageCount(), redactionQueueInfo.getConsumerCount());
|
||||
// only 1 file in queue
|
||||
var consumerCount = redactionQueueInfo.getConsumerCount();
|
||||
if (redactionQueueInfo.getMessageCount() <= consumerCount) {
|
||||
if (redactionQueueInfo.getMessageCount() <= consumerCount * 5) {
|
||||
// queue up 5 files
|
||||
var allStatuses = getAllRelevantStatuses();
|
||||
|
||||
@ -58,7 +58,7 @@ public class AutomaticAnalysisJob implements Job {
|
||||
|
||||
if (next.isFullAnalysisRequired()) {
|
||||
log.info("Queued file: {} for automatic full analysis! ", next.getFilename());
|
||||
fileStatusService.setStatusFullReprocess(next.getDossierId(), next.getId(), false, true);
|
||||
fileStatusService.setStatusFullReprocess(next.getDossierId(), next.getId(), false, false);
|
||||
} else if (next.isReanalysisRequired()) {
|
||||
log.info("Queued file: {} for automatic reanalysis! ", next.getFilename());
|
||||
fileStatusService.setStatusReprocess(next.getDossierId(), next.getId(), false);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user