지대한
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