|
|
@ -3,6 +3,7 @@ package com.palnet.biz.jpa.repository.flt; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.comn.coordinate.model.LocationCdAddressModel; |
|
|
|
import com.palnet.biz.jpa.entity.QComAdmDistrictBas; |
|
|
|
import com.palnet.biz.jpa.entity.QComAdmDistrictBas; |
|
|
|
import com.querydsl.core.types.Projections; |
|
|
|
import com.querydsl.core.types.Projections; |
|
|
|
import com.querydsl.core.types.dsl.BooleanTemplate; |
|
|
|
import com.querydsl.core.types.dsl.BooleanTemplate; |
|
|
@ -37,7 +38,7 @@ public class FltCptAuthAdminDistrictBasQueryRepository { |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
builder.and(qFltCptAuthAdmDistrictRel.id.ADM_CD.like(cd+"%")); |
|
|
|
builder.and(qFltCptAuthAdmDistrictRel.id.ADM_CD.like(cd+"%")); |
|
|
|
|
|
|
|
|
|
|
|
List<FltCptAuthBas> result = query |
|
|
|
return query |
|
|
|
.selectDistinct( |
|
|
|
.selectDistinct( |
|
|
|
qFltCptAuthBas |
|
|
|
qFltCptAuthBas |
|
|
|
) |
|
|
|
) |
|
|
@ -46,9 +47,6 @@ public class FltCptAuthAdminDistrictBasQueryRepository { |
|
|
|
.on(qFltCptAuthAdmDistrictRel.id.CPT_AUTH_CODE.eq(qFltCptAuthBas.cptAuthCode)) |
|
|
|
.on(qFltCptAuthAdmDistrictRel.id.CPT_AUTH_CODE.eq(qFltCptAuthBas.cptAuthCode)) |
|
|
|
.where(builder) |
|
|
|
.where(builder) |
|
|
|
.fetch(); |
|
|
|
.fetch(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String findAdmCdByAddress(String address){ |
|
|
|
public String findAdmCdByAddress(String address){ |
|
|
@ -65,23 +63,31 @@ public class FltCptAuthAdminDistrictBasQueryRepository { |
|
|
|
.fetchOne(); |
|
|
|
.fetchOne(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<String> findAdmCdByAddressAndRegexp(String address, List<String> regexps){ |
|
|
|
public List<LocationCdAddressModel> findAddressByCptAuthCode(String cptAuthCode){ |
|
|
|
|
|
|
|
QFltCptAuthBas qFltCptAuthBas = QFltCptAuthBas.fltCptAuthBas; |
|
|
|
|
|
|
|
QFltCptAuthAdmDistrictRel qFltCptAuthAdmDistrictRel = QFltCptAuthAdmDistrictRel.fltCptAuthAdmDistrictRel; |
|
|
|
QComAdmDistrictBas qComAdmDistrictBas = QComAdmDistrictBas.comAdmDistrictBas; |
|
|
|
QComAdmDistrictBas qComAdmDistrictBas = QComAdmDistrictBas.comAdmDistrictBas; |
|
|
|
|
|
|
|
|
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
BooleanBuilder builder = new BooleanBuilder(); |
|
|
|
for(String regexp: regexps){ |
|
|
|
builder.and(qFltCptAuthBas.cptAuthCode.eq(cptAuthCode)); |
|
|
|
BooleanTemplate template = Expressions.booleanTemplate("{0} REGEXP {1}", qComAdmDistrictBas.admSectNm , Expressions.constant(regexp)); |
|
|
|
|
|
|
|
builder.or(template); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String sql = "SELECT LOWEST_ADM_SECT_NM " + |
|
|
|
return query |
|
|
|
"FROM COM_ADM_DISTRICT_BAS " + |
|
|
|
.select( |
|
|
|
"WHERE " + builder.getValue().toString(); |
|
|
|
Projections.bean( |
|
|
|
|
|
|
|
LocationCdAddressModel.class, |
|
|
|
|
|
|
|
qComAdmDistrictBas.admCd.as("admCd"), |
|
|
|
|
|
|
|
qComAdmDistrictBas.admSectNm.as("address") |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
.from(qFltCptAuthBas) |
|
|
|
|
|
|
|
.leftJoin(qFltCptAuthAdmDistrictRel) |
|
|
|
|
|
|
|
.on(qFltCptAuthBas.cptAuthCode.eq(qFltCptAuthAdmDistrictRel.id.CPT_AUTH_CODE)) |
|
|
|
|
|
|
|
.leftJoin(qComAdmDistrictBas) |
|
|
|
|
|
|
|
.on(qComAdmDistrictBas.admCd.eq(qFltCptAuthAdmDistrictRel.id.ADM_CD)) |
|
|
|
|
|
|
|
.where(builder) |
|
|
|
|
|
|
|
.fetch(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Query nativeQuery = entityManager.createNativeQuery(sql); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return nativeQuery.getResultList(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|