Compare commits

..

422 Commits

Author SHA1 Message Date
lkd9125(이경도) fa0742f2b2 add: 임시커밋 8 months ago
lkd9125(이경도) c8cb2e1373 fix: 패턴로직 보완 8 months ago
lkd9125(이경도) 1610ca84d9 feat: 일출일몰 패턴 식 날짜계산으로 변, local프로필 스케줄러 시작 방지추가, 매일 새벽 2시로 크론식변경 8 months ago
lkd9125(이경도) 2312806fcf feat: 일출일몰 데이터 한반도 골고루 insert하는 스케줄러 추가 8 months ago
lkd9125(이경도) 61a6e3d568 Merge remote-tracking branch 'origin/develop' into develop 8 months ago
lkd9125(이경도) ae5f670d03 Fix: 기존 회원 패스워드 확안 기능의 RQ를 객체방식으로 받게끔 변경. 8 months ago
지대한 7a73c0e5ba fix: 메인 대시보드의 데이터를 못받아오는 현상 8 months ago
lkd9125(이경도) ff2fa08919 feat: 좌표로 일출일몰 List 조회 시 없는 해당 날짜에 없는 도시는 가장 가까운도시 추적하여 대신 조회하도록 변경. 8 months ago
lkd9125(이경도) a1d3ed44cc feat: 일출일몰 List 조회 시 없는 해당 날짜에 없는 도시는 가장 가까운도시 추적하여 대신 조회하도록 변경. 8 months ago
lkd9125(이경도) d767b3a6b5 feat: 일출일몰 시간계산 유틸추가 8 months ago
qkr7828 b86f0064a3 feat: DMS 유틸 수정 8 months ago
qkr7828 18145284d6 정렬 기준 변경 9 months ago
qkr7828 17b19b34f3 npe 수정 9 months ago
qkr7828 73b83ab28c . 9 months ago
qkr7828 09b9eecd34 . 9 months ago
qkr7828 4d4c33e3d0 npe 수정 9 months ago
qkr7828 a49114c590 식별번호 조건 변경 9 months ago
qkr7828(박재우) 89e3cf65d7 . 9 months ago
지대한 96fb1bdf02 swagger document update 9 months ago
지대한 8fdd882889 swagger document update2 9 months ago
지대한 99b69117ae Merge pull request '좌표로 관할청 매핑된곳 가져오기' (#16) from feature/coordinate/comptent-authority into develop 9 months ago
지대한 3820c8ea7e Merge branch 'develop' into feature/coordinate/comptent-authority 9 months ago
lkd9125(이경도) ad71102ecc 로그 삭제 및 복호화 코드 주석처리 9 months ago
lkd9125(이경도) 95cac94b68 로그확인용임시 커밋 9 months ago
qkr7828(박재우) 87ca73cb1d 헤딩각 360도 초과하는 오류 수정 9 months ago
qkr7828(박재우) be5bd19f2a . 9 months ago
qkr7828(박재우) 3fdfeb3f68 pav-utils 단위 변경 9 months ago
lkd9125(이경도) e12943d79d storage 주석 추가 9 months ago
lkd9125(이경도) 9b7f837cf5 main/statistics 패키지 주석추가 9 months ago
lkd9125(이경도) 10f236bcec main/dash 패키지 주석추가 9 months ago
lkd9125(이경도) d4a65abd14 ctr/cntrl 패키지 주석 9 months ago
lkd9125(이경도) 44251b04c7 conm/sms 9 months ago
lkd9125(이경도) 427665aff1 comn/sunriseset 패키지 주석추가 9 months ago
lkd9125(이경도) 84f14719c6 conm/file 패키지 주석추가 9 months ago
lkd9125(이경도) f64debca81 comn/elev 패키지 주석추가 9 months ago
lkd9125(이경도) 5e024d4af1 cns/qna 패키지 주석추가 9 months ago
lkd9125(이경도) 0c44929d81 cns/faq 패키지 주석추가 9 months ago
lkd9125(이경도) dd7f4eb99b Merge commit 'fab634f7b852323e196f44c6c171f76c520b2322' into develop 9 months ago
lkd9125(이경도) e240392b25 bas/group 패키지 주석추가 9 months ago
박재우 fab634f7b8 QR코드 만료시 코드 추가 9 months ago
지대한 ec12f0ba58 qr log 9 months ago
지대한 bfc2a00547 Merge remote-tracking branch 'origin/develop' into develop 9 months ago
지대한 2ed4aa5e47 3분 이내 검증 버그 9 months ago
lkd9125(이경도) e8d0ef3319 bas/flight 패키지 주석추가 9 months ago
lkd9125(이경도) 4a50a4506f Merge commit '4b0ddb5e2b245c8def9596da8089488575a04afd' into develop 9 months ago
lkd9125(이경도) 91e5d2a310 bas/dron 패키지 주석추가 9 months ago
지대한 4b0ddb5e2b qr rq 변경 9 months ago
lkd9125(이경도) 606dd2dad8 anls/smlt 패키지 주석추가 10 months ago
lkd9125(이경도) d66b221762 anls/hstry 패키지 주석추가 10 months ago
lkd9125(이경도) 211ce9ae82 terms패키지 주석추가 10 months ago
lkd9125(이경도) a255674a66 jwt패키지 추석 추가 10 months ago
lkd9125(이경도) e71de75916 cstmr 패키지 주석추가 10 months ago
lkd9125(이경도) e2d33ba02f Merge commit '29f63b91c25c734b0ae7a95fe09224c6bcc7c51d' into develop 10 months ago
lkd9125(이경도) 6e4fa96498 crtfyhp 패키지 주석 추가 10 months ago
지대한 29f63b91c2 TS 연동 성공시 param 전송 10 months ago
지대한 0eac2f6c40 외부 호출 security 제외 10 months ago
'kyw546' 8bdfad57bd 불법드론 연계를 위한 변경 10 months ago
지대한 a992564662 Merge remote-tracking branch 'origin/develop' into develop 10 months ago
지대한 3dd6c8d707 서버이전으로 인한 변경 10 months ago
lkd9125(이경도) 6301df3673 스웨거 어노테이션 추가 10 months ago
lkd9125(이경도) cfb21cb66a 좌표로 관할청 매핑된곳 가져오기 10 months ago
lkd9125(이경도) 302ed20574 롤백 10 months ago
lkd9125(이경도) 8e909cdb05 좌표로 관할청 매핑된곳 가져오기 10 months ago
지대한 e6acfea39c 순환참조로 인한 수정 10 months ago
지대한 f4a6203a83 TS - 드론원스탑 비행계획서 받기 10 months ago
지대한 96fde678d5 TS - 불법드론 1~2초 마다 전송 10 months ago
lkd9125(이경도) 679ca7d467 비행승인 연산 수정 10 months ago
lkd9125(이경도) b47c6b2297 Merge commit 'd17ee11825ae516073261f377d0fea31e5269029' into develop 10 months ago
lkd9125(이경도) 77f86393a0 회원가입 시 국가코드 하드코딩 처리 10 months ago
지대한 d17ee11825 QR 확인 에러 수정 10 months ago
지대한 88ef91e5c5 TS 비행계획서 1차 완료 10 months ago
lkd9125(이경도) 4524a9da29 문자 전송 시 intime 데이터추가 10 months ago
지대한 ddd03bf0c3 TS qr code 구현 10 months ago
지대한 5a0971d942 TS qr 코드 10 months ago
지대한 327e844850 드론 비행 현황시 cptAuthCode가 없을 경우 조회가 안되는 현상 임시 수정 10 months ago
lkd9125(이경도) 0a785e4e76 Merge commit '4a93fa0793c717d7bd66e86946106cd80a0038f0' into develop 10 months ago
lkd9125(이경도) cc20b63e81 Instant Convert 수정 10 months ago
지대한 4a93fa0793 통계 serviceType 수정 10 months ago
지대한 42ea6bd207 통계 serviceType 수정 10 months ago
지대한 ef7d88ec18 통계 serviceType 수정 10 months ago
지대한 4e6ae1b998 비행건수 계획서 없는데 완료 카운트 되는 현상 수정 10 months ago
지대한 1e2fe13cdc 비행건수 계획서 없는데 완료 카운트 되는 현상 수정 10 months ago
lkd9125(이경도) 80ddc8039e 비행시뮬레이션 Date오류 수정 10 months ago
lkd9125(이경도) 4a48a20807 운항스케줄 Date오류 수정 10 months ago
지대한 60349d12fd 의존성 주입 재정의 10 months ago
지대한 225dfb8120 메인 대시보드 serviceType 적용 10 months ago
지대한 8ede6560f4 Merge remote-tracking branch 'origin/develop' into develop 10 months ago
지대한 3215b07e8a laanc validate 재구성(적용x) 10 months ago
leehagjoon(이학준) 228b5d22fa Merge remote-tracking branch 'origin/develop' into develop 10 months ago
leehagjoon(이학준) becb63dff1 [일일비행횟수현황] groupby 추가 - 추후 변경 예정 10 months ago
지대한 b79e8d818f profile 조회시 cptAuthCode 항목 추가 10 months ago
지대한 139fe34db0 profile 조회시 cptAuthCode 항목 추가 10 months ago
지대한 1178bcfb37 Merge branch 'release-1.0.0' into develop 10 months ago
daeha 5cdc4f3d2d lib 10 months ago
박재우 6e57de92b9 eclipse mapstruct 설정 10 months ago
박재우 251c9f038a Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 10 months ago
박재우 6d27936d26 GpScheduler - 화면 노출시간이 1시간으로 되어있어 변경 10 months ago
lkd9125(이경도) f961187e20 비행실적 top 5 Value추가 10 months ago
lkd9125(이경도) 8223d15865 포맷팅변경 10 months ago
박재우 287a1e58fe endPoint 수정 10 months ago
박재우 565c577532 top5 지역별 통계 -> 카운팅 기준 비행 종료 시점으로 변경 10 months ago
lkd9125(이경도) e749e6a7dc Merge commit 'f5844dd36067af533e89093fa17493b083cac4bb' into develop 10 months ago
lkd9125(이경도) 258c5a4d6b 비정상상황통계 상단데이터 10 months ago
박재우 f5844dd360 . 10 months ago
박재우 dd7f4286b4 . 10 months ago
박재우 f556933189 data key 변경 10 months ago
박재우 88f15b1c56 query where절 변경 10 months ago
박재우 f8558654b6 기준 수정(오늘 날렸거나, 오늘 비행계획서 등록한 건만 표출되도록) 10 months ago
박재우 4d2cd49705 log 10 months ago
박재우 263afa106a 임시 테스트용 KAC 권한 하드코딩, 로직 변경 10 months ago
박재우 93ce5bc2ba query instant 형변환 변경 , 조건 변경 10 months ago
leehagjoon(이학준) 823909fa36 [일일 비행횟수 현황] - long -> int 타입 변경 10 months ago
박재우 19bfc06908 조건 변경 10 months ago
지대한 82b8d0c60d 드론 상세정보 데이터 누락 10 months ago
lkd9125(이경도) bcb2c9c782 관제종료시 관제건 업데이트 시간 인서트 10 months ago
박재우 0f3e6ef86c Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 10 months ago
박재우 a6eef7d349 드론 비행 더미데이터 파일 10 months ago
lkd9125(이경도) 033a500423 개발용 로그삭제 10 months ago
lkd9125(이경도) c04cbda460 Merge commit '0cd99c47816eed890d777a6773591838f573e769' into develop 10 months ago
lkd9125(이경도) 089ac26b56 비행, 실적, 비정상상황 통계 serviceType으로 조건 변경 10 months ago
leehagjoon(이학준) 0cd99c4781 [일일 비행횟수 현황] - 쿼리 수정 10 months ago
lkd9125(이경도) 5c2e35ad39 Merge commit 'ad7dde789e1e9d02178d4295c8c08b49346ca453' into develop 10 months ago
lkd9125(이경도) 2c75ced8e5 일일 비정상상황, 비행통계 RS 변경 10 months ago
지대한 ad7dde789e 모든 비행구역 나오는 현상 수정 10 months ago
지대한 3c05b88a42 모든 비행구역 나오는 현상 수정 10 months ago
지대한 2d1577f7fe 스웨거 설명 수정(비행횟수 > 비행건수) 10 months ago
지대한 29ed289ab8 자동 재시작 제거 10 months ago
lkd9125(이경도) e580006e30 Instant 타입 변경 10 months ago
lkd9125(이경도) eace93dfad 타입변경 10 months ago
박재우 2aaf61fab3 Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 10 months ago
박재우 8c663f0ec9 . 10 months ago
lkd9125(이경도) deecd68945 Merge commit '57699c83da38b382358421999ff0e5b6c73cfc66' into develop 10 months ago
lkd9125(이경도) 5c23f805ea NPE방지 코드추가 10 months ago
박재우 57699c83da Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 10 months ago
박재우 8fb8d4f430 rollback 10 months ago
지대한 82a8d1ea12 Merge pull request 'feature/main/dailyflight' (#15) from feature/main/dailyflight into develop 10 months ago
지대한 f68773d718 비행구역조회 10 months ago
lkd9125(이경도) 2bb0b2cb11 조건절 변경 10 months ago
박재우 be8c4e1634 드론관제 드론 상세정보 querydsl 오류 수정 10 months ago
박재우 206dec0183 드론현황 수정 10 months ago
박재우 eadb1bfaee 비행운항목록 조건에 맞게 수정 10 months ago
박재우 25de8eff0b webSocket 데이터 중복송신 제거 10 months ago
leehagjoon(이학준) efb8e810f3 충돌 해결 10 months ago
leehagjoon(이학준) fcf21b9510 Merge branch 'develop' into feature/main/dailyflight 10 months ago
lkd9125(이경도) 077cc56319 스웨거 어노테이션 추가 10 months ago
leehagjoon(이학준) d72ceca0d8 로그 제거 10 months ago
leehagjoon(이학준) 3d0209c0cb 충돌 해결 10 months ago
leehagjoon(이학준) b5603dc2da Merge branch 'develop' into feature/main/dailyflight 10 months ago
지대한 ab6c2442d8 Merge pull request 'feature/current/flight-plan' (#13) from feature/current/flight-plan into develop 10 months ago
leehagjoon(이학준) 2aa5f84505 [메인] 일일 비행횟수 현황 - 비행완료, 미 비행, 비고 추가 10 months ago
lkd9125(이경도) 14b2dab58a 임포트문 추가 10 months ago
lkd9125(이경도) cbc8f3f502 Merge commit '86e2daeb494da96aed6171d406b65a894fa605d5' into feature/current/flight-plan 10 months ago
지대한 86e2daeb49 Merge pull request 'feature/current/flight-warn' (#14) from feature/current/flight-warn into develop 10 months ago
lkd9125(이경도) 3414b7fc76 QueryDSL GroupBY절 추가 10 months ago
lkd9125(이경도) d3615c121a Merge commit 'ca86a2debdd264d10972bb1db00fe044b2678f54' into feature/current/flight-warn 10 months ago
lkd9125(이경도) 4c34b1e081 일일 비정상 상황 추가 10 months ago
박재우 ca86a2debd . 10 months ago
박재우 814adff88e 드론통계 rq 수정 10 months ago
lkd9125(이경도) a65fc6be8c Merge commit '254771dc4278d3145de39d1017ef1c72a892b60b' into feature/current/flight-plan 10 months ago
lkd9125(이경도) 8bd4de84b2 Merge commit 'c4a9683ee0d84b023e21722962fcdffe224fd926' into feature/current/flight-plan 10 months ago
박재우 254771dc42 드론현황 10 months ago
lkd9125(이경도) a30bd26ccd 합계 => 승인된 비행계획서 건수로 변경 10 months ago
lkd9125(이경도) c4a9683ee0 비행실적 groupby 추가 10 months ago
지대한 5a92ff7a75 기존 어드민 권한에 해당 담당관할 코드가 있을 경우 token 에 주입 10 months ago
leehagjoon(이학준) 2e6a99922f Merge branch 'develop' into feature/main/dailyflight 10 months ago
lkd9125(이경도) 1daea5d280 일일 시간데이터 포맷 변경 10 months ago
lkd9125(이경도) 29053dd347 Merge commit '076b2922faff4b572200793c54565aa3ddcb842e' into feature/current/flight-plan 10 months ago
lkd9125(이경도) a04740a7b3 일일비정상 상황 임시커밋 10 months ago
leehagjoon(이학준) c9cb343175 Merge branch 'develop' into feature/main/dailyflight 10 months ago
박재우 076b2922fa 좌표로 법정동 코드 찾는 유틸 -> 성능 향상 , 인접한 바다의 좌표도 가장 가까운 육지의 담당자 찾을 수 있는 기능 추가 10 months ago
박재우 c8f5547f52 queryDSL where절 Timezone 수정 10 months ago
lkd9125(이경도) a03ff7a516 메소드명 변경 10 months ago
lkd9125(이경도) 67c911d94c Merge commit '5d6e3ff6780c7e47b5e113b1180a899692087e12' into feature/current/flight-plan 10 months ago
hagjoon(이학준) f06c7fca31 [메인] 일일 비행횟수 현황 : 비행계획서 승인 항목 표출 완료 10 months ago
lkd9125(이경도) f709d99133 메인화면 일일비행 추가 10 months ago
hagjoon(이학준) a527959cf2 [메인] 일일 비행횟수 현황 : 비행계획서 승인 항목 작업중 10 months ago
박재우 5d6e3ff678 . 10 months ago
박재우 61e5381ba0 Merge pull request 'feature/jaewoo' (#12) from feature/jaewoo into develop 10 months ago
박재우 7623b90d47 Merge pull request '드론운항 통계' (#11) from develop into feature/jaewoo 10 months ago
박재우 a1083804be 드론운항목록 10 months ago
지대한 65ac7f880b propeties 수정 ip 변경 10 months ago
지대한 f6f1a23536 좌표에 따른 지표면 고도 조회 기능 10 months ago
lkd9125(이경도) 3d2931484f 권한 확인 Exception추가 10 months ago
lkd9125(이경도) 25b59937bd 비정상상황 권한개입추가 10 months ago
lkd9125(이경도) 53452ebcce 비행실적 권한 개입 추가 10 months ago
lkd9125(이경도) 820a3998f9 비행통계 권한개입 추가 10 months ago
lkd9125(이경도) 71c4e13170 비행통계 상단데이터 권한개입 추가 10 months ago
lkd9125(이경도) 5b7daabf68 비행실적 통계 - 비행계획 groupBy추가 10 months ago
lkd9125(이경도) 5ced3a65dd 통계 NPE 방지 코드 추가 10 months ago
lkd9125(이경도) a85492032b 비행실적통계 API 추가 10 months ago
lkd9125(이경도) 817a00fd04 비행실적 상단 고정데이터 AP추가 10 months ago
lkd9125(이경도) a415ca94fe 비정상상황 로그 queryRepository 추가 10 months ago
lkd9125(이경도) e1b3255819 비정상상황 상단 고정데이터 년,월,일 추가 10 months ago
lkd9125(이경도) 9ad0763121 비행통계 상단 년월일 추가 10 months ago
lkd9125(이경도) 669ed742f0 통계패키지 모델 이동 11 months ago
lkd9125(이경도) 60a6e25bce 통계 패키지 분리 11 months ago
lkd9125(이경도) 4d857ba9a4 비정상 상황 통계 API 추가 11 months ago
lkd9125(이경도) 7006e88ade 비정상 상황 상단 고정데이터 API 추가 11 months ago
지대한 1dd7fe3e31 Merge remote-tracking branch 'origin/develop' into develop 11 months ago
지대한 63d17ff450 수치표고모델 해상도(/4) 및 크기(한반도 -> 남한) 수정 11 months ago
lkd9125(이경도) db8017f560 Merge commit '99d49ca2d6098846649b63f47693fea415347073' into develop 11 months ago
lkd9125(이경도) 9348e201ad 비행통계 API 추가 11 months ago
지대한 99d49ca2d6 . 11 months ago
지대한 05e984d91d 고도 변환 11 months ago
지대한 d4f05efbab docker local 테스트 환경 11 months ago
lkd9125(이경도) 1a81341c7f 통계 API, 비행상단 고정 데이터 API추가 11 months ago
지대한 86994aaa1e dem(tiff) - 지형고도 11 months ago
지대한 2ad49b5e44 Merge remote-tracking branch 'origin/develop' into develop 11 months ago
지대한 da1689437e dem(tiff) - 지형고도 11 months ago
lkd9125(이경도) c28bd422ef 비행 종료시 컨트롤아이디에 해당하는 건의 총 비행거리 값 추가 11 months ago
박재우 bc6e536d52 Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 11 months ago
박재우 efdf974e24 법정동 코드 리턴 유틸 - 특정 depth까지만 추출하는 기능 추가 ( 광역시 / 시군구 / 읍면동 / 리 ) 11 months ago
lkd9125(이경도) 5c57c80352 GeoJson프로퍼티 수정 11 months ago
박재우 1ac6d5a470 . 11 months ago
박재우 22a86d2efb . 11 months ago
박재우 d325a1eeab linux 환경에 맞게 경로 구분자 수정 11 months ago
박재우 c15853e6a1 test controller(임시) 11 months ago
lkd9125(이경도) 9868daaf1b 전국 GeoJson 분할 프로그램 추가 11 months ago
박재우 e0b83bd98d Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 11 months ago
박재우 0cb72deaa9 path properties yml에서 관리하게 변경 , util @value 추가하기 위해 컴포넌트 어노테이션 사용 11 months ago
지대한 38d210acd3 refresh token 요청시 token 자체 검증만 진행 11 months ago
지대한 34a214fadb refresh token 요청시 새로운 refresh 토큰 저장 11 months ago
지대한 6d9ed107b5 법정동 글자 깨짐 수정 11 months ago
박재우 ffeeb96663 좌표로 법정동코드 찾기(beta) 11 months ago
박재우 0fefce3cb4 Merge branch 'develop' of http://gitea.palntour.com/pav/pav-be-kac.git into develop 11 months ago
박재우 3d9aff1a26 좌표로 법정동코드 찾기(beta) 11 months ago
지대한 a82e6e8ab2 Ts 에러시 서버 에러가 아닌 false로 떨궈줌 11 months ago
지대한 95c163888b TS - 조종사 자격 증명 여부 및 기체 보혐 여부 확인 api 11 months ago
지대한 ca6cea96b1 허용고도 조회시 값이 안맞는 현상 11 months ago
지대한 e683b01621 파일 수정 및 상세 수정 11 months ago
지대한 05e0043f4f 법정동 저장(로컬용) 11 months ago
지대한 5eea14db01 법정동 파일 및 지역 매핑 entity 11 months ago
지대한 207dd6aec0 파일이 없을 경우 에러 수정 11 months ago
지대한 3a4ef8d16e 특수비행-야간 제외 11 months ago
지대한 7f51aeac43 공역(금지구역) 포함여부 api 11 months ago
지대한 1fb70081dd 허용고도 api, ts연동 api 11 months ago
지대한 f388ea2b97 qna 답변시 사용자 조회가 안되는 현상 수정 11 months ago
박재우 623b1f4544 coordinate convert util 추가 11 months ago
지대한 39b5a0694d 빈값일 경우 where조건 제외 11 months ago
지대한 f49d34627c merge 11 months ago
지대한 f094d97648 Merge pull request 'feature/laanc/sun-vaildation' (#10) from feature/laanc/sun-vaildation into develop 11 months ago
지대한 e5e0cd4833 - 승인목록 pdf download url(pdfUrl) 추가 11 months ago
지대한 ddb7c79267 pdf path nullod -> od 11 months ago
지대한 b26db5c7e4 qna add contract field 11 months ago
지대한 62b5a204ac qna field add answer information. 11 months ago
지대한 1ab250463b cstmr bas return type error 11 months ago
지대한 650256d8b6 qna admin 검색조건 수정 및 작성자명 추가 11 months ago
lkd9125(이경도) a65588baff Merge commit '665ffc5989b582b8977fb32500df0daaebfee834' into feature/laanc/sun-vaildation 11 months ago
지대한 665ffc5989 승인 목록 신청일 기준 최신순으로 정렬 11 months ago
지대한 d5ce02101a 승인목록 페이징 없는 api 생성 11 months ago
지대한 c978a9171a FAQ, QnA 생성일시 최근일 순으로 정렬 11 months ago
지대한 56ffa8fcc7 신청 목록 신청일자 기준 검색 11 months ago
지대한 b567f3941f qna 설계 변경으로 인한 수정 11 months ago
지대한 2ee86cadcd qna 설계 변경으로 인한 수정 11 months ago
lkd9125(이경도) 42f6538ae3 체크용 로그 삭제 11 months ago
lkd9125(이경도) 06e097f881 주석추가 11 months ago
lkd9125(이경도) d4760093ab Laanc 검증 RS파라미터 적용 11 months ago
lkd9125(이경도) d1df3b400d 테스트 변경 11 months ago
lkd9125(이경도) 76a4aa0e63 Merge commit '49c2798356cf0525e6a6972e4252ed93510df6f5' into feature/laanc/sun-vaildation 11 months ago
lkd9125(이경도) b21670ed3f Laanc 검증 추가 11 months ago
지대한 49c2798356 qna url 수정 11 months ago
지대한 694be4caf1 faq 수정 11 months ago
지대한 7dabd67695 일몰 일출 api 추가 - 해당 좌표에 근접한 지역의 6개월치 데이터 11 months ago
지대한 d98025b99f 일몰 일출 api 추가 - 해당 좌표에 근접한 지역의 6개월치 데이터 11 months ago
지대한 82d60d62dd 승인목록 rq 변경 11 months ago
지대한 29e578c6cb LAANC 검증시 기체 중복 및 비행 구역 중복 제외 11 months ago
지대한 4b5e79f2ce 좌표로 가장 근접한 지역의 일몰/일출 정보 조회 11 months ago
지대한 493f5db580 일출/일몰 지역별 조회 11 months ago
lkd9125(이경도) f20ada92ab QnA업데이트 시간 추가 11 months ago
lkd9125 6229cb4af9 Merge pull request 'feature/cns/faq-qna' (#9) from feature/cns/faq-qna into develop 11 months ago
lkd9125(이경도) 2b76d6488c files 저장 경로 변경 11 months ago
lkd9125(이경도) 58709feba3 Qna File 개별삭제 [파일 업데이트 기획이 없어 만듬] 11 months ago
lkd9125(이경도) fb214e0323 File update추가 11 months ago
qkr7828(박재우) 82d69eb940 faq crud 11 months ago
lkd9125 6e3e83d04e Qna 삭제 추가 11 months ago
lkd9125 9736eab347 Qna 업데이트 기능 추가 / 파일 업데이트 제외 11 months ago
lkd9125 f43e284a1f Merge commit 'edc3503cc7dc9f407b29fcd0c1bb8f35ba3320d5' into feature/cns/faq-qna 11 months ago
lkd9125 227302dc70 Qna 상세 불러오기 추가 11 months ago
qkr7828(박재우) edc3503cc7 . 11 months ago
lkd9125 5c282da7d8 QnaList 조회 추가 11 months ago
lkd9125 69e44f00d8 Qna 추가 기능 11 months ago
lkd9125 3d029ec84e DB Insert추가 11 months ago
lkd9125 fceb5159cf file업로드 추가 11 months ago
qkr7828(박재우) d7037f9f90 list , detail 완료 11 months ago
lkd9125 80057475e5 롤백 11 months ago
lkd9125 73c1ed6f73 . 11 months ago
lkd9125 8443dbc260 Class 정리 11 months ago
lkd9125 3b414f174e Merge commit '0dd9e2267891467c1ad70462c183feb4aface963' into feature/cns/faq-qna 11 months ago
lkd9125 c3b141bd85 QNA 기본작업 커밋 11 months ago
qkr7828(박재우) 0dd9e22678 . 11 months ago
qkr7828(박재우) 33d751629c repo 11 months ago
lkd9125 9fe2faf362 Merge commit '08c7c58d0ead94ff7ac68169acffb3f20a94ebf2' into feature/cns/faq-qna 11 months ago
lkd9125 b55bfc8c35 Entity 및 기본 클래스 생성 11 months ago
qkr7828(박재우) 08c7c58d0e detail merge 11 months ago
leehagjoon(이학준) f94caa0885 날씨 API url 및 servicekey -> properties 관리 11 months ago
지대한 076be728b7 . 11 months ago
지대한 7ef7106a82 . 11 months ago
지대한 797432b1d4 . 11 months ago
지대한 667a2f3a50 laanc 승인 목록 검색조건 추가 11 months ago
지대한 941de40021 승인 목록 및 상세 기본올림 12 months ago
지대한 4598e0624e 승인시 문자전송 12 months ago
지대한 f05de5e47e 승인시 문자전송 12 months ago
지대한 57f0eb7e05 승인시 문자전송 12 months ago
지대한 78770e79e7 식별번호 및 항공기기체 생략 가능 12 months ago
지대한 3e1521db05 pdf template 수정 12 months ago
지대한 27c21e388e code "-" front에서 불가 12 months ago
지대한 6a7f345c75 다운로드 url public 으로 변경 12 months ago
지대한 182e19491e 파일 경로 12 months ago
지대한 d5265b8fa1 주소 잘못 입력함 12 months ago
지대한 d6c8fa19ca image 못읽음 12 months ago
지대한 f00388da34 valid 수정 12 months ago
지대한 329ead43b8 resource 파일 못읽음 12 months ago
지대한 b4f447d641 resource 파일 못읽음 12 months ago
지대한 164a393ca8 resource 파일 못읽음 12 months ago
지대한 bddcdc5ca6 resource 파일 못읽음 12 months ago
지대한 b70de5b021 resource 파일 못읽음 12 months ago
지대한 505a8f6ca5 laanc 승인시 첫좌표로 주소 받아오기 12 months ago
지대한 43a632aaa3 laanc 날 수 있는 boolean 추가 12 months ago
지대한 b98f5fe915 비행가능여부 추가 12 months ago
지대한 583e77a9db laanc 검증 1차안 12 months ago
지대한 7aba2ee31d code enum 처리 12 months ago
지대한 98ab8d343d . 12 months ago
지대한 bc3888ec94 laanc 새로운 페이지에 따른 api 생성 1 year ago
lkd9125 5ba0ee1810 import 정리 1 year ago
지대한 d578d5d297 laanc 새로운 페이지에 따른 api 생성 1 year ago
지대한 7c8f1ce6e2 Merge remote-tracking branch 'origin/develop' into develop 1 year ago
lkd9125 e62562e0f1 PDF 다운로드 주석추가 1 year ago
lkd9125 22059b0427 Swagger 어노테이션 추가 1 year ago
lkd9125 fa5499fe00 Merge pull request '비정상상황 통계 추가' (#7) from feature/main/warning-flight-statistics into develop 1 year ago
lkd9125 87377baa1c 비정상상황 통계 추가 1 year ago
lkd9125 728095f32e Merge pull request 'feature/main/drone-flight-statistics' (#6) from feature/main/drone-flight-statistics into develop 1 year ago
lkd9125 0532e5740c 필수 파라미터 지정 idntfNum 1 year ago
lkd9125 5b75e00e57 Merge commit 'c42d2b5e7585465dbe97a31bee97a390a1ab0c88' into feature/main/drone-flight-statistics 1 year ago
지대한 49db329500 기존 flight 롤백 1 year ago
lkd9125 c42d2b5e75 Instant Convert Log제거 1 year ago
lkd9125 43a78e7a63 드론별 비행이력 통계 추가 1 year ago
lkd9125 83512429cd Merge pull request 'feature/lannc/pdf-download' (#4) from feature/lannc/pdf-download into develop 1 year ago
lkd9125 d3f2a2fcaa Merge commit '92be3047ce0305adc9dc861570276c845dd08995' into feature/lannc/pdf-download 1 year ago
lkd9125 bfb27e137b Merge commit '92be3047ce0305adc9dc861570276c845dd08995' into feature/main/drone-flight-statistics 1 year ago
지대한 92be3047ce airgeo 롤백 1 year ago
지대한 f2bd8ac39d epsg 추가 1 year ago
lkd9125 91caa4aa3f 메소드 명 변경 1 year ago
lkd9125 9addd8e841 Merge commit 'dbb8cfa222707f826a4d3bdeec0341fafd3a22bf' into feature/lannc/pdf-download 1 year ago
지대한 dbb8cfa222 LAANC 프로세스 변경에 따른 수정 1 year ago
지대한 903af28cf5 Merge pull request 'feature/lannc/pdf-create' (#3) from feature/lannc/pdf-create into develop 1 year ago
lkd9125 273f2a2039 Exception추가 1 year ago
lkd9125 b0b633e8a1 코드정리 1 year ago
lkd9125 05c5aff86c 스웨거 추가, 클래스 분리 1 year ago
lkd9125 3e03e57101 파일 다운로드 추가 1 year ago
지대한 a333551eff LAANC 기준 바뀜에 따른 처리 1 year ago
lkd9125 a2601eed60 Merge commit '3f9d486c588f239bb513de4bd338b93c7ebe386b' into feature/lannc/pdf-download 1 year ago
lkd9125 3f9d486c58 파일경로 추가 1 year ago
lkd9125 412720800b 패키지 변경 1 year ago
lkd9125 4207cc4071 Merge commit '946945e86ba7ef82edaade24dc518b47c6a74531' into feature/lannc/pdf-download 1 year ago
lkd9125 946945e86b Merge commit 'd060491c6156927fe8018de0950251800bc3b3a4' into feature/lannc/pdf-create 1 year ago
lkd9125 8f3055561a 서비스 분리 1 year ago
qkr7828(박재우) d060491c61 컬럼 형식 수정 1 year ago
lkd9125 0adb107151 Merge commit '0c1111c6575d0291b7d0e43e49255a4b6866afeb' into feature/lannc/pdf-create 1 year ago
lkd9125 ed383f6098 주석 해제 1 year ago
lkd9125 92be0cbafa 패키지 편경 1 year ago
lkd9125 9a00161ce6 다운로드 틀 추가 1 year ago
지대한 0c1111c657 LAANC 임시 코드 및 비행계획서 등록/수정 1 year ago
lkd9125 52857d45a3 URL 오타 수정 1 year ago
lkd9125 bcd3de7cf9 Merge commit 'f298886491cc56a93da8678a73d0f3ec9795a547' into feature/lannc/pdf-download 1 year ago
lkd9125 f298886491 코드 정리 1 year ago
lkd9125 651da27170 Merge commit 'c358419a2922a26d10a16daf8b129c170323790d' into feature/lannc/pdf-create 1 year ago
lkd9125 442319035e 오류수정 1 year ago
lkd9125 1832faf12e VO추가 , 폴더경로추가 1 year ago
지대한 6724b4f49a 공역 유틸 생성 - singleton pattern 1 year ago
lkd9125 30a9f2dd2f DB Table Insert추가 1 year ago
qkr7828(박재우) c358419a29 드론관제 - 비행 종료된 드론에 대한 정보 제공 기능 추가 1 year ago
lkd9125 57aac511d8 PDF CSS 적용 1 year ago
lkd9125 55a84cb7b9 Template HTML -> Pdf변환 1 year ago
지대한 fcced5261c . 1 year ago
지대한 c88b96faf5 Merge remote-tracking branch 'origin/develop' into develop 1 year ago
지대한 339cadfe65 비행계획서 등록 반환 객체 변경 1 year ago
lkd9125 23b43acc60 Merge commit '1bbb9d4b0d73686083b2e76f3cd432aa185012c7' into feature/lannc/pdf-create 1 year ago
지대한 1bbb9d4b0d Merge pull request 'feature/main/plan-allow-statistics' (#2) from feature/main/plan-allow-statistics into develop 1 year ago
lkd9125 c129b50416 ComFileBas Entity 추가, Repository추가 1 year ago
lkd9125 efc3052646 Merge commit '4f9de497e6bd1f4c06fd75a4d9d8d0f53f230443' into feature/main/plan-allow-statistics 1 year ago
lkd9125 56b38cef4e 로그파일 삭제 1 year ago
lkd9125 01280c335e 승인일시 쿼리 추가, 파라미터명 및 URL 변경 1 year ago
lkd9125 4462ee2470 비행계획서 Entity 승인일시 컬럼추가 1 year ago
lkd9125 4f9de497e6 로그 삭제 1 year ago
lkd9125 07016b5591 Merge commit '03c6c9071504e89244d71207dcdb96f7ef710ee6' into feature/main/plan-allow-statistics 1 year ago
지대한 03c6c90715 Merge pull request 'feature/main/date-statistics' (#1) from feature/main/date-statistics into develop 1 year ago
lkd9125 cc5d154928 롤백 1 year ago
lkd9125 902d39df2b URL 변경 /stcs/flight/date/{type} 로 변경 1 year ago
lkd9125 8d2d097438 URL /kac 제거 1 year ago
lkd9125 ce24478c6a 파라미터명 변경 1 year ago
lkd9125 37d996b3cf URL 변경 1 year ago
lkd9125 631755b5ef Merge commit '4a3756fc6cd2d768545453359dee7c1768d2fa8c' into feature/main/date-statistics 1 year ago
lkd9125 b5198c37fa Merge commit '3ae1f4e7c60047303bf013108138b866559c9dbf' into feature/main/date-statistics 1 year ago
lkd9125 3ae1f4e7c6 연,월,일 별 통계조회을 위한 URL추가 1 year ago
지대한 4a3756fc6c 전화번호, 이메일 복호화 1 year ago
지대한 9426e71fe4 jackson 라이브러리 충돌 1 year ago
지대한 f559a34b45 로그인시 기본정보 추가 1 year ago
지대한 269d056441 kac 전용 패키지 삭제 - 기존 프로세스 사용 1 year ago
지대한 1e4baae8f8 common 라이브러리 추가 1 year ago
lkd9125 76af7ac8af Merge commit '0ae4b21f91cfeb6786416efbc07c6907acfe5059' into feature/main/date-statistics 1 year ago
lkd9125 0ae4b21f91 연단위 조건 수정 1 year ago
lkd9125 318e03121f 비행실적 통계 API 추가 1 year ago
lkd9125 468a00aff3 Merge commit 'e6d85130db9ad5b4c50209d8cd60314b7b47fd47' into feature/main/plan-allow-statistics 1 year ago
lkd9125 e6d85130db 주석 및 코드정리 1 year ago
lkd9125 4323f77762 연,월,일 통계 API 추가 1 year ago
lkd9125 60e2d42eaf Get요청 시 Instant 파라미터 변환코드 주석 해제 1 year ago
지대한 d8673a2d3d DB 추가 필드에 대한 비행계획서 등록/수정/조회/상세조회 모델 변경 1 year ago
지대한 24fa9841e2 DB 추가 필드에 대한 비행계획서 등록/수정/조회/상세조회 모델 변경 1 year ago
지대한 82c7f168fd entity 수정 및 controller 직렬화/역직렬화 1 year ago
lkd9125 843b29613a Merge commit '067cacdc3edfd01e05b8d52108d55b41902600ee' into develop 1 year ago
lkd9125 067cacdc3e Merge commit '3a2a2f5d7cbe8eca946a16fd22a00936e232d632' into feature/repactoring/date_to_instant 1 year ago
lkd9125 4af4af42f7 Socket, WebSocket Instant 변경추가 1 year ago
lkd9125 b032fdefdd PavServer instant객체 추가 변경 1 year ago
지대한 3a2a2f5d7c 추가 필드 및 date to instant 변경 1 year ago
지대한 c1b51eb8f7 Merge remote-tracking branch 'origin/feature/repactoring/date_to_instant' into develop 1 year ago
lkd9125 aadf2b9f4d Merge commit '5e3474cc305e7f3e796f1f01648bd788e7d08265' into feature/repactoring/date_to_instant 1 year ago
lkd9125 743e233488 QueryDSL-SQL라이브러리 추가 1 year ago
lkd9125 d0af58023c 비행계획서 관련 부분 Instnat 오류 수정 1 year ago
lkd9125 29bf17be1d Instant 타입 파라미터 컨버터 추가, 로그인 정보 조회 시 회원이름 암호화 해제 1 year ago
lkd9125 e9b968d8ba Instant Converting 추가 1 year ago
lkd9125 32234211ad JPA 관련 Instant타입 어노테이션 변경, 컨버터 작업 준비 1 year ago
lkd9125 6d850d3fdf PavServer -> Date 객체 Instant로 1차 변경 1 year ago
  1. 12
      pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java
  2. 11
      pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrPswdCheckRQ.java
  3. 3
      pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrRqModel.java
  4. 12
      pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java
  5. 2
      pav-server/src/main/java/com/palnet/biz/api/anls/smlt/service/AnlsSmltService.java
  6. 44
      pav-server/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java
  7. 17
      pav-server/src/main/java/com/palnet/biz/api/bas/dron/model/BasIdntfUpdateModel.java
  8. 51
      pav-server/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java
  9. 23
      pav-server/src/main/java/com/palnet/biz/api/comn/coordinate/controller/ComnCoordinateController.java
  10. 22
      pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/service/ComnSunrisesetService.java
  11. 1
      pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java
  12. 30
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetBasRepository.java
  13. 42
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java
  14. 3
      pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java
  15. 10
      pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java
  16. 21
      pav-server/src/main/java/com/palnet/biz/scheduler/external/SunRiseSetScheduler.java
  17. 225
      pav-server/src/main/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerService.java
  18. 19
      pav-server/src/main/java/com/palnet/comn/utils/DmsUtils.java
  19. 130
      pav-server/src/main/java/com/palnet/comn/utils/SunRiseUtils.java
  20. 15
      pav-socket/src/main/java/com/palnet/server/command/SocketCommand.java

12
pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/controller/AcntCstmrController.java

@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.palnet.biz.api.acnt.cstmr.model.*;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@ -16,11 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrEmModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrPwModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRqModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRsModel;
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmerRlModel;
import com.palnet.biz.api.acnt.cstmr.service.AcntCstmrService;
import com.palnet.biz.api.comn.response.BasicResponse;
import com.palnet.biz.api.comn.response.ErrorResponse;
@ -159,15 +155,15 @@ public class AcntCstmrController {
/**
* 회원 기존 패스워드 확인,
* userPswd 값에 있는 회원 암호가 맞는지 확인합니다.
* @param userPswdMap
* @param rq
* @return
*/
@PostMapping(value = "/profile/pwcheck")
@Operation(summary = "기존 회원의 패스워드 확인", description = " jwt토큰에 등록된 유저정보와 패스워드가 일치하는지 확인합니다. 입력 예시 -> userPswd : test1234 ")
public ResponseEntity<? extends BasicResponse> extendpsw(@Parameter(name="userPswd", description = "유저 비밀번호", in = ParameterIn.QUERY, example = "test1234") String userPswd){
public ResponseEntity<? extends BasicResponse> extendpsw(@RequestBody AcntCstmrPswdCheckRQ rq){
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
boolean result = service.extendpsw(userPswd); // 기존 암호가 맞는지 확인하는 기능.
boolean result = service.extendpsw(rq); // 기존 암호가 맞는지 확인하는 기능.
resultMap.put("result", result);
} catch (CustomException e) {

11
pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrPswdCheckRQ.java

@ -0,0 +1,11 @@
package com.palnet.biz.api.acnt.cstmr.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class AcntCstmrPswdCheckRQ {
@Schema(description = "유저의 비밀번호", example = "test1234")
private String userPswd;
}

3
pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrRqModel.java

@ -71,6 +71,9 @@ public class AcntCstmrRqModel{
@Schema(hidden = true)
private String trmnlId;
@Schema(description = "권한코드(부서)" , example = "KAC")
private String cptAuthCode;
}

12
pav-server/src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java

@ -5,18 +5,13 @@ import java.util.List;
import javax.persistence.EntityManagerFactory;
import com.palnet.biz.api.acnt.cstmr.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrEmModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrPwModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRqModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRsModel;
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmerRlModel;
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmrTermsModel;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.jpa.entity.PtyCstmrBas;
@ -152,6 +147,7 @@ public class AcntCstmrService {
basEntity.setJoinDt(Instant.now() );
basEntity.setJoinIp(HttpUtils.getRequestIp());
basEntity.setTrmnlId(rq.getTrmnlId());
basEntity.setCptAuthCode(rq.getCptAuthCode() == null ? "KAC": rq.getCptAuthCode());
return ptyCstmrBasRepository.save(basEntity);
@ -259,8 +255,10 @@ public class AcntCstmrService {
* @param userPswd
* @return
*/
public boolean extendpsw(String userPswd){
public boolean extendpsw(AcntCstmrPswdCheckRQ rq){
boolean result = false;
String userPswd = rq.getUserPswd();
// 1. 토큰 유저 정보 불러오기
Integer userId = jwtTokenUtil.getCstmrSnoByToken();

2
pav-server/src/main/java/com/palnet/biz/api/anls/smlt/service/AnlsSmltService.java

@ -133,7 +133,7 @@ public class AnlsSmltService {
List<AnlsHstryDetailModel> resultList = query.listCntrlHstry(id);
//정렬 순서 뒤집기 처리
Collections.reverse(resultList);
// Collections.reverse(resultList);
return resultList;
}

44
pav-server/src/main/java/com/palnet/biz/api/bas/dron/controller/BasDronController.java

@ -84,8 +84,8 @@ public class BasDronController {
*/
@GetMapping(value = "/idntf/list/{id}")
@Operation(summary = "드론정보 조회", description = "드론[기체]일련번호로 식별장치를 조회합니다.")
public ResponseEntity<? extends BasicResponse> mylist(@Parameter(name="id", description = "기체일련번호", in = ParameterIn.PATH, example = "6") @PathVariable Integer id) {
List<BasIdntfModel> result = null;
public ResponseEntity<? extends BasicResponse> mylist(@Parameter(name="id", description = "기체일련번호", in = ParameterIn.PATH, example = "1") @PathVariable Integer id) {
BasIdntfModel result = null;
// 기체일련번호확인[id] 입력값 검증처리
if(StringUtils.isEmpty(id)) {
@ -111,7 +111,7 @@ public class BasDronController {
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<List>(result));
return ResponseEntity.ok().body(new SuccessResponse<>(result));
}
@ -335,6 +335,44 @@ public class BasDronController {
}
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
}
/**
* 식별장치 수정
* @param id
* @return
*/
@PutMapping(value = "/idntf/update/{id}")
@Operation(summary = "드론식별장치 정보 수정", description = "드론[기체]식별장치 정보를 수정합니다. 실제로 존재하는 기체번호(idntfNum)의 소유자명과 핸드폰 번호를 수정합니다.")
public ResponseEntity<? extends BasicResponse> updateIdntf(@RequestBody BasIdntfUpdateModel rq) {
Map<String , Object> resultMap = new HashMap<String,Object>();
try {
// 기체일련번호확인[id] 입력값 검증처리
if(StringUtils.isEmpty(rq.getIdntfNum())) {
// 검증통과하지 못할 시 서버에서 "의도적인" 에러 반환
return ResponseEntity.status(HttpStatus.OK) // "의도적인" 에러 반환코드
.body(new ErrorResponse(RSErrorCode.ER_PARAM));
}
boolean result = service.updateIdntf(rq); // 드론정보 수정하는 기능.
resultMap.put("result", result);
} catch (Exception e) {
/**
* try{
...
}
* try 영역 코드들중 문제가 생기면 오는 .
* log.error 로그로 원인 파악과 함께 API를 호출한 곳에 서버에러 내려줌
*/
log.error("IGNORE : {}", e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new ErrorResponse("Server Error", "-1"));
}
return ResponseEntity.ok().body(new SuccessResponse<Map>(resultMap));
}
/**

17
pav-server/src/main/java/com/palnet/biz/api/bas/dron/model/BasIdntfUpdateModel.java

@ -0,0 +1,17 @@
package com.palnet.biz.api.bas.dron.model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class BasIdntfUpdateModel {
@Schema(description = "기체 식별번호", example = "PA0001")
private String idntfNum;
@Schema(description = "변경할 소유자명", example = "수정소유자명")
private String ownerNm;
@Schema(description = "변경할 핸드폰 번호", example = "01036907198")
private String hpno;
}

51
pav-server/src/main/java/com/palnet/biz/api/bas/dron/service/BasDronService.java

@ -1,6 +1,8 @@
package com.palnet.biz.api.bas.dron.service;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Optional;
@ -18,6 +20,7 @@ import com.palnet.biz.api.bas.dron.model.BasDronModel;
import com.palnet.biz.api.bas.dron.model.BasDronRqModel;
import com.palnet.biz.api.bas.dron.model.BasIdntfModel;
import com.palnet.biz.api.bas.dron.model.BasIdntfRqModel;
import com.palnet.biz.api.bas.dron.model.BasIdntfUpdateModel;
import com.palnet.biz.api.comn.model.ComnPagingRs;
import com.palnet.biz.jpa.entity.ComArcrftBas;
import com.palnet.biz.jpa.entity.ComIdntfBas;
@ -81,17 +84,17 @@ public class BasDronService {
* @param arcrftSno
* @return
*/
public List<BasIdntfModel> listIdntf(int arcrftSno){
public BasIdntfModel listIdntf(int arcrftSno){
List<BasIdntfModel> resultList = query.idntfList(arcrftSno);
BasIdntfModel result = query.idntfList(arcrftSno);
for(BasIdntfModel model : resultList){
if(model.getHpno() != null && !model.getHpno().isEmpty()){
model.setHpno(EncryptUtils.decrypt(model.getHpno()));
if(result != null) {
if(result.getHpno() != null && !result.getHpno().isEmpty()){
result.setHpno(EncryptUtils.decrypt(result.getHpno()));
}
}
return resultList;
return result;
}
/**
@ -209,6 +212,42 @@ public class BasDronService {
}
/**
* 드론정보 수정하는 기능.
* @param idntfNum
* @return
*/
public boolean updateIdntf(BasIdntfUpdateModel rq) {
Optional<ComIdntfBas> optional = comIdntBasRepository.findById(rq.getIdntfNum());
if (!optional.isPresent()) {
throw new CustomException(ErrorCode.DATA_NOTFIND);
}
String hpno = "";
ComIdntfBas entity = optional.get();
if(rq.getHpno() != null && rq.getHpno() != "") {
hpno = EncryptUtils.encrypt(rq.getHpno());
entity.setHpno(hpno);
}
if(rq.getOwnerNm() != null && rq.getOwnerNm() != "") {
entity.setOwnerNm(rq.getOwnerNm());
}
ZoneId koreaZoneId = ZoneId.of("Asia/Seoul");
ZonedDateTime koreaTime = ZonedDateTime.ofInstant(Instant.now(), koreaZoneId);
entity.setUpdateDt(koreaTime.toInstant());
comIdntBasRepository.save(entity);
return true;
}
/**
* 드론정보 삭제하는 기능.
* @param idntfNum

23
pav-server/src/main/java/com/palnet/biz/api/comn/coordinate/controller/ComnCoordinateController.java

@ -1,14 +1,5 @@
package com.palnet.biz.api.comn.coordinate.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.palnet.biz.api.comn.coordinate.model.CompotentAuthorityRQ;
import com.palnet.biz.api.comn.coordinate.model.CompotentAuthorityRS;
import com.palnet.biz.api.comn.coordinate.service.ComnCoordinateService;
@ -16,11 +7,18 @@ import com.palnet.biz.api.comn.response.BasicResponse;
import com.palnet.biz.api.comn.response.ErrorResponse;
import com.palnet.biz.api.comn.response.SuccessResponse;
import com.palnet.comn.exception.CustomException;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequiredArgsConstructor
@ -36,9 +34,8 @@ public class ComnCoordinateController {
* @param rq
* @return
*/
@Operation(summary = "좌표로 관할 기관청 가져오기", description = "좌표로 관할 기관청 가져오기")
@GetMapping("/comptent-authority")
@ApiOperation(value = "좌표로 관할 기관청 가져오기")
@Tag(name = "공통 API", description = "공통 API")
public ResponseEntity<? extends BasicResponse> getCompetentAuthority(CompotentAuthorityRQ rq){
CompotentAuthorityRS result = new CompotentAuthorityRS();

22
pav-server/src/main/java/com/palnet/biz/api/comn/sunriseset/service/ComnSunrisesetService.java

@ -3,6 +3,8 @@ package com.palnet.biz.api.comn.sunriseset.service;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetCoordRq;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRq;
import com.palnet.biz.api.comn.sunriseset.model.ComnSunrisesetRs;
import com.palnet.biz.jpa.entity.ComRiseSetBas;
import com.palnet.biz.jpa.repository.com.ComRiseSetBasRepository;
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
@ -10,6 +12,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
@ -28,6 +32,7 @@ import java.util.List;
@Service
public class ComnSunrisesetService {
private final ComRiseSetBasRepository comRiseSetBasRepository;
private final ComRiseSetQueryRepository comRiseSetQueryRepository;
@ -37,8 +42,9 @@ public class ComnSunrisesetService {
* @return
*/
public List<ComnSunrisesetRs> getSunRiseSetList(ComnSunrisesetRq rq) {
return comRiseSetQueryRepository.findAllBySearchTransform(rq);
List<ComRiseSetBas> list = comRiseSetBasRepository.findByLocStDateAndLocEndDateNearLocation(rq.getLocStDate(), rq.getLocEndDate(), rq.getLocation());
return ComnSunrisesetMapper.MAPPER.toRs(list);
}
/**
@ -58,6 +64,18 @@ public class ComnSunrisesetService {
*/
public List<ComnSunrisesetRs> getSunRiseSetByCoord(ComnSunrisesetCoordRq rq) {
if(rq == null || !rq.hasCoord()) throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
return comRiseSetQueryRepository.findAllBySearchCoordTransform(rq);
LocalDate stDate = LocalDate.now();
LocalDate endDate = stDate.plusMonths(6);
String location = comRiseSetQueryRepository.findLocationByGeo(rq);
String stDateStr = stDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String endDateStr = endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
List<ComRiseSetBas> list = comRiseSetBasRepository.findByLocStDateAndLocEndDateNearLocation(stDateStr, endDateStr, location);
return ComnSunrisesetMapper.MAPPER.toRs(list);
}
}

1
pav-server/src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

@ -14,6 +14,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.json.simple.JSONObject;
import org.json.simple.parser.ParseException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;

30
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetBasRepository.java

@ -26,4 +26,34 @@ public interface ComRiseSetBasRepository extends JpaRepository<ComRiseSetBas, Co
@Query(value = "SELECT R FROM COM_RISE_SET_BAS R WHERE LOC_DATE >= :locStDate AND LOC_DATE <= :locEndDate", nativeQuery = true)
List<ComRiseSetBas> findByLocStDateAndLocEndDate(@Param("locStDate") String locStDate, @Param("locEndDate") String locEndDate);
/**
* RQ로 받은 location[지역] RQ로 받은 일자별로 가장 가까운 도시 SELECT함
* SELECT
* NEAR.*
* FROM
* (
* SELECT
* *,
* CAST(
* ST_DISTANCE_SPHERE(
* POINT(LON, LAT),
* POINT(
* (SELECT DISTINCT LON FROM COM_RISE_SET_BAS WHERE LOCATION = :location),
* (SELECT DISTINCT LAT FROM COM_RISE_SET_BAS WHERE LOCATION = :location)
* )
* ) AS SIGNED
* ) AS DIST
* FROM COM_RISE_SET_BAS
* WHERE LOC_DATE BETWEEN :locStDate AND :locEndDate
* ORDER BY LOC_DATE ASC , DIST ASC )
* AS NEAR
* GROUP BY NEAR.LOC_DATE
* @param locStDate
* @param locEndDate
* @param location
* @return
*/
@Query(value = "SELECT NEAR.* FROM ( SELECT *, CAST( ST_DISTANCE_SPHERE( POINT(LON, LAT), POINT( (SELECT DISTINCT LON FROM COM_RISE_SET_BAS WHERE LOCATION = :location), (SELECT DISTINCT LAT FROM COM_RISE_SET_BAS WHERE LOCATION = :location) ) ) AS SIGNED ) AS DIST FROM COM_RISE_SET_BAS WHERE LOC_DATE BETWEEN :locStDate AND :locEndDate ORDER BY LOC_DATE ASC , DIST ASC ) AS NEAR GROUP BY NEAR.LOC_DATE", nativeQuery = true)
List<ComRiseSetBas> findByLocStDateAndLocEndDateNearLocation(@Param("locStDate") String locStDate, @Param("locEndDate") String locEndDate, @Param("location") String location);
}

42
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java

@ -15,6 +15,7 @@ import org.springframework.stereotype.Repository;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
@ -34,6 +35,19 @@ import java.util.List;
public class ComRiseSetQueryRepository {
private final JPAQueryFactory query;
public List<String> findUnDuplicatoinLocationByLocDate(String locDate){
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
List<String> result = query
.selectDistinct(bas.id.location)
.from(bas)
.where(bas.id.location.eq(locDate))
.fetch();
return result;
}
public List<ComRiseSetBas> findAllBySearch(ComnSunrisesetRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
@ -249,4 +263,32 @@ public class ComRiseSetQueryRepository {
.fetch();
return rs;
}
public String findLocationByGeo(ComnSunrisesetCoordRq rq){
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
BooleanBuilder builder = new BooleanBuilder();
LocalDate stDate = LocalDate.now();
LocalDate endDate = stDate.plusMonths(6);
String stDateStr = stDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String endDateStr = endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
builder.and(bas.id.locDate.goe(stDateStr));
builder.and(bas.id.locDate.loe(endDateStr));
return query.select(bas.id.location)
.from(bas)
.where(builder)
.groupBy(bas.id.location)
.orderBy(Expressions.stringTemplate("ST_Distance_Sphere({0}, {1})",
Expressions.stringTemplate("POINT({0}, {1})",
rq.getLon(),
rq.getLat()
),
Expressions.stringTemplate("POINT({0}, {1})",
bas.lon,
bas.lat
)
).asc())
.fetchFirst();
}
}

3
pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

@ -1361,8 +1361,7 @@ public class CtrCntrlQueryRepository{
.from(qCntrlBasEntity)
.leftJoin(qCtrCntrHstry)
.on(qCntrlBasEntity.cntrlId.eq(qCtrCntrHstry.cntrlId))
.where(builder)
.orderBy(qCtrCntrHstry.srvrRcvDt.asc())
.where(builder) .orderBy(qCtrCntrHstry.hstrySno.asc())
.fetch();
return result;

10
pav-server/src/main/java/com/palnet/biz/jpa/repository/pty/PtyDronQueryRepository.java

@ -1,6 +1,7 @@
package com.palnet.biz.jpa.repository.pty;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@ -215,7 +216,7 @@ public class PtyDronQueryRepository{
* @param arcrftSno
* @return
*/
public List<BasIdntfModel> idntfList(int arcrftSno){
public BasIdntfModel idntfList(int arcrftSno){
QComIdntfBas idnt = QComIdntfBas.comIdntfBas;
QComArcrftBas arcrft = QComArcrftBas.comArcrftBas;
@ -243,7 +244,8 @@ public class PtyDronQueryRepository{
* WHERE CIB.ARCRFT_SNO = #{arcrftSno}
* ORDER BY CIB.CREATE_DT ASC
*/
List<BasIdntfModel> result =
BasIdntfModel result =
query.select(Projections.bean(BasIdntfModel.class ,
idnt.arcrftSno,
@ -260,7 +262,9 @@ public class PtyDronQueryRepository{
.on(idnt.arcrftSno.eq(arcrft.arcrftSno))
.where(builder)
.orderBy(idnt.createDt.asc())
.fetch();
.fetchFirst();
return result;
}

21
pav-server/src/main/java/com/palnet/biz/scheduler/external/SunRiseSetScheduler.java vendored

@ -0,0 +1,21 @@
package com.palnet.biz.scheduler.external;
import com.palnet.biz.scheduler.external.service.SunRiseSchedulerService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
@Profile({"dev", "prod"})
public class SunRiseSetScheduler {
private final SunRiseSchedulerService sunRiseSchedulerService;
@Scheduled(cron = "0 0 2 * * *") // 매일 새벽 2시
public void run(){
sunRiseSchedulerService.sunsetSchedule();
}
}

225
pav-server/src/main/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerService.java vendored

@ -0,0 +1,225 @@
package com.palnet.biz.scheduler.external.service;
import com.palnet.biz.api.external.model.SunRiseSetRs;
import com.palnet.biz.api.external.model.SunRiseSetXmlRs;
import com.palnet.biz.api.external.service.SunRiseSetMapper;
import com.palnet.biz.jpa.entity.ComRiseSetBas;
import com.palnet.biz.jpa.entity.ComRiseSetBasPK;
import com.palnet.biz.jpa.repository.com.ComRiseSetBasRepository;
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.util.UriComponentsBuilder;
import java.lang.reflect.Field;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@Service
@Slf4j
@RequiredArgsConstructor
public class SunRiseSchedulerService {
private final ComRiseSetQueryRepository comRiseSetQueryRepository;
private final ComRiseSetBasRepository comRiseSetBasRepository;
@Value("${external.sunriseset.url}")
private String SUN_HOST;
@Value("${external.sunriseset.key}")
private String SUN_KEY;
private final String AREA_RISE_SEET_INFO_URL = "/getAreaRiseSetInfo";
private static final String[][][] location = {
{
{"백령도", "연평도", "덕적도", "강화", "격렬비도", "격렬비도", "김포", "인천", "부천", "고양", "시흥", "태안", "광명"},
{"연세KVN", "안산", "서산", "서울", "의정부", "화성", "양주", "군포", "동두천", "안양", "연천", "과천", "당진"},
{"의왕", "구리", "포천", "수원", "성남", "남양주", "하남", "오산", "파주", "철원", "경기광주", "용인", "평택"},
{"가평", "양평", "이천", "화천", "춘천", "홍천", "양구", "인제", "홍천군서석면", "인제군기린면", "강원고성", "속초", "양양"}
},
{
{"어청도", "보령", "서천", "위도", "군산", "홍성", "청양", "부여", "익산", "예산", "논산", "공주", "계룡"},
{"아산", "세종", "천안", "대덕전파천문대", "대전", "옥천", "청주", "청주공항", "안성", "진천", "증평", "보은", "음성"},
{"괴산", "괴산군연풍면", "여주", "충주", "문경", "원주", "제천", "예천", "단양", "횡성", "소백산천문대", "영주", "영월"},
{"평창", "봉화", "정선", "홍천군내면", "춘양", "태백", "대관령", "평창KVN", "강릉", "주문진", "동해", "삼척"}
},
{
{"가거도", "흑산도", "신안", "목포", "신안군임자면", "무안", "영암", "함평", "나주", "영광", "광주", "화순", "장성"},
{"고창", "변산", "담양", "정읍", "순창", "부안", "곡성", "김제", "남원", "임실", "전주", "완주", "장수"},
{"진안", "함양", "거창", "금산", "무주", "김천시부항면", "영동", "고령", "성주", "추풍령", "김천", "달성", "칠곡"},
{"구미", "대구", "상주", "군위", "의성", "보현산천문대", "안동", "청송", "영양", "영덕", "울진", "울릉"}
},
{
{"마라도", "제주레이더", "탐라KVN", "서귀포", "제주", "성산일출", "추자도", "완도", "삼산도", "진도", "해남", "강진", "장흥"},
{"고흥", "보성", "여수", "여수공항", "순천", "승주", "광양", "남해", "하동", "구례", "사천", "통영", "고성"},
{"진주", "거제", "산청", "의령", "함안", "합천", "창원", "김해", "창녕", "부산", "밀양", "양산", "진해"},
{"기장", "청도", "경산", "울주", "울산KVN", "울산", "경주시산내면", "영천", "경주", "경주시감포읍", "포항", "독도"}
}
};
public void sunsetSchedule(){
List<String> todayLocation = this.todayLocation();
LocalDate today = LocalDate.now();
List<String> timeColumn = List.of("sunrise", "suntransit", "sunset", "moonrise", "moontransit", "moonset", "civilm", "civile", "nautm", "naute", "astm", "aste");
List<ComRiseSetBas> sunRiseSet = new ArrayList<>();
// 내일부터 약180일 데이터 INSERT
for(int i = 0; i <= 180; i ++){
today = today.plusDays(1);
String locdate = today.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
List<String> rotateLocation = getUnDuplicationLocation(todayLocation,locdate);
for(int j = 0; j < rotateLocation.size(); j ++){
String location = rotateLocation.get(j);
List<SunRiseSetRs> results = callSunRiseSet(locdate, location);
// trim 제거 및 6자리로 맞추기
results.forEach(result -> {
Class<? extends SunRiseSetRs> aClass = result.getClass();
Field[] declaredFields = aClass.getDeclaredFields();
for (Field field: declaredFields){
if(timeColumn.contains(field.getName())){
field.setAccessible(true);
try {
Object o = field.get(result);
if(o instanceof String){
String str = (String) o;
if(!str.isEmpty()) {
String trim = str.trim();
if(trim.length() <= 6 && trim.length() >= 4 && trim.matches("-?\\d+(\\.\\d+)?")) {
field.set(result, String.format("%-6s", trim).replace(' ', '0'));
} else {
field.set(result, null);
}
}
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}
ComRiseSetBasPK pk = SunRiseSetMapper.MAPPER.toEntityPk(result);
ComRiseSetBas entity = SunRiseSetMapper.MAPPER.toEntity(result);
entity.setId(pk);
sunRiseSet.add(entity);
});
}
if(i%30 == 0){
comRiseSetBasRepository.saveAll(sunRiseSet);
sunRiseSet.clear();
}
}
}
private List<String> getUnDuplicationLocation(List<String> todayLocation, String location){
List<String> dateLocation = comRiseSetQueryRepository.findUnDuplicatoinLocationByLocDate(location);
HashSet<String> set = new HashSet<>(todayLocation);
set.removeAll(dateLocation);
return new ArrayList<>(set);
}
private List<SunRiseSetRs> callSunRiseSet(String locdate, String location) {
String uriStr = UriComponentsBuilder.fromUriString(AREA_RISE_SEET_INFO_URL)
.queryParam("serviceKey", SUN_KEY)
.queryParam("locdate", locdate)
.queryParam("location", location)
.build().toUriString();
WebClient client = WebClient.builder()
.baseUrl(SUN_HOST)
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE)
.build();
ResponseEntity<SunRiseSetXmlRs> resp = client.get()
.uri(uriStr)
.retrieve()
.toEntity(SunRiseSetXmlRs.class)
.block();
log.debug(">>> resp : {}", resp);
List<SunRiseSetRs> items = resp.getBody().getBody().getItems();
return items;
}
private List<String> todayLocation (){
int count = this.init();
int changeCount = this.arraySelect(count);
List<String> todayLocation = new ArrayList<>();
for(int i = 0; i < 4; i ++){
if(changeCount == 4) changeCount = 0;
String[] arr = this.location[i][changeCount];
todayLocation.addAll(Arrays.asList(arr));
changeCount ++;
}
// 중복제거
HashSet<String> set = new HashSet<>(todayLocation);
return new ArrayList<>(set);
}
private int arraySelect(int count){
int result;
switch (count){
case 1 :
result = 0;
break;
case 2 :
result = 1;
break;
case 3 :
result= 2;
break;
case 4 :
result = 3;
break;
default:
throw new CustomException(ErrorCode.NON_VALID_PARAMETER);
}
return result;
}
private int init(){
int day = LocalDate.now().getDayOfMonth();
return (day % 4) + 1;
}
}

19
pav-server/src/main/java/com/palnet/comn/utils/DmsUtils.java

@ -100,18 +100,17 @@ public class DmsUtils {
}
public static String convertDDtoDMS(Coordinate DD) {
double latitude = DD.x;
double longitude = DD.y;
double latitude = DD.x;
double longitude = DD.y;
char latitudeDirection = (latitude >= 0) ? 'N' : 'S';
char latitudeDirection = (latitude >= 0) ? 'N' : 'S';
char longitudeDirection = (longitude >= 0) ? 'E' : 'W';
latitude = Math.abs(latitude);
longitude = Math.abs(longitude);
int latitudeDegrees = (int) Math.round(latitude);
int longitudeDegrees = (int) Math.round(longitude);
int latitudeDegrees = (int) Math.floor(latitude);
int longitudeDegrees = (int) Math.floor(longitude);
double latitudeMinutes = (latitude - latitudeDegrees) * 60;
double longitudeMinutes = (longitude - longitudeDegrees) * 60;
@ -119,10 +118,12 @@ public class DmsUtils {
int latitudeSeconds = (int) ((latitudeMinutes - (int) latitudeMinutes) * 60);
int longitudeSeconds = (int) ((longitudeMinutes - (int) longitudeMinutes) * 60);
String result = String.format("%d° %02d′ %02d″ %c %d° %02d′ %02d″ %c\n", latitudeDegrees, (int) latitudeMinutes, latitudeSeconds, latitudeDirection, longitudeDegrees, (int) longitudeMinutes, longitudeSeconds, longitudeDirection);
String result = String.format("%d° %02d′ %02d″ %c, %d° %02d′ %02d″ %c",
latitudeDegrees, (int) latitudeMinutes, latitudeSeconds, latitudeDirection,
longitudeDegrees, (int) longitudeMinutes, longitudeSeconds, longitudeDirection);
return result;
}
return result;
}
public static String convertDMMtoDD(String DMM) {

130
pav-server/src/main/java/com/palnet/comn/utils/SunRiseUtils.java

@ -0,0 +1,130 @@
package com.palnet.comn.utils;
public class SunRiseUtils {
public static String calculateSunriseSunset(int year, int month, int day, double longitude, double lati) {
int sunriseH, sunrisem, sunsetH, sunsetm;
double latitude = deg2rad(lati);
double zenith = deg2rad(90.8333); // 일출일몰 계산, 시민박명:96.0, 항해박명:102.0, 천문박명:108.0
double timezone = 9.0; // KST +9H
// 1. first calculate the day of the year
int N = (int) (floor(275 * month / 9) - (floor((month + 9) / 12) * (1 + floor((year - 4 * floor(year / 4) + 2) / 3))) + day - 30);
// 2. convert the longitude to hour value and calculate an approximate time
double lhour = longitude / 15;
double tr = N + ((6 - lhour) / 24.0); // sunrise
double ts = N + ((18 - lhour) / 24.0); // sunrise
// 3. calculate the Sun's mean anomaly
double Mr = (0.9856 * tr) - 3.289;
double Ms = (0.9856 * ts) - 3.289;
// 4. calculate the Sun's true longitude
double Lr = Mr + (1.916 * sin(deg2rad(Mr))) + (0.020 * sin(deg2rad(2 * Mr))) + 282.634;
double Ls = Ms + (1.916 * sin(deg2rad(Ms))) + (0.020 * sin(deg2rad(2 * Ms))) + 282.634;
Lr = (Lr >= 0) ? fmod(Lr, 360) : fmod(Lr, 360) + 360.0;
Ls = (Ls >= 0) ? fmod(Ls, 360) : fmod(Ls, 360) + 360.0;
double lr = deg2rad(Lr);
double ls = deg2rad(Ls);
// 5a. calculate the Sun's right ascension
double RAr = rad2deg(atan(0.91764 * tan(lr)));
double RAs = rad2deg(atan(0.91764 * tan(ls)));
RAr = (RAr >= 0) ? fmod(RAr, 360) : fmod(RAr, 360) + 360.0;
RAs = (RAs >= 0) ? fmod(RAs, 360) : fmod(RAs, 360) + 360.0;
// 5b. right ascension value needs to be in the same quadrant as L
RAr += (floor(Lr / 90.0) * 90.0) - (floor(RAr / 90.0) * 90.0);
RAs += (floor(Ls / 90.0) * 90.0) - (floor(RAs / 90.0) * 90.0);
// 5c. right ascension value needs to be converted into hours
RAr /= 15;
RAs /= 15;
// 6. calculate the Sun's declination
double sindecr = 0.39782 * sin(lr);
double sindecs = 0.39782 * sin(ls);
double cosdecr = cos(Math.asin(sindecr));
double cosdecs = cos(Math.asin(sindecs));
// 7a. calculate the Sun's local hour angle
double cosHr = (cos(zenith) - (sindecr * sin(latitude))) / (cosdecr * cos(latitude));
double cosHs = (cos(zenith) - (sindecs * sin(latitude))) / (cosdecs * cos(latitude));
// 7b. finish calculating H and convert into hours
double Hr = 360.0 - rad2deg(acos(cosHr));
double Hs = rad2deg(acos(cosHs));
Hr /= 15;
Hs /= 15;
// 8. calculate local mean time of rising/setting
double Tr = Hr + RAr - (0.06571 * tr) - 6.622;
double Ts = Hs + RAs - (0.06571 * ts) - 6.622;
// 9. adjust back to UTC
double UTr = Tr - lhour;
double UTs = Ts - lhour;
UTr = (UTr >= 0) ? fmod(UTr, 24.0) : fmod(UTr, 24.0) + 24.0;
UTs = (UTs >= 0) ? fmod(UTs, 24.0) : fmod(UTs, 24.0) + 24.0;
// 10. convert UT value to local time zone of latitude/longitude
double localTr = fmod(UTr + timezone, 24.0);
double localTs = fmod(UTs + timezone, 24.0);
// last convert localT to human time
sunriseH = (int) floor(localTr);
sunrisem = (int) ((localTr - sunriseH) * 60);
sunsetH = (int) floor(localTs);
sunsetm = (int) ((localTs - sunsetH) * 60);
StringBuilder sb = new StringBuilder();
sb.append((sunriseH < 10 ? ("0"+sunriseH) : sunriseH));
sb.append((sunrisem < 10 ? ("0"+sunrisem) : sunrisem));
sb.append("00");
sb.append(" / ");
sb.append((sunsetH < 10 ? ("0"+sunsetH) : sunsetH));
sb.append((sunsetm < 10 ? ("0"+sunsetm) : sunsetm));
sb.append("00");
return sb.toString();
}
private static double deg2rad(double degree) {
return degree * Math.PI / 180;
}
private static double rad2deg(double radian) {
return radian * 180 / Math.PI;
}
private static double sin(double value) {
return Math.sin(value);
}
private static double cos(double value) {
return Math.cos(value);
}
private static double tan(double value) {
return Math.tan(value);
}
private static double acos(double value) {
return Math.acos(value);
}
private static double atan(double value) {
return Math.atan(value);
}
private static double floor(double value) {
return Math.floor(value);
}
private static double fmod(double x, double y) {
return x % y;
}
}

15
pav-socket/src/main/java/com/palnet/server/command/SocketCommand.java

@ -164,16 +164,17 @@ public class SocketCommand {
// logger.info(">>> during time : {}::{}", model.getObjectId(),end - start);
// STEP 2. 이력 생성할 전문 전달 -> DRON의 대한 식별정보만 이력 관리
if (model.getObjectId().indexOf("PA") > -1) {
// if (model.getObjectId().indexOf("PA") > -1) {
// messageProducer.sendControlHistoryMessage(model);
try {
// try {
// taskServerService.sendData(model);
taskWbService.sendDataWebClient(model);
} catch (Exception e) {
logger.error("ERROR : {}\n{}", e.getMessage(), e.getStackTrace());
}
}
// taskWbService.sendDataWebClient(model);
// } catch (Exception e) {
// logger.error("ERROR : {}\n{}", e.getMessage(), e.getStackTrace());
// }
// }
taskWbService.sendDataWebClient(model);
// model.setRegDt(Instant.now());
// STEP 3. 화면에 표출할 정보 WebSocket 전달

Loading…
Cancel
Save