From 62d7bbb0a80cce2572a35ab5ea4f684f0effbf51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?scnoh=28=EB=85=B8=EC=8A=B9=EC=B2=A0=29?= Date: Mon, 1 Aug 2022 11:17:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B9=84=ED=96=89=20=EA=B5=AC=EC=97=AD=20buffe?= =?UTF-8?q?r=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flight/plan/FlightPlanAreaDetailForm.js | 52 ++++++++++++------- .../basis/flight/plan/FlightPlanGrid.js | 2 +- .../plan/FlightPlanAreaDetailContainer.js | 5 ++ .../basis/flight/plan/FlightPlanContainer.js | 2 +- .../flight/plan/FlightPlanDetailContainer.js | 2 + .../basis/flight/actions/basisFlightAction.ts | 17 +++++- .../basis/flight/apis/basisFlightApi.ts | 12 ++++- .../basis/flight/models/basisFlightModel.ts | 33 +++++++----- .../flight/reducers/basisFlightReducer.ts | 7 +++ .../basis/flight/sagas/basisFlightSaga.ts | 28 ++++++++++ 10 files changed, 123 insertions(+), 37 deletions(-) diff --git a/src/components/basis/flight/plan/FlightPlanAreaDetailForm.js b/src/components/basis/flight/plan/FlightPlanAreaDetailForm.js index c801f2b..0d72e22 100644 --- a/src/components/basis/flight/plan/FlightPlanAreaDetailForm.js +++ b/src/components/basis/flight/plan/FlightPlanAreaDetailForm.js @@ -15,7 +15,7 @@ import { FlightPlanDraw } from '../../../map/naver/draw/FlightPlanDraw'; import { drawTypeChangeAction, drawCheckAction } from '../../../../modules/control/map/actions/controlMapActions'; import { FlightPlanDrawTest } from '../../../map/naver/draw/FlightPlanDrawTest'; -const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, data }) => { +const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, handleBufferList, data }) => { const coordList = data ? data[0].coordList : null; @@ -88,25 +88,37 @@ const FlightPlanAreaDetailForm = ({ handleSave, handleClose, handleChange, data
- - - { - const {name, value} = e.target; - handleChange({ - name, - value - }) - }} - /> - - + +
+ + { + const {name, value} = e.target; + handleChange({ + name, + value + }) + }} + /> +
+
+ handleBufferList()} + > + 적용 + +
+
+
diff --git a/src/components/basis/flight/plan/FlightPlanGrid.js b/src/components/basis/flight/plan/FlightPlanGrid.js index d68f85b..6973bce 100644 --- a/src/components/basis/flight/plan/FlightPlanGrid.js +++ b/src/components/basis/flight/plan/FlightPlanGrid.js @@ -7,7 +7,7 @@ import {Redirect} from 'react-router-dom'; const FlightPlanGrid = ({movePage, planListData, handleMoveDetail}) => { const columns = [ - {id: 'planSno', name: '번호', cell: row => (
{row.planSno}
)}, + {id: 'planSno', name: '번호', cell: (row, i) => (
{i+1}
)}, {id: 'fltPurpose', name: '비행목적', cell: row => (
{row.fltPurpose}
)}, { id: 'fltMethod', name: '비행방식', cell: row => { diff --git a/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js b/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js index 049a2e8..9091b5d 100644 --- a/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js @@ -42,6 +42,10 @@ const FlightPlanAreaDetailContainer = ({ handleModal }) => { }) } + const handleBufferList = () => { + dispatch(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.request(areaDetail)); + } + useEffect(() => { // 좌표등록 (등록 시 데이터 초기화) if(areaCoordList !== undefined) { @@ -69,6 +73,7 @@ const FlightPlanAreaDetailContainer = ({ handleModal }) => { handleClose={handleClose} handleSave={handleSave} handleChange={handleChange} + handleBufferList={handleBufferList} areaCoordList={areaCoordList} data={areaDetail} /> diff --git a/src/containers/basis/flight/plan/FlightPlanContainer.js b/src/containers/basis/flight/plan/FlightPlanContainer.js index 2f4c86e..f94f3bd 100644 --- a/src/containers/basis/flight/plan/FlightPlanContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanContainer.js @@ -13,7 +13,7 @@ import FlightPlanGroupGrid from '../../../../components/basis/flight/plan/Flight const initSearchData = { - schFltStDt: moment().set({'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'), + schFltStDt: moment().set({'date': 1, 'h': 0, 'm': 0, 's': 0}).format('YYYY-MM-DD HH:mm:ss'), schFltEndDt: moment().set({'h': 23, 'm': 59, 's': 59}).format('YYYY-MM-DD HH:mm:ss'), aprvlYn: 'N', groupId: '', diff --git a/src/containers/basis/flight/plan/FlightPlanDetailContainer.js b/src/containers/basis/flight/plan/FlightPlanDetailContainer.js index 1389f0a..4be5aac 100644 --- a/src/containers/basis/flight/plan/FlightPlanDetailContainer.js +++ b/src/containers/basis/flight/plan/FlightPlanDetailContainer.js @@ -313,6 +313,8 @@ const FlightPlanDetailContainer = () => { } else { dispatch(Actions.FLIGHT_PLAN_UPDATE.request(detailData)); } + + dispatch(FlightAction.FLIGHT_PLAN_GROUP_SELECT( {cstmrSno: 0, groupId: '', groupNm: ''} )); } // 삭제 const handleDelete = () => { diff --git a/src/modules/basis/flight/actions/basisFlightAction.ts b/src/modules/basis/flight/actions/basisFlightAction.ts index a3f2e6f..469fd19 100644 --- a/src/modules/basis/flight/actions/basisFlightAction.ts +++ b/src/modules/basis/flight/actions/basisFlightAction.ts @@ -7,7 +7,7 @@ import { FlightPlanAreaDataList, // FlightPlanArea, FlightPlanData, - FlightPlanListRqData, FlightPlanPilotDataList, PilotSelectData, SelectGroupData + FlightPlanListRqData, FlightPlanPilotDataList, PilotSelectData, SelectGroupData } from '../models/basisFlightModel'; @@ -75,6 +75,11 @@ const AREA_DETAIL_LIST = 'basis/flight/plan/area/DETAIL_LIST'; // 비행계획서 그룹 선택 const ROUP_SELECT = 'basis/flight/plan/group/select'; +// 버퍼 좌표 가져오기 +const AREA_BUFFER_LIST_REQUEST = 'basis/flight/plan/area/BUFFER_LIST_REQUEST'; +const AREA_BUFFER_LIST_SUCCESS = 'basis/flight/plan/area/BUFFER_LIST_SUCCESS'; +const AREA_BUFFER_LIST_FAILURE = 'basis/flight/plan/area/BUFFER_LIST_FAILURE'; + export const PUBLIC_AREA_LIST = createAsyncAction( PUBLIC_AREA_LIST_REQUEST, PUBLIC_AREA_LIST_SUCCESS, @@ -155,6 +160,13 @@ export const AREA_DETAIL_LIST_SAVE = createAction(AREA_DETAIL_LIST)(); +// 버퍼 좌표 가져오기 +export const FLIGHT_PLAN_AREA_BUFFER_LIST = createAsyncAction( + AREA_BUFFER_LIST_REQUEST, + AREA_BUFFER_LIST_SUCCESS, + AREA_BUFFER_LIST_FAILURE +)(); + const actions = { PUBLIC_AREA_LIST, // FLIGHT_PLAN_AREA, @@ -171,7 +183,8 @@ const actions = { PILOT_ARCRFT_SELECT_INIT, AREA_COORDINATE_LIST_SAVE, AREA_DETAIL_LIST_SAVE, - FLIGHT_PLAN_GROUP_SELECT + FLIGHT_PLAN_GROUP_SELECT, + FLIGHT_PLAN_AREA_BUFFER_LIST }; export type FlightAction = ActionType; diff --git a/src/modules/basis/flight/apis/basisFlightApi.ts b/src/modules/basis/flight/apis/basisFlightApi.ts index d36d78e..191289a 100644 --- a/src/modules/basis/flight/apis/basisFlightApi.ts +++ b/src/modules/basis/flight/apis/basisFlightApi.ts @@ -1,6 +1,6 @@ import axios from '../../../utils/customAxiosUtil'; import qs from 'qs'; -import { FlightPlanData, FlightPlanListRqData } from '../models/basisFlightModel'; +import { FlightPlanAreaData, FlightPlanAreaDataList, FlightPlanData, FlightPlanListRqData } from '../models/basisFlightModel'; export const flightPlanAPI = { @@ -49,5 +49,15 @@ export const flightPlanAPI = { const res = await axios.get(`api/bas/flight/plan/arcrft/${groupId}`); console.log('>>> rs : ', res); return res; + }, + listBuffer: async (data: FlightPlanAreaDataList) => { + console.log('>>> rq : ', data) + const queryString = qs.stringify(data, { + addQueryPrefix: true, + arrayFormat: 'brackets' + }); + const res = await axios.post(`api/bas/flight/plan/area/buffer`, data); + console.log('>>> rs : ', res); + return res; } } diff --git a/src/modules/basis/flight/models/basisFlightModel.ts b/src/modules/basis/flight/models/basisFlightModel.ts index fb1c8e2..b89ba5e 100644 --- a/src/modules/basis/flight/models/basisFlightModel.ts +++ b/src/modules/basis/flight/models/basisFlightModel.ts @@ -11,7 +11,7 @@ export interface FlightState { arcrftSelect: FlightPlanArcrftData | undefined areaCoordList: FlightPlanAreaData[] | undefined areaList: FlightPlanAreaData[] | undefined - selectGroup: SelectGroupData | undefined + selectGroup: SelectGroupData | undefined } export interface SelectGroupData { @@ -70,6 +70,7 @@ export interface FlightPlanAreaData { updateUserId?: string, updateDt?: string, coordList?: FlightPlanAreaCoordDataList | undefined + bufferCoordList?: FlightPlanAreaCoordDataList | undefined // docState: string, } @@ -167,14 +168,6 @@ export interface PilotSelectData { zip: string } -export interface AreaCoordinateCreateData { - lat: number, - lon: number, - bufferZone: string, - radius: number -} - - export const initFlight = { selectGroup: { cstmrSno: 0, @@ -222,7 +215,15 @@ export const initFlight = { lon: 0, createUserId: '', createDt: '' - }] + }], + bufferCoordList: [{ + planAreaCoordSno: 0, + planAreaSno: 0, + lat: 0, + lon: 0, + createUserId: '', + createDt: '' + }], }], pilotList: [{ planPilotSno: 0, @@ -276,7 +277,7 @@ export const initFlight = { pilotSelect: undefined, arcrftSelect: undefined, areaCoordList: undefined, - areaList: undefined + areaList: undefined, }; @@ -410,7 +411,15 @@ export const initFlightBas = { lon: 0, createUserId: '', createDt: '' - }] + }], + bufferCoordList: [{ + planAreaCoordSno: 0, + planAreaSno: 0, + lat: 0, + lon: 0, + createUserId: '', + createDt: '' + }], }], pilotList: [{ planPilotSno: 0, diff --git a/src/modules/basis/flight/reducers/basisFlightReducer.ts b/src/modules/basis/flight/reducers/basisFlightReducer.ts index 3a4d3b9..d9c4d96 100644 --- a/src/modules/basis/flight/reducers/basisFlightReducer.ts +++ b/src/modules/basis/flight/reducers/basisFlightReducer.ts @@ -97,3 +97,10 @@ export const flightReducer = createReducer(in draft.selectGroup = data; }) ) + // 비행 계획서 그룹 선택 + .handleAction(Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.success, (state, action) => + produce(state, draft => { + const data = action.payload; + draft.areaCoordList = data; + }) + ) diff --git a/src/modules/basis/flight/sagas/basisFlightSaga.ts b/src/modules/basis/flight/sagas/basisFlightSaga.ts index 6a55d41..4cce3d3 100644 --- a/src/modules/basis/flight/sagas/basisFlightSaga.ts +++ b/src/modules/basis/flight/sagas/basisFlightSaga.ts @@ -287,6 +287,33 @@ function* listArcrftSaga(action: ActionType) { + try { + const data = action.payload; + const response = yield call(Apis.flightPlanAPI.listBuffer, data); + if (response.errorCode) { + yield put( + MessageActions.IS_ERROR({ + errorCode: response.errorCode, + errorMessage: response.errorMessage, + isHistoryBack: false, + isRefresh: false + }) + ); + return; + } + + yield put( + Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.success(response.data) + ); + } catch (error: any) { + yield put( + Actions.FLIGHT_PLAN_AREA_BUFFER_LIST.failure(error) + ); + } +} + export function* flightSaga() { yield takeEvery(Actions.PUBLIC_AREA_LIST.request, listAreaSaga); // yield takeEvery(Actions.FLIGHT_PLAN_AREA.request, createFlightPlanArea); @@ -297,4 +324,5 @@ export function* flightSaga() { 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) }