|
|
|
@ -2,23 +2,23 @@ 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.api.ctr.cntrl.model.CtrCntrlPlanContainsRq; |
|
|
|
|
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRs; |
|
|
|
|
import com.palnet.biz.api.ctr.cntrl.service.CtrCntrlService; |
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlBas; |
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlHstry; |
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlWarnLog; |
|
|
|
|
import com.palnet.biz.jpa.entity.*; |
|
|
|
|
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.ctr.CtrCntrlWarnLogRepository; |
|
|
|
|
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.AreaUtils; |
|
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
|
import com.palnet.comn.utils.JsonUtils; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
@ -38,43 +38,48 @@ import java.util.UUID;
|
|
|
|
|
@Slf4j |
|
|
|
|
public class MessageServiceImpl implements MessageService { |
|
|
|
|
|
|
|
|
|
private final CtrCntrlService ctrCntrlService; |
|
|
|
|
private final CtrCntrlJpaService ctrCntrlJpaService; |
|
|
|
|
private final CtrCntrlBasRepository ctrCntrlBasRepository; |
|
|
|
|
private final CtrCntrlHstryRepository ctrCntrlHstryRepository; |
|
|
|
|
private final CtrCntrlJpaService ctrCntrlJpaService; |
|
|
|
|
private final PtyDronQueryRepository ptyDronQueryRepository; |
|
|
|
|
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; |
|
|
|
|
private final CtrCntrlWarnLogRepository warnLogRepository; |
|
|
|
|
private final AreaUtils areaUtils; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MessageServiceImpl(CtrCntrlJpaService ctrCntrlJpaService, |
|
|
|
|
CtrCntrlBasRepository ctrCntrlBasRepository, |
|
|
|
|
CtrCntrlHstryRepository ctrCntrlHstryRepository, |
|
|
|
|
PtyDronQueryRepository ptyDronQueryRepository, |
|
|
|
|
ComIdntBasRepository idntBasRepository, |
|
|
|
|
FltPlanQueryRepository fltPlanQueryRepository, |
|
|
|
|
FltPlanCtrCntrlRelRepository ctrCntrlRelRepository, |
|
|
|
|
ControlGpsDataContext shareContext, |
|
|
|
|
RabbitTemplate rabbitTemplate, |
|
|
|
|
Environment env, |
|
|
|
|
CtrCntrlService ctrCntrlService, |
|
|
|
|
CtrCntrlWarnLogRepository warnLogRepository, |
|
|
|
|
AreaUtils areaUtils |
|
|
|
|
Environment env |
|
|
|
|
) { |
|
|
|
|
this.ctrCntrlJpaService = ctrCntrlJpaService; |
|
|
|
|
this.ctrCntrlBasRepository = ctrCntrlBasRepository; |
|
|
|
|
this.ctrCntrlHstryRepository = ctrCntrlHstryRepository; |
|
|
|
|
this.ptyDronQueryRepository = ptyDronQueryRepository; |
|
|
|
|
this.idntBasRepository = idntBasRepository; |
|
|
|
|
this.fltPlanQueryRepository = fltPlanQueryRepository; |
|
|
|
|
this.ctrCntrlRelRepository = ctrCntrlRelRepository; |
|
|
|
|
this.shareContext = shareContext; |
|
|
|
|
this.rabbitTemplate = rabbitTemplate; |
|
|
|
|
this.env = env; |
|
|
|
|
this.objectMapper = JsonUtils.getObjectMapper(); |
|
|
|
|
this.ctrCntrlService = ctrCntrlService; |
|
|
|
|
this.warnLogRepository = warnLogRepository; |
|
|
|
|
this.areaUtils = areaUtils; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* TODO Control-Id |
|
|
|
|
* |
|
|
|
|
* @param model |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
|
public GPModel mapper(GPModel model) { |
|
|
|
@ -118,18 +123,47 @@ public class MessageServiceImpl implements MessageService {
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional |
|
|
|
|
@Async |
|
|
|
|
// @Async
|
|
|
|
|
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); |
|
|
|
|
|
|
|
|
|
ctrCntrlJpaService.insertCtrCntrlBas(dbModel); |
|
|
|
|
// 비행 이력 생성
|
|
|
|
|
CtrCntrlBas ctrCntrlBas = ctrCntrlJpaService.insertCtrCntrlBas(dbModel); |
|
|
|
|
|
|
|
|
|
// 비행 이력, 비행 계획서 mapping
|
|
|
|
|
if (model.getObjectId().indexOf("PALDRONE") > -1) { |
|
|
|
|
FltPlanCtrCntrlRel fltPlanCtrCntrlRel = new FltPlanCtrCntrlRel(); |
|
|
|
|
|
|
|
|
|
// 1. 식별번호의 소유자 정보 저장.
|
|
|
|
|
ComIdntfBas idntfBas = idntBasRepository.findById(model.getObjectId()).orElse(null); |
|
|
|
|
|
|
|
|
|
if (idntfBas != null) { |
|
|
|
|
fltPlanCtrCntrlRel.setCntrlId(ctrCntrlBas.getCntrlId()); |
|
|
|
|
fltPlanCtrCntrlRel.setIdntfNum(ctrCntrlBas.getIdntfNum()); |
|
|
|
|
fltPlanCtrCntrlRel.setIdntfCstmrSno(idntfBas.getCstmrSno()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 2. 해당 되는 비행계획서 정보 저장.
|
|
|
|
|
List<FltPlanBas> planArcrft = |
|
|
|
|
fltPlanQueryRepository.findByFlightPlanArcrft(ctrCntrlBas.getIdntfNum(), dbModel.getServerRcvDt()); |
|
|
|
|
|
|
|
|
|
if (!planArcrft.isEmpty()) { |
|
|
|
|
for (FltPlanBas plan : planArcrft) { |
|
|
|
|
fltPlanCtrCntrlRel.setPlanSno(plan.getPlanSno()); |
|
|
|
|
fltPlanCtrCntrlRel.setGroupId(plan.getGroupId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 3. mapping 정보 주입.
|
|
|
|
|
if (!fltPlanCtrCntrlRel.getCntrlId().isEmpty()) { |
|
|
|
|
ctrCntrlRelRepository.save(fltPlanCtrCntrlRel); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Drone인 경우에만 history 생성
|
|
|
|
|