Skip to content

Commit e2507aa

Browse files
authored
add new fields to security analysis results (tab N) (#3273)
for the tab N of security analysis results : * fix `equipment` field * add new fields : `patlLoading`, `patlLimit`, `upcomingAcceptableDuration`, `acceptableDuration`, `nextLimitName
1 parent 940830b commit e2507aa

File tree

3 files changed

+65
-12
lines changed

3 files changed

+65
-12
lines changed

src/components/results/securityanalysis/security-analysis-result-n.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ export const SecurityAnalysisResultN: FunctionComponent<SecurityAnalysisResultNP
4242
value: limitViolation?.value,
4343
loading: limitViolation?.loading,
4444
side: convertSide(limitViolation?.side || '', intl),
45+
patlLoading: limitViolation?.patlLoading,
46+
patlLimit: limitViolation?.patlLimit,
47+
nextLimitName: translateLimitNameBackToFront(limitViolation?.nextLimitName, intl),
48+
upcomingAcceptableDuration:
49+
limitViolation?.upcomingAcceptableDuration === MAX_INT32
50+
? null
51+
: limitViolation?.upcomingAcceptableDuration,
4552
} as SecurityAnalysisNTableRow;
4653
}) ?? [])
4754
: [];

src/components/results/securityanalysis/security-analysis-result-utils.ts

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { fetchAvailableFilterEnumValues } from '../../../services/study';
2828
import { ComputingType } from '@gridsuite/commons-ui';
2929
import { useSelector } from 'react-redux';
3030
import { AppState } from 'redux/reducer';
31+
import { UNDEFINED_ACCEPTABLE_DURATION } from '../../utils/utils';
3132
import RunningStatus from 'components/utils/running-status';
3233
import type { SecurityAnalysisFilterEnumsType } from './use-security-analysis-column-defs';
3334
import { CustomAggridComparatorFilter } from '../../custom-aggrid/custom-aggrid-filters/custom-aggrid-comparator-filter';
@@ -215,12 +216,9 @@ const makeAgGridDurationColumn = (
215216
sortParams: ColumnContext['sortParams']
216217
) => {
217218
return {
218-
headerName: intl.formatMessage({
219-
id: intlId,
220-
}),
219+
headerName: intl.formatMessage({ id: intlId }),
221220
colId: fieldId,
222221
field: fieldId,
223-
valueFormatter: (param: ValueFormatterParams) => convertDuration(param.value),
224222
context: {
225223
sortParams,
226224
filterComponent: CustomAggridDurationFilter,
@@ -232,6 +230,17 @@ const makeAgGridDurationColumn = (
232230
},
233231
},
234232
},
233+
valueGetter: (param: ValueGetterParams) => {
234+
if (
235+
param.data.limitType !== intl.formatMessage({ id: 'CURRENT' }) ||
236+
param.data[fieldId] === UNDEFINED_ACCEPTABLE_DURATION
237+
) {
238+
return ' ';
239+
} else if (param.data[fieldId] === null) {
240+
return intl.formatMessage({ id: 'NoneUpcomingOverload' });
241+
}
242+
return convertDuration(param.data[fieldId]);
243+
},
235244
};
236245
};
237246

@@ -252,7 +261,7 @@ export const securityAnalysisTableNColumnsDefinition = (
252261
updateFilterCallback: onFilter,
253262
};
254263
return [
255-
makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Equipment', 'locationId', intl, filterParams, sortParams)),
264+
makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Equipment', 'subjectId', intl, filterParams, sortParams)),
256265
makeAgGridCustomHeaderColumn({
257266
headerName: intl.formatMessage({ id: 'ViolationType' }),
258267
colId: 'limitType',
@@ -270,22 +279,48 @@ export const securityAnalysisTableNColumnsDefinition = (
270279
},
271280
},
272281
}),
282+
makeAgGridCustomHeaderColumn(makeAgGridStringColumn('Bus', 'locationId', intl, filterParams, sortParams)),
273283
makeAgGridCustomHeaderColumn({
274284
...makeAgGridStringColumn('LimitNameCurrentViolation', 'limitName', intl, filterParams, sortParams, [
275285
FILTER_TEXT_COMPARATORS.EQUALS,
276286
]),
277287
valueFormatter: (params: ValueFormatterParams) => formatNAValue(params.value, intl),
278288
}),
279-
makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLabelAOrKv', 'limit', intl, filterParams, sortParams)),
280-
281-
makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('CalculatedValue', 'value', intl, filterParams, sortParams)),
282-
283289
makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLoading', 'loading', intl, filterParams, sortParams)),
290+
makeAgGridCustomHeaderColumn(
291+
makeAgGridFloatColumn('PatlLoading', 'patlLoading', intl, filterParams, sortParams)
292+
),
293+
makeAgGridCustomHeaderColumn(
294+
makeAgGridDurationColumn('actualOverloadDuration', 'acceptableDuration', intl, filterParams, sortParams)
295+
),
296+
makeAgGridCustomHeaderColumn(
297+
makeAgGridDurationColumn(
298+
'upComingOverloadDuration',
299+
'upcomingAcceptableDuration',
300+
intl,
301+
filterParams,
302+
sortParams
303+
)
304+
),
305+
makeAgGridCustomHeaderColumn({
306+
...makeAgGridStringColumn(
307+
'NextLimitNameCurrentViolation',
308+
'nextLimitName',
309+
intl,
310+
filterParams,
311+
sortParams,
312+
[FILTER_TEXT_COMPARATORS.EQUALS]
313+
),
314+
valueFormatter: (params: ValueFormatterParams) => formatNAValue(params.value, intl),
315+
}),
284316

317+
makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('LimitLabelAOrKv', 'limit', intl, filterParams, sortParams)),
285318
makeAgGridCustomHeaderColumn(
286-
makeAgGridDurationColumn('Overload', 'acceptableDuration', intl, filterParams, sortParams)
319+
makeAgGridFloatColumn('PatlLimitValue', 'patlLimit', intl, filterParams, sortParams)
287320
),
288321

322+
makeAgGridCustomHeaderColumn(makeAgGridFloatColumn('CalculatedValue', 'value', intl, filterParams, sortParams)),
323+
289324
makeAgGridCustomHeaderColumn({
290325
headerName: intl.formatMessage({ id: 'LimitSide' }),
291326
colId: 'side',
@@ -776,8 +811,11 @@ export const FROM_COLUMN_TO_FIELD_N: Record<string, string> = {
776811
side: 'side',
777812
acceptableDuration: 'acceptableDuration',
778813
limit: 'limit',
814+
patlLimit: 'patlLimit',
779815
value: 'value',
780816
loading: 'loading',
817+
patlLoading: 'patlLoading',
818+
upcomingAcceptableDuration: 'upcomingAcceptableDuration',
781819
};
782820

783821
export const FROM_COLUMN_TO_FIELD_NMK_CONTINGENCIES: Record<string, string> = {

src/components/results/securityanalysis/security-analysis.type.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,19 @@ export interface SecurityAnalysisResultNmkProps {
144144
}
145145

146146
export interface SecurityAnalysisNTableRow {
147+
subjectId?: string;
148+
locationId?: string;
147149
limit?: number;
150+
limitName?: string | null;
148151
limitType?: string;
149-
loading?: number;
150-
subjectId?: string;
152+
nextLimitName?: string | null;
151153
value?: number;
154+
loading?: number;
155+
patlLoading?: number;
156+
patlLimit?: number;
157+
acceptableDuration?: number | null;
158+
upcomingAcceptableDuration?: number | null;
159+
side?: string;
152160
}
153161

154162
export interface SecurityAnalysisResultProps {

0 commit comments

Comments
 (0)