lkd9125(이경도)
7 months ago
10 changed files with 181 additions and 29 deletions
@ -0,0 +1,20 @@
|
||||
package kr.co.palnet.kac.data.ctr.model.join; |
||||
|
||||
import lombok.Data; |
||||
|
||||
import java.time.LocalDateTime; |
||||
|
||||
@Data |
||||
public class CntrlJoinHstryAreaModel { |
||||
private String startAddress; |
||||
|
||||
private String endAddress; |
||||
|
||||
private String cntrlId; |
||||
|
||||
private LocalDateTime cntrlStDt; |
||||
|
||||
private LocalDateTime cntrlEndDt; |
||||
|
||||
private String statusCd; |
||||
} |
@ -0,0 +1,83 @@
|
||||
package kr.co.palnet.kac.data.ctr.repository; |
||||
|
||||
import com.querydsl.core.BooleanBuilder; |
||||
import com.querydsl.core.types.ExpressionUtils; |
||||
import com.querydsl.core.types.Projections; |
||||
import com.querydsl.core.types.dsl.CaseBuilder; |
||||
import com.querydsl.jpa.JPAExpressions; |
||||
import com.querydsl.jpa.impl.JPAQueryFactory; |
||||
import kr.co.palnet.kac.data.ctr.model.QCtrCntrlBas; |
||||
import kr.co.palnet.kac.data.ctr.model.QCtrCntrlHstryArea; |
||||
import kr.co.palnet.kac.data.ctr.model.join.CntrlJoinHstryAreaModel; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Repository; |
||||
|
||||
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 CtrCntrlBasQueryRepository { |
||||
|
||||
private final JPAQueryFactory query; |
||||
|
||||
public Optional<List<CntrlJoinHstryAreaModel>> findByIdntfNumAndSearchDate(String idntfNum, LocalDateTime schFltStDt, LocalDateTime schFltEndDt){ |
||||
|
||||
QCtrCntrlBas cntrlBas = QCtrCntrlBas.ctrCntrlBas; |
||||
QCtrCntrlHstryArea cntrlHstryArea = QCtrCntrlHstryArea.ctrCntrlHstryArea; |
||||
|
||||
BooleanBuilder builder = new BooleanBuilder(); |
||||
builder.and(cntrlBas.cntrlStDt.loe(schFltEndDt)) |
||||
.and(cntrlBas.cntrlStDt.goe(schFltStDt)) |
||||
.and(cntrlBas.idntfNum.eq(idntfNum)); |
||||
|
||||
return Optional.ofNullable(query.select(Projections.bean( |
||||
CntrlJoinHstryAreaModel.class, |
||||
ExpressionUtils.as( |
||||
JPAExpressions.select( |
||||
cntrlHstryArea.area1.concat(" ") |
||||
.concat(cntrlHstryArea.area2).concat(" ") |
||||
.concat(cntrlHstryArea.area3).concat(" ") |
||||
.concat(cntrlHstryArea.landNm).concat(" ") |
||||
.concat(cntrlHstryArea.landNum) |
||||
) |
||||
.from(cntrlHstryArea) |
||||
.where(cntrlHstryArea.cntrlId.eq(cntrlBas.cntrlId) |
||||
.and(cntrlHstryArea.actnType.eq("01"))), |
||||
"startAddress" |
||||
), |
||||
ExpressionUtils.as( |
||||
JPAExpressions.select( |
||||
cntrlHstryArea.area1.concat(" ") |
||||
.concat(cntrlHstryArea.area2).concat(" ") |
||||
.concat(cntrlHstryArea.area3).concat(" ") |
||||
.concat(cntrlHstryArea.landNm).concat(" ") |
||||
.concat(cntrlHstryArea.landNum) |
||||
) |
||||
.from(cntrlHstryArea) |
||||
.where(cntrlHstryArea.cntrlId.eq(cntrlBas.cntrlId) |
||||
.and(cntrlHstryArea.actnType.eq("99"))), |
||||
"endAddress" |
||||
), |
||||
cntrlBas.cntrlId, |
||||
cntrlBas.cntrlStDt, |
||||
cntrlBas.cntrlEndDt, |
||||
new CaseBuilder() |
||||
.when(cntrlBas.statusCd.eq("01")).then("F") |
||||
.when(cntrlBas.statusCd.eq("99")).then("S") |
||||
.otherwise("B").as("statusCd") |
||||
)) |
||||
.from(cntrlBas) |
||||
.where(builder) |
||||
.orderBy(cntrlBas.cntrlStDt.asc()) |
||||
.fetch()); |
||||
} |
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,27 @@
|
||||
package kr.co.palnet.kac.data.ctr.service; |
||||
|
||||
import kr.co.palnet.kac.data.ctr.model.join.CntrlJoinHstryAreaModel; |
||||
import kr.co.palnet.kac.data.ctr.repository.CtrCntrlBasQueryRepository; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.time.LocalDateTime; |
||||
import java.util.List; |
||||
import java.util.Optional; |
||||
|
||||
@Service |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
public class CtrCntrlDomainService { |
||||
|
||||
private final CtrCntrlBasQueryRepository ctrCntrlBasQueryRepository; |
||||
|
||||
public Optional<List<CntrlJoinHstryAreaModel>> findCntrlJoinHstryAreaByIdntfNumAndSearchDate(String idntfNum, LocalDateTime schFltStDt, LocalDateTime schFltEndDt){ |
||||
return ctrCntrlBasQueryRepository.findByIdntfNumAndSearchDate(idntfNum, schFltStDt, schFltEndDt); |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
} |
Loading…
Reference in new issue