Estrutura Organizacional
Estrutura Organizacional
ANTT - ANTT - 2719496
Diretoria Geral - DG - 2719542
Assessoria Especial de Informações Estratégicas e Inteligência - AESINF - 2719617
Assessoria Especial de Relações Parlamentares e Institucionais - AESPI - 2719632
Assessoria Especial de Comunicação - AESCOM - 2719602
Gabinete do Diretor-Geral - GAB - 2719582
Diretoria Colegiada - DC - 2719557
Auditoria Interna - AUDIT - 2719657
Procuradoria Federal junto à ANTT - PF-ANTT - 2719672
Corregedoria - COREG - 2719692
Ouvidoria - OUVID - 2719707
Secretaria-Executiva da Comissão de Ética da ANTT - SECET - 2719722
Superintendências - Superintendências - 2719512
Superintendência de Gestão Administrativa - SUDEG - 2719807
Superintendência de Tecnologia da Informação - SUTEC - 2719777
Superintendência de Serviços de Transporte Rodoviário e Multimodal de Cargas - SUROC - 2719822
Superintendência de Fiscalização de Serviços de Transporte Rodoviário de Cargas e Passageiros - SUFIS - 2719845
Superintendência de Governança, Gestão Estratégica e de Pessoal - SUESP - 2719792
Superintendência de Serviços de Transporte Rodoviário de Passageiros - SUPAS - 2719747
Superintendência de Concessão da Infraestrutura - SUCON - 2719875
Superintendência de Transporte Ferroviário - SUFER - 2719762
Superintendência de Infraestrutura Rodoviária` - SUROD - 2719860
ANTT nos Estados - ANTT nos Estados - 2719527
Superintendência de Gestão Administrativa - SUDEG - 2719900
Coordenação Regional de Apoio Logístico - CE - - 2720083
Superintendência de Transporte Ferroviário - SUFER - 2719915
Superintendência de Infraestrutura Rodoviária - SUROD - 2719930
Superintendência de Fiscalização - SUFIS - 2719945
Um erro ocorreu enquanto processava o modelo.
Denied access to method or field getCookies of class io.undertow.servlet.spec.HttpServletRequestImpl ---- FTL stack trace ("~" means nesting-related): - Failed at: #if request?? && request.getCookies()?? [in template "20098#20124#1609341" at line 6, column 1] ----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
3
4<#assign isFormEnabled = false />
5<#assign ddmFormInstanceRecordId = "" />
6<#if request?? && request.getCookies()??>
7 <#assign cookies = request.getCookies() />
8<#else>
9 <#assign cookies = [] />
10</#if>
11<#list cookies as cookie>
12 <#if cookie.getName() == "GUEST_LANGUAGE_ID">
13 <#assign GUEST_LANGUAGE_ID = cookie.getValue() />
14 </#if>
15</#list>
16
17<div class="organograma">
18 <#if entries?has_content && (entries?size > 3)>
19
20 <#-- BANNER -->
21 <#assign sort_modified_date = entries?sort_by("modifiedDate")?reverse />
22 <div class="card template-card-horizontal no-print">
23 <div class="card-body">
24 <div class="row no-gutters h-100">
25 <div class="col-xs-5 col-lg-4 bg-green d-flex align-items-center">
26 <div class="content">
27 <h3>Organograma</h3>
28 <h6 title="${sort_modified_date[0].getTitle(locale)}">Atualizado em ${sort_modified_date?first.getModifiedDate()?date}</h6>
29 </div>
30 </div>
31 <div class="col-xs-2 col-lg-2 triangulo-bg">
32 <@triangulosAntt />
33 </div>
34 <div class="col-xs-5 col-lg-6 align-self-center text-right">
35 <img
36 src="${themeDisplay.getPathThemeImages()}/logo_antt_white.svg"
37 alt="Logo Antt"
38 title="Logo Antt"
39 width="170"
40 class="logo Branca"
41 />
42 </div>
43 </div>
44 </div>
45 </div>
46
47 <#-- NAVEGAÇÃO -->
48 <div class="d-none d-lg-flex row no-gutters align-items-center bg-primary navigation no-print">
49 <div class="col-md-10">
50 <ul class="nav nav-tabs" role="tablist">
51 <li class="nav-item">
52 <a
53 aria-controls="simplificado"
54 aria-expanded="true"
55 class="nav-link"
56 data-toggle="tab"
57 href="#simplificado"
58 id="simplificadoTab"
59 role="tab"
60 >
61 <i class="fas fa-sitemap"></i>
62 <h5>Ver organograma simplificado</h5>
63 </a>
64 </li>
65 <li class="nav-item">
66 <a
67 aria-controls="completo"
68 class="active nav-link"
69 data-toggle="tab"
70 href="#completo"
71 id="completoTab"
72 role="tab"
73 >
74 <i class="fas fa-sitemap"></i>
75 <h5>Ver organograma completo</h5>
76 </a>
77 <button class="btn nav-link" id="print" type="button">
78 <i class="fas fa-print"></i>
79 <h5>Imprimir</h5>
80 </button>
81 </li>
82 </ul>
83 </div>
84 <div class="col-md-2 text-right">
85 <button class="btn btn-monospaced active" type="button">PORT</button>
86 <button class="btn btn-monospaced" href="/c/portal/update_language?p_l_id=54&redirect=%2Fweb%2Fguest%2Festrutura-organizacional&languageId=en_US" target="_self" class="lfr-icon-item taglib-icon focus" type="button">ENG</button>
87 </div>
88 </div>
89
90 <div class="tab-content">
91 <div
92 aria-labelledby="simplificadoTab"
93 class="organograma-simple fade tab-pane"
94 id="simplificado"
95 role="tabpanel"
96 >
97 <#-- ORGANOGRAMA SIMPLIFICADO -->
98 <#-- RAIZ -->
99 <#assign assetRendererFirst = entries?first.getAssetRenderer() />
100 <#assign docXmlFirst = saxReaderUtil.read(assetRendererFirst.getArticle().getContent()) />
101 <#assign rootFirst = docXmlFirst.getRootElement() />
102 <#assign nivel_2_listXml = rootFirst.selectNodes("//dynamic-element[@name='nivel_2_sigla']") />
103 <#assign legendaList = [] />
104
105 <img
106 src="${themeDisplay.getPathThemeImages()}/logo_antt.svg"
107 alt="Logo Antt"
108 title="Logo Antt"
109 width="118"
110 class="logo absolute no-print"
111 />
112
113 <div class="row raiz has_${entries?size-5}_child">
114 <div class="col-6 diretoria-colegiada">
115 <div class="row">
116 <div class="col-3 offset-3">
117 <div class="block nivel-1-item">
118 <fieldset>${entries?first.getTitle(locale)}</fieldset>
119 </div>
120 </div>
121 </div>
122
123 <#if nivel_2_listXml?has_content>
124 <div class="row">
125 <#if (nivel_2_listXml?size > 3 )>
126 <#list nivel_2_listXml[0..2] as nivel_2Xml>
127 <#assign sigla = nivel_2Xml.elementText("dynamic-content") />
128 <#assign nivel_3_listXml = nivel_2Xml.selectNodes("dynamic-element[@name='nivel_3_sigla']") />
129
130 <div class="col-3">
131 <div class="block nivel-2-item">
132 <fieldset>${sigla}</fieldset>
133 </div>
134 <#if nivel_3_listXml?has_content>
135 <ul>
136 <#list nivel_3_listXml as nivel_3Xml>
137 <#assign sigla_nivel_3 = nivel_3Xml.elementText("dynamic-content") />
138 <#if sigla_nivel_3 != "">
139 <li class="block nivel-3-item">
140 <fieldset>${sigla_nivel_3}</fieldset>
141 </li>
142 </#if>
143 </#list>
144 </ul>
145 </#if>
146 </div>
147 </#list>
148 <div class="col-3">
149 <#list nivel_2_listXml[3..] as nivel_2Xml>
150 <#assign sigla = nivel_2Xml.elementText("dynamic-content") />
151 <#assign nivel_3_listXml = nivel_2Xml.selectNodes("dynamic-element[@name='nivel_3_sigla']") />
152
153 <div class="block nivel-2-item">
154 <fieldset>${sigla}</fieldset>
155 </div>
156 <#if nivel_3_listXml?has_content>
157 <ul>
158 <#list nivel_3_listXml as nivel_3Xml>
159 <#assign sigla_nivel_3 = nivel_3Xml.elementText("dynamic-content") />
160 <#if sigla_nivel_3 != "">
161 <li class="block nivel-3-item">
162 <fieldset>${sigla_nivel_3}</fieldset>
163 </li>
164 </#if>
165 </#list>
166 </ul>
167 </#if>
168 </#list>
169 </div>
170 <#else>
171 <#list nivel_2_listXml as nivel_2Xml>
172 <#assign sigla = nivel_2Xml.elementText("dynamic-content") />
173 <#assign nivel_3_listXml = nivel_2Xml.selectNodes("dynamic-element[@name='nivel_3_sigla']") />
174 <div class="col-3">
175 <div class="block nivel-2-item">
176 <fieldset>${sigla}</fieldset>
177 </div>
178 <#if nivel_3_listXml?has_content>
179 <ul>
180 <#list nivel_3_listXml as nivel_3Xml>
181 <#assign sigla_nivel_3 = nivel_3Xml.elementText("dynamic-content") />
182 <#if sigla_nivel_3 != "">
183 <li class="block nivel-3-item">
184 <fieldset>${sigla_nivel_3}</fieldset>
185 </li>
186 </#if>
187 </#list>
188 </ul>
189 </#if>
190 </div>
191 </#list>
192 </#if>
193 </div>
194
195 <#list nivel_2_listXml as nivel_2Xml>
196 <#assign legenda = {
197 "sigla": nivel_2Xml.elementText("dynamic-content"),
198 "nome": nivel_2Xml.valueOf("dynamic-element[@name='nivel_2_nome']/dynamic-content[@language-id='pt_BR']/text()")
199 } />
200 <#assign legendaList = legendaList + [legenda] />
201 </#list>
202 </#if>
203 </div>
204
205 <#-- PRIMEIRA LINHA DIREITA: FILHAS DE DIRETORIA-GERAL -->
206 <div class="col-6 diretoria-geral">
207 <div class="row">
208 <div class="col-4 offset-dg offset-dg-${entries?size-5}">
209 <div class="block nivel-1-item">
210 <fieldset>${entries[1].getTitle(locale)}</fieldset>
211 </div>
212 </div>
213 </div>
214 <#if (entries?size > 3)>
215 <div class="row has_${entries?size-5}_child">
216 <#list entries[2..3] as curEntry>
217 <#assign assetRenderer = curEntry.getAssetRenderer() />
218 <#assign docXml = saxReaderUtil.read(assetRenderer.getArticle().getContent()) />
219 <#assign sigla = docXml.valueOf("//dynamic-element[@name='sigla']/dynamic-content[@language-id='pt_BR']/text()") />
220 <#assign nome = docXml.valueOf("//dynamic-element[@name='nome']/dynamic-content[@language-id='pt_BR']/text()") />
221 <#assign root = docXml.getRootElement() />
222 <#assign nivel_2_listXml = root.selectNodes("//dynamic-element[@name='nivel_2_sigla']") />
223
224 <div class="col-3 ${curEntry?is_first?then('offset-3','')}">
225 <div class="block nivel-2-item" title="${nome}">
226 <fieldset>${sigla}</fieldset>
227 </div>
228
229 <#if nivel_2_listXml?has_content && nivel_2_listXml[0].elementText("dynamic-content") != "">
230 <ul>
231 <#list nivel_2_listXml as nivel_2Xml>
232 <#assign sigla_nivel_2 = nivel_2Xml.elementText("dynamic-content") />
233 <#assign nivel_2_nome = nivel_2Xml.valueOf("dynamic-element[@name='nivel_2_nome']/dynamic-content[@language-id='pt_BR']/text()") />
234
235 <#assign legenda = {
236 "sigla": sigla_nivel_2,
237 "nome": nivel_2_nome
238 } />
239 <#assign legendaList = legendaList + [legenda] />
240
241 <li class="block nivel-3-item">
242 <fieldset>${sigla_nivel_2}</fieldset>
243 </li>
244 </#list>
245 </ul>
246 </#if>
247 </div>
248
249 <#assign legenda = {
250 "sigla": sigla,
251 "nome": nome
252 } />
253 <#assign legendaList = legendaList + [legenda] />
254 </#list>
255 </div>
256 </#if>
257 </div>
258 </div>
259
260 <#-- SEGUNDA LINHA: FILHAS DE DIRETORIA-GERAL -->
261 <#if (entries?size > 3)>
262 <div class="row nivel-2-generico has_${entries?size-5}_child">
263 <#list entries[4..] as curEntry>
264 <#if curEntry?has_next>
265 <#assign assetRenderer = curEntry.getAssetRenderer() />
266 <#assign docXml = saxReaderUtil.read(assetRenderer.getArticle().getContent()) />
267 <#assign sigla = docXml.valueOf("//dynamic-element[@name='sigla']/dynamic-content[@language-id='pt_BR']/text()") />
268 <#assign nome = docXml.valueOf("//dynamic-element[@name='nome']/dynamic-content[@language-id='pt_BR']/text()") />
269 <#assign root = docXml.getRootElement() />
270 <#assign nivel_2_listXml = root.selectNodes("//dynamic-element[@name='nivel_2_sigla']") />
271
272 <div class="col">
273 <div class="block nivel-2-item">
274 <fieldset>${sigla}</fieldset>
275 </div>
276
277 <#if nivel_2_listXml?has_content && nivel_2_listXml[0].elementText("dynamic-content") != "">
278 <ul>
279 <#list nivel_2_listXml as nivel_2Xml>
280 <#assign sigla_nivel_2 = nivel_2Xml.elementText("dynamic-content") />
281 <#assign nome_nivel_2 = nivel_2Xml.valueOf("dynamic-element[@name='nivel_2_nome']/dynamic-content[@language-id='pt_BR']/text()") />
282
283 <li class="block nivel-3-item">
284 <fieldset>${sigla_nivel_2}</fieldset>
285 </li>
286
287 <#assign legenda = {
288 "sigla": sigla_nivel_2,
289 "nome": nome_nivel_2
290 } />
291 <#assign legendaList = legendaList + [legenda] />
292 </#list>
293 </ul>
294 </#if>
295 </div>
296
297 <#assign legenda = {
298 "sigla": sigla,
299 "nome": nome
300 } />
301 <#assign legendaList = legendaList + [legenda] />
302 </#if>
303 </#list>
304 </div>
305
306 <#-- TERCEIRA E QUARTA LINHA: UNIDADES REGIONAIS -->
307 <#assign assetRendererLast = entries?last.getAssetRenderer() />
308 <#assign docXmlLast = saxReaderUtil.read(assetRendererLast.getArticle().getContent()) />
309 <#assign rootLast = docXmlLast.getRootElement() />
310 <#assign lastList = rootLast.selectNodes("//dynamic-element[@name='sigla']") />
311
312 <div class="row ur">
313 <div class="col offset-ur">
314 <div class="block nivel-2-item">
315 <fieldset>${entries?last.getTitle(locale)}</fieldset>
316 </div>
317 </div>
318 </div>
319
320 <#if lastList?has_content>
321 <div class="row ur">
322 <#list lastList as itemXml>
323 <#assign item = itemXml.elementText("dynamic-content") />
324 <#assign nome = itemXml.valueOf("dynamic-element[@name='nome']/dynamic-content[@language-id='pt_BR']/text()") />
325
326 <div class="col">
327 <div class="block nivel-3-item">
328 <fieldset>${item}</fieldset>
329 </div>
330 </div>
331
332 <#assign legenda = {
333 "sigla": item,
334 "nome": nome
335 } />
336 <#assign legendaList = legendaList + [legenda] />
337 </#list>
338 </div>
339 </#if>
340 </#if>
341
342 <#-- LEGENDA -->
343 <div class="bg-primary text-right separator no-print">
344 <img
345 src="${themeDisplay.getPathThemeImages()}/logo_antt.svg"
346 alt="Logo Antt"
347 title="Logo Antt"
348 width="118"
349 class="logo"
350 />
351 </div>
352
353 <#if legendaList?has_content>
354 <h5>Legenda</h5>
355 <ul class="subtitle">
356 <#list legendaList?sort_by("sigla") as legenda>
357 <li class="row">
358 <h6 class="col-2 m-0">${legenda.sigla}</h6>
359 <small class="col-10">${legenda.nome}</small>
360 </li>
361 </#list>
362 </ul>
363 </#if>
364 </div>
365
366 <#-- ORGANOGRAMA COMPLETO -->
367 <div
368 aria-labelledby="completoTab"
369 class="organograma-full active fade show tab-pane"
370 id="completo"
371 role="tabpanel"
372 >
373 <#list entries as curEntry>
374 <#assign asset = assetEntryLocalService.fetchEntry(curEntry.getEntryId()) />
375 <#assign webArticle = asset.getAssetRenderer().getArticle() />
376 ${journalArticleLocalService.getArticleContent(webArticle, webArticle.getDDMTemplateKey(), "VIEW", locale, model, themeDisplay)}
377 </#list>
378 </div>
379 </div>
380 <#else>
381 <div class="bg-light text-center p-5">
382 <img
383 src="/o/admin-theme/images/states/empty_state.gif"
384 alt="Nenhum arquivo no momento"
385 title="Vazio"
386 class="mb-4"
387 >
388 <p>Não há conteúdos o suficiente para montar o organograma.</p>
389 <p>Só há ${entries?size} conteúdos na lista. Favor, selecione pelo menos 3 itens a serem exibidos.</p>
390 </div>
391 </#if>
392
393 <script>
394 $(function () {
395 $("[data-toggle='tooltip']").tooltip();
396 });
397 </script>
398</div>
399
400<#macro triangulosAntt>
401 <svg
402 viewBox="0 0 293 168"
403 fill="none"
404 xmlns="http://www.w3.org/2000/svg"
405 >
406 <path d="M195.75 168L98.8369 168L147.439 84.3643L195.75 168Z" />
407 <path d="M195.677 0L148.021 83.49C149.302 86.1127 150.931 86.477 151.586 86.3313L239.405 75.8404L195.677 0Z" />
408 <path d="M258.758 75.549L152.023 88.2255L194.659 162.026L258.758 75.549Z" />
409 <path d="M292.518 168H196.914C195.052 165.844 195.362 164.333 195.75 163.847L248.863 92.2324L292.518 168Z" />
410 <path d="M96.7676 6.77241e-06L193.681 1.52588e-05L145.079 83.6357L96.7676 6.77241e-06Z" />
411 <path d="M96.8404 168L144.497 84.51C143.216 81.8873 141.586 81.523 140.931 81.6687L53.1131 92.1596L96.8404 168Z" />
412 <path d="M33.7596 92.451L140.495 79.7745L97.859 5.97399L33.7596 92.451Z" />
413 <path d="M6.04392e-05 -1.70123e-06L95.6035 6.67047e-06C97.4661 2.15647 97.1557 3.66697 96.7676 4.15266L43.6546 75.7676L6.04392e-05 -1.70123e-06Z" />
414 </svg>
415</#macro>
416<style>@media print{
417 .page-title{
418 display: none;
419 }
420}</style>