Browse Source

비행이력 현황 - 권한별 필터 적용

Test
qkr7828(박재우) 2 years ago
parent
commit
7aaaa2ac9d
  1. 66
      src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java
  2. 37
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java
  3. 8
      src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

66
src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java

@ -95,36 +95,44 @@ public class AnlsHstryService {
} }
} }
if("NORMAL".equals(groupAuth)) { if("NORMAL".equals(groupAuth)) {
List<ComIdntfBas> idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 NORMAL인 ID인 경우 본인이 생성한 기체만 조회 */ // List<ComIdntfBas> idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두 NORMAL인 ID인 경우 본인이 생성한 기체만 조회 */
if (idntfList.size() > 0) { // if (idntfList.size() > 0) {
for (ComIdntfBas list : idntfList) { // for (ComIdntfBas list : idntfList) {
List<AnlsHstryModel> results = query.cntrlBasNormalHstryList(rq, list.getIdntfNum()); // List<AnlsHstryModel> results = query.cntrlBasNormalHstryList(rq, list.getIdntfNum());
if (results.size() > 0) { // if (results.size() > 0) {
resultList.addAll(results); // resultList.addAll(results);
// }
// }
// }
// List<FltPlanBas> basResult = fltPlanBasRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두
// NORMAL인 ID인 경우 cstmrSno로 비행계획서 조회 */
// for (FltPlanBas list : basResult) {
// resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno()));
// }
// List<FltPlanPilot> pilotResult = fltPlanPilotRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도
// 모두 NORMAL인 ID인 경우 cstmrSno로 조종사 조회 */
//
// for (FltPlanPilot list : pilotResult) {
// resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno()));
// }
//
// Comparator<AnlsHstryModel> comparator = (o1, o2) -> {
// if (DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) < 0) {
// return 1;
// } else if(DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) > 0) {
// return -1;
// }
// return 0;
// };
// Collections.sort(resultList, comparator);
List<ComIdntfBas> idntfList = comIdntBasRepository.findIdntfNumber(cstmrSno);
List<FltPlanBas> basResult = fltPlanBasRepository.findByPlanSno(cstmrSno);
List<FltPlanPilot> pilotList = fltPlanPilotRepository.findByPlanSno(cstmrSno);
List<FltPlanBas> pilotResult = new ArrayList<>();
for(FltPlanPilot list : pilotList) {
pilotResult = fltPlanBasRepository.findBasList(list.getPlanSno());
} }
} resultList = query.cntrlBasNormalHstryList(rq, idntfList, basResult, pilotResult);
}
List<FltPlanBas> basResult = fltPlanBasRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도 모두
NORMAL인 ID인 경우 cstmrSno로 비행계획서 조회 */
for (FltPlanBas list : basResult) {
resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno()));
}
List<FltPlanPilot> pilotResult = fltPlanPilotRepository.findByPlanSno(cstmrSno); /* App 권한이 유저이면서 group 권한도
모두 NORMAL인 ID인 경우 cstmrSno로 조종사 조회 */
for (FltPlanPilot list : pilotResult) {
resultList.addAll(query.cntrlBasNormalPlanHstryList(rq, list.getPlanSno()));
}
Comparator<AnlsHstryModel> comparator = (o1, o2) -> {
if (DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) < 0) {
return 1;
} else if(DateUtils.diffSecond(o1.getCntrlStDt(), o2.getCntrlStDt()) > 0) {
return -1;
}
return 0;
};
Collections.sort(resultList, comparator);
long totalPage = resultList.size() % rq.getRecord() > 0 ? (resultList.size()/rq.getRecord()) + 1 : resultList.size()/rq.getRecord(); long totalPage = resultList.size() % rq.getRecord() > 0 ? (resultList.size()/rq.getRecord()) + 1 : resultList.size()/rq.getRecord();
PageImpl<AnlsHstryModel> result = new PageImpl<>(resultList, pageable, resultList.size()); PageImpl<AnlsHstryModel> result = new PageImpl<>(resultList, pageable, resultList.size());

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

@ -31,12 +31,16 @@ import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlDtlModel;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlEndModel; import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlEndModel;
import com.palnet.biz.api.main.dash.model.MainDashStcsModel; import com.palnet.biz.api.main.dash.model.MainDashStcsModel;
import com.palnet.biz.jpa.entity.ComArcrftBas; import com.palnet.biz.jpa.entity.ComArcrftBas;
import com.palnet.biz.jpa.entity.ComIdntfBas;
import com.palnet.biz.jpa.entity.CtrCntrlHstryArea; import com.palnet.biz.jpa.entity.CtrCntrlHstryArea;
import com.palnet.biz.jpa.entity.FltPlanBas;
import com.palnet.biz.jpa.entity.FltPlanPilot;
import com.palnet.biz.jpa.entity.QComArcrftBas; import com.palnet.biz.jpa.entity.QComArcrftBas;
import com.palnet.biz.jpa.entity.QComIdntfBas; import com.palnet.biz.jpa.entity.QComIdntfBas;
import com.palnet.biz.jpa.entity.QCtrCntrlBas; import com.palnet.biz.jpa.entity.QCtrCntrlBas;
import com.palnet.biz.jpa.entity.QCtrCntrlHstry; import com.palnet.biz.jpa.entity.QCtrCntrlHstry;
import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea; import com.palnet.biz.jpa.entity.QCtrCntrlHstryArea;
import com.palnet.biz.jpa.entity.QFltPlanBas;
import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel; import com.palnet.biz.jpa.entity.QFltPlanCtrCntrlRel;
import com.palnet.biz.jpa.entity.QPtyCstmrBas; import com.palnet.biz.jpa.entity.QPtyCstmrBas;
import com.palnet.biz.jpa.entity.QPtyCstmrGroup; import com.palnet.biz.jpa.entity.QPtyCstmrGroup;
@ -171,7 +175,6 @@ public class CtrCntrlQueryRepository{
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(qCntrlBasEntity.statusCd.eq("99")); builder.and(qCntrlBasEntity.statusCd.eq("99"));
log.debug("Params ===> " +rq.toString());
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1); end.add(Calendar.DATE, 1);
@ -256,12 +259,17 @@ public class CtrCntrlQueryRepository{
return result; return result;
} }
public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, String idntfNum){ public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, List<ComIdntfBas> idntfList, List<FltPlanBas> basResult, List<FltPlanBas> pilotResult){
QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas; QCtrCntrlBas qCntrlBasEntity = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea; QCtrCntrlHstryArea qCntrlHstryAreaEntity = QCtrCntrlHstryArea.ctrCntrlHstryArea;
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRelEntity = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel;
QFltPlanBas qFltPlanBasEntity = QFltPlanBas.fltPlanBas;
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
BooleanBuilder idntfBuilder = new BooleanBuilder();
BooleanBuilder basBuilder = new BooleanBuilder();
BooleanBuilder pilotBuilder = new BooleanBuilder();
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
@ -271,7 +279,16 @@ public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri
builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate)); builder.and(qCntrlBasEntity.cntrlEndDt.before(endDate));
builder.and(qCntrlBasEntity.statusCd.eq("99")); builder.and(qCntrlBasEntity.statusCd.eq("99"));
builder.and(qCntrlBasEntity.idntfNum.eq(idntfNum)); for(ComIdntfBas list : idntfList) {
idntfBuilder.and(qCntrlBasEntity.idntfNum.eq(list.getIdntfNum()));
}
for(FltPlanBas list : basResult) {
basBuilder.and(qFltPlanCtrCntrlRelEntity.planSno.eq(list.getPlanSno()));
}
for(FltPlanBas list : pilotResult) {
pilotBuilder.and(qFltPlanCtrCntrlRelEntity.planSno.eq(list.getPlanSno()));
}
if(!StringUtils.isEmpty(rq.getSearch1())) { if(!StringUtils.isEmpty(rq.getSearch1())) {
builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%")); builder.and(qCntrlBasEntity.idntfNum.like("%" + rq.getSearch1() + "%"));
} }
@ -313,7 +330,15 @@ public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri
.leftJoin(qCntrlHstryAreaEntity) .leftJoin(qCntrlHstryAreaEntity)
.on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId)) .on(qCntrlBasEntity.cntrlId.eq(qCntrlHstryAreaEntity.cntrlId))
.on(qCntrlHstryAreaEntity.actnType.eq("01")) .on(qCntrlHstryAreaEntity.actnType.eq("01"))
.where(builder) .leftJoin(qFltPlanCtrCntrlRelEntity)
.on(qCntrlBasEntity.cntrlId.eq(qFltPlanCtrCntrlRelEntity.cntrlId))
.leftJoin(qFltPlanBasEntity)
.on(qFltPlanCtrCntrlRelEntity.planSno.eq(qFltPlanBasEntity.planSno))
.where((builder)
.and(
(idntfBuilder)
.or(basBuilder)
.or(pilotBuilder)))
.orderBy(qCntrlBasEntity.cntrlStDt.asc()) .orderBy(qCntrlBasEntity.cntrlStDt.asc())
.fetch(); .fetch();
@ -355,7 +380,6 @@ public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
log.debug("Params ===> " +rq.toString());
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1); end.add(Calendar.DATE, 1);
@ -449,7 +473,7 @@ public List<AnlsHstryModel> cntrlBasNormalHstryList(AnlsHstryGroupModel rq, Stri
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
log.debug("Params ===> " +rq.toString());
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1); end.add(Calendar.DATE, 1);
@ -545,7 +569,6 @@ public List<AnlsHstryModel> cntrlBasNormalPlanList(AnlsHstryRqModel rq, int plan
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
log.debug("Params ===> " +rq.toString());
Calendar end = Calendar.getInstance(); Calendar end = Calendar.getInstance();
end.setTime(DateUtils.stringToDate(rq.getEndDate())); end.setTime(DateUtils.stringToDate(rq.getEndDate()));
end.add(Calendar.DATE, 1); end.add(Calendar.DATE, 1);

8
src/main/java/com/palnet/biz/jpa/repository/flt/FltPlanBasRepository.java

@ -39,6 +39,12 @@ public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Integer>
Optional<FltPlanBas> findByPlanSnoAndDelYnNot(Integer planSno, String delYn); Optional<FltPlanBas> findByPlanSnoAndDelYnNot(Integer planSno, String delYn);
@Query("Select f from FltPlanBas f " + @Query("Select f from FltPlanBas f " +
"where f.cstmrSno = :cstmrSno " ) "where f.cstmrSno = :cstmrSno " +
"and f.delYn = 'N' " )
List<FltPlanBas> findByPlanSno(@Param("cstmrSno")int cstmrSno); List<FltPlanBas> findByPlanSno(@Param("cstmrSno")int cstmrSno);
@Query("Select f from FltPlanBas f " +
"where f.planSno = :planSno " +
"and f.delYn = 'N' " )
List<FltPlanBas> findBasList(@Param("planSno")int planSno);
} }

Loading…
Cancel
Save