lkd9125(이경도)
7 months ago
16 changed files with 424 additions and 7 deletions
@ -0,0 +1,53 @@
|
||||
package kr.co.palnet.kac.data.flt.repository; |
||||
|
||||
import com.querydsl.core.BooleanBuilder; |
||||
import com.querydsl.jpa.impl.JPAQuery; |
||||
import com.querydsl.jpa.impl.JPAQueryFactory; |
||||
import kr.co.palnet.kac.data.flt.model.FltPlanBas; |
||||
import kr.co.palnet.kac.data.flt.model.QFltPlanArcrft; |
||||
import kr.co.palnet.kac.data.flt.model.QFltPlanArea; |
||||
import kr.co.palnet.kac.data.flt.model.QFltPlanBas; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Repository; |
||||
import org.springframework.util.StringUtils; |
||||
|
||||
import java.time.Duration; |
||||
import java.time.Instant; |
||||
import java.time.LocalDate; |
||||
import java.time.LocalDateTime; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Optional; |
||||
|
||||
@Repository |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class FltPlanQueryRepository { |
||||
|
||||
private final JPAQueryFactory query; |
||||
|
||||
public Optional<List<FltPlanBas>> findAllBySearch(String memberName, LocalDateTime createStDate, LocalDateTime createEndDate){ |
||||
|
||||
QFltPlanBas bas = QFltPlanBas.fltPlanBas; |
||||
|
||||
BooleanBuilder builder = new BooleanBuilder(); |
||||
if(StringUtils.hasText(memberName)){ |
||||
builder.and(bas.memberName.contains(memberName)); |
||||
} |
||||
|
||||
if(createStDate != null) { |
||||
builder.and(bas.createDt.goe(createStDate)); |
||||
} |
||||
if(createEndDate != null){ |
||||
builder.and(bas.createDt.lt(createEndDate)); |
||||
} |
||||
|
||||
return Optional.ofNullable(query |
||||
.select(bas) |
||||
.from(bas) |
||||
.where(builder) |
||||
.orderBy(bas.createDt.desc()) |
||||
.fetch()); |
||||
} |
||||
} |
@ -0,0 +1,17 @@
|
||||
package kr.co.palnet.kac.api.v1.flight.laanc.model.search; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Builder; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
@Data |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
@Builder |
||||
public class FileModel { |
||||
private Long fileSno; |
||||
private Long fileGroupNo; |
||||
private String downloadUrl; |
||||
private String fileName; |
||||
} |
@ -0,0 +1,28 @@
|
||||
package kr.co.palnet.kac.api.v1.flight.laanc.model.search; |
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
||||
import io.swagger.v3.oas.annotations.media.Schema; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Builder; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
import java.time.LocalDateTime; |
||||
|
||||
@Data |
||||
@Builder |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
public class SearchLaancAprvRQ { |
||||
|
||||
@Schema(description = "작성자 이름", example = "팔") |
||||
private String memberName; |
||||
|
||||
@Schema(description = "신청(등록)시작일자", example = "2023-12-12", implementation = String.class) |
||||
private LocalDateTime createStDate; |
||||
|
||||
@Schema(description = "신청(등록)종료일자", example = "2023-12-12", implementation = String.class) |
||||
private LocalDateTime createEndDate; |
||||
|
||||
} |
||||
|
@ -0,0 +1,140 @@
|
||||
package kr.co.palnet.kac.api.v1.flight.laanc.model.search; |
||||
|
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.FltPlanPilotDTO; |
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.constant.ArcrftWghtCd; |
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.constant.FltPurpose; |
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.constant.FltType; |
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.create.BasLaancArcrftModel; |
||||
import kr.co.palnet.kac.api.v1.flight.laanc.model.create.BasLaancAreaModel; |
||||
import kr.co.palnet.kac.data.flt.model.FltPlanBas; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Builder; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.List; |
||||
import java.util.Objects; |
||||
import java.util.stream.Collectors; |
||||
|
||||
@Data |
||||
@Builder |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
public class SearchLaancAprvRS { |
||||
|
||||
//비행계획서 일려번호
|
||||
private Long planSno; |
||||
//그룹 아이디
|
||||
private String groupId; |
||||
//작성자 일련번호
|
||||
private Long cstmrSno; |
||||
//작성자 이름
|
||||
private String memberName; |
||||
//작성자 이메일
|
||||
private String email; |
||||
//작성자 연락처
|
||||
private String hpno; |
||||
//작성자 국가번호(연락처)
|
||||
private String clncd; |
||||
//작성자 주소
|
||||
private String addr; |
||||
//작성자 상세주소
|
||||
private String addrDtlCn; |
||||
//작성자 우편번호
|
||||
private String zip; |
||||
//비행시작일시
|
||||
private LocalDateTime schFltStDt; |
||||
//비행종료일시
|
||||
private LocalDateTime schFltEndDt; |
||||
//비행목적
|
||||
private FltPurpose fltPurpose; |
||||
//상업/비사업 구분
|
||||
private FltType fltType; |
||||
//상업/비사업 구분 코드
|
||||
private String fltTypeNm; |
||||
//승인여부
|
||||
private String aprvlYn; |
||||
//승인일자
|
||||
private LocalDateTime aprvlDt; |
||||
//삭제여부
|
||||
// private String delYn;
|
||||
// 파일그룹번호
|
||||
private Long fileGroupNo; |
||||
//등록자ID
|
||||
private String createUserId; |
||||
//등록일시
|
||||
private LocalDateTime createDt; |
||||
//수정자ID
|
||||
private String updateUserId; |
||||
//수정일시
|
||||
private LocalDateTime updateDt; |
||||
//서비스유형
|
||||
private String serviceType; |
||||
//기업여부
|
||||
private String corpRegYn; |
||||
//공문URL
|
||||
private String pdfUrl; |
||||
|
||||
|
||||
private List<BasLaancAreaModel> areaList; |
||||
private List<BasLaancArcrftModel> arcrftList; |
||||
private List<FltPlanPilotDTO> pilotList; |
||||
|
||||
public static SearchLaancAprvRS toModel(FltPlanBas entity){ |
||||
SearchLaancAprvRS model = new SearchLaancAprvRS(); |
||||
model.setPlanSno(entity.getPlanSno()); |
||||
model.setGroupId(entity.getGroupId()); |
||||
model.setCstmrSno(entity.getCstmrSno()); |
||||
model.setServiceType(entity.getServiceType()); |
||||
model.setMemberName(entity.getMemberName()); |
||||
model.setEmail(entity.getEmail()); |
||||
model.setHpno(entity.getHpno()); |
||||
model.setClncd(entity.getClncd()); |
||||
model.setAddr(entity.getAddr()); |
||||
model.setAddrDtlCn(entity.getAddrDtlCn()); |
||||
model.setZip(entity.getZip()); |
||||
model.setSchFltStDt(entity.getSchFltStDt()); |
||||
model.setSchFltEndDt(entity.getSchFltEndDt()); |
||||
model.setFltPurpose(FltPurpose.fromCode(entity.getFltPurpose())); |
||||
model.setFltType(FltType.fromCode(entity.getFltType())); |
||||
model.setCorpRegYn(entity.getCorpRegYn()); |
||||
model.setAprvlYn(entity.getAprvlYn()); |
||||
model.setAprvlDt(entity.getAprvlDt()); |
||||
model.setFileGroupNo(entity.getFileGroupNo()); |
||||
model.setCreateUserId(entity.getCreateUserId()); |
||||
model.setCreateDt(entity.getCreateDt()); |
||||
model.setUpdateUserId(entity.getUpdateUserId()); |
||||
model.setUpdateDt(entity.getUpdateDt()); |
||||
|
||||
return model; |
||||
} |
||||
|
||||
|
||||
// 하나의 필드로 묶어서 처리
|
||||
//기체 무게
|
||||
public String getArcrftWght() { |
||||
if (arcrftList == null || arcrftList.isEmpty()) return null; |
||||
List<ArcrftWghtCd> arcrftWghtCdList = arcrftList.stream().map(BasLaancArcrftModel::getArcrftWghtCd).distinct().filter(Objects::nonNull).collect(Collectors.toList()); |
||||
String ArcrftWghtType = arcrftWghtCdList.stream().map(ArcrftWghtCd::getValue).collect(Collectors.joining(",")); |
||||
return ArcrftWghtType; |
||||
} |
||||
|
||||
//고도
|
||||
public String getElev() { |
||||
if (areaList == null || areaList.isEmpty()) return null; |
||||
List<String> elevList = areaList.stream().map(BasLaancAreaModel::getFltElev).distinct().filter(Objects::nonNull).collect(Collectors.toList()); |
||||
String elev = String.join(",", elevList); |
||||
return elev; |
||||
} |
||||
|
||||
//조종사 성명
|
||||
// public String getPilotName() {
|
||||
// if (pilotList == null || pilotList.isEmpty()) return null;
|
||||
// List<String> pilotNameList = pilotList.stream().map(BasLaancPilotModel::getMemberName).distinct().filter(Objects::nonNull).collect(Collectors.toList());
|
||||
// String pilotName = String.join(",", pilotNameList);
|
||||
// return pilotName;
|
||||
// }
|
||||
|
||||
|
||||
} |
Loading…
Reference in new issue