Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
algorithmes-de-parcoursup
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
4
Issues
4
List
Boards
Labels
Service Desk
Milestones
Merge Requests
2
Merge Requests
2
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Parcoursup
algorithmes-de-parcoursup
Commits
001550ae
Commit
001550ae
authored
Nov 20, 2018
by
Parcoursup
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'java-util-logging' into 'master'
Fix
#10
: System.out -> JUL Closes
#10
See merge request
!18
parents
7febb178
1fbf5356
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
136 additions
and
140 deletions
+136
-140
java/parcoursup/ordreappel/donnees/ConnecteurDonneesAppelOracle.java
...rsup/ordreappel/donnees/ConnecteurDonneesAppelOracle.java
+31
-31
java/parcoursup/propositions/EnvoiPropositions.java
java/parcoursup/propositions/EnvoiPropositions.java
+8
-10
java/parcoursup/propositions/algo/AlgoPropositions.java
java/parcoursup/propositions/algo/AlgoPropositions.java
+22
-24
java/parcoursup/propositions/donnees/ConnecteurDonneesPropositionsOracle.java
...ositions/donnees/ConnecteurDonneesPropositionsOracle.java
+36
-38
java/parcoursup/propositions/exemples/ExempleAleatoire.java
java/parcoursup/propositions/exemples/ExempleAleatoire.java
+15
-17
java/parcoursup/propositions/test/VerificationsResultats.java
.../parcoursup/propositions/test/VerificationsResultats.java
+24
-20
No files found.
java/parcoursup/ordreappel/donnees/ConnecteurDonneesAppelOracle.java
View file @
001550ae
...
...
@@ -19,18 +19,21 @@
*/
package
parcoursup.ordreappel.donnees
;
import
static
java
.
util
.
stream
.
Collectors
.
joining
;
import
parcoursup.ordreappel.algo.AlgoOrdreAppelEntree
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
oracle.jdbc.OracleDriver
;
import
oracle.jdbc.pool.OracleDataSource
;
import
parcoursup.ordreappel.algo.AlgoOrdreAppelSortie
;
...
...
@@ -40,8 +43,10 @@ import parcoursup.ordreappel.algo.VoeuClasse;
public
class
ConnecteurDonneesAppelOracle
implements
ConnecteurDonneesAppel
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
ConnecteurDonneesAppelOracle
.
class
.
getName
());
/* connexion à la base de données */
Connection
conn
=
null
;
private
final
Connection
conn
;
public
ConnecteurDonneesAppelOracle
(
String
url
,
String
user
,
String
password
)
throws
SQLException
{
if
(
url
==
null
||
url
.
isEmpty
())
{
...
...
@@ -67,7 +72,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
/* récupère la liste des groupes et les taux minimum de boursiers
et de résidents depuis la base de données */
log
(
"Récupération des groupes"
);
LOGGER
.
info
(
"Récupération des groupes"
);
stmt
.
setFetchSize
(
1000000
);
String
sql
...
...
@@ -99,7 +104,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
+
" AND ti.g_ti_eta_cla=2 "
+
" AND NVL(g.c_gp_flg_pas_cla, 0)!=1"
;
log
(
sql
);
LOGGER
.
info
(
sql
);
try
(
ResultSet
result
=
stmt
.
executeQuery
(
sql
))
{
...
...
@@ -140,7 +145,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
Set
<
Integer
>
groupesManquants
=
new
HashSet
<>();
/* récupère la liste des voeux depuis la base de données */
log
(
"Récupération des voeux"
);
LOGGER
.
info
(
"Récupération des voeux"
);
stmt
.
setFetchSize
(
1000000
);
String
sql
=
"SELECT "
//id du groupe de classement
...
...
@@ -176,7 +181,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
//seulement les formations qui classent
+
" AND NVL(gp.c_gp_flg_pas_cla, 0)!=1"
;
log
(
sql
);
LOGGER
.
info
(
sql
);
try
(
ResultSet
result
=
stmt
.
executeQuery
(
sql
))
{
...
...
@@ -215,12 +220,11 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
stmt
.
close
();
if
(!
groupesManquants
.
isEmpty
())
{
log
(
groupesManquants
.
size
()
+
" groupes manquants."
);
System
.
out
.
print
(
"("
);
for
(
int
c_gp_cod
:
groupesManquants
)
{
System
.
out
.
print
(
c_gp_cod
+
","
);
}
System
.
out
.
println
(
")"
);
LOGGER
.
log
(
Level
.
SEVERE
,
"{0} groupes manquants."
,
groupesManquants
.
size
());
String
list
=
groupesManquants
.
stream
()
.
map
(
String:
:
valueOf
)
.
collect
(
joining
(
","
,
"("
,
")"
));
LOGGER
.
severe
(
list
);
//throw new RuntimeException(groupesManquants.size() + " groupes manquants.");
}
...
...
@@ -241,7 +245,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
try
{
log
(
"Début de l'exportation"
);
LOGGER
.
info
(
"Début de l'exportation"
);
preparerExport
();
...
...
@@ -264,10 +268,10 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
ps
.
setInt
(
3
,
rang
++);
ps
.
addBatch
();
if
(++
count
%
500000
==
0
)
{
log
(
"Exportation des ordres d'appel des voeux "
+
(
count
-
499999
)
+
" a "
+
count
);
LOGGER
.
log
(
Level
.
INFO
,
"Exportation des ordres d''appel des voeux {0} a {1}"
,
new
Object
[]{
count
-
499999
,
count
}
);
ps
.
executeBatch
();
ps
.
clearBatch
();
log
(
"Fait"
);
LOGGER
.
info
(
"Fait"
);
}
}
...
...
@@ -276,7 +280,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
}
conn
.
commit
();
log
(
"Mise à jour de la table C_CAN_GRP"
);
LOGGER
.
info
(
"Mise à jour de la table C_CAN_GRP"
);
conn
.
createStatement
().
execute
(
"UPDATE "
+
"(SELECT a.C_CG_ORD_APP cible, b.C_CG_ORD_APP source FROM C_CAN_GRP a,"
+
"J_ORD_APPEL_TMP b WHERE a.G_CN_COD=b.G_CN_COD AND a.C_GP_COD=b.C_GP_COD)"
...
...
@@ -285,7 +289,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
/* exportation des statistiques mesurant l'écart entre l'ordre d'appel
et le classement initial.
*/
log
(
"Exportation des coefficients de divergence"
);
LOGGER
.
info
(
"Exportation des coefficients de divergence"
);
try
(
PreparedStatement
ps
=
conn
.
prepareStatement
(
"INSERT INTO C_CAN_ORD_APPEL_DIV (C_GP_COD,COEF_DIV) VALUES (?,?)"
))
{
for
(
Entry
<
Integer
,
OrdreAppel
>
paire
...
...
@@ -298,13 +302,13 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
ps
.
executeBatch
();
}
log
(
"Application des changements"
);
LOGGER
.
info
(
"Application des changements"
);
conn
.
commit
();
log
(
"Fin de l'exportation"
);
LOGGER
.
info
(
"Fin de l'exportation"
);
}
catch
(
SQLException
ex
)
{
log
(
"Erreur d'exportation des données"
);
LOGGER
.
severe
(
"Erreur d'exportation des données"
);
throw
new
RuntimeException
(
"Erreur d'exportation des données"
,
ex
);
}
}
...
...
@@ -321,7 +325,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
conn
.
createStatement
().
execute
(
"DROP TABLE J_ORD_APPEL_TMP"
);
}
catch
(
SQLException
e
)
{
/* peut arriver si la table n'existait pas */
}
;
}
conn
.
createStatement
().
execute
(
"CREATE GLOBAL TEMPORARY TABLE J_ORD_APPEL_TMP ("
...
...
@@ -337,7 +341,7 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
conn
.
createStatement
().
execute
(
"DROP TABLE C_CAN_ORD_APPEL_DIV"
);
}
catch
(
SQLException
e
)
{
/* peut arriver si la table n'existait pas */
}
;
}
conn
.
createStatement
().
execute
(
"CREATE TABLE C_CAN_ORD_APPEL_DIV ("
...
...
@@ -349,8 +353,4 @@ public class ConnecteurDonneesAppelOracle implements ConnecteurDonneesAppel {
}
private
void
log
(
String
message
)
{
System
.
out
.
println
(
LocalDateTime
.
now
().
toLocalTime
()
+
": "
+
message
);
}
}
java/parcoursup/propositions/EnvoiPropositions.java
View file @
001550ae
...
...
@@ -18,7 +18,7 @@
*/
package
parcoursup.propositions
;
import
java.
time.LocalDateTime
;
import
java.
util.logging.Logger
;
import
parcoursup.propositions.algo.AlgoPropositions
;
import
parcoursup.propositions.algo.AlgoPropositionsEntree
;
...
...
@@ -30,6 +30,8 @@ Ce code est exécuté de manière quotidienne.
*/
public
class
EnvoiPropositions
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
EnvoiPropositions
.
class
.
getName
());
private
final
ConnecteurDonneesPropositions
acces
;
public
EnvoiPropositions
(
ConnecteurDonneesPropositions
acces
)
{
...
...
@@ -38,24 +40,20 @@ public class EnvoiPropositions {
public
void
execute
()
throws
Exception
{
log
(
"Récupération des données"
);
LOGGER
.
info
(
"Récupération des données"
);
AlgoPropositionsEntree
entree
=
acces
.
recupererDonnees
();
log
(
"Sauvegarde locale de l'entrée"
);
LOGGER
.
info
(
"Sauvegarde locale de l'entrée"
);
entree
.
serialiser
(
null
);
log
(
"Calcul des propositions"
);
LOGGER
.
info
(
"Calcul des propositions"
);
AlgoPropositionsSortie
sortie
=
AlgoPropositions
.
calculePropositions
(
entree
);
log
(
"Sauvegarde locale de la sortie"
);
LOGGER
.
info
(
"Sauvegarde locale de la sortie"
);
sortie
.
serialiser
(
null
);
log
(
"Export des données"
);
LOGGER
.
info
(
"Export des données"
);
acces
.
exporterDonnees
(
sortie
);
}
static
void
log
(
String
msg
)
{
System
.
out
.
println
(
LocalDateTime
.
now
().
toLocalTime
()
+
": "
+
msg
);
}
}
java/parcoursup/propositions/algo/AlgoPropositions.java
View file @
001550ae
...
...
@@ -19,21 +19,24 @@
*/
package
parcoursup.propositions.algo
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
parcoursup.propositions.test.VerificationsResultats
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
public
class
AlgoPropositions
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
AlgoPropositions
.
class
.
getName
());
/* la boucle principale du calcul des propositions à envoyer */
public
static
AlgoPropositionsSortie
calculePropositions
(
AlgoPropositionsEntree
entree
)
{
entree
.
verifierIntegrite
();
log
(
"Début calcul propositions"
);
LOGGER
.
info
(
"Début calcul propositions"
);
/* groupes à mettre à jour */
Set
<
GroupeAffectation
>
groupesAMettreAJour
...
...
@@ -95,11 +98,10 @@ public class AlgoPropositions {
compteurBoucle
++;
}
log
(
"Calcul terminé après "
+
compteurBoucle
+
" itération(s)."
);
LOGGER
.
log
(
Level
.
INFO
,
"Calcul terminé après {0} itération(s)."
,
compteurBoucle
);
log
(
"Vérification des propriétés attendues des propositions pour un des "
+
entree
.
groupesAffectations
.
size
()
+
" groupes d'affectation"
);
LOGGER
.
log
(
Level
.
INFO
,
"Vérification des propriétés attendues des propositions pour un des {0} groupes d''affectation"
,
entree
.
groupesAffectations
.
size
());
int
step
=
Integer
.
max
(
1
,
entree
.
groupesAffectations
.
size
()
/
100
);
int
count
=
0
;
...
...
@@ -119,8 +121,8 @@ public class AlgoPropositions {
}
System
.
out
.
println
();
log
(
"Vérification des propriétés attendues des propositions d'un des "
+
entree
.
internats
.
size
()
+
" internats"
);
LOGGER
.
log
(
Level
.
INFO
,
"Vérification des propriétés attendues des propositions d''un des {0} internats"
,
entree
.
internats
.
size
()
);
step
=
Integer
.
max
(
1
,
entree
.
internats
.
size
()
/
100
);
count
=
0
;
...
...
@@ -153,9 +155,9 @@ public class AlgoPropositions {
}
System
.
out
.
println
();
log
(
"Vérification ok"
);
LOGGER
.
info
(
"Vérification ok"
);
log
(
"Préparation données de sortie"
);
LOGGER
.
info
(
"Préparation données de sortie"
);
AlgoPropositionsSortie
sortie
=
new
AlgoPropositionsSortie
();
...
...
@@ -175,10 +177,6 @@ public class AlgoPropositions {
}
private
static
void
log
(
String
msg
)
{
System
.
out
.
println
(
LocalDateTime
.
now
().
toLocalTime
()
+
": "
+
msg
);
}
private
static
void
afficherJauge
()
{
for
(
int
i
=
0
;
i
<
100
;
i
++)
{
System
.
out
.
print
(
"-"
);
...
...
java/parcoursup/propositions/donnees/ConnecteurDonneesPropositionsOracle.java
View file @
001550ae
...
...
@@ -23,11 +23,12 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
oracle.jdbc.OracleDriver
;
import
oracle.jdbc.pool.OracleDataSource
;
import
parcoursup.propositions.algo.AlgoPropositionsEntree
;
...
...
@@ -55,8 +56,10 @@ import parcoursup.propositions.algo.VoeuUID;
*/
public
class
ConnecteurDonneesPropositionsOracle
implements
ConnecteurDonneesPropositions
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
ConnecteurDonneesPropositionsOracle
.
class
.
getName
());
/* connexion a la base de données */
Connection
conn
=
null
;
private
final
Connection
conn
;
public
ConnecteurDonneesPropositionsOracle
(
String
url
,
String
user
,
String
password
)
throws
SQLException
{
if
(
url
==
null
||
url
.
isEmpty
())
{
...
...
@@ -74,7 +77,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
@Override
public
AlgoPropositionsEntree
recupererDonnees
()
throws
SQLException
{
log
(
"Vérification de l'interruption du flux de données entrantes."
);
LOGGER
.
info
(
"Vérification de l'interruption du flux de données entrantes."
);
/*Si = 1 indique si le programme d'admission est en train de tourner
pour faire des propositions. Si c'est le cas, tout est bloqué*/
try
(
ResultSet
result
...
...
@@ -101,14 +104,14 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
recupererVoeuxSansInternatAClassementPropre
();
if
(!
groupesManquants
.
isEmpty
())
{
System
.
out
.
println
(
groupesManquants
.
size
()
+
" groupes manquants."
);
LOGGER
.
log
(
Level
.
SEVERE
,
"{0} groupes manquants."
,
groupesManquants
.
size
()
);
}
if
(!
internatsManquants
.
isEmpty
())
{
System
.
out
.
println
(
internatsManquants
.
size
()
+
" internats manquants."
);
LOGGER
.
log
(
Level
.
SEVERE
,
"{0} internats manquants."
,
internatsManquants
.
size
()
);
}
log
(
"Fin de la récupération des données depuis la base Oracle"
);
LOGGER
.
info
(
"Fin de la récupération des données depuis la base Oracle"
);
AlgoPropositionsEntree
entree
=
new
AlgoPropositionsEntree
();
...
...
@@ -125,13 +128,13 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
conn
.
setAutoCommit
(
false
);
log
(
"Préparation des tables avant export"
);
LOGGER
.
info
(
"Préparation des tables avant export"
);
conn
.
createStatement
().
executeQuery
(
"DELETE FROM A_ADM_PROP WHERE NB_JRS="
+
GroupeInternat
.
nbJoursCampagne
);
conn
.
createStatement
().
executeQuery
(
"DELETE FROM A_ADM_POSITIONS_INT WHERE NB_JRS="
+
GroupeInternat
.
nbJoursCampagne
);
log
(
"Exportation des propositions d'admission"
);
LOGGER
.
info
(
"Exportation des propositions d'admission"
);
try
(
PreparedStatement
ps
=
conn
.
prepareStatement
(
"INSERT INTO A_ADM_PROP "
...
...
@@ -158,21 +161,21 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
ps
.
addBatch
();
if
(++
count
%
500000
==
0
)
{
log
(
"Exportation des propositions "
+
(
count
-
499999
)
+
" a "
+
count
);
LOGGER
.
log
(
Level
.
INFO
,
"Exportation des propositions {0} a {1}"
,
new
Object
[]{
count
-
499999
,
count
}
);
ps
.
executeBatch
();
ps
.
clearBatch
();
log
(
"Fait"
);
LOGGER
.
info
(
"Fait"
);
}
}
ps
.
executeBatch
();
log
(
count
+
" propositions exportées."
);
LOGGER
.
log
(
Level
.
INFO
,
"{0} propositions exportées."
,
count
);
}
conn
.
commit
();
log
(
"Exportation des positions d'admission aux internats"
);
LOGGER
.
info
(
"Exportation des positions d'admission aux internats"
);
try
(
PreparedStatement
ps
=
conn
.
prepareStatement
(
"INSERT INTO A_ADM_POSITIONS_INT "
...
...
@@ -206,14 +209,13 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
=
new
HashSet
<>();
/* permet de comptabiliser les groupes manquants, avant le début de campagne */
Set
<
GroupeAffectationUID
>
groupesManquants
=
new
HashSet
<>();
private
final
Set
<
GroupeAffectationUID
>
groupesManquants
=
new
HashSet
<>();
private
void
recupererGroupesEtInternats
()
throws
SQLException
{
internats
.
clear
();
groupesAffectations
.
clear
();
log
(
"Récupération des groupes d'affectation"
);
LOGGER
.
info
(
"Récupération des groupes d'affectation"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
setFetchSize
(
1000000
);
try
(
ResultSet
result
=
stmt
.
executeQuery
(
...
...
@@ -243,7 +245,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
}
}
log
(
"Récupération des internats"
);
LOGGER
.
info
(
"Récupération des internats"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
setFetchSize
(
1000000
);
...
...
@@ -274,7 +276,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
}
}
log
(
"Récupération du nombre de jours écoulés depuis l'ouverture de la campagne"
);
LOGGER
.
info
(
"Récupération du nombre de jours écoulés depuis l'ouverture de la campagne"
);
try
(
ResultSet
result
=
conn
.
createStatement
().
executeQuery
(
"SELECT TRUNC(SYSDATE) - TRUNC(TO_DATE(g_pr_val, 'DD/MM/YYYY:HH24'))+1"
...
...
@@ -293,7 +295,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
int
compteur
=
0
;
log
(
"Récupération des voeux avec demande internat dans un internat à classement propre"
);
LOGGER
.
info
(
"Récupération des voeux avec demande internat dans un internat à classement propre"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
setFetchSize
(
1000000
);
String
requete
...
...
@@ -342,7 +344,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
+
"AND ti.g_ti_cla_int_uni IN (0,1)"
//restriction aux internats à classement propre
;
log
(
requete
);
LOGGER
.
info
(
requete
);
try
(
ResultSet
result
=
stmt
.
executeQuery
(
requete
))
{
while
(
result
.
next
())
{
...
...
@@ -412,12 +414,12 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
}
}
}
log
(
compteur
+
" voeux en attente avec internat à classement propre"
);
LOGGER
.
log
(
Level
.
INFO
,
"{0} voeux en attente avec internat à classement propre"
,
compteur
);
}
private
void
recupererVoeuxSansInternatAClassementPropre
()
throws
SQLException
{
int
compteur
=
0
;
log
(
"Récupération des voeux sans internat, ou dans un internat sans classement propre"
);
LOGGER
.
info
(
"Récupération des voeux sans internat, ou dans un internat sans classement propre"
);
try
(
Statement
stmt
=
conn
.
createStatement
())
{
stmt
.
setFetchSize
(
1000000
);
String
requete
...
...
@@ -452,7 +454,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
//exclut les formations d'inscriptions avec internat à classement propre
+
" AND (v.i_rh_cod =0 or ti.g_ti_cla_int_uni NOT IN (0,1))"
;
log
(
requete
);
LOGGER
.
info
(
requete
);
try
(
ResultSet
result
=
stmt
.
executeQuery
(
requete
))
{
while
(
result
.
next
())
{
...
...
@@ -491,11 +493,7 @@ public class ConnecteurDonneesPropositionsOracle implements ConnecteurDonneesPro
}
}
}
log
(
compteur
+
" voeux en attente sans internat a classement propre"
);
}
private
void
log
(
String
message
)
{
System
.
out
.
println
(
LocalDateTime
.
now
().
toLocalTime
()
+
": "
+
message
);
LOGGER
.
log
(
Level
.
INFO
,
"{0} voeux en attente sans internat a classement propre"
,
compteur
);
}
}
java/parcoursup/propositions/exemples/ExempleAleatoire.java
View file @
001550ae
...
...
@@ -28,6 +28,8 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
javax.xml.bind.JAXBContext
;
import
javax.xml.bind.Marshaller
;
import
parcoursup.propositions.algo.AlgoPropositionsEntree
;
...
...
@@ -39,6 +41,8 @@ import parcoursup.propositions.algo.VoeuEnAttente;
public
class
ExempleAleatoire
extends
ExemplePropositions
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
ExempleAleatoire
.
class
.
getName
());
@Override
String
nom
()
{
return
"ExempleAleatoire"
;
// + dateCreation;
...
...
@@ -64,7 +68,7 @@ public class ExempleAleatoire extends ExemplePropositions {
final
int
maxNbGroupesParFormation
=
5
;
List
<
Etablissement
>
etablissements
=
new
LinkedList
<>();
private
final
List
<
Etablissement
>
etablissements
=
new
LinkedList
<>();
int
last_G_TI_COD
=
1
;
int
last_G_TA_COD
=
1
;
...
...
@@ -329,9 +333,7 @@ public class ExempleAleatoire extends ExemplePropositions {
public
ExempleAleatoire
(
int
nbEtudiants
)
{
if
(
nbEtudiants
<
100
)
nbEtudiants
=
100
;
this
.
nbEtudiants
=
nbEtudiants
;
this
.
nbEtudiants
=
Math
.
max
(
100
,
nbEtudiants
);
}
...
...
@@ -341,16 +343,16 @@ public class ExempleAleatoire extends ExemplePropositions {
int
capacite_totale
=
0
;
GroupeInternat
.
nbJoursCampagne
=
1
+
random
.
nextInt
(
70
);
log
(
"Jours de campagne: "
+
GroupeInternat
.
nbJoursCampagne
);
LOGGER
.
log
(
Level
.
INFO
,
"Jours de campagne: {0}"
,
GroupeInternat
.
nbJoursCampagne
);
log
(
"Génération aléatoire des établissements et formations"
);
LOGGER
.
info
(
"Génération aléatoire des établissements et formations"
);
while
(
capacite_totale
<
nbEtudiants
)
{
Etablissement
e
=
new
Etablissement
();
etablissements
.
add
(
e
);
capacite_totale
+=
e
.
capacite
();
}
log
(
"Génération aléatoire des voeux et classements"
);
LOGGER
.
info
(
"Génération aléatoire des voeux et classements"
);
for
(
int
i
=
0
;
i
<
nbEtudiants
;
i
++)
{
Candidat
c
=
new
Candidat
();
int
nbVoeux
=
(
int
)
(
Math
.
random
()
*
maxNbVoeuxParCandidat
);
...
...
@@ -360,11 +362,11 @@ public class ExempleAleatoire extends ExemplePropositions {
nbVoeux
-=
e
.
ajouterVoeux
(
c
);
}
if
((
i
+
1
)
%
100000
==
0
)
{
log
((
1
+
i
)
+
" étudiants générés ..."
);
LOGGER
.
log
(
Level
.
INFO
,
"{0}{1} étudiants générés ..."
,
new
Object
[]{
1
,
i
}
);
}
}
log
(
"Génération données entrée algorithme"
);
LOGGER
.
info
(
"Génération données entrée algorithme"
);
AlgoPropositionsEntree
entree
=
new
AlgoPropositionsEntree
();
...
...
@@ -390,8 +392,4 @@ public class ExempleAleatoire extends ExemplePropositions {
return
entree
;
}
void
log
(
String
msg
)
{
System
.
out
.
println
(
LocalDateTime
.
now
().
toLocalTime
()
+
": "
+
msg
);
}
}
java/parcoursup/propositions/test/VerificationsResultats.java
View file @
001550ae
...
...
@@ -22,6 +22,8 @@ package parcoursup.propositions.test;
import
java.util.HashSet
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
parcoursup.propositions.algo.GroupeAffectation
;
import
parcoursup.propositions.algo.GroupeInternat
;
import
parcoursup.propositions.algo.VoeuEnAttente
;
...
...
@@ -35,6 +37,8 @@ Des tests complémentaires sont effectués en base par des scripts PL/SQL.
*/
public
class
VerificationsResultats
{
private
static
final
Logger
LOGGER
=
Logger
.
getLogger
(
VerificationsResultats
.
class
.
getName
());
/*
P1 (respect ordre appel pour les voeux sans internat)
...
...
@@ -245,7 +249,7 @@ public class VerificationsResultats {
private
static
void
prevenirSi
(
boolean
prop
,
String
message
)
{
if
(
prop
)
{
System
.
out
.
println
(
"Attention: "
+
message
);
LOGGER
.
log
(
Level
.
WARNING
,
"Attention: {0}"
,
message
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment