|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
package com.palnet.biz.api.anls.hstry.service; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Optional; |
|
|
|
|
|
|
|
|
@ -21,13 +23,20 @@ import com.palnet.biz.api.anls.hstry.model.AnlsHstryGroupModel;
|
|
|
|
|
import com.palnet.biz.api.anls.hstry.model.AnlsHstryModel; |
|
|
|
|
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRqModel; |
|
|
|
|
import com.palnet.biz.api.anls.hstry.model.AnlsHstryRsModel; |
|
|
|
|
import com.palnet.biz.jpa.entity.ComArcrftBas; |
|
|
|
|
import com.palnet.biz.jpa.entity.ComIdntfBas; |
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlBas; |
|
|
|
|
import com.palnet.biz.jpa.entity.CtrCntrlHstryArea; |
|
|
|
|
import com.palnet.biz.jpa.entity.PtyCstmrGroup; |
|
|
|
|
import com.palnet.biz.jpa.repository.com.ComArcrftBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.com.ComIdntBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlBasRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlHstryAreaRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository; |
|
|
|
|
import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository; |
|
|
|
|
import com.palnet.comn.code.ErrorCode; |
|
|
|
|
import com.palnet.comn.exception.CustomException; |
|
|
|
|
import com.palnet.comn.utils.DateUtils; |
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
public class AnlsHstryService { |
|
|
|
@ -40,13 +49,23 @@ public class AnlsHstryService {
|
|
|
|
|
@Autowired |
|
|
|
|
private PtyCstmrGroupRepository ptyCstmrGroupRepository; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private ComArcrftBasRepository comArcrftBasRepository; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private ComIdntBasRepository comIdntBasRepository; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private CtrCntrlHstryAreaRepository ctrCntrlHstryAreaRepository; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private CtrCntrlQueryRepository query; |
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
private JwtTokenUtil jwtTokenUtil; |
|
|
|
|
|
|
|
|
|
public ComnPagingRs<AnlsHstryRsModel> list(AnlsHstryGroupModel rq){ |
|
|
|
|
//비행이력현황 list
|
|
|
|
|
public List<AnlsHstryRsModel> list(AnlsHstryGroupModel rq){ |
|
|
|
|
List<JwtGroupModel> group = jwtTokenUtil.getGroupAuthByToken(); |
|
|
|
|
Integer cstmrSno = jwtTokenUtil.getCstmrSnoByToken(); |
|
|
|
|
String userAccount = null; |
|
|
|
@ -57,20 +76,113 @@ public class AnlsHstryService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ComnPagingRs<AnlsHstryRsModel> response = new ComnPagingRs<>(); |
|
|
|
|
List<AnlsHstryRsModel> returnList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
//당일만 검색할 시 나오지 않는 오류 방지용으로 끝나는 날짜에 1일 더함
|
|
|
|
|
Calendar end = Calendar.getInstance(); |
|
|
|
|
end.setTime(DateUtils.stringToDate(rq.getEndDate())); |
|
|
|
|
end.add(Calendar.DATE, 1); |
|
|
|
|
Date stDate = DateUtils.stringToDate(rq.getStDate()); |
|
|
|
|
Date endDate = end.getTime(); |
|
|
|
|
|
|
|
|
|
Pageable pageable = PageRequest.of(rq.getPage()-1, rq.getRecord()); |
|
|
|
|
PageImpl<AnlsHstryRsModel> list = query.listCntrlBasRs(rq, cstmrSno, userAccount, pageable); |
|
|
|
|
String idntfNum = rq.getSearch1(); |
|
|
|
|
|
|
|
|
|
if(rq.getSearch1() == null) { |
|
|
|
|
idntfNum = ""; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//GroupId로 ArcrftSno 찾기(그룹별로 비행이력 현황 보여주기 위해)
|
|
|
|
|
List<ComArcrftBas> arcrftSnoList = comArcrftBasRepository.findArcrftSno(rq.getGroupId()); |
|
|
|
|
List<ComIdntfBas> idntfList = new ArrayList<>(); |
|
|
|
|
for(ComArcrftBas bas : arcrftSnoList) { |
|
|
|
|
//ArcrftSno로 idntfNum 찾기
|
|
|
|
|
List<ComIdntfBas> list = comIdntBasRepository.findIdntfNum(bas.getArcrftSno()); |
|
|
|
|
if(!list.isEmpty()) { |
|
|
|
|
idntfList.addAll(list); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//idntfNum으로 CntrlId 찾기
|
|
|
|
|
List<CtrCntrlBas> cntrlIdList = new ArrayList<>(); |
|
|
|
|
for(ComIdntfBas idntf : idntfList) { |
|
|
|
|
List<CtrCntrlBas> list = ctrCntrlBasRepository.findCntrlId(stDate, endDate, idntf.getIdntfNum()); |
|
|
|
|
if(!list.isEmpty()) { |
|
|
|
|
cntrlIdList.addAll(list); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
long total = query.countCntrlBasRs(rq, cstmrSno, userAccount); |
|
|
|
|
//CntrlId로 Area 정보 찾기
|
|
|
|
|
List<CtrCntrlHstryArea> areaList = new ArrayList<>(); |
|
|
|
|
for(CtrCntrlBas bas : cntrlIdList) { |
|
|
|
|
List<CtrCntrlHstryArea> list = ctrCntrlHstryAreaRepository.findHstryArea(bas.getCntrlId()); |
|
|
|
|
if(!list.isEmpty()) { |
|
|
|
|
areaList.addAll(list); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//area 정보 returnList에 set
|
|
|
|
|
if(!areaList.isEmpty()) { |
|
|
|
|
for(CtrCntrlHstryArea area : areaList) { |
|
|
|
|
AnlsHstryRsModel model = new AnlsHstryRsModel(); |
|
|
|
|
|
|
|
|
|
model.setActnType(area.getActnType()); |
|
|
|
|
model.setAreaNm(area.getAreaNm()); |
|
|
|
|
model.setAreaType(area.getAreaType()); |
|
|
|
|
model.setArea1(area.getArea1()); |
|
|
|
|
model.setArea2(area.getArea2()); |
|
|
|
|
model.setArea3(area.getArea3()); |
|
|
|
|
model.setCntrlId(area.getCntrlId()); |
|
|
|
|
model.setCreateDt(area.getCreateDt()); |
|
|
|
|
model.setLandNm(area.getLandNm()); |
|
|
|
|
model.setLandNum(area.getLandNum()); |
|
|
|
|
model.setUpdateDt(area.getUpdateDt()); |
|
|
|
|
model.setZipCd(area.getZipCd()); |
|
|
|
|
returnList.add(model); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//bas 정보 cntrlId별로 찾기
|
|
|
|
|
for(CtrCntrlBas cntrl : cntrlIdList) { |
|
|
|
|
List<CtrCntrlBas> basList = ctrCntrlBasRepository.findCntrlBas(stDate, endDate, cntrl.getCntrlId(), idntfNum); |
|
|
|
|
|
|
|
|
|
//bas 정보 returnList에 set
|
|
|
|
|
if(!basList.isEmpty()) { |
|
|
|
|
for(CtrCntrlBas bas : basList) { |
|
|
|
|
AnlsHstryRsModel model = new AnlsHstryRsModel(); |
|
|
|
|
|
|
|
|
|
model.setCntrlId(bas.getCntrlId()); |
|
|
|
|
model.setAvrgSpeed(bas.getAvrgSpeed()); |
|
|
|
|
model.setAvrgSpeedType(bas.getAvrgSpeedType()); |
|
|
|
|
model.setBttrCnsmptn(bas.getBttrCnsmptn()); |
|
|
|
|
model.setCntrlEndDt(bas.getCntrlEndDt()); |
|
|
|
|
model.setCntrlStDt(bas.getCntrlStDt()); |
|
|
|
|
model.setCreateDt(bas.getCreateDt()); |
|
|
|
|
model.setEndTypeCd(bas.getEndTypeCd()); |
|
|
|
|
model.setFlghtStDt(bas.getFlghtStDt()); |
|
|
|
|
model.setIdntfNum(bas.getIdntfNum()); |
|
|
|
|
model.setObjectTypeCd(bas.getObjectTypeCd()); |
|
|
|
|
model.setStatusCd(bas.getStatusCd()); |
|
|
|
|
model.setTtlDstnc(bas.getTtlDstnc()); |
|
|
|
|
model.setTtlDstncType(bas.getTtlDstncType()); |
|
|
|
|
model.setTtlTime(bas.getTtlTime()); |
|
|
|
|
model.setTtlTimeType(bas.getTtlTimeType()); |
|
|
|
|
model.setUpdateDt(bas.getUpdateDt()); |
|
|
|
|
returnList.add(model); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord(); |
|
|
|
|
|
|
|
|
|
response.setItems(list.getContent()); |
|
|
|
|
response.setTotal(total); |
|
|
|
|
response.setPage(rq.getPage()); |
|
|
|
|
response.setTotalPage(totalPage); |
|
|
|
|
// long total = query.countCntrlBasRs(rq, cstmrSno, userAccount);
|
|
|
|
|
//
|
|
|
|
|
// long totalPage = total % rq.getRecord() > 0 ? (total/rq.getRecord()) + 1 : total/rq.getRecord();
|
|
|
|
|
//
|
|
|
|
|
// response.setItems(list.getContent());
|
|
|
|
|
// response.setTotal(total);
|
|
|
|
|
// response.setPage(rq.getPage());
|
|
|
|
|
// response.setTotalPage(totalPage);
|
|
|
|
|
|
|
|
|
|
return response; |
|
|
|
|
return returnList; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public AnlsHstryModel detail(String cntrlId) throws Exception{ |
|
|
|
|