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:
commit
b5872a0405
@ -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")
|
||||
|
||||
@ -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) {
|
||||
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user