Browse Source

비행이력 현황 목록 - cntrlId 기준 비행기록만 나오도록 수정(미완성 , 페이징처리 되어야 목록 불러올 수 있음)

Test
qkr7828(박재우) 2 years ago
parent
commit
2bbe8a396a
  1. 4
      src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java
  2. 130
      src/main/java/com/palnet/biz/api/anls/hstry/service/AnlsHstryService.java
  3. 5
      src/main/java/com/palnet/biz/jpa/repository/com/ComArcrftBasRepository.java
  4. 5
      src/main/java/com/palnet/biz/jpa/repository/com/ComIdntBasRepository.java
  5. 13
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java
  6. 8
      src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlHstryAreaRepository.java

4
src/main/java/com/palnet/biz/api/anls/hstry/controller/AnlsHstryController.java

@ -39,7 +39,7 @@ public class AnlsHstryController {
@GetMapping(value = "/list")
public ResponseEntity<? extends BasicResponse> list(AnlsHstryGroupModel rq) {
ComnPagingRs<AnlsHstryRsModel> rs;
List<AnlsHstryRsModel> rs = null;
//입력값 검증
if(rq.getStDate() == null || !(rq.getStDate().length() == 10) || rq.getEndDate() ==null || !(rq.getEndDate().length() == 10) ) {
@ -56,7 +56,7 @@ public class AnlsHstryController {
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse(rs));
return ResponseEntity.ok().body(new SuccessResponse<List>(rs));
}

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

@ -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{

5
src/main/java/com/palnet/biz/jpa/repository/com/ComArcrftBasRepository.java

@ -2,6 +2,7 @@ package com.palnet.biz.jpa.repository.com;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.palnet.biz.jpa.entity.ComArcrftBas;
@ -14,4 +15,8 @@ import java.util.List;
@Repository
public interface ComArcrftBasRepository extends JpaRepository<ComArcrftBas, Integer>{
List<ComArcrftBas> findByGroupIdOrderByArcrftSnoAsc(String groupId);
@Query("select c from ComArcrftBas c " +
"where c.groupId = :groupId " )
List<ComArcrftBas> findArcrftSno(@Param("groupId") String groupId);
}

5
src/main/java/com/palnet/biz/jpa/repository/com/ComIdntBasRepository.java

@ -1,5 +1,7 @@
package com.palnet.biz.jpa.repository.com;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@ -15,4 +17,7 @@ public interface ComIdntBasRepository extends JpaRepository<ComIdntfBas, String>
@Query(value = "DELETE FROM COM_IDNTF_BAS WHERE ARCRFT_SNO = :arcrftSno", nativeQuery = true)
int deleteByArcrftSno(@Param("arcrftSno") int arcrftSno);
@Query("select c from ComIdntfBas c " +
"where c.arcrftSno = :arcrftSno " )
List<ComIdntfBas> findIdntfNum(@Param("arcrftSno") int arcrftSno);
}

13
src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlBasRepository.java

@ -10,6 +10,7 @@ import com.palnet.biz.jpa.entity.CtrCntrlBas;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@ -28,4 +29,16 @@ public interface CtrCntrlBasRepository extends JpaRepository<CtrCntrlBas, String
Optional<CtrCntrlBas> findFirstByIdntfNumOrderByCreateDtDesc(String idntfNum);
@Query("select c from CtrCntrlBas c " +
"where c.cntrlStDt >= :cntrlStDt " +
"and c.cntrlEndDt <= :cntrlEndDt " +
"and c.cntrlId = :cntrlId " +
"and c.idntfNum like %:idntfNum% " )
List<CtrCntrlBas> findCntrlBas(@Param("cntrlStDt") Date cntrlStDt, @Param("cntrlEndDt") Date cntrlEndDt, @Param("cntrlId") String cntrlId, @Param("idntfNum") String idntfNum);
@Query("select c from CtrCntrlBas c " +
"where c.cntrlStDt >= :cntrlStDt " +
"and c.cntrlEndDt <= :cntrlEndDt " +
"and c.idntfNum = :idntfNum" )
List<CtrCntrlBas> findCntrlId(@Param("cntrlStDt") Date cntrlStDt, @Param("cntrlEndDt") Date cntrlEndDt, @Param("idntfNum") String idntfNum);
}

8
src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlHstryAreaRepository.java

@ -1,6 +1,10 @@
package com.palnet.biz.jpa.repository.ctr;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.palnet.biz.jpa.entity.CtrCntrlHstryArea;
@ -8,4 +12,8 @@ import com.palnet.biz.jpa.entity.CtrCntrlHstryArea;
@Repository
public interface CtrCntrlHstryAreaRepository extends JpaRepository<CtrCntrlHstryArea, Integer>{
@Query("select c from CtrCntrlHstryArea c " +
"where c.cntrlId = :cntrlId")
List<CtrCntrlHstryArea> findHstryArea(@Param("cntrlId") String cntrlId);
}

Loading…
Cancel
Save