Browse Source

controlID 발급 로직 수정

feature/auth
노승철 2 years ago
parent
commit
853d5c6faf
  1. 3
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java
  2. 54
      src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java

3
src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java

@ -10,6 +10,7 @@ import com.palnet.biz.jpa.entity.CtrCntrlBas;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.Optional;
@Repository @Repository
@ -22,4 +23,6 @@ public interface CtrCntrlBasRepository extends JpaRepository<CtrCntrlBas, String
"WHERE c.cntrlId = :cntrlId") "WHERE c.cntrlId = :cntrlId")
int updateCntrlEndType(@Param("endTypeCd") String endTypeCd, @Param("cntrlEndDt") Date cntrlEndDt, @Param("cntrlId") String cntrlId); int updateCntrlEndType(@Param("endTypeCd") String endTypeCd, @Param("cntrlEndDt") Date cntrlEndDt, @Param("cntrlId") String cntrlId);
Optional<CtrCntrlBas> findFirstByIdntfNumOrderByCreateDtDesc(String idntfNum);
} }

54
src/main/java/com/palnet/biz/message/service/impl/MessageServiceImpl.java

@ -6,8 +6,11 @@ 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.CtrCntrlPlanContainsRq;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRs; import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRs;
import com.palnet.biz.api.ctr.cntrl.service.CtrCntrlService; 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.CtrCntrlHstry;
import com.palnet.biz.jpa.entity.CtrCntrlWarnLog; import com.palnet.biz.jpa.entity.CtrCntrlWarnLog;
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.ctr.CtrCntrlWarnLogRepository;
import com.palnet.biz.jpa.repository.pty.PtyDronQueryRepository; import com.palnet.biz.jpa.repository.pty.PtyDronQueryRepository;
import com.palnet.biz.jpa.service.ctr.CtrCntrlJpaService; import com.palnet.biz.jpa.service.ctr.CtrCntrlJpaService;
@ -26,6 +29,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
@ -35,6 +39,8 @@ import java.util.UUID;
public class MessageServiceImpl implements MessageService { public class MessageServiceImpl implements MessageService {
private final CtrCntrlService ctrCntrlService; private final CtrCntrlService ctrCntrlService;
private final CtrCntrlBasRepository ctrCntrlBasRepository;
private final CtrCntrlHstryRepository ctrCntrlHstryRepository;
private final CtrCntrlJpaService ctrCntrlJpaService; private final CtrCntrlJpaService ctrCntrlJpaService;
private final PtyDronQueryRepository ptyDronQueryRepository; private final PtyDronQueryRepository ptyDronQueryRepository;
private final ControlGpsDataContext shareContext; private final ControlGpsDataContext shareContext;
@ -46,6 +52,8 @@ public class MessageServiceImpl implements MessageService {
public MessageServiceImpl(CtrCntrlJpaService ctrCntrlJpaService, public MessageServiceImpl(CtrCntrlJpaService ctrCntrlJpaService,
CtrCntrlBasRepository ctrCntrlBasRepository,
CtrCntrlHstryRepository ctrCntrlHstryRepository,
PtyDronQueryRepository ptyDronQueryRepository, PtyDronQueryRepository ptyDronQueryRepository,
ControlGpsDataContext shareContext, ControlGpsDataContext shareContext,
RabbitTemplate rabbitTemplate, RabbitTemplate rabbitTemplate,
@ -55,6 +63,8 @@ public class MessageServiceImpl implements MessageService {
AreaUtils areaUtils AreaUtils areaUtils
) { ) {
this.ctrCntrlJpaService = ctrCntrlJpaService; this.ctrCntrlJpaService = ctrCntrlJpaService;
this.ctrCntrlBasRepository = ctrCntrlBasRepository;
this.ctrCntrlHstryRepository = ctrCntrlHstryRepository;
this.ptyDronQueryRepository = ptyDronQueryRepository; this.ptyDronQueryRepository = ptyDronQueryRepository;
this.shareContext = shareContext; this.shareContext = shareContext;
this.rabbitTemplate = rabbitTemplate; this.rabbitTemplate = rabbitTemplate;
@ -68,7 +78,29 @@ public class MessageServiceImpl implements MessageService {
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public GPModel mapper(GPModel model) { public GPModel mapper(GPModel model) {
if(shareContext.getIndtfKey(model.getObjectId()) == null) { /* 식별번호의 가장 최근 이력 불러오기 */
CtrCntrlBas latestControl = ctrCntrlBasRepository.findFirstByIdntfNumOrderByCreateDtDesc(model.getObjectId()).orElse(null);
boolean isControl = false;
if(latestControl != null) {
CtrCntrlHstry latestHistory = ctrCntrlHstryRepository.findFirstByCntrlIdOrderBySrvrRcvDtDesc(latestControl.getCntrlId());
long diffMinute = DateUtils.diffMinute(latestHistory.getSrvrRcvDt(), new Date());
if("01".equals(latestControl.getEndTypeCd()) || !"01".equals(latestControl.getEndTypeCd()) && diffMinute > 300) {
isControl = false;
}
if(!"01".equals(latestControl.getEndTypeCd()) && diffMinute < 300) {
isControl = true;
}
} else {
isControl = false;
}
if(isControl) {
model.setControlId(latestControl.getCntrlId());
model.setTypeCd("02");
model.setAreaTrnsYn("E");
} else {
String controlID = UUID.randomUUID().toString(); String controlID = UUID.randomUUID().toString();
model.setControlId(controlID); model.setControlId(controlID);
@ -78,12 +110,24 @@ public class MessageServiceImpl implements MessageService {
// 기체 식별번호의 관제 ID 저장 (single ton) // 기체 식별번호의 관제 ID 저장 (single ton)
shareContext.putIdntfKey(model.getObjectId(), controlID); shareContext.putIdntfKey(model.getObjectId(), controlID);
} else {
model.setControlId(shareContext.getIndtfKey(model.getObjectId()));
model.setTypeCd("02");
model.setAreaTrnsYn("E");
} }
// if(shareContext.getIndtfKey(model.getObjectId()) == null) {
// String controlID = UUID.randomUUID().toString();
//
// model.setControlId(controlID);
// model.setTypeCd("01");
// model.setAreaTrnsYn("N");
// model.setControlStartDt(DateUtils.getCurrentTime());
//
// // 기체 식별번호의 관제 ID 저장 (single ton)
// shareContext.putIdntfKey(model.getObjectId(), controlID);
// } else {
// model.setControlId(shareContext.getIndtfKey(model.getObjectId()));
// model.setTypeCd("02");
// model.setAreaTrnsYn("E");
// }
// 비행구역 Contains Check // 비행구역 Contains Check
List<BasFlightPlanModel> planList = ctrCntrlService.getFlightPlan(model.getObjectId()); List<BasFlightPlanModel> planList = ctrCntrlService.getFlightPlan(model.getObjectId());

Loading…
Cancel
Save