CaseAddSceneConsumer.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.fdkankan.fusion.mq.consumer;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.fdkankan.fusion.entity.CaseEntity;
  6. import com.fdkankan.fusion.entity.ScenePlus;
  7. import com.fdkankan.fusion.entity.ScenePlusExt;
  8. import com.fdkankan.fusion.entity.User;
  9. import com.fdkankan.fusion.mq.vo.LaserSceneGpsVo;
  10. import com.fdkankan.fusion.request.CaseParam;
  11. import com.fdkankan.fusion.request.SceneNumParam;
  12. import com.fdkankan.fusion.service.*;
  13. import com.rabbitmq.client.Channel;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.amqp.core.Message;
  17. import org.springframework.amqp.rabbit.annotation.Queue;
  18. import org.springframework.amqp.rabbit.annotation.RabbitListener;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Component;
  21. import scala.Int;
  22. import javax.swing.*;
  23. import java.nio.charset.StandardCharsets;
  24. import java.util.ArrayList;
  25. import java.util.Arrays;
  26. import java.util.List;
  27. /**
  28. */
  29. @Slf4j
  30. @Component
  31. public class CaseAddSceneConsumer {
  32. @Autowired
  33. IScenePlusService scenePlusService;
  34. @Autowired
  35. ICaseService caseService;
  36. @Autowired
  37. IUserService userService;
  38. @RabbitListener(
  39. queuesToDeclare = @Queue("${queue.fusion.case-add:queue-aj-add-scene}")
  40. )
  41. public void consumerQueue(Channel channel, Message message) {
  42. try {
  43. String messageId = message.getMessageProperties().getMessageId();
  44. String msg = new String(message.getBody(), StandardCharsets.UTF_8);
  45. log.info("queue-aj-add-scene-mq--messageId:{},msg:{}",messageId,msg);
  46. channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
  47. JSONObject jsonObject = JSON.parseObject(msg);
  48. String num = jsonObject.getString("num");
  49. String kNumber = jsonObject.getString("kNo");
  50. ScenePlus scenePlus = scenePlusService.getByNum(num);
  51. if(scenePlus == null){
  52. log.info("queue-aj-add-scene------场景为空:{},{}",num,kNumber);
  53. return;
  54. }
  55. CaseEntity caseEntity = caseService.getKnumber(kNumber);
  56. if(caseEntity == null){
  57. User user = userService.getById(scenePlus.getUserId());
  58. caseEntity = new CaseEntity();
  59. caseEntity.setCaseTitle(kNumber);
  60. caseEntity.setUserName(user.getUserName());
  61. caseEntity.setSysUserId(user.getSysUserId());
  62. caseService.save(caseEntity);
  63. }
  64. CaseParam caseParam = new CaseParam();
  65. caseParam.setCaseId(caseEntity.getCaseId());
  66. caseParam.setSceneNumParam(getSceneParam(scenePlus));
  67. caseService.addScene(caseParam);
  68. }catch (Exception e){
  69. log.info("queue-aj-add-scene------消费失败",e);
  70. }finally {
  71. }
  72. }
  73. public List<SceneNumParam> getSceneParam (ScenePlus scenePlus){
  74. List<Integer> typeList = getTypeBySceneSource(scenePlus.getSceneSource());
  75. List<SceneNumParam> params = new ArrayList<>();
  76. for (Integer type : typeList) {
  77. SceneNumParam sceneNumParam = new SceneNumParam();
  78. sceneNumParam.setNumList(Arrays.asList(scenePlus.getNum()));
  79. sceneNumParam.setType(type);
  80. params.add(sceneNumParam);
  81. }
  82. return params;
  83. }
  84. private List<Integer> getTypeBySceneSource(Integer sceneSource) {
  85. switch (sceneSource){
  86. case 3 : return Arrays.asList(1);
  87. case 4 : return Arrays.asList(2,4);
  88. case 5 : return Arrays.asList(5,6);
  89. default: return Arrays.asList(0);
  90. }
  91. }
  92. }