cleaned up code, added analysisVersion for analyseresult and interogation, usefull later
This commit is contained in:
parent
af1fb03025
commit
b08cdd3a07
@ -27,6 +27,8 @@ public class AnalyzeResult {
|
|||||||
|
|
||||||
private boolean wasReanalyzed;
|
private boolean wasReanalyzed;
|
||||||
|
|
||||||
|
private int analysisVersion;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public class RedactionLog {
|
|||||||
* Version 0 Redaction Logs have manual redactions merged inside them
|
* Version 0 Redaction Logs have manual redactions merged inside them
|
||||||
* Version 1 Redaction Logs only contain system ( rule/dictionary ) redactions. Manual Redactions are merged in at runtime.
|
* Version 1 Redaction Logs only contain system ( rule/dictionary ) redactions. Manual Redactions are merged in at runtime.
|
||||||
*/
|
*/
|
||||||
private long computationalVersion;
|
private long analysisVersion;
|
||||||
|
|
||||||
private List<RedactionLogEntry> redactionLogEntry;
|
private List<RedactionLogEntry> redactionLogEntry;
|
||||||
private List<LegalBasisMapping> legalBasis;
|
private List<LegalBasisMapping> legalBasis;
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package com.iqser.red.service.redaction.v1.model;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RedactionServiceDetails {
|
||||||
|
|
||||||
|
private int analysisVersion;
|
||||||
|
|
||||||
|
}
|
||||||
@ -24,13 +24,13 @@ public interface RedactionResource {
|
|||||||
@PostMapping(value = "/debug/htmlTables", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/debug/htmlTables", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
RedactionResult htmlTables(@RequestBody RedactionRequest redactionRequest);
|
RedactionResult htmlTables(@RequestBody RedactionRequest redactionRequest);
|
||||||
|
|
||||||
@PostMapping(value = "/rules/update" + RULE_SET_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
|
||||||
void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String dossierTemplateId);
|
|
||||||
|
|
||||||
@PostMapping(value = "/rules/test", consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/rules/test", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
void testRules(@RequestBody String rules);
|
void testRules(@RequestBody String rules);
|
||||||
|
|
||||||
@PostMapping(value = "/redaction-log/preview", consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/redaction-log/preview", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
RedactionLog getRedactionLog(@RequestBody RedactionRequest redactionRequest);
|
RedactionLog getRedactionLog(@RequestBody RedactionRequest redactionRequest);
|
||||||
|
|
||||||
|
@PostMapping(value = "/details", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
RedactionServiceDetails getRedactionServiceDetails();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
package com.iqser.red.service.redaction.v1.server.controller;
|
package com.iqser.red.service.redaction.v1.server.controller;
|
||||||
|
|
||||||
import com.iqser.red.service.file.management.v1.api.model.FileType;
|
import com.iqser.red.service.file.management.v1.api.model.FileType;
|
||||||
import com.iqser.red.service.redaction.v1.model.AnnotateRequest;
|
import com.iqser.red.service.redaction.v1.model.*;
|
||||||
import com.iqser.red.service.redaction.v1.model.AnnotateResponse;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionRequest;
|
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionResult;
|
|
||||||
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
import com.iqser.red.service.redaction.v1.resources.RedactionResource;
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
|
||||||
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
import com.iqser.red.service.redaction.v1.server.classification.model.Page;
|
||||||
@ -15,6 +11,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.service.DictionarySer
|
|||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService;
|
import com.iqser.red.service.redaction.v1.server.redaction.service.DroolsExecutionService;
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.service.RedactionLogMergeService;
|
import com.iqser.red.service.redaction.v1.server.redaction.service.RedactionLogMergeService;
|
||||||
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
|
||||||
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
||||||
import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer;
|
import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer;
|
||||||
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table;
|
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table;
|
||||||
@ -42,6 +39,7 @@ public class RedactionController implements RedactionResource {
|
|||||||
private final PdfSegmentationService pdfSegmentationService;
|
private final PdfSegmentationService pdfSegmentationService;
|
||||||
private final RedactionStorageService redactionStorageService;
|
private final RedactionStorageService redactionStorageService;
|
||||||
private final RedactionLogMergeService redactionLogMergeService;
|
private final RedactionLogMergeService redactionLogMergeService;
|
||||||
|
private final RedactionServiceSettings redactionServiceSettings;
|
||||||
|
|
||||||
public AnnotateResponse annotate(@RequestBody AnnotateRequest annotateRequest) {
|
public AnnotateResponse annotate(@RequestBody AnnotateRequest annotateRequest) {
|
||||||
|
|
||||||
@ -143,14 +141,6 @@ public class RedactionController implements RedactionResource {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateRules(@PathVariable(RULE_SET_PARAMETER_NAME) String dossierTemplateId) {
|
|
||||||
|
|
||||||
droolsExecutionService.updateRules(dossierTemplateId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void testRules(@RequestBody String rules) {
|
public void testRules(@RequestBody String rules) {
|
||||||
|
|
||||||
@ -165,8 +155,8 @@ public class RedactionController implements RedactionResource {
|
|||||||
|
|
||||||
var redactionLog = redactionStorageService.getRedactionLog(redactionRequest.getDossierId(), redactionRequest.getFileId());
|
var redactionLog = redactionStorageService.getRedactionLog(redactionRequest.getDossierId(), redactionRequest.getFileId());
|
||||||
|
|
||||||
log.info("Loaded redaction log with computationalVersion: {}",redactionLog.getComputationalVersion());
|
log.info("Loaded redaction log with computationalVersion: {}", redactionLog.getAnalysisVersion());
|
||||||
if (redactionLog.getComputationalVersion() == 0) {
|
if (redactionLog.getAnalysisVersion() == 0) {
|
||||||
// old redaction logs are returned directly
|
// old redaction logs are returned directly
|
||||||
return redactionLog;
|
return redactionLog;
|
||||||
} else {
|
} else {
|
||||||
@ -174,6 +164,11 @@ public class RedactionController implements RedactionResource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RedactionServiceDetails getRedactionServiceDetails() {
|
||||||
|
return new RedactionServiceDetails(redactionServiceSettings.getAnalysisVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private RedactionResult convert(PDDocument document, int numberOfPages) throws IOException {
|
private RedactionResult convert(PDDocument document, int numberOfPages) throws IOException {
|
||||||
|
|
||||||
|
|||||||
@ -5,11 +5,17 @@ import com.iqser.red.service.redaction.v1.model.RedactionChangeLog;
|
|||||||
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
import com.iqser.red.service.redaction.v1.model.RedactionLog;
|
||||||
import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
|
import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
|
||||||
|
|
||||||
|
import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class AnalyzeResponseService {
|
public class AnalyzeResponseService {
|
||||||
|
|
||||||
|
private final RedactionServiceSettings redactionServiceSettings;
|
||||||
|
|
||||||
public AnalyzeResult createAnalyzeResponse(String dossierId, String fileId, long duration, int pageCount,
|
public AnalyzeResult createAnalyzeResponse(String dossierId, String fileId, long duration, int pageCount,
|
||||||
RedactionLog redactionLog, RedactionChangeLog redactionChangeLog) {
|
RedactionLog redactionLog, RedactionChangeLog redactionChangeLog) {
|
||||||
|
|
||||||
@ -51,6 +57,7 @@ public class AnalyzeResponseService {
|
|||||||
.hasRequests(hasRequests)
|
.hasRequests(hasRequests)
|
||||||
.hasImages(hasImages)
|
.hasImages(hasImages)
|
||||||
.hasUpdates(hasUpdates)
|
.hasUpdates(hasUpdates)
|
||||||
|
.analysisVersion(redactionServiceSettings.getAnalysisVersion())
|
||||||
.rulesVersion(redactionLog.getRulesVersion())
|
.rulesVersion(redactionLog.getRulesVersion())
|
||||||
.dictionaryVersion(redactionLog.getDictionaryVersion())
|
.dictionaryVersion(redactionLog.getDictionaryVersion())
|
||||||
.legalBasisVersion(redactionLog.getLegalBasisVersion())
|
.legalBasisVersion(redactionLog.getLegalBasisVersion())
|
||||||
|
|||||||
@ -63,7 +63,7 @@ public class DroolsExecutionService {
|
|||||||
rulesVersion = -1L;
|
rulesVersion = -1L;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version > rulesVersion.longValue()) {
|
if (version > rulesVersion) {
|
||||||
rulesVersionPerDossierTemplateId.put(dossierTemplateId, version);
|
rulesVersionPerDossierTemplateId.put(dossierTemplateId, version);
|
||||||
return createOrUpdateKieContainer(dossierTemplateId);
|
return createOrUpdateKieContainer(dossierTemplateId);
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ public class DroolsExecutionService {
|
|||||||
if (rulesVersion == null) {
|
if (rulesVersion == null) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return rulesVersion.longValue();
|
return rulesVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.*;
|
|||||||
import com.iqser.red.service.redaction.v1.server.redaction.utils.EntitySearchUtils;
|
import com.iqser.red.service.redaction.v1.server.redaction.utils.EntitySearchUtils;
|
||||||
import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder;
|
import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder;
|
||||||
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
import com.iqser.red.service.redaction.v1.server.segmentation.PdfSegmentationService;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
|
||||||
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -41,6 +42,7 @@ public class ReanalyzeService {
|
|||||||
private final RedactionChangeLogService redactionChangeLogService;
|
private final RedactionChangeLogService redactionChangeLogService;
|
||||||
private final AnalyzeResponseService analyzeResponseService;
|
private final AnalyzeResponseService analyzeResponseService;
|
||||||
private final LegalBasisClient legalBasisClient;
|
private final LegalBasisClient legalBasisClient;
|
||||||
|
private final RedactionServiceSettings redactionServiceSettings;
|
||||||
|
|
||||||
|
|
||||||
public AnalyzeResult analyze(AnalyzeRequest analyzeRequest) {
|
public AnalyzeResult analyze(AnalyzeRequest analyzeRequest) {
|
||||||
@ -67,7 +69,7 @@ public class ReanalyzeService {
|
|||||||
log.info("Redaction analysis successful...");
|
log.info("Redaction analysis successful...");
|
||||||
|
|
||||||
var legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId());
|
var legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId());
|
||||||
var redactionLog = new RedactionLog(1, classifiedDoc.getRedactionLogEntities(), legalBasis, classifiedDoc.getDictionaryVersion()
|
var redactionLog = new RedactionLog(redactionServiceSettings.getAnalysisVersion(), classifiedDoc.getRedactionLogEntities(), legalBasis, classifiedDoc.getDictionaryVersion()
|
||||||
.getDossierTemplateVersion(), classifiedDoc.getDictionaryVersion()
|
.getDossierTemplateVersion(), classifiedDoc.getDictionaryVersion()
|
||||||
.getDossierVersion(), classifiedDoc.getRulesVersion(), legalBasisClient.getVersion(analyzeRequest.getDossierTemplateId()));
|
.getDossierVersion(), classifiedDoc.getRulesVersion(), legalBasisClient.getVersion(analyzeRequest.getDossierTemplateId()));
|
||||||
|
|
||||||
|
|||||||
@ -15,4 +15,6 @@ public class RedactionServiceSettings {
|
|||||||
|
|
||||||
private float maxImageCropboxRatio = 0.9f;
|
private float maxImageCropboxRatio = 0.9f;
|
||||||
|
|
||||||
|
private int analysisVersion = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user