1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
|
public List<PersonneCompteurSemaineDisp> getListCompteurbyIdPersonneAndMountAndYear (Integer idPersonne, String Month, String Year){
Calendar c = Calendar.getInstance();
//Premier jour de l'année
c.set(Integer.parseInt(Year),0,1);
Date startDate = (Date) c.getTime();
//System.out.println(" startDate "+startDate);
//dernier jour de l'année
c.set(Calendar.DAY_OF_YEAR,c.getActualMaximum(Calendar.DAY_OF_YEAR));
Date endDate = (Date) c.getTime();
//System.out.println(" endDate "+endDate);
List<PersonneCompteurSemaineDisp> listPersCompteur = new ArrayList<PersonneCompteurSemaineDisp>();
String queryString =
" SELECT personne.nom, personne.prenom, service.nomService, "
+" semaine.dateDebutSem, semaine.dateFinSem, semaine.numeroSemaine, jour.dureeTravail, jour.jour, jour.absence.idAbsence "
+" From Compteur as compteur, Personne as personne, Semaine as semaine, Perssemainecompt as perssemainecompt, Service as service, Jour as jour"
+" Where personne.service.idService = service.idService "
+" and perssemainecompt.personne.idPersonne = personne.idPersonne "
+" and perssemainecompt.compteur.idCompteur = compteur.idCompteur "
+" and semaine.idSemaine = jour.semaine.idSemaine "
+" and perssemainecompt.semaine.idSemaine = semaine.idSemaine "
+" and semaine.type ='Réalisé' "
+" and personne.idPersonne = ? "
+" and jour.jour like ? "
+" and jour.jour like ? "
+" group by jour.dateJour"
+" order by jour.dateJour";
System.out.println("queryString de getCompteurByIdPersonneAndYear "+queryString);
//Creation des params
Object[] params = {idPersonne, "%"+Month+"%", "%"+Year+"%"};
//String[] params = {"%"+nomPersonne+"%", "%"+prenomPersonne+"%", "%"+Year+"%"};
System.out.println("params : "+params);
Iterator results = this.getHibernateTemplate().find(queryString, params).iterator();
int dureeDeTrav = 0;
int dureeTot = 0;
int dureeDeTravJour = 0;
int dureeTotalTavJour = 0;
int nbJourFerie = 0;
int nbCongeTri = 0;
int nbCongeAnnuel = 0;
int nbCongeMaladie = 0;
int nbCongeAnciennete =0;
int nbCongeRecup = 0;
int nbCongeExceptionnel = 0;
int nbCongeParentaux = 0;
System.out.println("results : "+results);
while (results.hasNext() ) {
PersonneCompteurSemaineDisp persCompteurSemDisp = new PersonneCompteurSemaineDisp();
Object[] row = (Object[]) results.next();
String nomPersonneTrouve = (String) row[0];
persCompteurSemDisp.setNomPersonne(nomPersonneTrouve);
//System.out.println("nomPersonneTrouve : "+nomPersonneTrouve);
String prenomPersonneTrouve = (String) row[1];
persCompteurSemDisp.setPrenomPersonne(prenomPersonneTrouve);
//System.out.println("prenomPersonneTrouve : "+prenomPersonneTrouve);
String nomService = (String) row[2];
persCompteurSemDisp.setNomService(nomService);
//System.out.println("nomService : "+nomService);
Date dateDebutSem = (Date) row[3];
persCompteurSemDisp.setDateDebutSem(dateDebutSem);
//System.out.println("dateDebutSem : "+dateDebutSem);
Date dateFinSem = (Date) row[4];
persCompteurSemDisp.setDateFinSem(dateFinSem);
//System.out.println("dateFinSem : "+dateFinSem);
Integer numeroSemaine = (Integer) row[5];
System.out.println("numéro semaine "+numeroSemaine);
persCompteurSemDisp.setNumeroSemaine(numeroSemaine);
String durreJour = (String) row[6];
persCompteurSemDisp.setDureeTravailJour(durreJour);
System.out.println("durreJour : "+durreJour);
//Début calcul de la durée des jours
String valeurDureeJourAdecoupe = ":";
String [] horaireDureeJourTemps = durreJour.split(valeurDureeJourAdecoupe);
String DureeJourheure = horaireDureeJourTemps[0];
String DureeJourmin = horaireDureeJourTemps[1];
int iJourHeure = Integer.parseInt(DureeJourheure);
int iJourMin = Integer.parseInt(DureeJourmin);
dureeDeTravJour = (iJourHeure * 60) + iJourMin;
dureeTotalTavJour += dureeDeTravJour;
//Fin du calcul de la durée de travail des jours
String libelleJour = (String) row[7];
persCompteurSemDisp.setLibelleJour(libelleJour);
Integer idAbsence = (Integer) row[8];
//On doit comptabilisé les absences par type d'absence
//Si conge annuel
if(idAbsence == 1){
nbCongeAnnuel += 1;
}
//Si conge Trimestriel
if(idAbsence == 2){
nbCongeTri += 1;
}
//on ne prend pas l'idAbsence == 3 car çà correspond au Repos
//Si Ferie
if(idAbsence == 4){
nbJourFerie += 1;
}
//Si Maladie
if(idAbsence == 5){
nbCongeMaladie += 1;
}
//Si conge ancienneté
if(idAbsence == 6){
nbCongeAnciennete += 1;
}
//Si conge Récupération
if(idAbsence == 7){
nbCongeRecup += 1;
}
//Si conge Exceptionennel
if(idAbsence == 8){
nbCongeExceptionnel += 1;
}
//Si conge Familiaux
if(idAbsence == 9){
nbCongeParentaux += 1;
}
String absenceString = String.valueOf(idAbsence);
persCompteurSemDisp.setAbsenceOuConge(absenceString);
listPersCompteur.add(persCompteurSemDisp);
}
//Heure comptabilisé par la somme des durée des jours
String sHeureTotJour = "";
String sMinTotJour = "";
int heureTotJour = (int) Math.floor(dureeTotalTavJour/60);
if (heureTotJour == 0 || heureTotJour < 10) {
sHeureTotJour = "0"+heureTotJour;
}else{
sHeureTotJour = ""+heureTotJour;
}
int minTotJour = (dureeTotalTavJour%60);
if (minTotJour == 0 || minTotJour < 10) {
sMinTotJour = "0"+minTotJour;
}else{
sMinTotJour = ""+minTotJour;
}
String heureTotalesDureeTravaJour = sHeureTotJour + " : " + sMinTotJour;
System.out.println("heureTotalesDureeTravaJour : "+heureTotalesDureeTravaJour);
PersonneCompteurSemaineDisp persCompteurSemDisp = new PersonneCompteurSemaineDisp();
persCompteurSemDisp.setHeureTotales(heureTotalesDeAn);
persCompteurSemDisp.setDureeTravailJour(heureTotalesDureeTravaJour);
//Pour évviter les boublons
int nhJourFerieSimple = nbJourFerie;
int nbCongeTriSimple = nbCongeTri;
int nbCongeAnnuelSimple = nbCongeAnnuel;
int nbCongeMaladieSimple = nbCongeMaladie;
int nbCongeAncienneteSimple = nbCongeAnciennete;
int nbCongeRecupSimple = nbCongeRecup;
int nbCongeExceptionnelSimple = nbCongeExceptionnel;
int nbCongeParentauxSimple = nbCongeParentaux;
//Pour récupérer le nombre de jours absence par absence
persCompteurSemDisp.setNbJourFerie(nhJourFerieSimple);
System.out.println("nhJourFerieSimple : "+nhJourFerieSimple);
persCompteurSemDisp.setNbCongeTri(nbCongeTriSimple);
System.out.println("nbCongeTriSimple : "+nbCongeTriSimple);
persCompteurSemDisp.setNbCongeAnnuel(nbCongeAnnuelSimple);
System.out.println("nbCongeAnnuelSimple : "+nbCongeAnnuelSimple);
persCompteurSemDisp.setNbCongeMaladie(nbCongeMaladieSimple);
System.out.println("nbCongeMaladieSimple : "+nbCongeMaladieSimple);
persCompteurSemDisp.setNbCongeAnciennete(nbCongeAncienneteSimple);
System.out.println("nbCongeAncienneteSimple : "+nbCongeAncienneteSimple);
persCompteurSemDisp.setNbCongeRecup(nbCongeRecupSimple);
System.out.println("nbCongeRecupSimple : "+nbCongeRecupSimple);
persCompteurSemDisp.setNbCongeExceptionnel(nbCongeExceptionnelSimple);
System.out.println("nbCongeExceptionnelSimple : "+nbCongeExceptionnelSimple);
persCompteurSemDisp.setNbCongeParentaux(nbCongeParentauxSimple);
System.out.println("nbCongeParentauxSimple : "+nbCongeParentauxSimple);
listPersCompteur.add(persCompteurSemDisp);
return listPersCompteur;
} |
Partager