노승철 2 years ago
parent
commit
161c82e919
  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; package com.palnet.biz.api.bas.flight.controller;
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel; import java.io.BufferedReader;
import com.palnet.biz.api.bas.flight.model.*; import java.io.IOException;
import com.palnet.biz.api.bas.flight.service.BasFlightService; import java.io.InputStream;
import com.palnet.biz.api.comn.model.ComnPagingRs; import java.io.InputStreamReader;
import com.palnet.biz.api.comn.response.BasicResponse; import java.io.UnsupportedEncodingException;
import com.palnet.biz.api.comn.response.ErrorResponse; import java.net.URLEncoder;
import com.palnet.biz.api.comn.response.SuccessResponse; import java.util.HashMap;
import com.palnet.comn.code.RSErrorCode; import java.util.List;
import com.palnet.comn.exception.CustomException; import java.util.Map;
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 org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException; import org.json.simple.parser.ParseException;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; 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.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; 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 io.swagger.annotations.ApiImplicitParam;
import java.net.URLEncoder; import io.swagger.annotations.ApiOperation;
import java.time.LocalDate; import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.Date; import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@RestController @RestController
@ -77,7 +92,7 @@ public class BasFlightController {
@ApiOperation(value = "비행계획서 조회") @ApiOperation(value = "비행계획서 조회")
@Tag(name = "비행계획서", description = "비행계획서 관련 API") @Tag(name = "비행계획서", description = "비행계획서 관련 API")
public ResponseEntity<? extends BasicResponse> findPlanList(BasFlightPlanListRq rq) { public ResponseEntity<? extends BasicResponse> findPlanList(BasFlightPlanListRq rq) {
List<BasFlightPlanModel> result = null; ComnPagingRs<BasFlightPlanModel> result = null;
// System.out.println(rq); // System.out.println(rq);
try { try {
result = basFlightService.listPlan(rq); 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()); List<BasGroupJoinModel> groupList = ptyPlanQueryRepository.joinList(rq.getCstmrSno());
String userAccount = null; String userAccount = null;
String masterAccount = null; String masterAccount = null;
String appAuth = jwtTokenUtil.getUserAuthByToken(); String appAuth = jwtTokenUtil.getUserAuthByToken();
ComnPagingRs<BasFlightPlanModel> response = new ComnPagingRs<>();
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord());
for(BasGroupJoinModel list : groupList) { for(BasGroupJoinModel list : groupList) {
if (list.getGroupId().equals(rq.getGroupId())) { if (list.getGroupId().equals(rq.getGroupId())) {
userAccount = list.getGroupAuthCd(); userAccount = list.getGroupAuthCd();
@ -103,7 +107,18 @@ public class BasFlightService {
} else { } else {
masterAccount = "NORMAL"; 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 현재 모두 조회 - 권한에 따른 조회 필요 // TODO 현재 모두 조회 - 권한에 따른 조회 필요
public List<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq, String masterAccount) { public PageImpl<BasFlightPlanModel> listPlan(BasFlightPlanListRq rq, String masterAccount, Pageable pageable) {
QFltPlanBas bas = QFltPlanBas.fltPlanBas; QFltPlanBas bas = QFltPlanBas.fltPlanBas;
QFltPlanArea area = QFltPlanArea.fltPlanArea; 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