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 df335c2..b82d8de 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 @@ -103,7 +103,7 @@ public class CtrCntrlController { */ @GetMapping("/group") public ResponseEntity findGroupAuthInfo(@RequestParam Integer cstmrSno) { - List list; + List list; try { list = service.getGroupAuthInfo(cstmrSno); diff --git a/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupArcrftModel.java b/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupArcrftModel.java new file mode 100644 index 0000000..cdeb2eb --- /dev/null +++ b/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupArcrftModel.java @@ -0,0 +1,23 @@ +package com.palnet.biz.api.ctr.cntrl.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CtrCntrlGroupArcrftModel { + + private String idntfNum; + private Integer arcrftSno; + private String groupId; + private String idntfTypeCd; + private String ownerNm; + private String hpno; + private String prdctNum; + private String arcrftTypeCd; + private String arcrftModelNm; + private String prdctCmpnNm; + private Date createDt; + private Date updateDt; + +} diff --git a/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupModel.java b/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupModel.java new file mode 100644 index 0000000..be071c6 --- /dev/null +++ b/src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupModel.java @@ -0,0 +1,18 @@ +package com.palnet.biz.api.ctr.cntrl.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class CtrCntrlGroupModel { + + private Integer cstmrSno; + private String userId; + private String authId; + private String groupId; + private String groupNm; + private String groupAuthCd; + + private List arcrftList; +} 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 b9b898f..e745ab3 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 @@ -2,7 +2,6 @@ package com.palnet.biz.api.ctr.cntrl.service; import java.util.*; -import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel; import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordModel; import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel; import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel; @@ -21,10 +20,6 @@ import com.palnet.comn.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.locationtech.jts.geom.Coordinate; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Service; import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; @@ -35,7 +30,6 @@ import org.springframework.transaction.annotation.Transactional; @Service @Log4j2 -@Transactional(readOnly = true) public class CtrCntrlService { private final CtrCntrlQueryRepository query; private final CtrCntrlBasRepository cntrlBasRepository; @@ -45,13 +39,11 @@ public class CtrCntrlService { private final ComArcrftBasRepository arcrftRepository; private final FltPlanBasRepository planBasRepository; private final FltPlanArcrftRepository planArcrftRepository; - private final FltPlanPilotRepository planPilotRepository; private final FltPlanAreaRepository planAreaRepository; private final FltPlanAreaCoordRepository planCoordRepository; private final AreaUtils areaUtils; private final ControlGpsDataContext shareContext; - public CtrCntrlService(CtrCntrlQueryRepository query, CtrCntrlBasRepository cntrlBasRepository, CtrCntrlHstryRepository cntrlHstryRepository, @@ -60,7 +52,6 @@ public class CtrCntrlService { ComArcrftBasRepository arcrftRepository, FltPlanBasRepository planBasRepository, FltPlanArcrftRepository planArcrftRepository, - FltPlanPilotRepository planPilotRepository, FltPlanAreaRepository planAreaRepository, FltPlanAreaCoordRepository planCoordRepository, AreaUtils areaUtils, @@ -73,18 +64,14 @@ public class CtrCntrlService { this.arcrftRepository = arcrftRepository; this.planBasRepository = planBasRepository; this.planArcrftRepository = planArcrftRepository; - this.planPilotRepository = planPilotRepository; this.planAreaRepository = planAreaRepository; this.planCoordRepository = planCoordRepository; this.areaUtils = areaUtils; this.shareContext = shareContext; } - private Logger logger = LoggerFactory.getLogger(getClass()); - public List getListHistory(String objectId){ - List resultList = new ArrayList(); List filterList = new ArrayList(); // if(cic.getHistoryData(objectId).size() > 0) { @@ -110,7 +97,7 @@ public class CtrCntrlService { */ public CtrCntrlDtlModel getDetail(String controlId) { - CtrCntrlDtlModel result = new CtrCntrlDtlModel(); + CtrCntrlDtlModel result; result = query.detailCntrl(controlId); @@ -138,10 +125,7 @@ public class CtrCntrlService { if(!StringUtils.isEmpty(data.getLandNum())) { stAreaNm = stAreaNm + " " + data.getLandNum(); } - - } -// log.debug("data>>" + data.toString()); } result.setStAreaNm(stAreaNm); @@ -160,13 +144,20 @@ public class CtrCntrlService { } /** - * TODO 사용자가 속한 그룹 정보 조회 + * TODO 그룹의 기체 정보 조회 * * @param cstmrSno * @return */ - public List getGroupAuthInfo(Integer cstmrSno) { - List list = query.findByGroupInfo(cstmrSno); + public List getGroupAuthInfo(Integer cstmrSno) { + List list = query.findByGroupInfo(); + + for (CtrCntrlGroupModel group : list) { + List arcrftList = query.findByGroupArcrft(group.getGroupId()); + + group.setArcrftList(arcrftList); + } + return list; } @@ -270,7 +261,6 @@ public class CtrCntrlService { * @param idntfNum * @return */ -// @Cacheable(value = "flight-plan") public List getFlightPlan(String idntfNum) { List rs = new ArrayList<>(); @@ -411,7 +401,7 @@ public class CtrCntrlService { /** - * TODO + * TODO 비행 이력 Control-Id 발급 * * @param id * @return 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 30c7753..0b82cf4 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 @@ -8,6 +8,8 @@ import java.util.Calendar; import java.util.Date; import java.util.List; +import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupArcrftModel; +import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupModel; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -634,35 +636,62 @@ public class CtrCntrlQueryRepository{ } - public List findByGroupInfo(Integer cstmrSno) { - QPtyCstmrBas pcb = QPtyCstmrBas.ptyCstmrBas; + public List findByGroupInfo() { 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"), + String authId = jwtTokenUtil.getUserAuthByToken(); + Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); + + BooleanBuilder builder = new BooleanBuilder(); + builder.and(pcg.aprvlYn.eq("Y")); + + if (!"SUPER".equals(authId) && !"ADMIN".equals(authId)) { + builder.and(pcg.cstmrSno.eq(cstmrSno)); + } + + List models = query.select(Projections.bean(CtrCntrlGroupModel.class, + pcg.cstmrSno.as("cstmrSno"), pgb.groupId.as("groupId"), pgb.groupNm.as("groupNm"), - pcg.groupAuthCd.as("groupAuthCd"), - cab.arcrftSno.as("arcrftSno"), - cib.idntfNum.as("idntfNum"), - cab.createUserId.as("createUserId") + pcg.groupAuthCd.as("groupAuthCd") )) - .from(pcb) - .leftJoin(pcg) - .on(pcb.cstmrSno.eq(pcg.cstmrSno)) + .from(pcg) .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)) + .where(builder) .fetch(); return models; } + + public List findByGroupArcrft(String groupId) { + QComArcrftBas arcrftBas = QComArcrftBas.comArcrftBas; + QComIdntfBas idntfBas = QComIdntfBas.comIdntfBas; + + List arcrftList = query.select(Projections.bean(CtrCntrlGroupArcrftModel.class, + arcrftBas.arcrftSno, + arcrftBas.groupId, + idntfBas.idntfNum, + idntfBas.idntfTypeCd, + idntfBas.ownerNm, + idntfBas.hpno, + arcrftBas.prdctNum, + arcrftBas.arcrftTypeCd, + arcrftBas.arcrftModelNm, + arcrftBas.prdctCmpnNm, + idntfBas.createDt, + idntfBas.updateDt + )) + .from(arcrftBas) + .leftJoin(idntfBas) + .on(arcrftBas.arcrftSno.eq(idntfBas.arcrftSno)) + .where(arcrftBas.useYn.eq("Y") + .and(idntfBas.idntfNum.isNotNull()) + .and(idntfBas.idntfNum.like("PALDRONE%"))) + .orderBy(arcrftBas.groupId.asc(), idntfBas.createDt.asc()) + .fetch(); + + return arcrftList; + } }