lyhzzz 2 月之前
父節點
當前提交
47c93f2e37

+ 3 - 0
src/main/java/com/fdkankan/fusion/entity/CaseEntity.java

@@ -129,4 +129,7 @@ public class CaseEntity implements Serializable {
 
     @TableField(exist = false)
     public MapConfig mapConfig;
+
+    @TableField("k_number")
+    private String kNumber;
 }

+ 110 - 0
src/main/java/com/fdkankan/fusion/mq/consumer/CaseAddSceneConsumer.java

@@ -0,0 +1,110 @@
+package com.fdkankan.fusion.mq.consumer;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.fusion.entity.CaseEntity;
+import com.fdkankan.fusion.entity.ScenePlus;
+import com.fdkankan.fusion.entity.ScenePlusExt;
+import com.fdkankan.fusion.entity.User;
+import com.fdkankan.fusion.mq.vo.LaserSceneGpsVo;
+import com.fdkankan.fusion.request.CaseParam;
+import com.fdkankan.fusion.request.SceneNumParam;
+import com.fdkankan.fusion.service.*;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import scala.Int;
+
+import javax.swing.*;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ */
+@Slf4j
+@Component
+public class CaseAddSceneConsumer {
+
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    ICaseService caseService;
+    @Autowired
+    IUserService userService;
+
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.fusion.case-add:queue-aj-add-scene}")
+    )
+    public void consumerQueue(Channel channel, Message message)  {
+        try {
+            String messageId = message.getMessageProperties().getMessageId();
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            log.info("queue-aj-add-scene-mq--messageId:{},msg:{}",messageId,msg);
+
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+            JSONObject jsonObject = JSON.parseObject(msg);
+            String num = jsonObject.getString("num");
+            String kNumber = jsonObject.getString("caseId");
+
+            ScenePlus scenePlus = scenePlusService.getByNum(num);
+            if(scenePlus == null){
+                log.info("queue-aj-add-scene------场景为空:{},{}",num,kNumber);
+                return;
+            }
+
+            CaseEntity caseEntity = caseService.getKnumber(kNumber);
+            if(caseEntity == null){
+                User user = userService.getById(scenePlus.getUserId());
+                caseEntity = new CaseEntity();
+                caseEntity.setCaseTitle(kNumber);
+                caseEntity.setUserName(user.getUserName());
+                caseService.save(caseEntity);
+            }
+
+            CaseParam caseParam = new CaseParam();
+            caseParam.setCaseId(caseEntity.getCaseId());
+
+            caseParam.setSceneNumParam(getSceneParam(scenePlus));
+
+            caseService.addScene(caseParam);
+
+
+        }catch (Exception e){
+            log.info("queue-aj-add-scene------消费失败",e);
+        }finally {
+
+        }
+
+    }
+
+    public List<SceneNumParam> getSceneParam (ScenePlus scenePlus){
+        List<Integer> typeList =  getTypeBySceneSource(scenePlus.getSceneSource());
+
+        List<SceneNumParam> params = new ArrayList<>();
+        for (Integer type : typeList) {
+            SceneNumParam sceneNumParam = new SceneNumParam();
+            sceneNumParam.setNumList(Arrays.asList(scenePlus.getNum()));
+            sceneNumParam.setType(type);
+            params.add(sceneNumParam);
+        }
+        return params;
+    }
+
+    private List<Integer> getTypeBySceneSource(Integer sceneSource) {
+        switch (sceneSource){
+            case 3 : return  Arrays.asList(1);
+            case 4 : return  Arrays.asList(2,4);
+            case 5 : return  Arrays.asList(5,6);
+            default: return Arrays.asList(0);
+        }
+    }
+
+}

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICaseService.java

@@ -40,4 +40,6 @@ public interface ICaseService extends IService<CaseEntity> {
     String getDeptId(Integer caseId);
 
     CaseVo getInfo(Integer caseId);
+
+    CaseEntity getKnumber(String kNumber);
 }

+ 11 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseServiceImpl.java

@@ -299,4 +299,15 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, CaseEntity> implem
         }
         return caseVo;
     }
+
+    @Override
+    public CaseEntity getKnumber(String kNumber) {
+        LambdaQueryWrapper<CaseEntity> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseEntity::getKNumber,kNumber);
+        List<CaseEntity> list = this.list(wrapper);
+        if(list != null && list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
 }