지대한
1 year ago
7 changed files with 17 additions and 386 deletions
@ -1,86 +0,0 @@
|
||||
//package com.palnet.biz.config;
|
||||
//
|
||||
//import com.rabbitmq.client.ShutdownSignalException;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.amqp.core.*;
|
||||
//import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
|
||||
//import org.springframework.amqp.rabbit.connection.Connection;
|
||||
//import org.springframework.amqp.rabbit.connection.ConnectionFactory;
|
||||
//import org.springframework.amqp.rabbit.connection.ConnectionListener;
|
||||
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
//import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//import org.springframework.core.env.Environment;
|
||||
//
|
||||
//@Configuration
|
||||
//@Slf4j
|
||||
//public class MessageConfig {
|
||||
// private final Environment env;
|
||||
//
|
||||
// public MessageConfig(Environment env) {
|
||||
// this.env = env;
|
||||
// }
|
||||
//
|
||||
//// @Bean
|
||||
//// public CachingConnectionFactory cachingConnectionFactory() {
|
||||
//// CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
|
||||
////
|
||||
//// connectionFactory.setHost(env.getProperty("spring.rabbitmq.host"));
|
||||
//// connectionFactory.setPort(Integer.parseInt(env.getProperty("spring.rabbitmq.port")));
|
||||
//// connectionFactory.setUsername(env.getProperty("spring.rabbitmq.username"));
|
||||
//// connectionFactory.setPassword(env.getProperty("spring.rabbitmq.password"));
|
||||
////
|
||||
//// return connectionFactory;
|
||||
//// }
|
||||
//
|
||||
// @Bean
|
||||
// public Jackson2JsonMessageConverter converter() {
|
||||
// return new Jackson2JsonMessageConverter();
|
||||
// }
|
||||
//
|
||||
//// @Bean
|
||||
//// public DirectExchange appDroneExchange() {
|
||||
//// return new DirectExchange(env.getProperty("message.app.exchange-name"));
|
||||
//// }
|
||||
////
|
||||
//// @Bean
|
||||
//// public DirectExchange websocketDroneExchange() {
|
||||
//// return new DirectExchange(env.getProperty("message.websocket.exchange-name"));
|
||||
//// }
|
||||
////
|
||||
//// @Bean
|
||||
//// public Queue appDroneQueue() {
|
||||
//// return new Queue(env.getProperty("message.app.queue-name"), false);
|
||||
//// }
|
||||
////
|
||||
//// @Bean
|
||||
//// public Queue websocketDroneQueue() {
|
||||
//// return new Queue(env.getProperty("message.websocket.queue-name"), false);
|
||||
//// }
|
||||
////
|
||||
//// @Bean
|
||||
//// public Binding appDroneBinding(Queue appDroneQueue, DirectExchange appDroneExchange) {
|
||||
//// return BindingBuilder.bind(appDroneQueue)
|
||||
//// .to(appDroneExchange)
|
||||
//// .with(env.getProperty("message.app.routing-key"));
|
||||
//// }
|
||||
////
|
||||
//// @Bean
|
||||
//// public Binding websocketDroneBinding(Queue websocketDroneQueue, DirectExchange websocketDroneExchange) {
|
||||
//// return BindingBuilder.bind(websocketDroneQueue)
|
||||
//// .to(websocketDroneExchange)
|
||||
//// .with(env.getProperty("message.websocket.routing-key"));
|
||||
//// }
|
||||
//
|
||||
// @Bean
|
||||
// public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory, Jackson2JsonMessageConverter converter) {
|
||||
// RabbitTemplate rabbitTemplate = new RabbitTemplate();
|
||||
//
|
||||
// rabbitTemplate.setConnectionFactory(connectionFactory);
|
||||
// rabbitTemplate.setMessageConverter(converter);
|
||||
//
|
||||
// return rabbitTemplate;
|
||||
// }
|
||||
//
|
||||
//}
|
@ -1,22 +0,0 @@
|
||||
//package com.palnet.biz.message;
|
||||
//
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import java.util.concurrent.CountDownLatch;
|
||||
//
|
||||
//@Component
|
||||
//@Slf4j
|
||||
//public class Receiver {
|
||||
//
|
||||
// private CountDownLatch latch = new CountDownLatch(1);
|
||||
//
|
||||
// public void receiveMessage(String message) {
|
||||
// log.info("Received <" + message);
|
||||
// latch.countDown();
|
||||
// }
|
||||
//
|
||||
// public CountDownLatch getLatch() {
|
||||
// return latch;
|
||||
// }
|
||||
//}
|
@ -1,53 +0,0 @@
|
||||
//package com.palnet.biz.message.consumer;
|
||||
//
|
||||
//import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
//import com.palnet.biz.message.service.MessageService;
|
||||
//import com.palnet.comn.model.GPModel;
|
||||
//import com.palnet.comn.utils.JsonUtils;
|
||||
//import com.rabbitmq.client.Channel;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.amqp.rabbit.annotation.RabbitHandler;
|
||||
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
//import org.springframework.amqp.support.AmqpHeaders;
|
||||
//import org.springframework.messaging.handler.annotation.Header;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//
|
||||
//@Component
|
||||
//@Slf4j
|
||||
//public class MessageConsumer {
|
||||
//
|
||||
// private final MessageService messageService;
|
||||
// private final ObjectMapper objectMapper;
|
||||
//
|
||||
// public MessageConsumer(MessageService messageService) {
|
||||
// this.messageService = messageService;
|
||||
// this.objectMapper = JsonUtils.getObjectMapper();
|
||||
// }
|
||||
//
|
||||
// @RabbitHandler
|
||||
// @RabbitListener(queues = {"app.drone.queue"})
|
||||
// public void receivedDroneMessage(final String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws IOException {
|
||||
// try {
|
||||
// GPModel model = objectMapper.readValue(message, GPModel.class);
|
||||
//
|
||||
// messageService.insert(model); // GPS 정보 DB 동기화 처리
|
||||
//
|
||||
///* channel.queueDeclare(message, true, false, false, null); rabbitMQ 서버 강제 종료 등 Queue가 유실되는 것을 방지하기 위해 disk에 Queue를 적재 ( Queue 영속성 )
|
||||
// -> 이 옵션 설정시 Queue의 유실은 방지할 수 있으나 Consumer Ack의 응답률이 절반으로 떨어지게 되고 , Unacked -> Ready로 되돌아가는 Queue가 생김 */
|
||||
//// channel.basicConsume(message, true, null);
|
||||
//
|
||||
// channel.basicAck(tag, true); // channel 유지를 위해 Consumer -> Producer로 수신 확인 신호를 자동으로 전송
|
||||
//
|
||||
//// channel.exchangeDeclare(message, "direct", true); Queue Exchange 방식 지정(binding 안되어있으면 설정)
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// } catch (RuntimeException e) {
|
||||
// channel.basicReject(tag, false);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//}
|
@ -1,13 +0,0 @@
|
||||
//package com.palnet.biz.message.service;
|
||||
//
|
||||
//import com.palnet.comn.model.GPModel;
|
||||
//
|
||||
//public interface MessageService {
|
||||
//
|
||||
// GPModel mapper(GPModel model);
|
||||
//
|
||||
// void insert(GPModel model);
|
||||
//
|
||||
// void sendToMessage(GPModel model);
|
||||
//
|
||||
//}
|
@ -1,203 +0,0 @@
|
||||
//package com.palnet.biz.message.service.impl;
|
||||
//
|
||||
//import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
//import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
//
|
||||
//import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel;
|
||||
//import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel;
|
||||
//import com.palnet.biz.jpa.entity.*;
|
||||
//import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository;
|
||||
//import com.palnet.biz.jpa.repository.com.ComIdntBasRepository;
|
||||
//import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository;
|
||||
//import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryRepository;
|
||||
//import com.palnet.biz.jpa.repository.flt.FltPlanArcrftRepository;
|
||||
//import com.palnet.biz.jpa.repository.flt.FltPlanBasRepository;
|
||||
//import com.palnet.biz.jpa.repository.flt.FltPlanCtrCntrlRelRepository;
|
||||
//import com.palnet.biz.jpa.repository.flt.FltPlanQueryRepository;
|
||||
//import com.palnet.biz.jpa.repository.pty.PtyDronQueryRepository;
|
||||
//import com.palnet.biz.jpa.service.ctr.CtrCntrlJpaService;
|
||||
//import com.palnet.biz.api.comn.model.ControlGpsDataContext;
|
||||
//import com.palnet.biz.message.service.MessageService;
|
||||
//import com.palnet.comn.model.GPDatabaseModel;
|
||||
//import com.palnet.comn.model.GPModel;
|
||||
//import com.palnet.comn.utils.DateUtils;
|
||||
//import com.palnet.comn.utils.JsonUtils;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
//import org.springframework.beans.BeanUtils;
|
||||
//import org.springframework.core.env.Environment;
|
||||
//import org.springframework.scheduling.annotation.Async;
|
||||
//import org.springframework.stereotype.Service;
|
||||
//import org.springframework.transaction.annotation.Transactional;
|
||||
//
|
||||
//import java.util.*;
|
||||
//
|
||||
//@Service
|
||||
//@Slf4j
|
||||
//public class MessageServiceImpl implements MessageService {
|
||||
//
|
||||
// private final CtrCntrlJpaService ctrCntrlJpaService;
|
||||
// private final CtrCntrlBasRepository ctrCntrlBasRepository;
|
||||
// private final CtrCntrlHstryRepository ctrCntrlHstryRepository;
|
||||
// private final PtyDronQueryRepository ptyDronQueryRepository;
|
||||
// private final ComArcrftBasRepository arcrftBasRepository;
|
||||
// private final ComIdntBasRepository idntBasRepository;
|
||||
// private final FltPlanQueryRepository fltPlanQueryRepository;
|
||||
// private final FltPlanCtrCntrlRelRepository ctrCntrlRelRepository;
|
||||
// private final ControlGpsDataContext shareContext;
|
||||
// private final RabbitTemplate rabbitTemplate;
|
||||
// private final Environment env;
|
||||
// private final ObjectMapper objectMapper;
|
||||
//
|
||||
// public MessageServiceImpl(CtrCntrlJpaService ctrCntrlJpaService,
|
||||
// CtrCntrlBasRepository ctrCntrlBasRepository,
|
||||
// CtrCntrlHstryRepository ctrCntrlHstryRepository,
|
||||
// PtyDronQueryRepository ptyDronQueryRepository,
|
||||
// ComArcrftBasRepository arcrftBasRepository,
|
||||
// ComIdntBasRepository idntBasRepository,
|
||||
// FltPlanQueryRepository fltPlanQueryRepository,
|
||||
// FltPlanCtrCntrlRelRepository ctrCntrlRelRepository,
|
||||
// ControlGpsDataContext shareContext,
|
||||
// RabbitTemplate rabbitTemplate,
|
||||
// Environment env
|
||||
// ) {
|
||||
// this.ctrCntrlJpaService = ctrCntrlJpaService;
|
||||
// this.ctrCntrlBasRepository = ctrCntrlBasRepository;
|
||||
// this.ctrCntrlHstryRepository = ctrCntrlHstryRepository;
|
||||
// this.ptyDronQueryRepository = ptyDronQueryRepository;
|
||||
// this.arcrftBasRepository = arcrftBasRepository;
|
||||
// this.idntBasRepository = idntBasRepository;
|
||||
// this.fltPlanQueryRepository = fltPlanQueryRepository;
|
||||
// this.ctrCntrlRelRepository = ctrCntrlRelRepository;
|
||||
// this.shareContext = shareContext;
|
||||
// this.rabbitTemplate = rabbitTemplate;
|
||||
// this.env = env;
|
||||
// this.objectMapper = JsonUtils.getObjectMapper();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * TODO Control-Id Mapping
|
||||
// *
|
||||
// * @param model
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// @Transactional(readOnly = true)
|
||||
// public GPModel mapper(GPModel model) {
|
||||
// /* 식별번호의 가장 최근 이력 불러오기 */
|
||||
// CtrCntrlBas latestControl = ctrCntrlBasRepository.findFirstByIdntfNumOrderByCreateDtDesc(model.getObjectId()).orElse(null);
|
||||
//
|
||||
// boolean isControl = false;
|
||||
// if(latestControl != null) {
|
||||
// CtrCntrlHstry latestHistory = ctrCntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(latestControl.getCntrlId()).orElse(null);
|
||||
// long diffMinute = DateUtils.diffMinute(latestHistory.getSrvrRcvDt(), new Date());
|
||||
// log.info("DIFF MINUTE : {}", diffMinute);
|
||||
//
|
||||
// if("01".equals(latestControl.getEndTypeCd()) || diffMinute > 5) {
|
||||
// isControl = false;
|
||||
// }
|
||||
// if(!"01".equals(latestControl.getEndTypeCd()) && diffMinute < 5) {
|
||||
// isControl = true;
|
||||
// }
|
||||
// } else {
|
||||
// isControl = false;
|
||||
// }
|
||||
//
|
||||
// if(isControl) {
|
||||
// model.setControlId(latestControl.getCntrlId());
|
||||
// model.setTypeCd("02");
|
||||
// model.setAreaTrnsYn("E");
|
||||
// } else {
|
||||
// String controlID = UUID.randomUUID().toString();
|
||||
//
|
||||
// model.setControlId(controlID);
|
||||
// model.setTypeCd("01");
|
||||
// model.setAreaTrnsYn("N");
|
||||
// model.setControlStartDt(DateUtils.getCurrentTime());
|
||||
// }
|
||||
//
|
||||
// // 기체 식별번호의 관제 ID 저장
|
||||
// shareContext.putIdntfKey(model.getObjectId(), model.getControlId());
|
||||
//
|
||||
// return model;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * TODO 비행 이력 생성
|
||||
// *
|
||||
// * @param model
|
||||
// */
|
||||
// @Override
|
||||
// @Transactional
|
||||
// public void insert(GPModel model) {
|
||||
// GPDatabaseModel dbModel = new GPDatabaseModel();
|
||||
// BeanUtils.copyProperties(model, dbModel);
|
||||
//
|
||||
// if(model.getTypeCd().equals("01")) {
|
||||
// String prodNumber = ptyDronQueryRepository.findIdntfNumByProdNumber(model.getObjectId());
|
||||
// dbModel.setProdNumber(prodNumber);
|
||||
//
|
||||
// // 비행 이력 생성
|
||||
// CtrCntrlBas ctrCntrlBas = ctrCntrlJpaService.insertCtrCntrlBas(dbModel);
|
||||
//
|
||||
// // 비행 이력, 비행 계획서 mapping
|
||||
// if ("PA".equals(model.getObjectId().substring(0,2))) {
|
||||
// FltPlanCtrCntrlRel fltPlanCtrCntrlRel = new FltPlanCtrCntrlRel();
|
||||
//
|
||||
// // 1. 식별 번호의 소유자 정보 저장.
|
||||
// ComIdntfBas idntfBas = idntBasRepository.findById(model.getObjectId()).orElse(null);
|
||||
//
|
||||
// // 1-1. 식별 번호의 모델 정보 조회
|
||||
// ComArcrftBas arcrftBas = arcrftBasRepository.findById(idntfBas.getArcrftSno()).orElse(null);
|
||||
//
|
||||
// if (idntfBas != null && arcrftBas != null) {
|
||||
// fltPlanCtrCntrlRel.setCntrlId(ctrCntrlBas.getCntrlId());
|
||||
// fltPlanCtrCntrlRel.setIdntfNum(ctrCntrlBas.getIdntfNum());
|
||||
// fltPlanCtrCntrlRel.setIdntfCstmrSno(idntfBas.getCstmrSno());
|
||||
// fltPlanCtrCntrlRel.setGroupId(arcrftBas.getGroupId());
|
||||
// }
|
||||
//
|
||||
// // 2. 해당 되는 비행계획서 정보 저장.
|
||||
// List<FltPlanBas> planArcrft =
|
||||
// fltPlanQueryRepository.findByFlightPlanArcrft(ctrCntrlBas.getIdntfNum(), dbModel.getServerRcvDt());
|
||||
//
|
||||
// if (!planArcrft.isEmpty()) {
|
||||
// for (FltPlanBas plan : planArcrft) {
|
||||
// fltPlanCtrCntrlRel.setPlanSno(plan.getPlanSno());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 3. mapping 정보 주입.
|
||||
// if (!fltPlanCtrCntrlRel.getCntrlId().isEmpty()) {
|
||||
// ctrCntrlRelRepository.save(fltPlanCtrCntrlRel);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // Drone인 경우에만 history 생성
|
||||
// CtrCntrlHstry ctrCntrlHstry = ctrCntrlJpaService.insertCtrCntrlHstry(dbModel);
|
||||
//
|
||||
// if(model.getTypeCd().equals("01") || model.getTypeCd().equals("99")) {
|
||||
// ctrCntrlJpaService.insertCtrCntrlHstryArea(dbModel, ctrCntrlHstry.getHstrySno());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void sendToMessage(GPModel model) {
|
||||
// String json ="";
|
||||
//
|
||||
// try {
|
||||
// json = objectMapper.writeValueAsString(model);
|
||||
// } catch (JsonProcessingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// /* Websocket 서버로 전달 할 드론 데이터 */
|
||||
// rabbitTemplate.convertAndSend(
|
||||
// Objects.requireNonNull(env.getProperty("message.websocket.exchange-name")),
|
||||
// Objects.requireNonNull(env.getProperty("message.websocket.routing-key")),
|
||||
// json
|
||||
// );
|
||||
// }
|
||||
//}
|
Loading…
Reference in new issue