|
@@ -0,0 +1,140 @@
|
|
|
+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.*;
|
|
|
+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.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;
|
|
|
+
|
|
|
+/**
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class CaseAddSceneConsumer {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IScenePlusService scenePlusService;
|
|
|
+ @Autowired
|
|
|
+ ICaseService caseService;
|
|
|
+ @Autowired
|
|
|
+ IUserService userService;
|
|
|
+ @Autowired
|
|
|
+ IJyUserService jyUserService;
|
|
|
+ @Autowired
|
|
|
+ ICaseNumService caseNumService;
|
|
|
+
|
|
|
+ @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("kNo");
|
|
|
+ if(StringUtils.isBlank(num) || StringUtils.isBlank(kNumber)){
|
|
|
+ log.info("queue-aj-add-scene------num为空,kno为空:{},{}",num,kNumber);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ 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());
|
|
|
+ if(user == null){
|
|
|
+ log.info("queue-aj-add-scene------user为空:{},{}",num,kNumber);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JyUser jyUser = jyUserService.getByUserId(user.getId());
|
|
|
+ if(jyUser == null){
|
|
|
+ log.info("queue-aj-add-scene------jyUser为空:{},{}",num,kNumber);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ caseEntity = new CaseEntity();
|
|
|
+ caseEntity.setCaseTitle(kNumber);
|
|
|
+ caseEntity.setUserName(user.getUserName());
|
|
|
+ caseEntity.setSysUserId(jyUser.getSysUserId());
|
|
|
+ caseEntity.setKNumber(kNumber);
|
|
|
+ caseService.save(caseEntity);
|
|
|
+ }
|
|
|
+
|
|
|
+ CaseParam caseParam = new CaseParam();
|
|
|
+ caseParam.setCaseId(caseEntity.getCaseId());
|
|
|
+
|
|
|
+ caseParam.setSceneNumParam(getSceneParam(caseEntity.getCaseId(),scenePlus));
|
|
|
+
|
|
|
+ caseService.addScene(caseParam);
|
|
|
+
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("queue-aj-add-scene------消费失败",e);
|
|
|
+ }finally {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<SceneNumParam> getSceneParam (Integer caseId,ScenePlus scenePlus){
|
|
|
+ List<SceneNumParam> params = new ArrayList<>();
|
|
|
+
|
|
|
+ HashMap<Integer, List<String>> map = caseNumService.getTypeMap(caseId);
|
|
|
+
|
|
|
+ List<Integer> typeList = getTypeBySceneSource(scenePlus.getSceneSource(),scenePlus.getThreeCamType());
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Integer> getTypeBySceneSource(Integer sceneSource,String three) {
|
|
|
+ switch (sceneSource){
|
|
|
+ case 3 : return Arrays.asList(1);
|
|
|
+ case 4 : return Arrays.asList(2,4);
|
|
|
+ case 5 : return Arrays.asList(5,6);
|
|
|
+ default:
|
|
|
+ if(StringUtils.isNotBlank(three) && "yzl".equals(three)){
|
|
|
+ return Arrays.asList(7);
|
|
|
+ }
|
|
|
+ return Arrays.asList(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|