RED-3813: image recategorization

refactor checkstyle
This commit is contained in:
yhampe 2024-06-27 12:19:45 +02:00
parent 7a24702c47
commit 44bce39a2a
2 changed files with 11 additions and 14 deletions

View File

@ -11,10 +11,10 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.iqser.red.service.persistence.management.v1.processor.service.image.ImageSimilarityService; import com.iqser.red.service.persistence.management.v1.processor.service.ImageSimilarityService;
import com.iqser.red.service.persistence.service.v1.api.external.resource.ImageSimilaritySearchResource; import com.iqser.red.service.persistence.service.v1.api.external.resource.ImageSimilaritySearchResource;
import com.iqser.red.service.persistence.service.v1.api.shared.model.image.ImageSimilaritySearchResponse;
import com.iqser.red.service.persistence.service.v1.api.shared.model.image.ImageSimilaritySearchRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.image.ImageSimilaritySearchRequest;
import com.iqser.red.service.persistence.service.v1.api.shared.model.image.ImageSimilaritySearchResponse;
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.document.ImageDocument; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.document.ImageDocument;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -26,17 +26,17 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class ImageSimilaritySearchController implements ImageSimilaritySearchResource { public class ImageSimilaritySearchController implements ImageSimilaritySearchResource {
private final ImageSimilarityService imageSimiliarityService; private final ImageSimilarityService imageSimilarityService;
@SneakyThrows @SneakyThrows
@PreAuthorize("hasAuthority('" + GET_SIMILIAR_IMAGES + "')")
public ResponseEntity<ImageSimilaritySearchResponse> getSimilarImages(@RequestBody ImageSimilaritySearchRequest imageSimilaritySearchRequest) { public ResponseEntity<ImageSimilaritySearchResponse> getSimilarImages(@RequestBody ImageSimilaritySearchRequest imageSimilaritySearchRequest) {
log.info("received similiar image search request {}", imageSimilaritySearchRequest);
log.info("received similiar image search request {}",imageSimilaritySearchRequest); List<ImageDocument> similarImages = this.imageSimilarityService.findSimilarImages(imageSimilaritySearchRequest.getCentroId(),
List<ImageDocument> similarImages = this.imageSimiliarityService.findSimilarImages(imageSimilaritySearchRequest.getCentroId(), imageSimilaritySearchRequest.getDistance(),
imageSimilaritySearchRequest.getDistance(), imageSimilaritySearchRequest.getScope());
imageSimilaritySearchRequest.getScope());
List<String> similarImagesIds = new ArrayList<>(); List<String> similarImagesIds = new ArrayList<>();
List<Byte> similarImagesThumbnails = new ArrayList<>(); List<Byte> similarImagesThumbnails = new ArrayList<>();
similarImages.stream() similarImages.stream()

View File

@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.Scope; import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.Scope;
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.document.ImageDocument; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.document.ImageDocument;
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.ImageMongoService; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.ImageMongoService;
@ -33,12 +32,10 @@ public class ImageSimilarityService {
ObjectMapper objectMapper; ObjectMapper objectMapper;
//load all recat requests and find similiar images
public void saveImages(String templateId, String dossierId, String fileId, String storageId) throws IOException { public void saveImages(String templateId, String dossierId, String fileId, String storageId) throws IOException {
//load structure files of all files in template
List<ImageDocument> imageDocuments = new ArrayList<>(); List<ImageDocument> imageDocuments = new ArrayList<>();
try (InputStream inputStream = fileManagementStorageService.getObject(TenantContext.getTenantId(), storageId)) { try (InputStream inputStream = fileManagementStorageService.getObject(TenantContext.getTenantId(), storageId)) {
//load images from structures
DocumentStructure documentStructure = objectMapper.readValue(inputStream, DocumentStructure.class); DocumentStructure documentStructure = objectMapper.readValue(inputStream, DocumentStructure.class);
documentStructure.streamAllEntries() documentStructure.streamAllEntries()
.filter(entry -> entry.getType().equals(NodeType.IMAGE)) .filter(entry -> entry.getType().equals(NodeType.IMAGE))
@ -64,9 +61,9 @@ public class ImageSimilarityService {
public List<ImageDocument> findSimilarImages(String centroId, double distance, Scope scope) throws Exception { public List<ImageDocument> findSimilarImages(String centroId, double distance, Scope scope) throws Exception {
ImageDocument centroImage = this.imageMongoService.findById(centroId); ImageDocument centroImage = this.imageMongoService.findById(centroId);
log.info("image received with id {}: {}",centroId, centroImage); log.info("image received with id {}: {}", centroId, centroImage);
List<ImageDocument> similarImages = this.imageMongoService.findSimilarImages(centroImage, distance, scope); List<ImageDocument> similarImages = this.imageMongoService.findSimilarImages(centroImage, distance, scope);
log.info("received similar images: {}",similarImages); log.info("received similar images: {}", similarImages);
return similarImages.stream() return similarImages.stream()
.collect(Collectors.toList()); .collect(Collectors.toList());
} }