RED-3842 filesize

This commit is contained in:
Timo Bejan 2022-06-07 12:17:14 +03:00
parent 47c0e055ba
commit e6e0dd27dd
10 changed files with 91 additions and 12 deletions

View File

@ -14,7 +14,6 @@ public class AddFileRequest {
private String fileId;
@NonNull
private String dossierId;
private String uploader;
}

View File

@ -25,6 +25,7 @@ public class FileModel {
private ProcessingStatus processingStatus;
private WorkflowStatus workflowStatus;
private int numberOfPages;
private long fileSize;
private OffsetDateTime added;
private OffsetDateTime lastUpdated;
private OffsetDateTime deleted;

View File

@ -55,6 +55,9 @@ public class FileEntity {
@Column
private int numberOfPages;
@Column
private long fileSize;
@Column
private OffsetDateTime added;

View File

@ -55,12 +55,13 @@ public class FileStatusPersistenceService {
@Transactional
public void updateProcessingStatusPreprocessed(String fileId, boolean hasHighlights) {
public void updateProcessingStatusPreprocessed(String fileId, boolean hasHighlights, long fileSize) {
if (isFileDeleted(fileId)) {
return;
}
fileRepository.updateProcessingStatus(fileId, ProcessingStatus.PRE_PROCESSED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), hasHighlights);
fileRepository.updateProcessingStatus(fileId, ProcessingStatus.PRE_PROCESSED,
OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), hasHighlights, fileSize);
}

View File

@ -58,9 +58,15 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
@Modifying(clearAutomatically = true)
@Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, f.hasHighlights = :hasHighlights " +
"where f.id = :fileId")
void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights);
@Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," +
" f.hasHighlights = :hasHighlights, f.fileSize = :fileSize " +
" where f.id = :fileId")
void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, long fileSize);
@Modifying(clearAutomatically = true)
@Query("update FileEntity f set f.fileSize = :fileSize where f.id = :fileId")
void updateFileSize(String fileId, long fileSize);
@Modifying(clearAutomatically = true)

View File

@ -0,0 +1,58 @@
package com.iqser.red.service.peristence.v1.server.migration.migrations;
import com.iqser.red.service.peristence.v1.server.migration.Migration;
import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService;
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.FileType;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Setter
@Service
public class FileSizeMigration8 extends Migration {
private static final String NAME = "Update file size";
private static final long VERSION = 8;
@Autowired
private FileRepository fileRepository;
@Autowired
private FileManagementStorageService fileManagementStorageService;
public FileSizeMigration8() {
super(NAME, VERSION);
}
@Override
protected void migrate() {
var allFiles = fileRepository.findAll();
allFiles.forEach(file -> {
// not hard deleted
if (file.getHardDeletedTime() == null) {
try {
var originFile = fileManagementStorageService.getStoredObjectBytes(file.getDossierId(), file.getId(), FileType.ORIGIN);
fileRepository.updateFileSize(file.getId(), originFile.length);
} catch (Exception e) {
log.warn("Failed to load file bytes for file: {} in dossier {} ", file.getId(), file.getDossierId());
}
}
});
}
}

View File

@ -72,10 +72,9 @@ public class FileStatusProcessingUpdateService {
}
public void preprocessingSuccessful(String dossierId, String fileId,
UntouchedDocumentResponse untouchedDocumentResponse){
public void preprocessingSuccessful(String dossierId, String fileId, UntouchedDocumentResponse untouchedDocumentResponse){
fileStatusService.updateProcessingStatusPreprocessed(dossierId, fileId, untouchedDocumentResponse.isHasHighlights());
fileStatusService.updateProcessingStatusPreprocessed(dossierId, fileId, untouchedDocumentResponse.isHasHighlights(),untouchedDocumentResponse.getFileSize());
}

View File

@ -117,9 +117,9 @@ public class FileStatusService {
}
public void updateProcessingStatusPreprocessed(String dossierId, String fileId, boolean hasHighlights) {
public void updateProcessingStatusPreprocessed(String dossierId, String fileId, boolean hasHighlights, long fileSize) {
fileStatusPersistenceService.updateProcessingStatusPreprocessed(fileId, hasHighlights);
fileStatusPersistenceService.updateProcessingStatusPreprocessed(fileId, hasHighlights,fileSize);
addToAnalysisQueue(dossierId, fileId, false, Set.of());
if (fileManagementServiceSettings.isPdf2ImageServiceEnabled()) {

View File

@ -0,0 +1,12 @@
databaseChangeLog:
- changeSet:
id: add-update-file-size-column
author: timo
changes:
- addColumn:
columns:
- column:
name: file_size
type: BIGINT
tableName: file

View File

@ -27,7 +27,7 @@
<properties>
<redaction-service.version>3.114.0</redaction-service.version>
<search-service.version>2.36.0</search-service.version>
<pdftron-redaction-service.version>3.83.0</pdftron-redaction-service.version>
<pdftron-redaction-service.version>3.96.0</pdftron-redaction-service.version>
<redaction-report-service.version>3.47.0</redaction-report-service.version>
</properties>