Pull request #258: RED-3408: Set fileManipulationDate if file is modified.
Merge in RED/persistence-service from RED-3408 to master * commit 'b83c262b2db7fd63d94a27727537e33310c0b93e': RED-3408: Set fileManipulationDate if file is modified. Updated api of text highlight processing
This commit is contained in:
commit
82f7d34ddd
@ -60,6 +60,7 @@ public class FileModel {
|
|||||||
private Map<String, String> fileAttributes = new HashMap<>();
|
private Map<String, String> fileAttributes = new HashMap<>();
|
||||||
private String dossierId;
|
private String dossierId;
|
||||||
private OffsetDateTime redactionModificationDate;
|
private OffsetDateTime redactionModificationDate;
|
||||||
|
private OffsetDateTime fileManipulationDate;
|
||||||
|
|
||||||
public boolean isAnalysisRequired(){
|
public boolean isAnalysisRequired(){
|
||||||
return this.fullAnalysisRequired || this.reanalysisRequired;
|
return this.fullAnalysisRequired || this.reanalysisRequired;
|
||||||
|
|||||||
@ -135,6 +135,9 @@ public class FileEntity {
|
|||||||
@Column
|
@Column
|
||||||
private OffsetDateTime redactionModificationDate;
|
private OffsetDateTime redactionModificationDate;
|
||||||
|
|
||||||
|
@Column
|
||||||
|
private OffsetDateTime fileManipulationDate;
|
||||||
|
|
||||||
@Column(columnDefinition = "text", name = "excluded_pages")
|
@Column(columnDefinition = "text", name = "excluded_pages")
|
||||||
@Convert(converter = JSONIntegerSetConverter.class)
|
@Convert(converter = JSONIntegerSetConverter.class)
|
||||||
private Set<Integer> excludedPages = new HashSet<>();
|
private Set<Integer> excludedPages = new HashSet<>();
|
||||||
|
|||||||
@ -35,6 +35,7 @@ public class FileStatusPersistenceService {
|
|||||||
|
|
||||||
public void createStatus(String dossierId, String fileId, String filename, String uploader) {
|
public void createStatus(String dossierId, String fileId, String filename, String uploader) {
|
||||||
|
|
||||||
|
OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS);
|
||||||
FileEntity file = new FileEntity();
|
FileEntity file = new FileEntity();
|
||||||
file.setId(fileId);
|
file.setId(fileId);
|
||||||
file.setDossierId(dossierId);
|
file.setDossierId(dossierId);
|
||||||
@ -42,10 +43,11 @@ public class FileStatusPersistenceService {
|
|||||||
file.setProcessingStatus(ProcessingStatus.UNPROCESSED);
|
file.setProcessingStatus(ProcessingStatus.UNPROCESSED);
|
||||||
file.setWorkflowStatus(WorkflowStatus.NEW);
|
file.setWorkflowStatus(WorkflowStatus.NEW);
|
||||||
file.setNumberOfPages(0);
|
file.setNumberOfPages(0);
|
||||||
file.setAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
file.setAdded(now);
|
||||||
file.setUploader(uploader);
|
file.setUploader(uploader);
|
||||||
file.setLastUploaded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
file.setLastUploaded(now);
|
||||||
file.setLastUpdated(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
file.setLastUpdated(now);
|
||||||
|
file.setFileManipulationDate(now);
|
||||||
fileRepository.save(file);
|
fileRepository.save(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +125,7 @@ public class FileStatusPersistenceService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fileRepository.updateLastOCRTime(fileId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), time);
|
fileRepository.updateLastOCRTime(fileId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), time);
|
||||||
|
fileRepository.updateFileModificationDate(fileId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -367,4 +370,11 @@ public class FileStatusPersistenceService {
|
|||||||
public List<FileEntity> getAllRelevantStatusesForReanalysisScheduler() {
|
public List<FileEntity> getAllRelevantStatusesForReanalysisScheduler() {
|
||||||
return fileRepository.getAllRelevantStatusesForReanalysisScheduler();
|
return fileRepository.getAllRelevantStatusesForReanalysisScheduler();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public void updateFileModificationDate(String fileId, OffsetDateTime fileManipulationDate){
|
||||||
|
fileRepository.updateFileModificationDate(fileId, fileManipulationDate);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,6 +74,10 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
|
|||||||
@Query("update FileEntity f set f.lastUpdated = :lastUpdated, f.lastOCRTime = :lastOCRTime where f.id = :fileId")
|
@Query("update FileEntity f set f.lastUpdated = :lastUpdated, f.lastOCRTime = :lastOCRTime where f.id = :fileId")
|
||||||
void updateLastOCRTime(String fileId, OffsetDateTime lastUpdated, OffsetDateTime lastOCRTime);
|
void updateLastOCRTime(String fileId, OffsetDateTime lastUpdated, OffsetDateTime lastOCRTime);
|
||||||
|
|
||||||
|
@Modifying
|
||||||
|
@Query("update FileEntity f set f.fileManipulationDate = :fileManipulationDate where f.id = :fileId")
|
||||||
|
void updateFileModificationDate(String fileId, OffsetDateTime fileManipulationDate);
|
||||||
|
|
||||||
@Modifying
|
@Modifying
|
||||||
@Query("update FileEntity f set f.lastUpdated = :lastUpdated, f.hasAnnotationComments = :hasAnnotationComments where f.id = :fileId")
|
@Query("update FileEntity f set f.lastUpdated = :lastUpdated, f.hasAnnotationComments = :hasAnnotationComments where f.id = :fileId")
|
||||||
void updateHasComments(String fileId, OffsetDateTime lastUpdated, boolean hasAnnotationComments);
|
void updateHasComments(String fileId, OffsetDateTime lastUpdated, boolean hasAnnotationComments);
|
||||||
@ -120,7 +124,7 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
|
|||||||
|
|
||||||
@Modifying(clearAutomatically = true)
|
@Modifying(clearAutomatically = true)
|
||||||
@Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " +
|
@Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " +
|
||||||
"f.workflowStatus = :workflowStatus, f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, " +
|
"f.workflowStatus = :workflowStatus, f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " +
|
||||||
"f.lastOCRTime = null, f.excluded = false, f.lastProcessed = null, f.lastReviewer = null, f.lastApprover = null, " +
|
"f.lastOCRTime = null, f.excluded = false, f.lastProcessed = null, f.lastReviewer = null, f.lastApprover = null, " +
|
||||||
"f.assignee = null, f.approvalDate = null, f.lastManualRedaction = null, f.numberOfAnalyses = 0, " +
|
"f.assignee = null, f.approvalDate = null, f.lastManualRedaction = null, f.numberOfAnalyses = 0, " +
|
||||||
"f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " +
|
"f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " +
|
||||||
|
|||||||
@ -25,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -91,6 +93,10 @@ public class ReanalysisController implements ReanalysisResource {
|
|||||||
|
|
||||||
public TextHighlightResponse processTextHighlights(@RequestBody TextHighlightRequest textHighlightRequest){
|
public TextHighlightResponse processTextHighlights(@RequestBody TextHighlightRequest textHighlightRequest){
|
||||||
var textHighlightResponse = pDFTronRedactionClient.processTextHighlights(textHighlightRequest);
|
var textHighlightResponse = pDFTronRedactionClient.processTextHighlights(textHighlightRequest);
|
||||||
|
|
||||||
|
if(textHighlightRequest.getOperation().equals(TextHighlightOperation.REMOVE) || textHighlightRequest.getOperation().equals(TextHighlightOperation.CONVERT)){
|
||||||
|
fileStatusService.updateFileModificationDate(textHighlightRequest.getFileId(), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
|
}
|
||||||
if(textHighlightRequest.getOperation().equals(TextHighlightOperation.CONVERT)){
|
if(textHighlightRequest.getOperation().equals(TextHighlightOperation.CONVERT)){
|
||||||
fileStatusService.setStatusFullReprocess(textHighlightRequest.getDossierId(), textHighlightRequest.getFileId(), 1);
|
fileStatusService.setStatusFullReprocess(textHighlightRequest.getDossierId(), textHighlightRequest.getFileId(), 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -325,6 +325,11 @@ public class FileStatusService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void updateFileModificationDate(String fileId, OffsetDateTime fileManipulationDate){
|
||||||
|
fileStatusPersistenceService.updateFileModificationDate(fileId, fileManipulationDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setAssignee(String dossierId, String fileId, String assignee) {
|
public void setAssignee(String dossierId, String fileId, String assignee) {
|
||||||
|
|
||||||
if (StringUtils.isNotEmpty(assignee) && !dossierPersistenceService.getAndValidateDossier(dossierId)
|
if (StringUtils.isNotEmpty(assignee) && !dossierPersistenceService.getAndValidateDossier(dossierId)
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
databaseChangeLog:
|
||||||
|
- changeSet:
|
||||||
|
id: added-file-manipulation-date.changelog
|
||||||
|
author: dom
|
||||||
|
changes:
|
||||||
|
- addColumn:
|
||||||
|
columns:
|
||||||
|
- column:
|
||||||
|
name: file_manipulation_date
|
||||||
|
type: TIMESTAMP WITHOUT TIME ZONE
|
||||||
|
tableName: file
|
||||||
@ -19,3 +19,5 @@ databaseChangeLog:
|
|||||||
file: db/changelog/sql/7.2-set-dossier-status.sql
|
file: db/changelog/sql/7.2-set-dossier-status.sql
|
||||||
- include:
|
- include:
|
||||||
file: db/changelog/9-changed-annotation-modification-date.changelog.yaml
|
file: db/changelog/9-changed-annotation-modification-date.changelog.yaml
|
||||||
|
- include:
|
||||||
|
file: db/changelog/10-added-file-manipulation-date.changelog.yaml
|
||||||
|
|||||||
@ -120,6 +120,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1);
|
assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1);
|
||||||
var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
|
var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId());
|
||||||
|
assertThat(loadedFile.getFileManipulationDate()).isNotNull();
|
||||||
|
|
||||||
|
|
||||||
fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), "1");
|
fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), "1");
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<redaction-service.version>3.76.0</redaction-service.version>
|
<redaction-service.version>3.76.0</redaction-service.version>
|
||||||
<search-service.version>2.18.0</search-service.version>
|
<search-service.version>2.18.0</search-service.version>
|
||||||
<pdftron-redaction-service.version>3.42.0</pdftron-redaction-service.version>
|
<pdftron-redaction-service.version>3.44.0</pdftron-redaction-service.version>
|
||||||
<redaction-report-service.version>3.19.0</redaction-report-service.version>
|
<redaction-report-service.version>3.19.0</redaction-report-service.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user