From 1ddcc5eaf3d610edd0702892a8bbe230d00f962b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Mon, 25 Jul 2022 09:52:52 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=20=EA=B4=80=EC=A0=9C=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=EA=B4=80=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cstmr/controller/AcntCstmrController.java | 19 ++---- .../acnt/cstmr/model/AcntCstmrGroupModel.java | 17 +++++ .../acnt/cstmr/service/AcntCstmrService.java | 6 +- .../cntrl/controller/CtrCntrlController.java | 67 +++++++++++-------- .../ctr/cntrl/service/CtrCntrlService.java | 15 +++-- .../repository/ctr/CtrCntrlBasRepository.java | 4 +- .../ctr/CtrCntrlHstryRepository.java | 3 + .../ctr/CtrCntrlQueryRepository.java | 66 +++++++++++++++--- .../pty/PtyCstmrQueryRepository.java | 13 ++-- .../ctr/service/CtrSchedulerService.java | 5 +- 10 files changed, 142 insertions(+), 73 deletions(-) create mode 100644 src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrGroupModel.java diff --git a/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java b/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java index c1fe4c1..3b08305 100644 --- a/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java +++ b/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java @@ -1,17 +1,16 @@ package com.palnet.biz.api.acnt.cstmr.controller; +import java.security.Principal; +import java.util.ArrayList; import java.util.List; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -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; +import org.springframework.security.core.Authentication; +import org.springframework.web.bind.annotation.*; import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRqModel; import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRsModel; @@ -40,8 +39,6 @@ public class AcntCstmrController { @Autowired private final AcntCstmrService service; - - @PostMapping(value = "/register") public ResponseEntity register(@RequestBody AcntCstmrRqModel rq) { @@ -60,11 +57,9 @@ public class AcntCstmrController { } return ResponseEntity.ok().body(new SuccessResponse(result)); - } - - - + + } diff --git a/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrGroupModel.java b/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrGroupModel.java new file mode 100644 index 0000000..a78bddb --- /dev/null +++ b/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrGroupModel.java @@ -0,0 +1,17 @@ +package com.palnet.biz.api.acnt.cstmr.model; + +import lombok.Data; + +@Data +public class AcntCstmrGroupModel { + + private Integer cstmrSno; + private String userId; + private String groupId; + private String groupNm; + private String groupAuthCd; + private Integer arcrftSno; + private String idntfNum; + private String createUserId; + +} diff --git a/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java b/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java index e0159c6..cc8a3b9 100644 --- a/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java +++ b/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java @@ -9,9 +9,11 @@ import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; @@ -180,8 +182,4 @@ public class AcntCstmrService { return ptyTermsAgreeTxnRepository.save(agreeEntity); } - - - - } diff --git a/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java b/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java index 53f36e1..08bf964 100644 --- a/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java +++ b/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java @@ -1,15 +1,16 @@ package com.palnet.biz.api.ctr.cntrl.controller; +import java.util.ArrayList; import java.util.List; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; +import com.palnet.biz.jpa.entity.CtrCntrlHstry; +import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.palnet.biz.api.comn.response.BasicResponse; import com.palnet.biz.api.comn.response.ErrorResponse; @@ -31,18 +32,19 @@ public class CtrCntrlController { @Autowired private final CtrCntrlService service; - @Autowired private final SampleService sampleService; + @Autowired + private final CtrCntrlHstryRepository ctrCntrlHstryRepository; @GetMapping(value = "/history/{id}") public ResponseEntity historyList(@PathVariable String id) { List result = null; - + try { - result = service.getListHistory(id); - + result = service.getHistory(id); + } catch (Exception e) { log.error("IGNORE : {}", e); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) @@ -50,7 +52,6 @@ public class CtrCntrlController { } return ResponseEntity.ok().body(new SuccessResponse(result)); - } @@ -68,7 +69,21 @@ public class CtrCntrlController { } return ResponseEntity.ok().body(new SuccessResponse(result)); + } + + @GetMapping(value = "/history/list/{id}") + public ResponseEntity history(@PathVariable String id) { + List history; + try { + history = service.getHistory(id); + } catch (Exception e) { + log.error("IGNORE : {}", e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ErrorResponse("Server Error", "-1")); + } + + return ResponseEntity.ok().body(new SuccessResponse<>(history)); } @@ -87,26 +102,20 @@ public class CtrCntrlController { } return ResponseEntity.ok().body(new SuccessResponse(result)); + } + + @GetMapping("/group") + public ResponseEntity getGroupAuthInfo(@RequestParam Integer cstmrSno) { + List list; + + try { + list = service.getGroupAuthInfo(cstmrSno); + } catch (Exception e) { + log.error("IGNORE : {}", e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ErrorResponse("Server Error", "-1")); + } + return ResponseEntity.ok().body(new SuccessResponse(list)); } - -// @GetMapping(value = "/status") -// public ResponseEntity status() { -// Map result; -// -// try { -// result = -// -// } catch (Exception e) { -// log.error("IGNORE : {}", e); -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) -// .body(new ErrorResponse("Server Error", "-1")); -// -// } -// return ResponseEntity.ok().body(new SuccessResponse(result)); -// -// } - - - } diff --git a/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java b/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java index 1d0c602..75e25ca 100644 --- a/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java +++ b/src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java @@ -3,6 +3,7 @@ package com.palnet.biz.api.ctr.cntrl.service; import java.util.ArrayList; import java.util.List; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,9 +101,13 @@ public class CtrCntrlService { return result; } - - - - - + + public List getHistory(String controlId) { + return query.getDroneHistory(controlId); + } + + public List getGroupAuthInfo(Integer cstmrSno) { + List list = query.findByGroupInfo(cstmrSno); + return list; + } } diff --git a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java index 30227c6..d9a5365 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java @@ -6,6 +6,8 @@ import org.springframework.stereotype.Repository; import com.palnet.biz.jpa.entity.CtrCntrlBas; +import java.util.Date; + @Repository public interface CtrCntrlBasRepository extends JpaRepository{ @@ -13,6 +15,6 @@ public interface CtrCntrlBasRepository extends JpaRepository{ CtrCntrlHstry findFirstByCntrlIdOrderBySrvrRcvDtDesc(String cntrlId); + List findByCntrlIdOrderByHstrySno(String cntrlId); } diff --git a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java index 741c3d4..94e4628 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java @@ -3,6 +3,10 @@ package com.palnet.biz.jpa.repository.ctr; import java.util.ArrayList; import java.util.List; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; +import com.palnet.biz.jpa.entity.*; +import com.palnet.comn.model.GPHistoryModel; +import com.querydsl.core.Tuple; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; @@ -14,13 +18,6 @@ import com.palnet.biz.api.anls.smlt.model.AnlsSmltStcsModel; import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlDtlModel; import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlEndModel; import com.palnet.biz.api.main.dash.model.MainDashStcsModel; -import com.palnet.biz.jpa.entity.ComArcrftBas; -import com.palnet.biz.jpa.entity.CtrCntrlHstryArea; -import com.palnet.biz.jpa.entity.QComArcrftBas; -import com.palnet.biz.jpa.entity.QComIdntfBas; -import com.palnet.biz.jpa.entity.QCtrCntrlBas; -import com.palnet.biz.jpa.entity.QCtrCntrlHstry; -import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea; import com.palnet.comn.utils.DateUtils; import com.palnet.comn.utils.EncryptUtils; import com.querydsl.core.BooleanBuilder; @@ -475,8 +472,55 @@ public class CtrCntrlQueryRepository{ .fetch(); return result; } - - - - + + public List getDroneHistory(String controlId) { + QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas; + QCtrCntrlHstry hst = QCtrCntrlHstry.ctrCntrlHstry; + + + List list = query.select(Projections.bean(GPHistoryModel.class, + bas.idntfNum.as("objectId"), + hst.lat.as("lat"), + hst.lon.as("lng") + )) + .from(bas) + .leftJoin(hst) + .on(bas.cntrlId.eq(hst.cntrlId)) + .where(bas.cntrlId.eq(controlId)) + .fetch(); + return list; + + } + + public List findByGroupInfo(Integer cstmrSno) { + QPtyCstmrBas pcb = QPtyCstmrBas.ptyCstmrBas; + QPtyCstmrGroup pcg = QPtyCstmrGroup.ptyCstmrGroup; + QPtyGroupBas pgb = QPtyGroupBas.ptyGroupBas; + QComArcrftBas cab = QComArcrftBas.comArcrftBas; + QComIdntfBas cib = QComIdntfBas.comIdntfBas; + + List models = query.select(Projections.bean(AcntCstmrGroupModel.class, + pcb.cstmrSno.as("cstmrSno"), + pcb.userId.as("userId"), + pgb.groupId.as("groupId"), + pgb.groupNm.as("groupNm"), + pcg.groupAuthCd.as("groupAuthCd"), + cab.arcrftSno.as("arcrftSno"), + cib.idntfNum.as("idntfNum"), + cab.createUserId.as("createUserId") + )) + .from(pcb) + .leftJoin(pcg) + .on(pcb.cstmrSno.eq(pcg.cstmrSno)) + .leftJoin(pgb) + .on(pcg.groupId.eq(pgb.groupId)) + .leftJoin(cab) + .on(pgb.groupId.eq(cab.groupId)) + .leftJoin(cib) + .on(cab.arcrftSno.eq(cib.arcrftSno)) + .where(pcb.cstmrSno.eq(cstmrSno)) + .fetch(); + + return models; + } } diff --git a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java index 79a4ec2..ad50711 100644 --- a/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java +++ b/src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java @@ -1,12 +1,11 @@ package com.palnet.biz.jpa.repository.pty; +import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; +import com.palnet.biz.jpa.entity.*; import org.springframework.stereotype.Repository; import com.palnet.biz.api.acnt.jwt.model.JwtProfileRsModel; import com.palnet.biz.api.acnt.jwt.model.JwtUserModel; -import com.palnet.biz.jpa.entity.PtyCstmrBas; -import com.palnet.biz.jpa.entity.QPtyCstmrBas; -import com.palnet.biz.jpa.entity.QPtyCstmrDtl; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Projections; import com.querydsl.jpa.impl.JPAQueryFactory; @@ -14,6 +13,8 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; +import java.util.List; + @Log4j2 @Repository @RequiredArgsConstructor @@ -145,10 +146,4 @@ public class PtyCstmrQueryRepository{ return null; } } - - - - - - } diff --git a/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java b/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java index 90d9510..86e793f 100644 --- a/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java +++ b/src/main/java/com/palnet/biz/scheduler/ctr/service/CtrSchedulerService.java @@ -72,7 +72,6 @@ public class CtrSchedulerService { * 기준 * 1) {param} 분 이상 데이터가 들어오지 않을 경우 * 2) 마지막 데이터 속도가 0 , 고도가 0 (현재 적용 X) - * @param minute */ public void remove() { Map keys = dataShareContext.getAllKeys(); @@ -82,8 +81,10 @@ public class CtrSchedulerService { if(Objects.nonNull(history)) { long diffMinute = DateUtils.diffMinute(history.getSrvrRcvDt(), new Date()); + if(diffMinute > GP_REMOVE_TIME) { - ctrCntrlBasRepository.updateCntrlEndType("01", DateUtils.getCurrentTime(), history.getCntrlId()); + String currentTime = DateUtils.getCurrentTime(); + ctrCntrlBasRepository.updateCntrlEndType("01", DateUtils.stringToDatetime(currentTime), history.getCntrlId()); dataShareContext.removeIdntfKey(key); }