Pull request #559: RSS-145: Store file attributes that are added in analysis

Merge in RED/persistence-service from RSS-145 to master

* commit '49c7eefe9ca0748e28180cd186f780d803e704af':
  RSS-145: Store file attributes that are added in analysis
This commit is contained in:
Dominique Eiflaender 2022-10-28 14:45:49 +02:00
commit b5872a0405
4 changed files with 39 additions and 1 deletions

View File

@ -8,10 +8,14 @@ import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "file_attribute")
public class FileAttributeEntity {
@ -23,6 +27,8 @@ public class FileAttributeEntity {
@Data
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
public static class FileAttributeEntityId implements Serializable {
@Column(name = "file_id")

View File

@ -23,6 +23,7 @@ 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 com.iqser.red.service.redaction.v1.model.FileAttribute;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -224,6 +225,33 @@ public class FileStatusPersistenceService {
}
@Transactional(value = Transactional.TxType.REQUIRES_NEW)
public void addFileAttributes(String dossierId, String fileId, Set<FileAttribute> fileAttributes) {
fileRepository.findById(fileId).ifPresentOrElse((file) -> {
if (file.isSoftOrHardDeleted()) {
return;
}
var dossier = dossierService.getAndValidateDossier(dossierId);
List<FileAttributeConfigEntity> configuration = fileAttributeConfigPersistenceService.getFileAttributes(dossier.getDossierTemplateId());
fileAttributes.forEach(attributeToAdd -> {
var configId = configuration.stream().filter(c -> c.getLabel().equals(attributeToAdd.getLabel())).map(c -> c.getId()).findFirst();
if (configId.isPresent()) {
var fileAttributeEntity = new FileAttributeEntity(new FileAttributeEntity.FileAttributeEntityId(fileId, configId.get()), attributeToAdd.getValue());
fileAttributesRepository.saveAndFlush(fileAttributeEntity);
}
});
fileRepository.updateLastAttributeChangeDate(fileId, file.getLastProcessed());
}, () -> {
throw new NotFoundException("Unknown file=" + fileId);
});
}
@Transactional
public void deleteFileAttributes(String fileId) {

View File

@ -72,6 +72,10 @@ public class FileStatusProcessingUpdateService {
manualRedactionService.updateProcessedDate(fileId, analyzeResult.getManualRedactions());
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
if (analyzeResult.getAddedFileAttributes() != null && !analyzeResult.getAddedFileAttributes().isEmpty()) {
fileStatusPersistenceService.addFileAttributes(dossierId, fileId, analyzeResult.getAddedFileAttributes());
}
}
}

View File

@ -25,7 +25,7 @@
</modules>
<properties>
<redaction-service.version>3.155.0</redaction-service.version>
<redaction-service.version>3.206.0</redaction-service.version>
<search-service.version>2.39.0</search-service.version>
<pdftron-redaction-service.version>3.140.0</pdftron-redaction-service.version>
<redaction-report-service.version>3.63.0</redaction-report-service.version>