Rev 1422 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1244 | jmachado | 1 | package pt.estgp.estgweb.services.sigesimports.oracle.dao; |
2 | |||
3 | import pt.estgp.estgweb.services.sigesimports.oracle.domain.Disciplina; |
||
4 | import pt.estgp.estgweb.services.sigesimports.oracle.domain.Docente; |
||
5 | |||
6 | import java.sql.Connection; |
||
7 | import java.sql.PreparedStatement; |
||
8 | import java.sql.ResultSet; |
||
9 | import java.sql.SQLException; |
||
10 | import java.util.ArrayList; |
||
11 | import java.util.List; |
||
12 | |||
13 | /** |
||
14 | * Created by jorgemachado on 20/01/16. |
||
15 | */ |
||
16 | public class DocenteDao extends AbstractDao<Docente> { |
||
17 | |||
18 | private static DocenteDao instance = null; |
||
19 | |||
20 | private DocenteDao() { |
||
21 | } |
||
22 | |||
23 | public static DocenteDao getInstance() { |
||
24 | if (instance == null) |
||
25 | instance = new DocenteDao(); |
||
26 | return instance; |
||
27 | } |
||
28 | |||
29 | //deprecated |
||
30 | public 1.5.0/docs/api/java/lang/String.html">String getTable() { |
||
31 | //return "DOCENTE"; |
||
32 | return "DOCENTE"; |
||
33 | } |
||
34 | |||
35 | public 1.5.0/docs/api/java/lang/String.html">String getIdColumn() { |
||
36 | return "CD_FUNCIONARIO"; |
||
37 | } |
||
38 | |||
39 | |||
1270 | jmachado | 40 | public Docente load(1.5.0/docs/api/java/lang/Integer.html">Integer codigo, 1.5.0/docs/api/java/lang/Integer.html">Integer codigoInstituicao, 1.5.0/docs/api/java/lang/String.html">String ano,1.5.0/docs/api/java/sql/Connection.html">Connection conn) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException { |
1244 | jmachado | 41 | |
1270 | jmachado | 42 | boolean closeConn = conn == null; |
43 | if(conn == null) |
||
44 | conn = getCurrentConnection(); |
||
1244 | jmachado | 45 | |
46 | //NOVO DESDE A ALTERACAO DO SIGES |
||
47 | 1.5.0/docs/api/java/sql/PreparedStatement.html">PreparedStatement catCMD = conn.prepareStatement("SELECT * FROM CSP.T_FUNCIONARIOS INNER JOIN SIGES.T_INDIVIDUO on SIGES.T_INDIVIDUO.ID_INDIVIDUO = CSP.T_FUNCIONARIOS.ID_INDIVIDUO where " + getIdColumn() + "=" + codigo); |
||
48 | 1.5.0/docs/api/java/sql/ResultSet.html">ResultSet aReader = catCMD.executeQuery(); |
||
49 | if (aReader.next()) { |
||
50 | Docente c = load(aReader); |
||
51 | c.disciplinas = loadDisciplinasDosDocentes(codigo, codigoInstituicao, ano); |
||
52 | catCMD.close(); |
||
53 | aReader.close(); |
||
1270 | jmachado | 54 | if(closeConn) |
55 | conn.close(); |
||
1244 | jmachado | 56 | return c; |
57 | } |
||
58 | aReader.close(); |
||
59 | catCMD.close(); |
||
1270 | jmachado | 60 | if(closeConn) |
61 | conn.close(); |
||
1244 | jmachado | 62 | //close the reader |
63 | return null; |
||
64 | } |
||
65 | |||
66 | |||
67 | protected Docente load(1.5.0/docs/api/java/sql/ResultSet.html">ResultSet aReader) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException |
||
68 | { |
||
69 | Docente d = new Docente(); |
||
70 | d.codigoFuncionario = getDecimal("CD_FUNCIONARIO", aReader); //ok T_FUNCIONARIO |
||
71 | |||
72 | d.nome = getString("NOME", aReader); //ok T_INDIVIDUO FALTA VER O "NOME" |
||
73 | |||
74 | //d.nomeFuncionario = getString("NM_FUNCIONARIO", aReader); //ok |
||
75 | d.nomeFuncionarioInt = getString("NM_COMPLETO", aReader); //ok T_INDIVIDUO FALTA VER O "NOME" |
||
76 | |||
77 | //d.nomeFuncionarioInt = getString("NM_FUNC_INT", aReader); |
||
78 | d.nomeFuncionario = getString("NM_ABREVIADO", aReader); //ok T_INDIVIDUO |
||
79 | |||
80 | d.nomeAcademico = getString("NM_ACADEMICO", aReader); //ok T_INDIVIDUO |
||
81 | |||
82 | //d.sexo = getString("CD_SEXO", aReader); |
||
83 | d.sexo = getString("SEXO", aReader); //ok |
||
84 | |||
85 | d.data_nascimento = getDateTime("DT_NASCIMENTO", aReader); //ok T_INDIVIDUO |
||
86 | |||
87 | d.morada = getString("DS_MORADA", aReader); //ok T_INDIVIDUO |
||
88 | |||
89 | d.codigoPostal = getDecimal("CD_POSTAL", aReader); //ok T_INDIVIDUO confirmar com CD_POSTAL |
||
90 | |||
91 | //d.subCodigoPostal = getInteger("CD_SUBCOD2", aReader); |
||
92 | d.subCodigoPostal = getDecimal("CD_SUBPOS", aReader); //ok T_INDIVIDUO confirmar com CD_SUPPOS |
||
93 | |||
94 | //d.email = getString("DS_EMAIL",aReader); |
||
95 | d.email = getString("EMAIL", aReader); //ok T_INDIVIDUO |
||
96 | |||
97 | //d.numeroBi = getString("NR_BI", aReader); // FALTA VER CODIGO DE IDENTIFICACAO_TIPO em CD_TIPO_ID |
||
98 | d.numeroBi = getString("IDENTIFICACAO", aReader); //ok T_INDIVIDUO |
||
99 | |||
100 | //d.usernameNetpa = getString("USERNAME_NETPA", aReader); |
||
101 | d.usernameNetpa = getString("USER_NETPA", aReader); //ok T_FUNCIONARIO |
||
1553 | jmachado | 102 | |
103 | d.codigoNacionalidade = getDecimal("CD_NACIONA",aReader); |
||
1244 | jmachado | 104 | return d; |
105 | } |
||
106 | |||
107 | public ArrayList<Integer> loadCodigosDocentes(1.5.0/docs/api/java/lang/Integer.html">Integer codigoInstituicao, 1.5.0/docs/api/java/lang/String.html">String ano) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException { |
||
108 | ArrayList<Integer> codigos = new ArrayList<Integer>(); |
||
109 | 1.5.0/docs/api/java/sql/Connection.html">Connection conn = getCurrentConnection(); |
||
110 | 1.5.0/docs/api/java/sql/PreparedStatement.html">PreparedStatement catCMD = conn.prepareStatement("SELECT DISTINCT CSD.T_DOC_TURMA.CD_DOCENTE AS CD FROM CSD.T_DOC_TURMA INNER JOIN CSE.T_TBDISCIP ON CSE.T_TBDISCIP.CD_DISCIP = CSD.T_DOC_TURMA.CD_DISCIP WHERE CSD.T_DOC_TURMA.CD_LECTIVO='" + ano + "' AND CSE.T_TBDISCIP.CD_INSTITUIC=" + codigoInstituicao); |
||
111 | 1.5.0/docs/api/java/sql/ResultSet.html">ResultSet aReader = catCMD.executeQuery(); |
||
112 | while (aReader.next()) { |
||
113 | codigos.add(getDecimal("CD", aReader)); |
||
114 | } |
||
115 | //close the reader |
||
116 | aReader.close(); |
||
117 | catCMD.close(); |
||
118 | conn.close(); |
||
119 | return codigos; |
||
120 | } |
||
121 | |||
122 | /*por esta nos cursos para obter topologias das cadeiras em vez de o fazermos no docente |
||
123 | |||
124 | /* |
||
125 | Extrai do Horario de Trabalho (dos Sumários) todas as combinações de códigos Tipo aula cadeiras do docente |
||
126 | 20128 |
||
127 | QUERY DAS TOPOLOGIAS A PARTIR DAS CADEIRAS |
||
128 | |||
129 | SELECT DISTINCT |
||
130 | CSE.T_TBDISCIP.CD_INSTITUIC, |
||
131 | CSH.T_DETALHE_AULA.CD_LECTIVO AS CD_LECTIVO, |
||
132 | CSH.T_DETALHE_AULA.CD_PERIODO AS CD_PERIODO, |
||
133 | CSH.T_DETALHE_AULA.CD_DISCIP AS CD_DISCIP, |
||
134 | CSH.T_DETALHE_AULA.CD_TURMA AS CD_TURMA, |
||
135 | CSH.T_DETALHE_AULA.CD_DOCENTE AS CD_DOCENTE, |
||
136 | CSD.T_SUMARIOS_AULAS.CD_TIPO_AULA AS CD_TIPO_AULA |
||
137 | FROM CSH.T_DETALHE_AULA |
||
138 | JOIN CSD.T_SUMARIOS_AULAS ON |
||
139 | CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO |
||
140 | AND CSD.T_SUMARIOS_AULAS.CD_ESTADO = 1 |
||
141 | JOIN |
||
142 | CSE.T_TURMA ON |
||
143 | CSH.T_DETALHE_AULA.CD_TURMA = CSE.T_TURMA.CD_TURMA |
||
144 | AND |
||
145 | CSH.T_DETALHE_AULA.CD_LECTIVO = CSE.T_TURMA.CD_LECTIVO |
||
146 | AND |
||
147 | CSH.T_DETALHE_AULA.CD_PERIODO = CSE.T_TURMA.CD_DURACAO |
||
148 | AND |
||
149 | CSH.T_DETALHE_AULA.CD_DISCIP = CSE.T_TURMA.CD_DISCIP |
||
150 | JOIN |
||
151 | CSE.T_TBDISCIP ON |
||
152 | CSE.T_TBDISCIP.CD_DISCIP = CSH.T_DETALHE_AULA.CD_DISCIP |
||
153 | WHERE |
||
154 | (CSE.T_TURMA.CD_CURSO = '9500' OR CSE.T_TURMA.CD_CURSO is NULL) AND |
||
155 | CSE.T_TBDISCIP.CD_INSTITUIC = 4 AND |
||
156 | CSH.T_DETALHE_AULA.CD_DISCIP = 704330 AND |
||
157 | CSH.T_DETALHE_AULA.CD_LECTIVO = '201516' AND |
||
158 | CSH.T_DETALHE_AULA.CD_PERIODO = 'S1'; |
||
159 | |||
160 | * |
||
161 | * */ |
||
162 | public ArrayList<Disciplina> loadDisciplinasDosDocentes(1.5.0/docs/api/java/lang/Integer.html">Integer codigo, 1.5.0/docs/api/java/lang/Integer.html">Integer codigoInstituicao, 1.5.0/docs/api/java/lang/String.html">String ano) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException { |
||
163 | ArrayList<Disciplina> disciplinas = new ArrayList<Disciplina>(); |
||
164 | 1.5.0/docs/api/java/sql/Connection.html">Connection conn = getCurrentConnection(); |
||
165 | 1.5.0/docs/api/java/sql/PreparedStatement.html">PreparedStatement catCMD = conn.prepareStatement( |
||
166 | "SELECT DISTINCT CSE.T_TBDISCIP.CD_DISCIP AS CD_DISCIP, " + |
||
167 | //" CSD.T_DOC_TURMA.CD_TURMA AS CD_TURMA, " + |
||
168 | " CSD.T_DOC_TURMA.CD_LECTIVO, " + |
||
169 | " CSD.T_DOC_TURMA.CD_DURACAO, " + |
||
1312 | jmachado | 170 | " CSD.T_DOC_TURMA.CD_CURSO " + //PODE VIR A NULL SE FOR DE TURMAS MISTAS |
1244 | jmachado | 171 | //" CSD.T_DOC_TURMA.CD_FUNCAO_DOC, " + |
172 | //" CSD.T_SUMARIOS_AULAS.CD_TIPO_AULA " + |
||
173 | " FROM (CSD.T_DOC_TURMA " + |
||
174 | " INNER JOIN CSE.T_TBDISCIP ON CSE.T_TBDISCIP.CD_DISCIP = CSD.T_DOC_TURMA.CD_DISCIP) " + |
||
175 | /* " LEFT OUTER JOIN CSH.T_DETALHE_AULA ON " + |
||
176 | " CSH.T_DETALHE_AULA.CD_DOCENTE = CSD.T_DOC_TURMA.CD_DOCENTE " + |
||
177 | " AND " + |
||
178 | " CSH.T_DETALHE_AULA.CD_TURMA = CSD.T_DOC_TURMA.CD_TURMA " + |
||
179 | " AND " + |
||
180 | " CSH.T_DETALHE_AULA.CD_LECTIVO = CSD.T_DOC_TURMA.CD_LECTIVO " + |
||
181 | " AND " + |
||
182 | " CSH.T_DETALHE_AULA.CD_PERIODO = CSD.T_DOC_TURMA.CD_DURACAO " + |
||
183 | " AND " + |
||
184 | " CSH.T_DETALHE_AULA.CD_DISCIP = CSD.T_DOC_TURMA.CD_DISCIP " + |
||
185 | |||
186 | " LEFT OUTER JOIN CSD.T_SUMARIOS_AULAS ON CSD.T_SUMARIOS_AULAS.CD_SUMARIO = CSH.T_DETALHE_AULA.CD_SUMARIO " + |
||
187 | " AND CSD.T_SUMARIOS_AULAS.CD_ESTADO = 1 " + |
||
188 | */ "WHERE " + /*((" + |
||
189 | " CSH.T_DETALHE_AULA.CAMPO_REFERENCIA is not null " + |
||
190 | " AND " + |
||
191 | " CSD.T_SUMARIOS_AULAS.CD_TIPO_AULA is not NULL)" + //Queremos apenas casos em que haja Detalhe e Sumario |
||
192 | " or CSH.T_DETALHE_AULA.CAMPO_REFERENCIA IS NULL ) " + //Se nao houver detalhe tambem queremos |
||
193 | " AND " + |
||
194 | */ |
||
1250 | jmachado | 195 | " CSD.T_DOC_TURMA.CD_LECTIVO='" + ano + "' AND CSE.T_TBDISCIP.CD_INSTITUIC=" + codigoInstituicao + " AND CSD.T_DOC_TURMA.CD_DOCENTE = " + codigo ); |
1244 | jmachado | 196 | |
197 | |||
198 | 1.5.0/docs/api/java/sql/ResultSet.html">ResultSet aReader = catCMD.executeQuery(); |
||
199 | while (aReader.next()) { |
||
200 | Disciplina d = new Disciplina(); |
||
201 | d.codigo = getDecimal("CD_DISCIP", aReader); |
||
202 | d.codigoCurso = getDecimal("CD_CURSO", aReader); |
||
203 | //d.cdTurma = getString("CD_TURMA", aReader); |
||
204 | d.codigoInstituicao = codigoInstituicao; |
||
205 | d.cdLectivo = ano; |
||
206 | d.cdDuracao = getString("CD_DURACAO", aReader); |
||
207 | //d.cdTipologia = getDecimal("CD_TIPO_AULA", aReader); |
||
208 | //d.codigoFuncaoDocente = getDecimal("CD_FUNCAO_DOC",aReader); |
||
209 | disciplinas.add(d); |
||
1422 | jmachado | 210 | |
211 | 1.5.0/docs/api/java/sql/PreparedStatement.html">PreparedStatement queryTurmas = conn.prepareStatement |
||
212 | ("SELECT DISTINCT CSD.T_DOC_TURMA.CD_TURMA AS CD_TURMA " + |
||
213 | " FROM (CSD.T_DOC_TURMA " + |
||
214 | " INNER JOIN CSE.T_TBDISCIP ON CSE.T_TBDISCIP.CD_DISCIP = CSD.T_DOC_TURMA.CD_DISCIP) " + |
||
215 | " WHERE " + |
||
216 | " CSE.T_TBDISCIP.CD_DISCIP = " + d.codigo + " " + |
||
217 | " AND CSD.T_DOC_TURMA.CD_CURSO = '" + d.codigoCurso + "'" + |
||
218 | " AND CSD.T_DOC_TURMA.CD_DURACAO = '" + d.cdDuracao + "'" + |
||
219 | " AND CSD.T_DOC_TURMA.CD_LECTIVO='" + ano + "'" + |
||
220 | " AND CSE.T_TBDISCIP.CD_INSTITUIC=" + codigoInstituicao + " " + |
||
221 | " AND CSD.T_DOC_TURMA.CD_DOCENTE = " + codigo ); |
||
222 | 1.5.0/docs/api/java/sql/ResultSet.html">ResultSet turmas = queryTurmas.executeQuery(); |
||
223 | while(turmas.next()) |
||
224 | { |
||
225 | d.turmasDocente.add(turmas.getString("CD_TURMA")); |
||
226 | } |
||
227 | turmas.close(); |
||
228 | queryTurmas.close(); |
||
229 | |||
1244 | jmachado | 230 | } |
231 | //close the reader |
||
232 | aReader.close(); |
||
233 | catCMD.close(); |
||
234 | conn.close(); |
||
235 | return disciplinas; |
||
236 | } |
||
237 | |||
238 | |||
239 | /** Versao antes das Tipologias |
||
240 | |||
241 | public List<Disciplina> loadDisciplinasDosDocentes(Integer codigo, Integer codigoInstituicao, String ano) throws SQLException { |
||
242 | List<Disciplina> disciplinas = new ArrayList<Disciplina>(); |
||
243 | Connection conn = getCurrentConnection(); |
||
244 | PreparedStatement catCMD = conn.prepareStatement("SELECT DISTINCT CSE.T_TBDISCIP.CD_DISCIP AS CD_DISCIP, CSD.T_DOC_TURMA.CD_TURMA AS CD_TURMA, CSD.T_DOC_TURMA.CD_LECTIVO, CD_DURACAO, CD_CURSO FROM ((CSD.T_DOC_TURMA INNER JOIN CSE.T_TBDISCIP ON CSE.T_TBDISCIP.CD_DISCIP = CSD.T_DOC_TURMA.CD_DISCIP) INNER JOIN CSH.T_DETALHE_AULA ON CSH.T_DETALHE_AULA.CD_DOCENTE = CSD.T_DOC_TURMA.CD_DOCENTE AND CSH.T_DETALHE_AULA.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP) WHERE CSD.T_DOC_TURMA.CD_LECTIVO='" + ano + "' AND CSE.T_TBDISCIP.CD_INSTITUIC=" + codigoInstituicao + " AND CSD.T_DOC_TURMA.CD_DOCENTE = " + codigo); |
||
245 | |||
246 | ResultSet aReader = catCMD.executeQuery(); |
||
247 | while (aReader.next()) { |
||
248 | Disciplina d = new Disciplina(); |
||
249 | d.codigo = getDecimal("CD_DISCIP", aReader); |
||
250 | d.codigoCurso = getDecimal("CD_CURSO", aReader); |
||
251 | d.cdTurma = getString("CD_TURMA", aReader); |
||
252 | d.codigoInstituicao = codigoInstituicao; |
||
253 | d.cdLectivo = ano; |
||
254 | d.cdDuracao = getString("CD_DURACAO", aReader); |
||
255 | disciplinas.add(d); |
||
256 | } |
||
257 | //close the reader |
||
258 | aReader.close(); |
||
259 | catCMD.close(); |
||
260 | conn.close(); |
||
261 | return disciplinas; |
||
262 | } |
||
263 | ***/ |
||
264 | |||
265 | |||
266 | public static void main(1.5.0/docs/api/java/lang/String.html">String[] args) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException { |
||
1247 | jmachado | 267 | List<Integer> cods = new DocenteDao().loadCodigosDocentes(1,"201516"); |
268 | for(1.5.0/docs/api/java/lang/Integer.html">Integer c:cods) |
||
269 | 1.5.0/docs/api/java/lang/System.html">System.out.println(c); |
||
1244 | jmachado | 270 | List<Disciplina> ds = new DocenteDao().loadDisciplinasDosDocentes(20074,1,"201516"); |
271 | for(Disciplina d: ds) |
||
272 | { |
||
273 | 1.5.0/docs/api/java/lang/System.html">System.out.println(d.codigo + " - " + d.nome + " - " + d.codigoCurso + "-" + d.nomeCurso); |
||
274 | } |
||
275 | 1.5.0/docs/api/java/lang/System.html">System.out.println(ds); |
||
276 | ds = new DocenteDao().loadDisciplinasDosDocentes(20128,1,"201516"); |
||
277 | 1.5.0/docs/api/java/lang/System.html">System.out.println(ds); |
||
278 | } |
||
279 | } |