Browse Source

비행계획목록 페이징

Test
qkr7828(박재우) 2 years ago
parent
commit
86a9829850
  1. 63
      src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java
  2. 19
      src/main/java/com/palnet/biz/api/bas/flight/service/BasFlightService.java
  3. 83
      src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanQueryRepository.java

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

@ -1,38 +1,53 @@
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;
import com.palnet.comn.code.RSErrorCode;
import com.palnet.comn.exception.CustomException;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.data.domain.PageImpl;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
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.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.palnet.biz.api.bas.flight.model.BasFlightAprovRq;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanArcrftModel;
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.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;
import com.palnet.comn.exception.CustomException;
import java.io.*;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RestController
@ -77,7 +92,7 @@ public class BasFlightController {
@ApiOperation(value = "비행계획서 조회")
@Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity<? extends BasicResponse> findPlanList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null;
ComnPagingRs<BasFlightPlanModel> result = null;
// System.out.println(rq);
try {
result = basFlightService.listPlan(rq);

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

@ -85,12 +85,16 @@ public class BasFlightService {
}
// 비행계획서 조회
public List<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq) {
public ComnPagingRs<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq) {
List<BasGroupJoinModel> groupList = ptyPlanQueryRepository.joinList(rq.getCstmrSno());
String userAccount = null;
String masterAccount = null;
String appAuth = jwtTokenUtil.getUserAuthByToken();
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
for(BasGroupJoinModel list : groupList) {
if (list.getGroupId().equals(rq.getGroupId())) {
userAccount = list.getGroupAuthCd();
@ -103,7 +107,18 @@ public class BasFlightService {
} else {
masterAccount = "NORMAL";
}
return fltPlanQueryRepository.listPlan(rq, masterAccount);
PageImpl<BasFlightPlanModel> result = fltPlanQueryRepository.listPlan(rq, masterAccount, pageable);
long total = fltPlanQueryRepository.listPlanCount(rq, masterAccount);
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;
}
// 비행계획서 상세 조회

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

@ -51,7 +51,7 @@ public class FltPlanQueryRepository {
// 비행계획서 목록
// TODO 현재 모두 조회 - 권한에 따른 조회 필요
public List<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq, String masterAccount) {
public PageImpl<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq, String masterAccount, Pageable pageable) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea;
@ -123,7 +123,86 @@ public class FltPlanQueryRepository {
))
);
return r;
return new PageImpl<>(r, pageable, r.size());
}
public long listPlanCount(BasFlightPlanListRq rq, String masterAccount) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea;
BooleanBuilder builder = new BooleanBuilder();
if (rq.getGroupId() != null) {
builder.and(bas.groupId.eq(rq.getGroupId()));
}
if (rq.getCstmrSno() != null) {
// if(masterAccount.equals("USER")) {
if(masterAccount.equals("NORMAL")) {
builder.and(bas.cstmrSno.eq(rq.getCstmrSno()));
}
}
builder.and(bas.schFltStDt.goe(rq.getSchFltStDt()));
builder.and(bas.schFltStDt.before(rq.getSchFltEndDt()));
// if ("Y".equals(rq.getAprvlYn()) || "N".equals(rq.getAprvlYn())) {
// builder.and(bas.aprvlYn.eq(rq.getAprvlYn()));
// }
if (!"A".equals(rq.getAprvlYn())) {
builder.and(bas.aprvlYn.eq(rq.getAprvlYn()));
}
builder.and(bas.delYn.ne("Y"));
List<BasFlightPlanModel> r = 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 list : r ) {
cnt++;
}
return cnt;
}
//동일 기체 등록시 비행시간 중복여부 조회

Loading…
Cancel
Save