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.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
@Table(name = "file_attribute")
|
@Table(name = "file_attribute")
|
||||||
public class FileAttributeEntity {
|
public class FileAttributeEntity {
|
||||||
|
|
||||||
@ -23,6 +27,8 @@ public class FileAttributeEntity {
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Embeddable
|
@Embeddable
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public static class FileAttributeEntityId implements Serializable {
|
public static class FileAttributeEntityId implements Serializable {
|
||||||
|
|
||||||
@Column(name = "file_id")
|
@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.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.ProcessingStatus;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus;
|
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.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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
|
@Transactional
|
||||||
public void deleteFileAttributes(String fileId) {
|
public void deleteFileAttributes(String fileId) {
|
||||||
|
|
||||||
|
|||||||
@ -72,6 +72,10 @@ public class FileStatusProcessingUpdateService {
|
|||||||
|
|
||||||
manualRedactionService.updateProcessedDate(fileId, analyzeResult.getManualRedactions());
|
manualRedactionService.updateProcessedDate(fileId, analyzeResult.getManualRedactions());
|
||||||
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
|
||||||
|
|
||||||
|
if (analyzeResult.getAddedFileAttributes() != null && !analyzeResult.getAddedFileAttributes().isEmpty()) {
|
||||||
|
fileStatusPersistenceService.addFileAttributes(dossierId, fileId, analyzeResult.getAddedFileAttributes());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<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>
|
<search-service.version>2.39.0</search-service.version>
|
||||||
<pdftron-redaction-service.version>3.140.0</pdftron-redaction-service.version>
|
<pdftron-redaction-service.version>3.140.0</pdftron-redaction-service.version>
|
||||||
<redaction-report-service.version>3.63.0</redaction-report-service.version>
|
<redaction-report-service.version>3.63.0</redaction-report-service.version>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user