malei05 il y a 1 mois
Parent
commit
91183caf61

+ 26 - 17
fn-opensearch/src/main/java/net/yaoyi/pipeline/opensearch/OpenSearchHandler.java

@@ -43,16 +43,20 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
                 throw new RuntimeException("尚未更新索引信息,id:" + taskImageIndex.getId());
             }
 
-            // 维度一:namespace 维度
-            String nsFilter = String.format("sourceSendPackageDeptId = %d AND taskId != %d", taskImageIndex.getSourceSendPackageDeptId(), taskImageIndex.getTaskId());
-            List<TaskImageIndex.MultiResult> nsResult = knnSearch(namespace, taskImageIndex.getVector(), nsFilter, "namespace");
-            List<TaskImageIndex.MultiResult> multiResultList = new ArrayList<>(nsResult);
-
-            // 维度二:namespace + taskId 维度
-            String nsTaskFilter = String.format("sourceSendPackageDeptId = %d AND taskId = %d AND id != \"%s\"", taskImageIndex.getSourceSendPackageDeptId(), taskImageIndex.getTaskId(), taskImageIndex.getId());
-            List<TaskImageIndex.MultiResult> nsTaskResult = knnSearch(namespace, taskImageIndex.getVector(), nsTaskFilter, "task");
-            multiResultList.addAll(nsTaskResult);
-            taskImageIndex.setMultiResult(JacksonUtils.toJson(multiResultList));
+            if (taskImageIndex.getStatus() == 0) {
+                taskImageIndex.setMultiResult(null);
+            } else {
+                // 维度一:namespace 维度
+                String nsFilter = String.format("sourceSendPackageDeptId = %d AND taskId != %d AND status = 1", taskImageIndex.getSourceSendPackageDeptId(), taskImageIndex.getTaskId());
+                List<TaskImageIndex.MultiResult> nsResult = knnSearch(namespace, taskImageIndex.getVector(), nsFilter, "namespace");
+                List<TaskImageIndex.MultiResult> multiResultList = new ArrayList<>(nsResult);
+
+                // 维度二:namespace + taskId 维度
+                String nsTaskFilter = String.format("sourceSendPackageDeptId = %d AND taskId = %d AND id != \"%s AND status = 1 ", taskImageIndex.getSourceSendPackageDeptId(), taskImageIndex.getTaskId(), taskImageIndex.getId());
+                List<TaskImageIndex.MultiResult> nsTaskResult = knnSearch(namespace, taskImageIndex.getVector(), nsTaskFilter, "task");
+                multiResultList.addAll(nsTaskResult);
+                taskImageIndex.setMultiResult(JacksonUtils.toJson(multiResultList));
+            }
         }
 
         //先落库
@@ -66,22 +70,22 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
     }
 
     private void saveByTask(TaskImageMsg taskImageMsg) {
-        String[] images = taskImageMsg.getImages();
+        List<TaskImageMsg.ImageInfo> images = taskImageMsg.getImages();
 
         List<TaskImageIndex> taskImageList = fetchByTaskId(taskImageMsg.getNamespace(), taskImageMsg.getTaskId());
         Map<String, TaskImageIndex> map = taskImageList.stream().collect(Collectors.toMap(TaskImageIndex::getImage, Function.identity()));
 
         List<TaskImageIndex> addList = new ArrayList<>();
         List<TaskImageIndex> deleteList = new ArrayList<>();
-        for (String image : images) {
-            TaskImageIndex exists = map.remove(image);
+        for (TaskImageMsg.ImageInfo imageInfo : images) {
+            TaskImageIndex exists = map.remove(imageInfo.getImage());
             if (exists != null) {
-                TaskImageIndex index = buildTaskImageIndex(exists.getId(), taskImageMsg, image);
+                TaskImageIndex index = buildTaskImageIndex(exists.getId(), taskImageMsg, imageInfo);
                 index.setVector(exists.getVector());
                 addList.add(index);
             } else {
                 String id = UUID.randomUUID().toString().replaceAll("-", "");
-                addList.add(buildTaskImageIndex(id, taskImageMsg, image));
+                addList.add(buildTaskImageIndex(id, taskImageMsg, imageInfo));
             }
         }
 
@@ -189,6 +193,9 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
             if (fields.has("image")) {
                 index.setImage(fields.get("image").asText());
             }
+            if (fields.has("taskFiledValue")) {
+                index.setTaskFiledValue(fields.get("taskFiledValue").asText());
+            }
             if (fields.has("taskTime")) {
                 index.setTaskTime(fields.get("taskTime").asText());
             }
@@ -256,7 +263,7 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
         return list;
     }
 
-    private TaskImageIndex buildTaskImageIndex(String id, TaskImageMsg msg, String image) {
+    private TaskImageIndex buildTaskImageIndex(String id, TaskImageMsg msg, TaskImageMsg.ImageInfo imageInfo) {
         TaskImageIndex index = new TaskImageIndex();
         index.setId(id);
         index.setNamespace(msg.getNamespace());
@@ -266,7 +273,8 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
         index.setUserId(msg.getUserId());
         index.setStatus(msg.getStatus());
         index.setTaskTime(msg.getTaskTime());
-        index.setImage(image);
+        index.setImage(imageInfo.getImage());
+        index.setTaskFiledValue(imageInfo.getTaskFiledValue());
         return index;
     }
 
@@ -286,6 +294,7 @@ public class OpenSearchHandler implements PojoRequestHandler<TaskImageMsg, List<
         msg.setAlgoConfigId(taskImageMsg.getAlgoConfigId());
         msg.setTaskId(taskImageIndex.getTaskId());
         msg.setImage(taskImageIndex.getImage());
+        msg.setTaskFiledValue(taskImageIndex.getTaskFiledValue());
 
         if (taskImageIndex.getMultiResult() != null) {
             TaskImageIndex.MultiResult[] results = JacksonUtils.parseObject(taskImageIndex.getMultiResult(), TaskImageIndex.MultiResult[].class);

+ 1 - 0
yyc-pipeline-model/src/main/java/net/yaoyi/pipeline/model/index/TaskImageIndex.java

@@ -15,6 +15,7 @@ public class TaskImageIndex {
     private Integer status;
     private String taskTime;
     private String image;
+    private String taskFiledValue;
     private List<Float> vector;
     private String multiResult;
 

+ 1 - 0
yyc-pipeline-model/src/main/java/net/yaoyi/pipeline/model/mq/ImageMultiMsg.java

@@ -9,6 +9,7 @@ import java.util.List;
 public class ImageMultiMsg extends AlgoBaseInfo {
     private Long taskId;
     private String image;
+    private String taskFiledValue;;
     private List<MultiInfo> multiResult;
 
     @Data

+ 9 - 1
yyc-pipeline-model/src/main/java/net/yaoyi/pipeline/model/mq/TaskImageMsg.java

@@ -3,6 +3,8 @@ package net.yaoyi.pipeline.model.mq;
 import lombok.Data;
 import net.yaoyi.pipeline.model.AlgoBaseInfo;
 
+import java.util.List;
+
 @Data
 public class TaskImageMsg extends AlgoBaseInfo {
     private String namespace;
@@ -12,5 +14,11 @@ public class TaskImageMsg extends AlgoBaseInfo {
     private Long userId;
     private Integer status;
     private String taskTime;
-    private String[] images;
+    private List<ImageInfo> images;
+
+    @Data
+    public static class ImageInfo {
+        private String image;
+        private String taskFiledValue;
+    }
 }