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;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel;
import com.palnet.biz.api.bas.flight.model.*;
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.ErrorResponse;
import com.palnet.biz.api.comn.response.SuccessResponse;
@ -244,7 +246,7 @@ public class BasFlightController {
@ApiOperation(value = "비행계획서 리스트(승인)")
@Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity<? extends BasicResponse> findAprvList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null;
ComnPagingRs<BasFlightPlanModel> result = null;
try {
result = basFlightService.aprvList(rq);
} 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 com.palnet.biz.api.comn.model.ComnPagingModel;
@Data
public class BasFlightPlanListRq {
public class BasFlightPlanListRq extends ComnPagingModel {
private String groupId;
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 org.apache.commons.lang3.StringUtils;
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 com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
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.comn.model.ComnPagingRs;
import com.palnet.biz.jpa.entity.FltPlanArcrft;
import com.palnet.biz.jpa.entity.FltPlanArea;
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<String> groupIdList = new ArrayList<>();
String userAccount = null;
for(JwtGroupModel list : groupAuthList) {
if(list.getGroupId().equals(rq.getGroupId())) {
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

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

@ -1,7 +1,31 @@
package com.palnet.biz.jpa.repository.flt;
import com.palnet.biz.api.bas.flight.model.*;
import com.palnet.biz.jpa.entity.*;
import java.util.Date;
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.querydsl.core.BooleanBuilder;
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.Expressions;
import com.querydsl.jpa.JPAExpressions;
import com.querydsl.jpa.impl.JPAQuery;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Log4j2
@Repository
@RequiredArgsConstructor
@ -293,7 +312,7 @@ public class FltPlanQueryRepository {
return models;
}
public List<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount) {
public PageImpl<BasFlightPlanModel> aprvList(BasFlightPlanListRq rq, String userAccount, Pageable pageable) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea;
@ -320,6 +339,8 @@ public class FltPlanQueryRepository {
.leftJoin(area)
.on(bas.planSno.eq(area.planSno))
.where(builder)
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.transform(
GroupBy.groupBy(bas.planSno)
.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) {
QFltPlanBas fltPlanBas = QFltPlanBas.fltPlanBas;
QFltPlanArcrft fltPlanArcrft = QFltPlanArcrft.fltPlanArcrft;

Loading…
Cancel
Save