Browse Source

승인 페이징(테스트)

Test
qkr7828(박재우) 2 years ago
parent
commit
4dd2e61db7
  1. 4
      src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java
  2. 4
      src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightPlanListRq.java
  3. 28
      src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java
  4. 112
      src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

4
src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java

@ -1,7 +1,9 @@
package com.palnet.biz.api.bas.flight.controller; package com.palnet.biz.api.bas.flight.controller;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel;
import com.palnet.biz.api.bas.flight.model.*; import com.palnet.biz.api.bas.flight.model.*;
import com.palnet.biz.api.bas.flight.service.BasFlightService; import com.palnet.biz.api.bas.flight.service.BasFlightService;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.api.comn.response.BasicResponse; import com.palnet.biz.api.comn.response.BasicResponse;
import com.palnet.biz.api.comn.response.ErrorResponse; import com.palnet.biz.api.comn.response.ErrorResponse;
import com.palnet.biz.api.comn.response.SuccessResponse; import com.palnet.biz.api.comn.response.SuccessResponse;
@ -244,7 +246,7 @@ public class BasFlightController {
@ApiOperation(value = "비행계획서 리스트(승인)") @ApiOperation(value = "비행계획서 리스트(승인)")
@Tag(name = "비행계획서", description = "비행계획서 관련 API") @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity<? extends BasicResponse> findAprvList(BasFlightPlanListRq rq) { public ResponseEntity<? extends BasicResponse> findAprvList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null; ComnPagingRs<BasFlightPlanModel> result = null;
try { try {
result = basFlightService.aprvList(rq); result = basFlightService.aprvList(rq);
} catch (Exception e) { } catch (Exception e) {

4
src/main/java/com/palnet/biz/api/bas/flight/model/BasFlightPlanListRq.java

@ -4,8 +4,10 @@ import lombok.Data;
import java.util.Date; import java.util.Date;
import com.palnet.biz.api.comn.model.ComnPagingModel;
@Data @Data
public class BasFlightPlanListRq { public class BasFlightPlanListRq extends ComnPagingModel {
private String groupId; private String groupId;
private Integer cstmrSno; private Integer cstmrSno;

28
src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java

@ -18,11 +18,16 @@ import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException; import com.palnet.comn.exception.CustomException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Coordinate;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel; import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel;
import com.palnet.biz.api.bas.group.model.BasGroupJoinModel; import com.palnet.biz.api.bas.group.model.BasGroupJoinModel;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.jpa.entity.FltPlanArcrft; import com.palnet.biz.jpa.entity.FltPlanArcrft;
import com.palnet.biz.jpa.entity.FltPlanArea; import com.palnet.biz.jpa.entity.FltPlanArea;
import com.palnet.biz.jpa.entity.FltPlanAreaCoord; import com.palnet.biz.jpa.entity.FltPlanAreaCoord;
@ -497,16 +502,35 @@ public class BasFlightService {
} }
// 비행계획서 리스트(승인) // 비행계획서 리스트(승인)
public List<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq) { public ComnPagingRs<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq) {
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
List<JwtGroupModel> groupAuthList = jwtTokenUtil.getGroupAuthByToken(); List<JwtGroupModel> groupAuthList = jwtTokenUtil.getGroupAuthByToken();
List<String> groupIdList = new ArrayList<>(); List<String> groupIdList = new ArrayList<>();
String userAccount = null; String userAccount = null;
for(JwtGroupModel list : groupAuthList) { for(JwtGroupModel list : groupAuthList) {
if(list.getGroupId().equals(rq.getGroupId())) { if(list.getGroupId().equals(rq.getGroupId())) {
userAccount = list.getGroupAuthCd(); userAccount = list.getGroupAuthCd();
} }
} }
return fltPlanQueryRepository.aprvList(rq, userAccount);
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.aprvList(rq, userAccount, pageable);
long total = fltPlanQueryRepository.aprvCount(rq, userAccount);
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord();
response.setItems(result.getContent());
response.setTotal(total);
response.setPage(rq.getPage());
response.setTotalPage(totalPage);
return response;
} }
// 비행계획서 승인/미승인 // 비행계획서 승인/미승인
@Transactional @Transactional

112
src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

@ -1,7 +1,31 @@
package com.palnet.biz.jpa.repository.flt; package com.palnet.biz.jpa.repository.flt;
import com.palnet.biz.api.bas.flight.model.*; import java.util.Date;
import com.palnet.biz.jpa.entity.*; import java.util.List;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaCoordRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanListRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanPilotModel;
import com.palnet.biz.api.bas.flight.model.BasFlightScheduleRs;
import com.palnet.biz.jpa.entity.FltPlanBas;
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.QCtrCntrlHstryArea;
import com.palnet.biz.jpa.entity.QFltPlanArcrft;
import com.palnet.biz.jpa.entity.QFltPlanArea;
import com.palnet.biz.jpa.entity.QFltPlanAreaCoord;
import com.palnet.biz.jpa.entity.QFltPlanBas;
import com.palnet.biz.jpa.entity.QPtyCstmrDtl;
import com.palnet.biz.jpa.entity.QPtyCstmrGroup;
import com.palnet.biz.jpa.entity.QPtyGroupBas;
import com.palnet.comn.utils.DateUtils; import com.palnet.comn.utils.DateUtils;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.group.GroupBy; import com.querydsl.core.group.GroupBy;
@ -11,16 +35,11 @@ import com.querydsl.core.types.dsl.CaseBuilder;
import com.querydsl.core.types.dsl.DateTemplate; import com.querydsl.core.types.dsl.DateTemplate;
import com.querydsl.core.types.dsl.Expressions; import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQuery;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Log4j2 @Log4j2
@Repository @Repository
@RequiredArgsConstructor @RequiredArgsConstructor
@ -293,7 +312,7 @@ public class FltPlanQueryRepository {
return models; return models;
} }
public List<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount) { public PageImpl<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount, Pageable pageable) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas; QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea; QFltPlanArea area = QFltPlanArea.fltPlanArea;
@ -320,6 +339,8 @@ public class FltPlanQueryRepository {
.leftJoin(area) .leftJoin(area)
.on(bas.planSno.eq(area.planSno)) .on(bas.planSno.eq(area.planSno))
.where(builder) .where(builder)
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.transform( .transform(
GroupBy.groupBy(bas.planSno) GroupBy.groupBy(bas.planSno)
.list(Projections.bean( .list(Projections.bean(
@ -359,9 +380,80 @@ public class FltPlanQueryRepository {
)) ))
); );
return r; return new PageImpl<>(r,pageable, r.size());
}
public long aprvCount(BasFlightPlanListRq rq, String userAccount) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea;
BooleanBuilder builder = new BooleanBuilder();
// if (userAccount.equals("CREATER") || userAccount.equals("ADMIN")) {
if(userAccount != null) {
if (userAccount.equals("MASTER") || userAccount.equals("LEADER")) {
builder.and(bas.groupId.in(rq.getGroupId()));
} else {
builder.and(bas.groupId.in(rq.getGroupId()));
builder.and(bas.cstmrSno.eq(rq.getCstmrSno()));
}
}
builder.and(bas.schFltStDt.goe(rq.getSchFltStDt()));
builder.and(bas.schFltStDt.before(rq.getSchFltEndDt()));
if (rq.getAprvlYn() != null && !"A".equals(rq.getAprvlYn())) {
builder.and(bas.aprvlYn.eq(rq.getAprvlYn()));
}
builder.and(bas.delYn.ne("Y"));
List<BasFlightPlanModel> list = query
.from(bas)
.leftJoin(area)
.on(bas.planSno.eq(area.planSno))
.where(builder)
.transform(
GroupBy.groupBy(bas.planSno)
.list(Projections.bean(
BasFlightPlanModel.class,
bas.planSno,
bas.groupId,
bas.cstmrSno,
bas.memberName,
bas.email,
bas.hpno,
bas.clncd,
bas.addr,
bas.addrDtlCn,
bas.zip,
bas.schFltStDt,
bas.schFltEndDt,
bas.fltPurpose,
bas.aprvlYn,
bas.delYn,
bas.createUserId,
bas.createDt,
bas.updateUserId,
bas.updateDt,
GroupBy.list(Projections.bean(
BasFlightPlanAreaModel.class,
area.planAreaSno,
area.planSno,
area.areaType,
area.fltMethod,
area.bufferZone,
area.fltElev,
area.createUserId,
area.createDt,
area.updateUserId,
area.updateDt
).skipNulls()).as("areaList")
))
);
long cnt = 0;
for(BasFlightPlanModel lis : list) {
cnt++;
} }
return cnt;
}
public List<BasFlightScheduleRs> findSchedule(String searchDate) { public List<BasFlightScheduleRs> findSchedule(String searchDate) {
QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas; QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas;
QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft; QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft;

Loading…
Cancel
Save