lyhzzz 2 月之前
父節點
當前提交
76b4c15158
共有 1 個文件被更改,包括 20 次插入11 次删除
  1. 20 11
      src/main/java/com/fdkankan/fusion/mq/consumer/CaseAddSceneConsumer.java

+ 20 - 11
src/main/java/com/fdkankan/fusion/mq/consumer/CaseAddSceneConsumer.java

@@ -18,10 +18,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import scala.Int;
 
+import javax.lang.model.element.TypeElement;
 import javax.swing.*;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -38,6 +40,8 @@ public class CaseAddSceneConsumer {
     IUserService userService;
     @Autowired
     IJyUserService jyUserService;
+    @Autowired
+    ICaseNumService caseNumService;
 
     @RabbitListener(
             queuesToDeclare = @Queue("${queue.fusion.case-add:queue-aj-add-scene}")
@@ -82,7 +86,7 @@ public class CaseAddSceneConsumer {
             CaseParam caseParam = new CaseParam();
             caseParam.setCaseId(caseEntity.getCaseId());
 
-            caseParam.setSceneNumParam(getSceneParam(kNumber));
+            caseParam.setSceneNumParam(getSceneParam(caseEntity.getCaseId(),scenePlus));
 
             caseService.addScene(caseParam);
 
@@ -95,19 +99,24 @@ public class CaseAddSceneConsumer {
 
     }
 
-    public List<SceneNumParam> getSceneParam (String KNumber){
+    public List<SceneNumParam> getSceneParam (Integer caseId,ScenePlus scenePlus){
         List<SceneNumParam> params = new ArrayList<>();
-        List<ScenePlus> scenePlus = scenePlusService.getKNumber(KNumber);
-        for (ScenePlus plus : scenePlus) {
-            List<Integer> typeList =  getTypeBySceneSource(plus.getSceneSource());
-            for (Integer type : typeList) {
-                SceneNumParam sceneNumParam = new SceneNumParam();
-                sceneNumParam.setNumList(Arrays.asList(plus.getNum()));
-                sceneNumParam.setType(type);
-                params.add(sceneNumParam);
-            }
+
+        HashMap<Integer, List<String>> map = caseNumService.getTypeMap(caseId);
+
+        List<Integer> typeList =  getTypeBySceneSource(scenePlus.getSceneSource());
+        for (Integer type : typeList) {
+            map.computeIfAbsent(type, k -> new ArrayList<>());
+            List<String> list = map.get(type);
+            list.add(scenePlus.getNum());
         }
 
+        for (Integer type : map.keySet()) {
+            SceneNumParam sceneNumParam = new SceneNumParam();
+            sceneNumParam.setNumList(map.get(type));
+            sceneNumParam.setType(type);
+            params.add(sceneNumParam);
+        }
         return params;
     }