Browse Source

비행관제 권한 작업 - 그룹별 기체 목록 작업

Test
노승철 2 years ago
parent
commit
c6fab6d9d3
  1. 2
      src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java
  2. 23
      src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupArcrftModel.java
  3. 18
      src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlGroupModel.java
  4. 34
      src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java
  5. 67
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

2
src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

@ -103,7 +103,7 @@ public class CtrCntrlController {
*/
@GetMapping("/group")
public ResponseEntity<? extends BasicResponse> findGroupAuthInfo(@RequestParam Integer cstmrSno) {
List<AcntCstmrGroupModel> list;
List<CtrCntrlGroupModel> list;
try {
list = service.getGroupAuthInfo(cstmrSno);

23
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;
}

18
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<CtrCntrlGroupArcrftModel> arcrftList;
}

34
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<GPHistoryModel> getListHistory(String objectId){
List<GPHistoryModel> resultList = new ArrayList<GPHistoryModel>();
List<GPHistoryModel> filterList = new ArrayList<GPHistoryModel>();
// 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<AcntCstmrGroupModel> getGroupAuthInfo(Integer cstmrSno) {
List<AcntCstmrGroupModel> list = query.findByGroupInfo(cstmrSno);
public List<CtrCntrlGroupModel> getGroupAuthInfo(Integer cstmrSno) {
List<CtrCntrlGroupModel> list = query.findByGroupInfo();
for (CtrCntrlGroupModel group : list) {
List<CtrCntrlGroupArcrftModel> 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<BasFlightPlanModel> getFlightPlan(String idntfNum) {
List<BasFlightPlanModel> rs = new ArrayList<>();
@ -411,7 +401,7 @@ public class CtrCntrlService {
/**
* TODO
* TODO 비행 이력 Control-Id 발급
*
* @param id
* @return

67
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<AcntCstmrGroupModel> findByGroupInfo(Integer cstmrSno) {
QPtyCstmrBas pcb = QPtyCstmrBas.ptyCstmrBas;
public List<CtrCntrlGroupModel> findByGroupInfo() {
QPtyCstmrGroup pcg = QPtyCstmrGroup.ptyCstmrGroup;
QPtyGroupBas pgb = QPtyGroupBas.ptyGroupBas;
QComArcrftBas cab = QComArcrftBas.comArcrftBas;
QComIdntfBas cib = QComIdntfBas.comIdntfBas;
List<AcntCstmrGroupModel> 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<CtrCntrlGroupModel> 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<CtrCntrlGroupArcrftModel> findByGroupArcrft(String groupId) {
QComArcrftBas arcrftBas = QComArcrftBas.comArcrftBas;
QComIdntfBas idntfBas = QComIdntfBas.comIdntfBas;
List<CtrCntrlGroupArcrftModel> 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;
}
}

Loading…
Cancel
Save