Browse Source

관제 - 쿼리 최적화 후 planSno로 조회 시 유효한 값인지 체크하는 기능 추가

Test
박재우 2 years ago
parent
commit
04bf2d7d10
  1. 4
      src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java
  2. 23
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java
  3. 4
      src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanCtrCntrlRelRepository.java

4
src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java

@ -270,7 +270,9 @@ public class CtrCntrlService {
String idntfNum = cntrlBasRepository.getIdntfNum(cntrlId);
CtrCntrlHstry hisControl = query.getWarnHstryList(cntrlId);
int planSno = relRepository.getPlanSno(idntfNum);
int planSno = relRepository.getPlanSno(idntfNum).orElse(0);
if(query.checkPlanSno(planSno) < 1) return null;
FltPlanArea planAreaData = query.getPlanData(planSno);
List<FltPlanAreaCoord> coordList = planCoordRepository.getCoordinate(planAreaData.getPlanAreaSno());

23
src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

@ -1222,7 +1222,30 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
.fetchFirst();
return result;
}
public long checkPlanSno(int planSno) {
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
BooleanBuilder builder = new BooleanBuilder();
Calendar end = Calendar.getInstance();
Date now = DateUtils.nowDate();
end.setTime(now);
Date endDate = end.getTime();
builder.and(qFltPlanBas.schFltStDt.loe(now));
builder.and(qFltPlanBas.schFltEndDt.goe(now));
builder.and(qFltPlanBas.planSno.eq(planSno));
long result =
query.select(Projections.bean(FltPlanBas.class,
qFltPlanBas.planSno
))
.from(qFltPlanBas)
.where(builder)
.fetchCount();
return result;
}
/**

4
src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanCtrCntrlRelRepository.java

@ -1,6 +1,8 @@
package com.palnet.biz.jpa.repository.flt;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
@ -12,5 +14,5 @@ public interface FltPlanCtrCntrlRelRepository extends JpaRepository<FltPlanCtrCn
@Query(value = " select PLAN_SNO from FLT_PLAN_CTR_CNTRL_REL"
+ " where IDNTF_NUM = :idntfNum "
+ " order by PLAN_SNO desc limit 1 ", nativeQuery = true )
int getPlanSno(@Param("idntfNum") String idntfNum);
Optional<Integer> getPlanSno(@Param("idntfNum") String idntfNum);
}

Loading…
Cancel
Save