123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- 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");
- 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());
- 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) {
- 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);
- }
- }
- }
|