diff --git a/package-lock.json b/package-lock.json
index 5cbca85..e2a747d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12896,11 +12896,6 @@
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
- "lodash.orderby": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.orderby/-/lodash.orderby-4.6.0.tgz",
- "integrity": "sha1-5pfwTOXXhSL1TZM4syuBozk+TrM="
- },
"lodash.template": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
@@ -13495,11 +13490,6 @@
"resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
"integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
},
- "nanoid": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.11.tgz",
- "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA=="
- },
"nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -20676,13 +20666,11 @@
"integrity": "sha512-exyAdFLAxtuM4wNwLYrlKyPYLiJ7e0mv9tqPAd3kq+k1CiJFtznevR3yP0icv5q/y200w+lzNgi7TQn1Wrhu0w=="
},
"react-data-table-component": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-6.11.2.tgz",
- "integrity": "sha512-xoaTVTX4svgY3norL707GSUZJ5Q0FRZ1g2QY5oI5soiNtGMor9yGTXjnMq6mDmL9A4a7lmA+4xntoEEMJMcIvA==",
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.5.3.tgz",
+ "integrity": "sha512-JhatRTgThAAa1HobPaPmkNPsjLT6+fnMIdtcXRCy+0bSYN7XJnTgob9Qyi4bjHh/8tMPTHtxZCV/TKiPwRvFMA==",
"requires": {
- "deepmerge": "^4.2.2",
- "lodash.orderby": "^4.6.0",
- "shortid": "^2.2.15"
+ "deepmerge": "^4.2.2"
}
},
"react-datepicker": {
@@ -23441,14 +23429,6 @@
"smoothscroll-polyfill": "^0.4.4"
}
},
- "shortid": {
- "version": "2.2.16",
- "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.16.tgz",
- "integrity": "sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==",
- "requires": {
- "nanoid": "^2.1.0"
- }
- },
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
diff --git a/package.json b/package.json
index 9321eab..b04381f 100644
--- a/package.json
+++ b/package.json
@@ -69,7 +69,7 @@
"react-copy-to-clipboard": "5.0.2",
"react-country-flag": "2.0.1",
"react-csv": "^2.0.3",
- "react-data-table-component": "6.11.2",
+ "react-data-table-component": "^7.5.3",
"react-datepicker": "^4.2.1",
"react-dom": "17.0.1",
"react-draft-wysiwyg": "1.14.5",
diff --git a/src/components/basis/flight/schedule/FlightScheduleGrid.js b/src/components/basis/flight/schedule/FlightScheduleGrid.js
new file mode 100644
index 0000000..37db6ab
--- /dev/null
+++ b/src/components/basis/flight/schedule/FlightScheduleGrid.js
@@ -0,0 +1,203 @@
+import { useRef } from 'react';
+import { GridDatabase } from '@src/components/crud/grid/GridDatatable';
+import { Row, Col, Card } from 'reactstrap';
+import FlightScheduleRealTime from './FlightScheduleRealTime';
+import { useSelector } from 'react-redux';
+import moment from 'moment';
+import DataTable from 'react-data-table-component';
+
+const KR_TIME_DIFF = 9 * 60 * 60 * 1000;
+
+/**
+ * 비행 전 : B
+ * 비행 중 : F
+ * 비행 완료 : S
+ */
+function FlightScheduleGrid() {
+ const timeRef = useRef(null);
+
+ const { scheduleList } = useSelector(state => state.flightState);
+ // const [list, setList] = useState(
+ // new Array(10).fill({ groupNm: 'test', groupNm: 'test' })
+ // );
+
+ const fillZero = (width, str) => {
+ return str.length >= width
+ ? str
+ : new Array(width - str.length + 1).join('0') + str; //남는 길이만큼 0으로 채움
+ };
+
+ const columns = [
+ {
+ name: '그룹 명',
+ selector: 'groupNm',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return row.groupNm;
+ }
+ // conditionalCellStyles: [
+ // {
+ // when: row => {
+ // return true;
+ // },
+ // style: row => {
+ // let color;
+ // if (row.statusCd === 's') {
+ // color = '#82868B';
+ // }
+
+ // return {
+ // backgroundColor: '#82868B',
+ // color: 'white'
+ // };
+ // }
+ // }
+ // ]
+ },
+ {
+ name: '기체 소유자',
+ selector: 'ownerNm',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return row.ownerNm;
+ }
+ },
+ {
+ name: '기체 식별번호',
+ selector: 'idntfNum',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return row.idntfNum;
+ }
+ },
+ {
+ name: '출발지',
+ selector: 'startAddress',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return row.startAddress;
+ }
+ },
+ {
+ name: '비행 시작 시간',
+ selector: 'schFltStDt ',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return moment(row.schFltStDt).format('HH:mm');
+ }
+ },
+ {
+ name: '도착지',
+ selector: 'endAddress',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return row.endAddress;
+ }
+ },
+ {
+ name: '비행 종료 시간',
+ selector: 'schFltEndDt',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ return moment(row.schFltEndDt).format('HH:mm');
+ }
+ },
+ {
+ name: '총 예상 비행시간',
+ selector: 'groupNm',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ const endDate = new Date(row.schFltEndDt);
+ const startDate = new Date(row.schFltStDt);
+
+ const a = endDate - startDate;
+ let time = fillZero(
+ 2,
+ String(Math.floor((a % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)))
+ );
+ let hore = fillZero(
+ 2,
+ String(Math.floor((a % (1000 * 60 * 60)) / (1000 * 60)))
+ );
+
+ return `${time}:${hore}`;
+ }
+ },
+ {
+ name: '상태',
+ selector: 'statusCd',
+ minWidth: '150px',
+ sortable: true,
+ cell: row => {
+ switch (row.statusCd) {
+ case 'B':
+ return '비행전';
+ case 'F':
+ return '비행중';
+ default:
+ return '비행완료';
+ }
+ }
+ }
+ ];
+
+ const conditionalRowStyles = [
+ {
+ when: row => true,
+ style: {
+ backgroundColor: 'red'
+ }
+ }
+ ];
+
+ return (
+
+
+
+
+
+
+
비행운항 스케줄 목록
+
+ 검색결과 총 {scheduleList.length}건
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default FlightScheduleGrid;
diff --git a/src/components/basis/flight/schedule/FlightScheduleRealTime.js b/src/components/basis/flight/schedule/FlightScheduleRealTime.js
new file mode 100644
index 0000000..0833d65
--- /dev/null
+++ b/src/components/basis/flight/schedule/FlightScheduleRealTime.js
@@ -0,0 +1,22 @@
+import { useState, forwardRef } from 'react';
+import moment from 'moment';
+import useInterval from '@src/utility/hooks/useInterval';
+
+const KR_TIME_DIFF = 9 * 60 * 60 * 1000;
+
+const FlightScheduleRealTime = forwardRef(({}, ref) => {
+ const [currTime, setCurrTime] = useState(new Date());
+ const utc = currTime.getTime() + currTime.getTimezoneOffset() * 60 * 1000;
+ const kr_curr = new Date(utc + KR_TIME_DIFF);
+
+ useInterval(() => {
+ setCurrTime(new Date());
+ setTime(moment(new Date()).format('HH:mm:ss'));
+ }, [1000]);
+
+ const [time, setTime] = useState(moment(kr_curr).format('HH:mm:ss'));
+
+ return 현재시간 UTC : {time.toString()}
;
+});
+
+export default FlightScheduleRealTime;
diff --git a/src/components/basis/flight/schedule/FlightScheduleSearch.js b/src/components/basis/flight/schedule/FlightScheduleSearch.js
index 6ffe650..a0a6637 100644
--- a/src/components/basis/flight/schedule/FlightScheduleSearch.js
+++ b/src/components/basis/flight/schedule/FlightScheduleSearch.js
@@ -3,16 +3,32 @@ import { Row, Col, Button, Card, CardBody } from 'reactstrap';
import { Search, Calendar } from 'react-feather';
import moment from 'moment';
import Flatpickr from 'react-flatpickr';
+import { FLIGHT_SCHEDULE_LIST } from '@src/modules/basis/flight/actions/basisFlightAction';
+import { useDispatch } from 'react-redux';
+import useInterval from '@src/utility/hooks/useInterval';
function FlightScheduleSearch() {
+ const dispatch = useDispatch();
const [date, setDate] = useState(
moment().subtract('day').format('YYYY-MM-DD')
);
+ const [isSearch, setIsSearch] = useState(false);
+
+ useInterval(() => {
+ if (isSearch) {
+ dispatch(FLIGHT_SCHEDULE_LIST.request(date));
+ }
+ }, [10000]);
const handlerChangeDate = val => {
setDate(moment(val[0]).format('YYYY-MM-DD'));
};
+ const handlerSearch = () => {
+ setIsSearch(true);
+ dispatch(FLIGHT_SCHEDULE_LIST.request(date));
+ };
+
return (
@@ -22,7 +38,7 @@ function FlightScheduleSearch() {
검색조건
- {}}>
+
검색
diff --git a/src/components/crud/grid/GridDatatable.js b/src/components/crud/grid/GridDatatable.js
index e3e364a..eae6563 100644
--- a/src/components/crud/grid/GridDatatable.js
+++ b/src/components/crud/grid/GridDatatable.js
@@ -38,9 +38,9 @@ export const GridDatabase = props => {
}}
selectableRows={props.selectableRows}
selectableRowsComponent={props.selectableRowsComponent}
- onSelectedRowsChange={
- props.onSelectedRowsChange ? props.onSelectedRowsChange : null
- }
+ {...(props.onSelectedRowsChange
+ ? { onSelectedRowsChange: props.onSelectedRowsChange }
+ : {})}
/>
>
diff --git a/src/containers/basis/flight/schedule/FlightScheduleContainer.js b/src/containers/basis/flight/schedule/FlightScheduleContainer.js
index 46fb0c7..6f37834 100644
--- a/src/containers/basis/flight/schedule/FlightScheduleContainer.js
+++ b/src/containers/basis/flight/schedule/FlightScheduleContainer.js
@@ -1,10 +1,12 @@
import { CustomMainLayout } from '@src/components/layout/CustomMainLayout';
import FlightScheduleSearch from '@src/components/basis/flight/schedule/FlightScheduleSearch';
+import FlightScheduleGrid from '@src/components/basis/flight/schedule/FlightScheduleGrid';
function FlightScheduleContainer() {
return (
+
);
}
diff --git a/src/containers/basis/group/BasisGroupUsersContainer.js b/src/containers/basis/group/BasisGroupUsersContainer.js
index 4156fc2..3e5acaa 100644
--- a/src/containers/basis/group/BasisGroupUsersContainer.js
+++ b/src/containers/basis/group/BasisGroupUsersContainer.js
@@ -285,10 +285,7 @@ export const BasisGroupUsersContainer = props => {
searchParams: param
})
);
-
- console.log('볼 수 있음');
} else {
- console.log('볼 수 없다');
setInfoModal({
isOpen: true,
title: '권한 확인',
diff --git a/src/modules/basis/flight/actions/basisFlightAction.ts b/src/modules/basis/flight/actions/basisFlightAction.ts
index 1d4d406..a17c4aa 100644
--- a/src/modules/basis/flight/actions/basisFlightAction.ts
+++ b/src/modules/basis/flight/actions/basisFlightAction.ts
@@ -6,10 +6,14 @@ import {
FlightPlanArcrftDataList,
FlightPlanAreaDataList,
FlightPlanData,
- FlightPlanListRqData, FlightPlanPilotDataList, PilotSelectData, SelectGroupData, BasFlightAprovData
+ FlightPlanListRqData,
+ FlightPlanPilotDataList,
+ PilotSelectData,
+ SelectGroupData,
+ BasFlightAprovData,
+ BasFlightScheduleList
} from '../models/basisFlightModel';
-
// 공역 조회
const PUBLIC_AREA_LIST_REQUEST = 'basis/flight/public_area/LIST_REQUEST';
const PUBLIC_AREA_LIST_SUCCESS = 'basis/flight/public_area/LIST_SUCCESS';
@@ -42,17 +46,23 @@ const FLIGHT_PLAN_DELETE_SUCCESS = 'basis/flight/plan/delete/DELETE_SUCCESS';
const FLIGHT_PLAN_DELETE_FAILURE = 'basis/flight/plan/delete/DELETE_FAILURE';
// 조종사 조회
-const FLIGHT_PLAN_PILOT_LIST_REQUEST = 'basis/flight/plan/pilot_list/PILOT_LIST_REQUEST';
-const FLIGHT_PLAN_PILOT_LIST_SUCCESS = 'basis/flight/plan/pilot_list/PILOT_LIST_SUCCESS';
-const FLIGHT_PLAN_PILOT_LIST_FAILURE = 'basis/flight/plan/pilot_list/PILOT_LIST_FAILURE';
+const FLIGHT_PLAN_PILOT_LIST_REQUEST =
+ 'basis/flight/plan/pilot_list/PILOT_LIST_REQUEST';
+const FLIGHT_PLAN_PILOT_LIST_SUCCESS =
+ 'basis/flight/plan/pilot_list/PILOT_LIST_SUCCESS';
+const FLIGHT_PLAN_PILOT_LIST_FAILURE =
+ 'basis/flight/plan/pilot_list/PILOT_LIST_FAILURE';
// 조종사 선택
const FLIGHT_PLAN_PILOT_SELECT = 'basis/flight/plan/pilot_list/PILOT_SELECT';
// 기체 조회
-const FLIGHT_PLAN_ARCRFT_LIST_REQUEST = 'basis/flight/plan/arcrft_list/ARCRFT_LIST_REQUEST';
-const FLIGHT_PLAN_ARCRFT_LIST_SUCCESS = 'basis/flight/plan/arcrft_list/ARCRFT_LIST_SUCCESS';
-const FLIGHT_PLAN_ARCRFT_LIST_FAILURE = 'basis/flight/plan/arcrft_list/ARCRFT_LIST_FAILURE';
+const FLIGHT_PLAN_ARCRFT_LIST_REQUEST =
+ 'basis/flight/plan/arcrft_list/ARCRFT_LIST_REQUEST';
+const FLIGHT_PLAN_ARCRFT_LIST_SUCCESS =
+ 'basis/flight/plan/arcrft_list/ARCRFT_LIST_SUCCESS';
+const FLIGHT_PLAN_ARCRFT_LIST_FAILURE =
+ 'basis/flight/plan/arcrft_list/ARCRFT_LIST_FAILURE';
// 기체 선택
const FLIGHT_PLAN_ARCRFT_SELECT = 'basis/flight/plan/arcrft_list/ARCRFT_SELECT';
@@ -78,29 +88,47 @@ const AREA_BUFFER_LIST_SUCCESS = 'basis/flight/plan/area/BUFFER_LIST_SUCCESS';
const AREA_BUFFER_LIST_FAILURE = 'basis/flight/plan/area/BUFFER_LIST_FAILURE';
// 비행계획서 조회(승인)
-const FLIGHT_APRV_LIST_REQUEST = 'basis/flight/aprv/list/FLIGHT_APRV_LIST_REQUEST';
-const FLIGHT_APRV_LIST_SUCCESS = 'basis/flight/aprv/list/FLIGHT_APRV_LIST_SUCCESS';
-const FLIGHT_APRV_LIST_FAILURE = 'basis/flight/aprv/list/FLIGHT_APRV_LIST_FAILURE';
+const FLIGHT_APRV_LIST_REQUEST =
+ 'basis/flight/aprv/list/FLIGHT_APRV_LIST_REQUEST';
+const FLIGHT_APRV_LIST_SUCCESS =
+ 'basis/flight/aprv/list/FLIGHT_APRV_LIST_SUCCESS';
+const FLIGHT_APRV_LIST_FAILURE =
+ 'basis/flight/aprv/list/FLIGHT_APRV_LIST_FAILURE';
// 비행계획서 승인/미승인 처리
-const FLIGHT_APRV_PROC_REQUEST = 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_REQUEST';
-const FLIGHT_APRV_PROC_SUCCESS = 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_SUCCESS';
-const FLIGHT_APRV_PROC_FAILURE = 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_FAILURE';
+const FLIGHT_APRV_PROC_REQUEST =
+ 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_REQUEST';
+const FLIGHT_APRV_PROC_SUCCESS =
+ 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_SUCCESS';
+const FLIGHT_APRV_PROC_FAILURE =
+ 'basis/flight/aprv/proc/FLIGHT_APRV_PROC_FAILURE';
//지도 검색
-const FLIGHT_SEARCH_AREA_REQUEST = 'basis/flight/search/area/FLIGHT_SEARCH_AREA_REQUEST';
-const FLIGHT_SEARCH_AREA_SUCCESS = 'basis/flight/search/area/FLIGHT_SEARCH_AREA_SUCCESS';
-const FLIGHT_SEARCH_AREA_FAILURE = 'basis/flight/search/area/FLIGHT_SEARCH_AREA_FAILURE';
+const FLIGHT_SEARCH_AREA_REQUEST =
+ 'basis/flight/search/area/FLIGHT_SEARCH_AREA_REQUEST';
+const FLIGHT_SEARCH_AREA_SUCCESS =
+ 'basis/flight/search/area/FLIGHT_SEARCH_AREA_SUCCESS';
+const FLIGHT_SEARCH_AREA_FAILURE =
+ 'basis/flight/search/area/FLIGHT_SEARCH_AREA_FAILURE';
+
+// 비행운항 스케줄
+const FLIGHT_SCHEDULE_REQUEST =
+ 'basis/flight/schedule/list/FLIGHT_SCHEDULE_REQUEST';
+const FLIGHT_SCHEDULE_SUCCESS =
+ 'basis/flight/schedule/list/FLIGHT_SCHEDULE_SUCCESS';
+const FLIGHT_SCHEDULE_FAILURE =
+ 'basis/flight/schedule/list/FLIGHT_SCHEDULE_FAILURE';
+
export const SEARCH_AREA = createAsyncAction(
FLIGHT_SEARCH_AREA_REQUEST,
FLIGHT_SEARCH_AREA_SUCCESS,
FLIGHT_SEARCH_AREA_FAILURE
-)<{query: string}, string, AxiosError>();
+)<{ query: string }, string, AxiosError>();
export const PUBLIC_AREA_LIST = createAsyncAction(
- PUBLIC_AREA_LIST_REQUEST,
- PUBLIC_AREA_LIST_SUCCESS,
- PUBLIC_AREA_LIST_FAILURE
+ PUBLIC_AREA_LIST_REQUEST,
+ PUBLIC_AREA_LIST_SUCCESS,
+ PUBLIC_AREA_LIST_FAILURE
)();
// 목록
@@ -117,12 +145,14 @@ export const FLIGHT_PLAN_DETAIL = createAsyncAction(
FLIGHT_PLAN_DETAIL_FAILURE
)();
// 상세 초기화
-export const FLIGHT_PLAN_DETAIL_INIT = createAction(FLIGHT_PLAN_DETAIL_INITIAL)();
+export const FLIGHT_PLAN_DETAIL_INIT = createAction(
+ FLIGHT_PLAN_DETAIL_INITIAL
+)();
// 생성
export const FLIGHT_PLAN_CREATE = createAsyncAction(
- FLIGHT_PLAN_CREATE_REQUEST,
- FLIGHT_PLAN_CREATE_SUCCESS,
- FLIGHT_PLAN_CREATE_FAILURE
+ FLIGHT_PLAN_CREATE_REQUEST,
+ FLIGHT_PLAN_CREATE_SUCCESS,
+ FLIGHT_PLAN_CREATE_FAILURE
)();
// 수정
@@ -147,7 +177,9 @@ export const FLIGHT_PLAN_PILOT_LIST = createAsyncAction(
)();
// 조종사 선택
-export const PILOT_SELECT = createAction(FLIGHT_PLAN_PILOT_SELECT)();
+export const PILOT_SELECT = createAction(
+ FLIGHT_PLAN_PILOT_SELECT
+)();
// 기체 목록
export const FLIGHT_PLAN_ARCRFT_LIST = createAsyncAction(
@@ -157,19 +189,26 @@ export const FLIGHT_PLAN_ARCRFT_LIST = createAsyncAction(
)();
// 조종사 선택
-export const ARCRFT_SELECT = createAction(FLIGHT_PLAN_ARCRFT_SELECT)();
+export const ARCRFT_SELECT = createAction(
+ FLIGHT_PLAN_ARCRFT_SELECT
+)();
// 조종사, 기체 선택 초기화
-export const PILOT_ARCRFT_SELECT_INIT = createAction(PILOT_ARCRFT_SELECT_INITIAL)();
+export const PILOT_ARCRFT_SELECT_INIT = createAction(
+ PILOT_ARCRFT_SELECT_INITIAL
+)();
// 비행 구역 좌표 저장 (스텝2 데이터 공유)
-export const AREA_COORDINATE_LIST_SAVE = createAction(AREA_COORDINATE_LIST)();
+export const AREA_COORDINATE_LIST_SAVE =
+ createAction(AREA_COORDINATE_LIST)();
// 비행 구역 상세 저장
-export const AREA_DETAIL_LIST_SAVE = createAction(AREA_DETAIL_LIST)();
+export const AREA_DETAIL_LIST_SAVE =
+ createAction(AREA_DETAIL_LIST)();
// 비행 계획서 그룹 선택
-export const FLIGHT_PLAN_GROUP_SELECT = createAction(ROUP_SELECT)();
+export const FLIGHT_PLAN_GROUP_SELECT =
+ createAction(ROUP_SELECT)();
// 비행 구역 상세 값 초기화
export const AREA_DETAIL_INIT = createAction(AREA_DETAIL_INITIAL)();
@@ -194,29 +233,35 @@ export const FLIGHT_APRV_PROC = createAsyncAction(
FLIGHT_APRV_PROC_FAILURE
)();
+export const FLIGHT_SCHEDULE_LIST = createAsyncAction(
+ FLIGHT_SCHEDULE_REQUEST,
+ FLIGHT_SCHEDULE_SUCCESS,
+ FLIGHT_SCHEDULE_FAILURE
+)();
const actions = {
PUBLIC_AREA_LIST,
- // FLIGHT_PLAN_AREA,
- FLIGHT_PLAN_LIST,
- FLIGHT_PLAN_DETAIL,
- FLIGHT_PLAN_DETAIL_INIT,
- FLIGHT_PLAN_CREATE,
- FLIGHT_PLAN_UPDATE,
- FLIGHT_PLAN_DELETE,
- FLIGHT_PLAN_PILOT_LIST,
- FLIGHT_PLAN_ARCRFT_LIST,
- PILOT_SELECT,
- ARCRFT_SELECT,
- PILOT_ARCRFT_SELECT_INIT,
- AREA_COORDINATE_LIST_SAVE,
- AREA_DETAIL_LIST_SAVE,
- FLIGHT_PLAN_GROUP_SELECT,
- FLIGHT_PLAN_AREA_BUFFER_LIST,
- AREA_DETAIL_INIT,
- FLIGHT_APRV_LIST,
- FLIGHT_APRV_PROC,
- SEARCH_AREA
+ // FLIGHT_PLAN_AREA,
+ FLIGHT_PLAN_LIST,
+ FLIGHT_PLAN_DETAIL,
+ FLIGHT_PLAN_DETAIL_INIT,
+ FLIGHT_PLAN_CREATE,
+ FLIGHT_PLAN_UPDATE,
+ FLIGHT_PLAN_DELETE,
+ FLIGHT_PLAN_PILOT_LIST,
+ FLIGHT_PLAN_ARCRFT_LIST,
+ PILOT_SELECT,
+ ARCRFT_SELECT,
+ PILOT_ARCRFT_SELECT_INIT,
+ AREA_COORDINATE_LIST_SAVE,
+ AREA_DETAIL_LIST_SAVE,
+ FLIGHT_PLAN_GROUP_SELECT,
+ FLIGHT_PLAN_AREA_BUFFER_LIST,
+ AREA_DETAIL_INIT,
+ FLIGHT_APRV_LIST,
+ FLIGHT_APRV_PROC,
+ SEARCH_AREA,
+ FLIGHT_SCHEDULE_LIST
};
export type FlightAction = ActionType;
diff --git a/src/modules/basis/flight/apis/basisFlightApi.ts b/src/modules/basis/flight/apis/basisFlightApi.ts
index 7a97abc..edb43ce 100644
--- a/src/modules/basis/flight/apis/basisFlightApi.ts
+++ b/src/modules/basis/flight/apis/basisFlightApi.ts
@@ -8,7 +8,6 @@ import {
FlightPlanListRqData
} from '../models/basisFlightModel';
-
export const flightPlanAPI = {
area: async () => {
const res = await axios.get(`api/bas/flight/area`);
@@ -54,7 +53,7 @@ export const flightPlanAPI = {
const res = await axios.post(`api/bas/flight/plan/area/buffer`, data);
return res;
},
- aprvList: async (data: FlightPlanListRqData) => {
+ aprvList: async (data: FlightPlanListRqData) => {
const queryString = qs.stringify(data, {
addQueryPrefix: true,
arrayFormat: 'repeat'
@@ -67,8 +66,12 @@ export const flightPlanAPI = {
return res;
},
- searchArea: async(param) => {
- return await axios.get(`api/bas/flight/plan/area/search?query=${param.query}`);
+ searchArea: async param => {
+ return await axios.get(
+ `api/bas/flight/plan/area/search?query=${param.query}`
+ );
+ },
+ scheduleList: async (date: string) => {
+ return await axios.get(`api/bas/flight/schedule?searchDate=${date}`);
}
-}
-
+};
diff --git a/src/modules/basis/flight/models/basisFlightModel.ts b/src/modules/basis/flight/models/basisFlightModel.ts
index 4d8809f..38fc316 100644
--- a/src/modules/basis/flight/models/basisFlightModel.ts
+++ b/src/modules/basis/flight/models/basisFlightModel.ts
@@ -1,178 +1,195 @@
-import moment from "moment";
+import moment from 'moment';
export interface FlightState {
- publicAreaList: PublicAreaData | undefined
- flightPlanArea: FlightPlanArea | undefined
- list: [FlightPlanData] | undefined
- detail: FlightPlanData | undefined
- pilotList: FlightPlanPilotDataList | undefined
- arcrftList: FlightPlanArcrftDataList | undefined
- pilotSelect: PilotSelectData | undefined
- arcrftSelect: FlightPlanArcrftData | undefined
- areaCoordList: FlightPlanAreaData[] | undefined
- areaList: FlightPlanAreaData[] | undefined
- selectGroup: SelectGroupData | undefined
- aprvList: [FlightPlanData] | undefined
- aprvProc: any | undefined
+ publicAreaList: PublicAreaData | undefined;
+ flightPlanArea: FlightPlanArea | undefined;
+ list: [FlightPlanData] | undefined;
+ detail: FlightPlanData | undefined;
+ pilotList: FlightPlanPilotDataList | undefined;
+ arcrftList: FlightPlanArcrftDataList | undefined;
+ pilotSelect: PilotSelectData | undefined;
+ arcrftSelect: FlightPlanArcrftData | undefined;
+ areaCoordList: FlightPlanAreaData[] | undefined;
+ areaList: FlightPlanAreaData[] | undefined;
+ selectGroup: SelectGroupData | undefined;
+ aprvList: [FlightPlanData] | undefined;
+ aprvProc: any | undefined;
+ scheduleList: BasFlightScheduleList[] | [];
}
export interface SelectGroupData {
- cstmrSno: number,
- groupId: string,
- groupNm: string,
+ cstmrSno: number;
+ groupId: string;
+ groupNm: string;
}
export interface PublicAreaData {
- publicAreaList: []
+ publicAreaList: [];
}
export interface FlightPlanArea {
- address: string,
- coordinates: string,
- redius: string,
- altitude_m: string,
- altitude_ft: string,
+ address: string;
+ coordinates: string;
+ redius: string;
+ altitude_m: string;
+ altitude_ft: string;
}
export interface FlightPlanData {
- planSno?: number,
- groupId: string,
- cstmrSno: number,
- memberName: string,
- email: string,
- hpno: string,
- clncd: string,
- addr: string,
- addrDtlCn: string,
- zip: string,
- schFltStDt: string,
- schFltEndDt: string,
- fltPurpose: string,
- aprvlYn: string,
- delYn: string,
- createUserId: string,
- createDt: string,
- updateUserId: string,
- updateDt: string,
- areaList?: FlightPlanAreaDataList | undefined,
- pilotList?: FlightPlanPilotDataList | undefined,
- arcrftList?: FlightPlanArcrftDataList | undefined
+ planSno?: number;
+ groupId: string;
+ cstmrSno: number;
+ memberName: string;
+ email: string;
+ hpno: string;
+ clncd: string;
+ addr: string;
+ addrDtlCn: string;
+ zip: string;
+ schFltStDt: string;
+ schFltEndDt: string;
+ fltPurpose: string;
+ aprvlYn: string;
+ delYn: string;
+ createUserId: string;
+ createDt: string;
+ updateUserId: string;
+ updateDt: string;
+ areaList?: FlightPlanAreaDataList | undefined;
+ pilotList?: FlightPlanPilotDataList | undefined;
+ arcrftList?: FlightPlanArcrftDataList | undefined;
// docState: string
}
export interface FlightPlanAreaData {
- planAreaSno?: number,
- planSno: number,
- areaType: string,
- fltMethod: string,
- bufferZone: number,
- fltElev: string,
- createUserId?: string,
- createDt?: string,
- updateUserId?: string,
- updateDt?: string,
- coordList?: FlightPlanAreaCoordDataList | undefined
- bufferCoordList?: FlightPlanAreaCoordDataList | undefined
+ planAreaSno?: number;
+ planSno: number;
+ areaType: string;
+ fltMethod: string;
+ bufferZone: number;
+ fltElev: string;
+ createUserId?: string;
+ createDt?: string;
+ updateUserId?: string;
+ updateDt?: string;
+ coordList?: FlightPlanAreaCoordDataList | undefined;
+ bufferCoordList?: FlightPlanAreaCoordDataList | undefined;
// docState: string,
}
-export interface FlightPlanAreaDataList extends Array {};
+export interface FlightPlanAreaDataList extends Array {}
export interface FlightPlanAreaCoordData {
- planAreaCoordSno?: number,
- planAreaSno?: number,
- lat: number,
- lon: number,
- createUserId?: string,
- createDt?: string
+ planAreaCoordSno?: number;
+ planAreaSno?: number;
+ lat: number;
+ lon: number;
+ createUserId?: string;
+ createDt?: string;
// docState: string
}
-export interface FlightPlanAreaCoordDataList extends Array {};
+export interface FlightPlanAreaCoordDataList
+ extends Array {}
export interface FlightPlanPilotData {
- planPilotSno?: number,
- planSno?: number,
- cstmrSno?: number,
- groupNm: string,
- memberName: string,
- email: string,
- hpno: string,
- clncd: string,
- addr: string,
- addrDtlCn: string,
- zip: string,
- qlfcNo: string,
- carrer: string,
- createUserId: string,
- createDt: string,
- updateUserId: string,
- updateDt: string
+ planPilotSno?: number;
+ planSno?: number;
+ cstmrSno?: number;
+ groupNm: string;
+ memberName: string;
+ email: string;
+ hpno: string;
+ clncd: string;
+ addr: string;
+ addrDtlCn: string;
+ zip: string;
+ qlfcNo: string;
+ carrer: string;
+ createUserId: string;
+ createDt: string;
+ updateUserId: string;
+ updateDt: string;
// docState: string
}
-export interface FlightPlanPilotDataList extends Array {};
+export interface FlightPlanPilotDataList extends Array {}
export interface FlightPlanArcrftData {
- planArcrftSno: number,
- planSno: number,
- arcrftSno: number,
- idntfNum: string,
- groupNm: string,
- prdctNum: string,
- arcrftTypeCd: string,
- arcrftModelNm: string,
- prdctCmpnNm: string,
- prdctDate: string,
- arcrftLngth: number,
- arcrftWdth: number,
- arcrftHght: number,
- arcrftWght: number,
- wghtTypeCd: string,
- imageUrl: string,
- takeoffWght: number,
- useYn: string,
- cameraYn: string,
- insrncYn: string,
- ownerNm: string,
- createUserId: string,
- createDt: string,
- updateUserId: string,
- updateDt: string
+ planArcrftSno: number;
+ planSno: number;
+ arcrftSno: number;
+ idntfNum: string;
+ groupNm: string;
+ prdctNum: string;
+ arcrftTypeCd: string;
+ arcrftModelNm: string;
+ prdctCmpnNm: string;
+ prdctDate: string;
+ arcrftLngth: number;
+ arcrftWdth: number;
+ arcrftHght: number;
+ arcrftWght: number;
+ wghtTypeCd: string;
+ imageUrl: string;
+ takeoffWght: number;
+ useYn: string;
+ cameraYn: string;
+ insrncYn: string;
+ ownerNm: string;
+ createUserId: string;
+ createDt: string;
+ updateUserId: string;
+ updateDt: string;
// docState: string
}
-export interface FlightPlanArcrftDataList extends Array {};
+export interface FlightPlanArcrftDataList extends Array {}
// rq
export interface FlightPlanListRqData {
- groupId: string,
- cstmrSno: number,
- schFltStDt: string,
- schFltEndDt: string,
- aprvlYn: string
+ groupId: string;
+ cstmrSno: number;
+ schFltStDt: string;
+ schFltEndDt: string;
+ aprvlYn: string;
}
export interface FlightPlanAprovRqData {
- planSnoList: [number],
- aprvlYn: string
+ planSnoList: [number];
+ aprvlYn: string;
}
export interface PilotSelectData {
- groupNm: string,
- cstmrSno: string,
- memberName: string,
- email: string,
- hpno: string,
- clncd: string,
- addr: string,
- addrDtlCn: string,
- zip: string
+ groupNm: string;
+ cstmrSno: string;
+ memberName: string;
+ email: string;
+ hpno: string;
+ clncd: string;
+ addr: string;
+ addrDtlCn: string;
+ zip: string;
}
export interface BasFlightAprovData {
- planSnoList: [number]
- aprvlYn: string
+ planSnoList: [number];
+ aprvlYn: string;
+}
+
+export interface BasFlightScheduleList {
+ groupId: string;
+ groupNm: string;
+ memberName: string;
+ ownerNm: string;
+ idntfNum: string;
+ schFltStDt: string;
+ schFltEndDt: string;
+}
+
+export interface BasFlightScheduleData {
+ count: number;
+ list: [BasFlightScheduleList];
}
export const initFlight = {
@@ -195,8 +212,12 @@ export const initFlight = {
addr: '',
addrDtlCn: '',
zip: '',
- schFltStDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
- schFltEndDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
+ schFltStDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
+ schFltEndDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
fltPurpose: '',
aprvlYn: '',
delYn: '',
@@ -204,80 +225,90 @@ export const initFlight = {
createDt: '',
updateUserId: '',
updateDt: '',
- areaList: [{
- planAreaSno: 0,
- planSno: 0,
- areaType: '',
- fltMethod: '',
- bufferZone: 0,
- fltElev: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: '',
- coordList: [{
- planAreaCoordSno: 0,
+ areaList: [
+ {
planAreaSno: 0,
- lat: 0,
- lon: 0,
+ planSno: 0,
+ areaType: '',
+ fltMethod: '',
+ bufferZone: 0,
+ fltElev: '',
createUserId: '',
- createDt: ''
- }],
- bufferCoordList: [{
- planAreaCoordSno: 0,
- planAreaSno: 0,
- lat: 0,
- lon: 0,
+ createDt: '',
+ updateUserId: '',
+ updateDt: '',
+ coordList: [
+ {
+ planAreaCoordSno: 0,
+ planAreaSno: 0,
+ lat: 0,
+ lon: 0,
+ createUserId: '',
+ createDt: ''
+ }
+ ],
+ bufferCoordList: [
+ {
+ planAreaCoordSno: 0,
+ planAreaSno: 0,
+ lat: 0,
+ lon: 0,
+ createUserId: '',
+ createDt: ''
+ }
+ ]
+ }
+ ],
+ pilotList: [
+ {
+ planPilotSno: 0,
+ planSno: 0,
+ cstmrSno: 0,
+ groupNm: '',
+ memberName: '',
+ email: '',
+ hpno: '',
+ clncd: '+82',
+ addr: '',
+ addrDtlCn: '',
+ zip: '',
+ qlfcNo: '',
+ carrer: '',
+ createUserId: '',
+ createDt: '',
+ updateUserId: '',
+ updateDt: ''
+ }
+ ],
+ arcrftList: [
+ {
+ planArcrftSno: 0,
+ planSno: 0,
+ arcrftSno: 0,
+ idntfNum: '',
+ groupNm: '',
+ prdctNum: '',
+ arcrftTypeCd: '',
+ arcrftModelNm: '',
+ prdctCmpnNm: '',
+ prdctDate: '',
+ arcrftLngth: 0,
+ arcrftWdth: 0,
+ arcrftHght: 0,
+ arcrftWght: 0,
+ wghtTypeCd: '',
+ imageUrl: '',
+ takeoffWght: 0,
+ useYn: '',
+ cameraYn: '',
+ insrncYn: '',
+ ownerNm: '',
createUserId: '',
- createDt: ''
- }],
- }],
- pilotList: [{
- planPilotSno: 0,
- planSno: 0,
- cstmrSno: 0,
- groupNm: '',
- memberName: '',
- email: '',
- hpno: '',
- clncd: '+82',
- addr: '',
- addrDtlCn: '',
- zip: '',
- qlfcNo: '',
- carrer: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: ''
- }],
- arcrftList: [{
- planArcrftSno: 0,
- planSno: 0,
- arcrftSno: 0,
- idntfNum: '',
- groupNm: '',
- prdctNum: '',
- arcrftTypeCd: '',
- arcrftModelNm: '',
- prdctCmpnNm: '',
- prdctDate: '',
- arcrftLngth: 0,
- arcrftWdth: 0,
- arcrftHght: 0,
- arcrftWght: 0,
- wghtTypeCd: '',
- imageUrl: '',
- takeoffWght: 0,
- useYn: '',
- cameraYn: '',
- insrncYn: '',
- ownerNm: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: ''
- }]
+ createDt: '',
+ updateUserId: '',
+ updateDt: ''
+ }
+ ]
},
pilotList: undefined,
arcrftList: undefined,
@@ -286,10 +317,10 @@ export const initFlight = {
areaCoordList: undefined,
areaList: undefined,
aprvList: undefined,
- aprvProc: undefined
+ aprvProc: undefined,
+ scheduleList: []
};
-
export const initFlightBas = {
plan: {
planSno: 0,
@@ -302,8 +333,12 @@ export const initFlightBas = {
addr: '',
addrDtlCn: '',
zip: '',
- schFltStDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
- schFltEndDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
+ schFltStDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
+ schFltEndDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
fltPurpose: '',
aprvlYn: '',
delYn: '',
@@ -313,7 +348,7 @@ export const initFlightBas = {
updateDt: '',
areaList: undefined,
pilotList: undefined,
- arcrftList: undefined,
+ arcrftList: undefined
},
pilot: {
planPilotSno: 0,
@@ -393,8 +428,12 @@ export const initFlightBas = {
addr: '',
addrDtlCn: '',
zip: '',
- schFltStDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
- schFltEndDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'),
+ schFltStDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
+ schFltEndDt: moment()
+ .set({ h: 0, m: 0, s: 0 })
+ .format('YYYY-MM-DD HH:mm:ss'),
fltPurpose: '',
aprvlYn: '',
delYn: '',
@@ -402,79 +441,89 @@ export const initFlightBas = {
createDt: '',
updateUserId: '',
updateDt: '',
- areaList: [{
- planAreaSno: 0,
- planSno: 0,
- areaType: '',
- fltMethod: '',
- bufferZone: 0,
- fltElev: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: '',
- coordList: [{
- planAreaCoordSno: 0,
+ areaList: [
+ {
planAreaSno: 0,
- lat: 0,
- lon: 0,
+ planSno: 0,
+ areaType: '',
+ fltMethod: '',
+ bufferZone: 0,
+ fltElev: '',
createUserId: '',
- createDt: ''
- }],
- bufferCoordList: [{
- planAreaCoordSno: 0,
- planAreaSno: 0,
- lat: 0,
- lon: 0,
+ createDt: '',
+ updateUserId: '',
+ updateDt: '',
+ coordList: [
+ {
+ planAreaCoordSno: 0,
+ planAreaSno: 0,
+ lat: 0,
+ lon: 0,
+ createUserId: '',
+ createDt: ''
+ }
+ ],
+ bufferCoordList: [
+ {
+ planAreaCoordSno: 0,
+ planAreaSno: 0,
+ lat: 0,
+ lon: 0,
+ createUserId: '',
+ createDt: ''
+ }
+ ]
+ }
+ ],
+ pilotList: [
+ {
+ planPilotSno: 0,
+ planSno: 0,
+ cstmrSno: 0,
+ groupNm: '',
+ memberName: '',
+ email: '',
+ hpno: '',
+ clncd: '+82',
+ addr: '',
+ addrDtlCn: '',
+ zip: '',
+ qlfcNo: '',
+ carrer: '',
+ createUserId: '',
+ createDt: '',
+ updateUserId: '',
+ updateDt: ''
+ }
+ ],
+ arcrftList: [
+ {
+ planArcrftSno: 0,
+ planSno: 0,
+ arcrftSno: 0,
+ idntfNum: '',
+ groupNm: '',
+ prdctNum: '',
+ arcrftTypeCd: '',
+ arcrftModelNm: '',
+ prdctCmpnNm: '',
+ prdctDate: '',
+ arcrftLngth: 0,
+ arcrftWdth: 0,
+ arcrftHght: 0,
+ arcrftWght: 0,
+ wghtTypeCd: '',
+ imageUrl: '',
+ takeoffWght: 0,
+ useYn: '',
+ cameraYn: '',
+ insrncYn: '',
+ ownerNm: '',
createUserId: '',
- createDt: ''
- }],
- }],
- pilotList: [{
- planPilotSno: 0,
- planSno: 0,
- cstmrSno: 0,
- groupNm: '',
- memberName: '',
- email: '',
- hpno: '',
- clncd: '+82',
- addr: '',
- addrDtlCn: '',
- zip: '',
- qlfcNo: '',
- carrer: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: ''
- }],
- arcrftList: [{
- planArcrftSno: 0,
- planSno: 0,
- arcrftSno: 0,
- idntfNum: '',
- groupNm: '',
- prdctNum: '',
- arcrftTypeCd: '',
- arcrftModelNm: '',
- prdctCmpnNm: '',
- prdctDate: '',
- arcrftLngth: 0,
- arcrftWdth: 0,
- arcrftHght: 0,
- arcrftWght: 0,
- wghtTypeCd: '',
- imageUrl: '',
- takeoffWght: 0,
- useYn: '',
- cameraYn: '',
- insrncYn: '',
- ownerNm: '',
- createUserId: '',
- createDt: '',
- updateUserId: '',
- updateDt: ''
- }]
+ createDt: '',
+ updateUserId: '',
+ updateDt: ''
+ }
+ ]
}
-}
+};
diff --git a/src/modules/basis/flight/reducers/basisFlightReducer.ts b/src/modules/basis/flight/reducers/basisFlightReducer.ts
index fb16452..d048aa8 100644
--- a/src/modules/basis/flight/reducers/basisFlightReducer.ts
+++ b/src/modules/basis/flight/reducers/basisFlightReducer.ts
@@ -129,4 +129,11 @@ export const flightReducer = createReducer(
const data = action.payload;
draft.aprvProc = data;
})
+ )
+ // 비행운항 스케줄
+ .handleAction(Actions.FLIGHT_SCHEDULE_LIST.success, (state, action) =>
+ produce(state, draft => {
+ const data = action.payload;
+ draft.scheduleList = data;
+ })
);
diff --git a/src/modules/basis/flight/sagas/basisFlightSaga.ts b/src/modules/basis/flight/sagas/basisFlightSaga.ts
index 658573f..b5ba4b4 100644
--- a/src/modules/basis/flight/sagas/basisFlightSaga.ts
+++ b/src/modules/basis/flight/sagas/basisFlightSaga.ts
@@ -9,15 +9,19 @@ import {
import * as MessageActions from '../../../comn/message/actions/comnMessageAction';
import * as Actions from '../actions/basisFlightAction';
import * as Apis from '../apis/basisFlightApi';
-import { FlightPlanData } from "../models/basisFlightModel";
+import { FlightPlanData } from '../models/basisFlightModel';
import {
FLIGHT_PLAN_ARCRFT_LIST,
- FLIGHT_PLAN_CREATE, FLIGHT_PLAN_DELETE,
+ FLIGHT_PLAN_CREATE,
+ FLIGHT_PLAN_DELETE,
FLIGHT_PLAN_DETAIL,
- FLIGHT_PLAN_PILOT_LIST, FLIGHT_PLAN_UPDATE
-} from "../actions/basisFlightAction";
+ FLIGHT_PLAN_PILOT_LIST,
+ FLIGHT_PLAN_UPDATE
+} from '../actions/basisFlightAction';
-function* listAreaSaga(action: ActionType) {
+function* listAreaSaga(
+ action: ActionType
+) {
try {
const response = yield call(Apis.flightPlanAPI.area);
@@ -39,9 +43,7 @@ function* listAreaSaga(action: ActionType) {
+function* listPlanSaga(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.list, data);
@@ -79,18 +83,16 @@ function* listPlanSaga(action: ActionType) {
+function* detailPlanSaga(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.detail, data);
@@ -106,24 +108,22 @@ function* detailPlanSaga(action: ActionType) {
+function* createPlanSaga(
+ action: ActionType
+) {
try {
const detail = action.payload;
const res = yield call(Apis.flightPlanAPI.create, detail);
- const {data} = res;
+ const { data } = res;
if (data.result) {
yield put(
@@ -144,7 +144,7 @@ function* createPlanSaga(action: ActionType) {
+function* updatePlanSaga(
+ action: ActionType
+) {
try {
const detail = action.payload;
const res = yield call(Apis.flightPlanAPI.update, detail);
- const {data} = res;
+ const { data } = res;
if (data.result) {
yield put(
@@ -216,12 +218,14 @@ function* updatePlanSaga(action: ActionType) {
+function* deletePlanSaga(
+ action: ActionType
+) {
try {
const id = action.payload;
const res = yield call(Apis.flightPlanAPI.delete, id);
- const {data} = res;
+ const { data } = res;
if (data.result) {
yield put(
@@ -249,7 +253,9 @@ function* deletePlanSaga(action: ActionType) {
+function* listPilotSaga(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.listPilot, data);
@@ -265,18 +271,16 @@ function* listPilotSaga(action: ActionType) {
+function* listArcrftSaga(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.listArcrft, data);
@@ -292,18 +296,16 @@ function* listArcrftSaga(action: ActionType) {
+function* listBuffer(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.listBuffer, data);
@@ -319,19 +321,16 @@ function* listBuffer(action: ActionType) {
+function* listAprvSaga(
+ action: ActionType
+) {
try {
const data = action.payload;
const response = yield call(Apis.flightPlanAPI.aprvList, data);
@@ -347,25 +346,22 @@ function* listAprvSaga(action: ActionType) {
+function* aprvProcSaga(
+ action: ActionType
+) {
try {
-
const sendData = action.payload;
const res = yield call(Apis.flightPlanAPI.aprvProc, sendData);
- const {data} = res;
+ const { data } = res;
if (data.result) {
yield put(
@@ -376,9 +372,7 @@ function* aprvProcSaga(action: ActionType
+) {
+ try {
+ const data = action.payload;
+ const response = yield call(Apis.flightPlanAPI.scheduleList, data);
+
+ if (response.errorCode) {
+ yield put(
+ MessageActions.IS_ERROR({
+ errorCode: response.errorCode,
+ errorMessage: response.errorMessage,
+ isHistoryBack: false,
+ isRefresh: false
+ })
+ );
+ return;
+ }
+
+ yield put(Actions.FLIGHT_SCHEDULE_LIST.success(response.data || []));
+ } catch (error: any) {
+ yield put(Actions.FLIGHT_SCHEDULE_LIST.failure(error));
+ }
+}
+
function* searchAreaSaga(
action: ActionType
) {
- try{
+ try {
const { query } = action.payload;
const res = yield call(Apis.flightPlanAPI.searchArea, { query });
@@ -422,15 +442,16 @@ function* searchAreaSaga(
export function* flightSaga() {
yield takeEvery(Actions.PUBLIC_AREA_LIST.request, listAreaSaga);
// yield takeEvery(Actions.FLIGHT_PLAN_AREA.request, createFlightPlanArea);
- yield takeEvery(Actions.FLIGHT_PLAN_LIST.request, listPlanSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_DETAIL.request, detailPlanSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_CREATE.request, createPlanSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_UPDATE.request, updatePlanSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_DELETE.request, deletePlanSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_PILOT_LIST.request, listPilotSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_ARCRFT_LIST.request, listArcrftSaga)
- yield takeEvery(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request, listBuffer)
- yield takeEvery(Actions.FLIGHT_APRV_LIST.request, listAprvSaga)
- yield takeEvery(Actions.FLIGHT_APRV_PROC.request, aprvProcSaga)
- yield takeEvery(Actions.SEARCH_AREA.request, searchAreaSaga)
+ yield takeEvery(Actions.FLIGHT_PLAN_LIST.request, listPlanSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_DETAIL.request, detailPlanSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_CREATE.request, createPlanSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_UPDATE.request, updatePlanSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_DELETE.request, deletePlanSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_PILOT_LIST.request, listPilotSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_ARCRFT_LIST.request, listArcrftSaga);
+ yield takeEvery(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request, listBuffer);
+ yield takeEvery(Actions.FLIGHT_APRV_LIST.request, listAprvSaga);
+ yield takeEvery(Actions.FLIGHT_APRV_PROC.request, aprvProcSaga);
+ yield takeEvery(Actions.SEARCH_AREA.request, searchAreaSaga);
+ yield takeEvery(Actions.FLIGHT_SCHEDULE_LIST.request, scheduleListSaga);
}
diff --git a/src/utility/hooks/useInterval.js b/src/utility/hooks/useInterval.js
new file mode 100644
index 0000000..4b07222
--- /dev/null
+++ b/src/utility/hooks/useInterval.js
@@ -0,0 +1,21 @@
+import { useEffect, useRef } from 'react';
+
+const useInterval = (callback, delay) => {
+ const savedCallback = useRef(null);
+
+ useEffect(() => {
+ savedCallback.current = callback;
+ }, [callback]);
+
+ useEffect(() => {
+ const executeCallback = () => {
+ savedCallback.current();
+ };
+
+ const timerId = setInterval(executeCallback, delay);
+
+ return () => clearInterval(timerId);
+ }, []);
+};
+
+export default useInterval;
diff --git a/src/views/weather/WeatherView.js b/src/views/weather/WeatherView.js
index 72d2a1d..5f456d1 100644
--- a/src/views/weather/WeatherView.js
+++ b/src/views/weather/WeatherView.js
@@ -48,7 +48,6 @@ const WeatherView = () => {
easing: 'easeOutCubic'
};
// map.morph(latlng, 16, options)
- console.log(map);
};
const handleEnter = e => {
if (e.key == 'Enter') {