Browse Source

기체 별 비정상 로그 조회 작업

pull/2/head
노승철 2 years ago
parent
commit
d83648f51b
  1. 12
      src/components/map/naver/dron/DronToast.js
  2. 16
      src/modules/control/gp/actions/controlGpAction.ts
  3. 11
      src/modules/control/gp/apis/controlGpApi.ts
  4. 19
      src/modules/control/gp/models/controlGpModel.ts
  5. 13
      src/modules/control/gp/reducers/controlGpReducer.ts
  6. 49
      src/modules/control/gp/sagas/controlGpSaga.ts

12
src/components/map/naver/dron/DronToast.js

@ -4,8 +4,12 @@ import { Fragment } from 'react';
import { toast } from 'react-toastify';
import Avatar from '../../../../@core/components/avatar';
import { Bell, Check, X, AlertTriangle, Info } from 'react-feather'
import { controlGpDtlAction, controlGpFlightPlanAction } from '../../../../modules/control/gp';
import { objectClickAction, objectUnClickAction } from '../../../../modules/control/map/actions/controlMapActions';
const DronToast = () => {
const dispatch = useDispatch();
const { controlGpList } = useSelector(state => state.controlGpState);
useEffect(() => {
@ -22,7 +26,7 @@ const DronToast = () => {
hideProgressBar: true,
position: toast.POSITION.BOTTOM_RIGHT,
onClick: props => {
handlerDronClick(gps.controlId, gps.objectId);
handleNotiClick(gps.controlId, gps.objectId);
}
}
)
@ -31,6 +35,12 @@ const DronToast = () => {
}
}, [controlGpList]);
const handleNotiClick = (controlId, idntfNum) => {
dispatch(objectClickAction(controlId));
dispatch(controlGpDtlAction.request(controlId));
dispatch(controlGpFlightPlanAction.request(idntfNum));
}
const toastRender = (title, message) => {
return (

16
src/modules/control/gp/actions/controlGpAction.ts

@ -13,6 +13,8 @@ import {
ControlGpPlanContainsRQ,
ControlGpPlanContainsRS,
ControlGroupAuthState,
ControlGpArcrftWarnList,
ControlGpWarnLogList,
// ControlGpWarnLogDataList,
} from '../models/controlGpModel';
@ -54,6 +56,11 @@ const CONTROL_FLIGHT_PLAN_WARN_REQUEST = 'control/gp/flight/plan/CONTROL_FLIGHT_
const CONTROL_FLIGHT_PLAN_WARN_SUCCESS = 'control/gp/flight/plan/CONTROL_FLIGHT_PLAN_WARN_SUCCESS';
const CONTROL_FLIGHT_PLAN_WARN_FAILURE = 'control/gp/flight/plan/CONTROL_FLIGHT_PLAN_WARN_FAILURE';
// [관제] 기체 별 비정상 리스트 조회
const CONTROL_GP_ARCRFT_WARN_REQUEST = 'control/gp/arcrft/warn/CONTROL_FLIGHT_PLAN_WARN_REQUEST';
const CONTROL_GP_ARCRFT_WARN_SUCCESS = 'control/gp/arcrft/warn/CONTROL_FLIGHT_PLAN_WARN_SUCCESS';
const CONTROL_GP_ARCRFT_WARN_FAILURE = 'control/gp/arcrft/warn/CONTROL_FLIGHT_PLAN_WARN_FAILURE';
export const controlGpAction = createAsyncAction(
CONTROL_GP_REQUEST,
CONTROL_GP_SUCCESS,
@ -95,7 +102,7 @@ export const controlGpLogAction = createAsyncAction(
CONTROL_GP_LOG_REQIEST,
CONTROL_GP_LOG_SUCCESS,
CONTROL_GP_LOG_FAILURE
)<{ id: string }, ControlGpLogState, AxiosError>();
)<{ id: string }, ControlGpWarnLogList, AxiosError>();
export const controlGpFlightPlanWarnAction = createAsyncAction(
CONTROL_FLIGHT_PLAN_WARN_REQUEST,
@ -103,6 +110,12 @@ export const controlGpFlightPlanWarnAction = createAsyncAction(
CONTROL_FLIGHT_PLAN_WARN_FAILURE,
)<ControlGpPlanContainsRQ, ControlGpPlanContainsRS, AxiosError>();
export const controlGpArcrftWarnAction = createAsyncAction(
CONTROL_GP_ARCRFT_WARN_REQUEST,
CONTROL_GP_ARCRFT_WARN_SUCCESS,
CONTROL_GP_ARCRFT_WARN_FAILURE
)<{id : string}, ControlGpArcrftWarnList, AxiosError>();
export const controlGpFlightPlanInitAction = createAction(CONTROL_FLIGHT_PLAN_INIT)();
const actions = {
@ -114,6 +127,7 @@ const actions = {
controlGroupAuthAction,
controlGpFlightPlanAction,
controlGpFlightPlanWarnAction,
controlGpArcrftWarnAction,
controlGpFlightPlanInitAction
};

11
src/modules/control/gp/apis/controlGpApi.ts

@ -24,7 +24,7 @@ export const controlGpApi = {
}
const { data }: ResponseControlGpWarnLog = await axios.get(
`api/ctr/cntrl/warnLog/${id}`
`api/ctr/cntrl/warn/list/${id}`
);
return data;
@ -61,6 +61,15 @@ export const controlGpApi = {
`api/ctr/cntrl/contains`, rq
);
return data;
},
getArcrftWarnList: async (id: string) => {
if(!id) return null;
const { data } = await axios.get(
`api/ctr/cntrl/arcrft/warn/list?id=${id}`
);
return data;
}
};

19
src/modules/control/gp/models/controlGpModel.ts

@ -10,7 +10,8 @@ export interface ControlGpFlightPlanState {
}
export interface ControlGpLogState {
controlGpWarnLog: ControlGpWarnLogData[] | undefined;
controlGpWarnLog: ControlGpWarnLogList | undefined;
controlGpArcrftWarnList: ControlGpArcrftWarnList | undefined;
}
export interface ControlGpHisState {
@ -136,6 +137,8 @@ export interface ControlGpWarnLogData {
createDt: String;
}
export interface ControlGpWarnLogList extends Array<ControlGpWarnLogData> {};
export interface FlightPlanAreaDataList extends Array<FlightPlanAreaData> {};
export interface FlightPlanAreaData {
@ -165,6 +168,17 @@ export interface FlightPlanAreaCoordData {
// docState: string
}
export interface ControlGpArcrftWarnData {
cntrlId: string,
warnType: string,
idntfNum: string,
occurDt: string,
createDt: string,
warnCount: number,
}
export interface ControlGpArcrftWarnList extends Array<ControlGpArcrftWarnData> {};
export interface ControlGpPlanContainsRQ {
idntfNum: string,
lat: number,
@ -198,5 +212,6 @@ export const initiaResponseControlGpData = {
controlGroupAuthInfo: undefined,
controlGpFltPlanList: undefined,
controlGpWarnLogList: undefined,
controlGpContains: undefined
controlGpContains: undefined,
controlGpArcrftWarnList: undefined
};

13
src/modules/control/gp/reducers/controlGpReducer.ts

@ -11,6 +11,7 @@ import {
controlGpHisAction,
controlGpRtDtlAction,
controlGroupAuthAction,
controlGpArcrftWarnAction,
} from '../actions/controlGpAction';
import {
ControlGpWarnLogData,
@ -57,9 +58,15 @@ export const controlGpLogReducer = createReducer<ControlGpLogState, ControlGpAct
initiaResponseControlGpData
).handleAction(controlGpLogAction.success, (state, action) =>
produce(state, draft => {
const { controlGpWarnLog } = action.payload;
draft.controlGpWarnLog = controlGpWarnLog;
})
const data = action.payload;
draft.controlGpWarnLog = data;
})
)
.handleAction(controlGpArcrftWarnAction.success, (state, action) =>
produce(state, draft => {
const list = action.payload;
draft.controlGpArcrftWarnList = list;
})
);
export const controlGpHisReducer = createReducer<ControlGpHisState, ControlGpAction>(

49
src/modules/control/gp/sagas/controlGpSaga.ts

@ -15,28 +15,34 @@ function* getControlGpSaga(
const data = action.payload;
const state = yield select();
const { objectId, isClickObject } = state.controlMapReducer;
const { controlGroupAuthInfo } = state.controlGroupAuthState;
const { controlGpHistory } = state.controlGpHisState;
let gpsData: ControlGpData[] = [];
// if (controlGroupAuthInfo.length > 0) {
// controlGroupAuthInfo.forEach((auth) => {
// if (auth.groupAuthCd === 'CREATER' || auth.groupAuthCd === 'ADMIN') {
// if (gpsData.length > 0) return false;
/**
*
const { controlGroupAuthInfo } = state.controlGroupAuthState;
const { controlGpHistory } = state.controlGpHisState;
// gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
// }
let gpsData: ControlGpData[] = [];
// if (auth.groupAuthCd === 'USER') {
// if (gpsData.length > 0) return false;
if (controlGroupAuthInfo.length > 0) {
controlGroupAuthInfo.forEach((auth) => {
if (auth.groupAuthCd === 'CREATER' || auth.groupAuthCd === 'ADMIN') {
if (gpsData.length > 0) return false;
// gpsData.filter(gps => auth.createUserId && auth.idntfNum === gps.objectId);
// }
// });
// }
gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
}
if (auth.groupAuthCd === 'USER') {
if (gpsData.length > 0) return false;
gpsData.filter(gps => auth.createUserId && auth.idntfNum === gps.objectId);
}
});
}
console.log('gps data >>>> ', data);
*/
console.log('gps data >>>> ', data);
yield put(
Actions.controlGpAction.success({
@ -134,10 +140,7 @@ function* controlGpFlightPlanSaga(
) {
try {
const idntfNum = action.payload;
const list = yield call(controlGpApi.getFlightPlan, idntfNum);
console.log("flight plan list : ", list);
const list = yield call(controlGpApi.getFlightPlan, idntfNum);
yield put(Actions.controlGpFlightPlanAction.success(list));
@ -152,11 +155,9 @@ function* getControlGpWarnLogSaga(
try{
const {id} = action.payload;
const data = yield call(controlGpApi.getWarnLog, id)
console.log('SAGA : Warn Log list : ', data);
yield put(
Actions.controlGpLogAction.success({
controlGpWarnLog: data
})
Actions.controlGpLogAction.success(data)
);
} catch(error) {
yield put(Actions.controlGpLogAction.failure(error));

Loading…
Cancel
Save