1
2
3
4
5 package ecar.servlet.relatorio;
6
7 import java.util.Date;
8 import java.util.Iterator;
9 import java.util.List;
10
11 import javax.servlet.http.HttpServletRequest;
12
13 import comum.util.Data;
14 import comum.util.Mensagem;
15 import comum.util.Pagina;
16 import comum.util.Util;
17 import comum.util.XmlBuilder;
18
19 import ecar.dao.RegControleAcessoRcaDao;
20 import ecar.exception.ECARException;
21 import ecar.pojo.RegControleAcessoRca;
22
23 public class RelatorioAcessoUsuario extends AbstractServletReportXmlXsl {
24
25 private static final long serialVersionUID = 3387112017468241181L;
26 private Date dataInicio = null;
27 private Date dataFim = null;
28 private String codUsu;
29 private String nomeUsu;
30 private List usuarios;
31 private String ordenacao;
32
33
34
35
36
37
38
39
40
41
42
43 public StringBuffer getXml(HttpServletRequest request) throws ECARException{
44 XmlBuilder builder = new XmlBuilder();
45
46 Util.liberarImagem();
47
48 if (!"".equals(Pagina.getParamStr(request, "dataInicio")))
49 dataInicio = Data.parseDate(Pagina.getParamStr(request, "dataInicio"));
50 if (!"".equals(Pagina.getParamStr(request, "dataFim")))
51 dataFim = Data.parseDate(Pagina.getParamStr(request, "dataFim"));
52
53 codUsu = Pagina.getParamStr(request, "codUsu");
54 nomeUsu = Pagina.getParamStr(request, "nomeUsu");
55 ordenacao = Pagina.getParamStr(request, "ordenacao");
56
57 builder.addNode(
58 "relatorio",
59 " titulo=\"" + builder.normalize(Pagina.getParamStr(request, "titulo_sistema")) + "\"" +
60 " dataHora=\"" + builder.normalize(Data.parseDateHourMinuteSecond(Data.getDataAtual())) + "\""
61 );
62
63
64 RegControleAcessoRcaDao regDao = new RegControleAcessoRcaDao(request);
65 if (!"".equals(codUsu)){
66 usuarios = regDao.listar(Long.valueOf(codUsu), dataInicio, dataFim, ordenacao);
67 } else {
68 usuarios = regDao.listar(null, dataInicio, dataFim, ordenacao);
69 }
70
71 geraXMLItens(builder, request);
72
73 builder.closeNode("relatorio");
74
75 return builder.toStringBuffer();
76 }
77
78
79
80
81
82
83
84
85
86 public String getXslFileName() {
87 return "relatorioAcessoUsuario.xsl";
88 }
89
90
91
92
93
94
95
96
97
98
99
100 public String getErrorPage(HttpServletRequest request, String mensagem){
101 String errorPage = "relatorios/rel_acessoUsuario.jsp?msgOperacao=" + mensagem;
102 return errorPage;
103 }
104
105
106
107
108
109
110
111
112
113
114
115 public void geraXMLItens (XmlBuilder builder, HttpServletRequest request) throws ECARException {
116 String coluna1 = "Nome do Usuário";
117 String coluna2 = "Data/Hora do Login";
118
119 if(!"usuario".equals(ordenacao)) {
120 coluna1 = "Data/Hora do Login";
121 coluna2 = "Nome do Usuário";
122 }
123
124 builder.addNode("filtro");
125
126 builder.addClosedNode("campo",
127 " label=\"" + builder.normalize("Ordenado por: ") + "\"" +
128 " valor=\"" + builder.normalize(coluna1) + "\"");
129
130 if (!"".equals(codUsu)){
131 builder.addClosedNode("campo",
132 " label=\"" + builder.normalize("Acessos do Usuário: ") + "\"" +
133 " valor=\"" + builder.normalize(nomeUsu) + "\"");
134 } else {
135 builder.addClosedNode("campo",
136 " label=\"" + builder.normalize("Acessos de Todos os Usuários") + "\"" +
137 " valor=\"" + builder.normalize("") + "\"");
138 }
139
140 builder.addClosedNode("campo",
141 " label=\"" + builder.normalize("Período de Acesso: ") + "\"" +
142 " valor=\"" + builder.normalize(Data.parseDate(dataInicio) + " até " + Data.parseDate(dataFim)) + "\"");
143
144 builder.closeNode("filtro");
145
146 builder.addNode("controleAcesso", "coluna1=\"" + coluna1 + "\" " + "coluna2=\"" + coluna2 + "\"");
147
148 if(usuarios == null || usuarios.isEmpty()) {
149 builder.addClosedNode("itemAcesso",
150 " campo1=\"" + new Mensagem(request.getSession().getServletContext()).getMensagem("relatorioAcessoUsuario.semRegistro.periodoInformado") + "\"");
151 } else {
152 Iterator itUsu = usuarios.iterator();
153 while (itUsu.hasNext()){
154
155 RegControleAcessoRca reg = (RegControleAcessoRca)itUsu.next();
156
157 String nomeUsuario = builder.normalize(reg.getUsuarioUsu().getNomeUsuSent());
158 String dataAcesso = builder.normalize("" + Data.parseDateHourMinuteSecond(reg.getDataAcessoRca()));
159
160 if("usuario".equals(ordenacao)) {
161 builder.addClosedNode("itemAcesso",
162 " campo1=\"" + nomeUsuario + "\"" +
163 " campo2=\"" + dataAcesso + "\"");
164 } else {
165 builder.addClosedNode("itemAcesso",
166 " campo1=\"" + dataAcesso + "\"" +
167 " campo2=\"" + nomeUsuario + "\"");
168 }
169 }
170 }
171 builder.closeNode("controleAcesso");
172 }
173 }