지대한
1 year ago
4 changed files with 139 additions and 2 deletions
@ -0,0 +1,38 @@ |
|||||||
|
package com.palnet.biz.api.ctr.cntrl.controller; |
||||||
|
|
||||||
|
import com.palnet.biz.api.ctr.cntrl.service.SocketReciverService; |
||||||
|
import com.palnet.comn.model.GPModel; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.http.ResponseEntity; |
||||||
|
import org.springframework.web.bind.annotation.PostMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* packageName : com.palnet.biz.api.ctr.cntrl.controller |
||||||
|
* fileName : SocketReciverController |
||||||
|
* author : dhji |
||||||
|
* date : 2023-08-29(029) |
||||||
|
* description : |
||||||
|
* =========================================================== |
||||||
|
* DATE AUTHOR NOTE |
||||||
|
* ----------------------------------------------------------- |
||||||
|
* 2023-08-29(029) dhji 최초 생성 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@RequiredArgsConstructor |
||||||
|
@RestController |
||||||
|
@RequestMapping("/api/server") |
||||||
|
public class SocketReciverController { |
||||||
|
|
||||||
|
private final SocketReciverService socketReciverService; |
||||||
|
@PostMapping("/receiver") |
||||||
|
public ResponseEntity<?> receiver(@RequestBody GPModel model) { |
||||||
|
System.out.println("socket message : " + model); |
||||||
|
log.info("socket message : {}", model); |
||||||
|
socketReciverService.insert(model); |
||||||
|
return ResponseEntity.ok().build(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,100 @@ |
|||||||
|
package com.palnet.biz.api.ctr.cntrl.service; |
||||||
|
|
||||||
|
import com.palnet.biz.api.comn.model.ControlGpsDataContext; |
||||||
|
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.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.comn.model.GPDatabaseModel; |
||||||
|
import com.palnet.comn.model.GPModel; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* packageName : com.palnet.biz.api.ctr.cntrl.service |
||||||
|
* fileName : SocketReciverService |
||||||
|
* author : dhji |
||||||
|
* date : 2023-08-29(029) |
||||||
|
* description : |
||||||
|
* =========================================================== |
||||||
|
* DATE AUTHOR NOTE |
||||||
|
* ----------------------------------------------------------- |
||||||
|
* 2023-08-29(029) dhji 최초 생성 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@RequiredArgsConstructor |
||||||
|
@Service |
||||||
|
public class SocketReciverService { |
||||||
|
|
||||||
|
private final CtrCntrlJpaService ctrCntrlJpaService; |
||||||
|
private final PtyDronQueryRepository ptyDronQueryRepository; |
||||||
|
private final ComArcrftBasRepository arcrftBasRepository; |
||||||
|
private final ComIdntBasRepository idntBasRepository; |
||||||
|
private final FltPlanQueryRepository fltPlanQueryRepository; |
||||||
|
private final FltPlanCtrCntrlRelRepository ctrCntrlRelRepository; |
||||||
|
|
||||||
|
@Transactional |
||||||
|
public void insert(GPModel model) { |
||||||
|
GPDatabaseModel dbModel = new GPDatabaseModel(); |
||||||
|
BeanUtils.copyProperties(model, dbModel); |
||||||
|
|
||||||
|
if("01".equals(model.getTypeCd())) { |
||||||
|
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("01".equals(model.getTypeCd()) || "99".equals(model.getTypeCd())) { |
||||||
|
ctrCntrlJpaService.insertCtrCntrlHstryArea(dbModel, ctrCntrlHstry.getHstrySno()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue