Skip to content
Commits on Source (27)
......@@ -13,6 +13,7 @@ import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeChasseur;
import fr.ldnr.starWars.enumerations.TypeMission;
import fr.ldnr.starWars.enumerations.TypePilote;
......@@ -51,15 +52,18 @@ public class BootstrapData implements CommandLineRunner {
pilote1.setPrenom("Apprenti1");
pilote1.setAge(100);
pilote1.setRace(RacePilote.CHALACTEENS);
pilote1.setEtat(EtatPilote.DISPONIBLE);
pilote1.setType(TypePilote.APPRENTI);
pilote1.setGrade(GradePilote.OFFICIER);
pilote1.setEtat(EtatPilote.DISPONIBLE);
Pilote pilote2 = new Pilote();
pilote2.setNom("WOW");
pilote2.setPrenom("Combattant1");
pilote2.setAge(17);
pilote2.setRace(RacePilote.CHISS);
pilote2.setType(TypePilote.COMBATTANT);
pilote2.setGrade(GradePilote.CAPITAINE);
pilote2.setType(TypePilote.APPRENTI);
pilote2.setGrade(GradePilote.OFFICIER);
pilote2.setEtat(EtatPilote.DISPONIBLE);
Pilote pilote3 = new Pilote();
......@@ -68,16 +72,16 @@ public class BootstrapData implements CommandLineRunner {
pilote3.setAge(29);
pilote3.setRace(RacePilote.ITHORIENS);
pilote3.setType(TypePilote.COMBATTANT);
pilote3.setGrade(GradePilote.COMMANDANT);
pilote3.setEtat(EtatPilote.EN_MISSION);
pilote3.setGrade(GradePilote.CAPITAINE);
pilote3.setEtat(EtatPilote.BLESSE);
Pilote pilote4 = new Pilote();
pilote4.setNom("WEW");
pilote4.setPrenom("Combattant3");
pilote4.setAge(29);
pilote4.setRace(RacePilote.MIRALUKAS);
pilote4.setType(TypePilote.COMBATTANT);
pilote4.setGrade(GradePilote.LIEUTENANT);
pilote4.setType(TypePilote.APPRENTI);
pilote4.setGrade(GradePilote.OFFICIER);
pilote4.setEtat(EtatPilote.MORT_AU_COMBAT);
Pilote pilote5 = new Pilote();
......@@ -98,6 +102,15 @@ public class BootstrapData implements CommandLineRunner {
pilote6.setGrade(GradePilote.OFFICIER);
pilote6.setEtat(EtatPilote.BLESSE);
Pilote pilote7 = new Pilote();
pilote7.setNom("DUREL");
pilote7.setPrenom("Johad2");
pilote7.setAge(22);
pilote7.setRace(RacePilote.HUMAINS);
pilote7.setType(TypePilote.APPRENTI);
pilote7.setGrade(GradePilote.OFFICIER);
pilote7.setEtat(EtatPilote.DISPONIBLE);
piloteRepository.save(pilote1);
piloteRepository.save(pilote2);
piloteRepository.save(pilote3);
......@@ -120,26 +133,36 @@ public class BootstrapData implements CommandLineRunner {
chasseur4.setType(TypeChasseur.X_WING);
chasseur4.setEtat(EtatChasseur.DETRUIT);
Chasseur chasseur5 = new Chasseur();
chasseur5.setType(TypeChasseur.Y_WING);
chasseur5.setEtat(EtatChasseur.OPERATIONNEL);
chasseurRepository.save(chasseur1);
chasseurRepository.save(chasseur2);
chasseurRepository.save(chasseur3);
chasseurRepository.save(chasseur4);
chasseurRepository.save(chasseur5);
Mission mission1 = new Mission();
mission1.setTitre("Mission 1");
mission1.setType(TypeMission.COMBAT);
mission1.setNbHeure(70);
mission1.setNbHeure(200);
mission1.setResultat(ResultatMission.DEFAITE);
mission1.setStatut(StatutMission.TERMINE);
Mission mission2 = new Mission();
mission2.setTitre("Mission 2");
mission2.setType(TypeMission.ENTRAINEMENT);
mission2.setNbHeure(66);
mission2.setResultat(ResultatMission.VICTOIRE);
mission2.setNbHeure(50);
mission2.setResultat(ResultatMission.DEFAITE);
mission2.setStatut(StatutMission.TERMINE);
Mission mission3 = new Mission();
mission3.setTitre("Mission 3");
mission3.setType(TypeMission.COMBAT);
mission3.setStatut(StatutMission.TERMINE);
mission3.setNbHeure(600);
mission3.setResultat(ResultatMission.VICTOIRE);
missionRepository.save(mission1);
missionRepository.save(mission2);
......@@ -152,9 +175,40 @@ public class BootstrapData implements CommandLineRunner {
Affectation affectation2 = new Affectation();
affectation2.setMission(mission2);
affectation2.setPilote(pilote5);
affectation2.setPilote(pilote1);
affectation2.setChasseur(chasseur4);
Affectation affectation4 = new Affectation();
affectation4.setMission(mission2);
affectation4.setPilote(pilote4);
affectation4.setChasseur(chasseur1);
Affectation affectation3 = new Affectation();
affectation3.setMission(mission1);
affectation3.setPilote(pilote5);
affectation3.setChasseur(chasseur2);
affectationRepository.save(affectation1);
affectationRepository.save(affectation2);
affectationRepository.save(affectation3);
affectationRepository.save(affectation4);
mission2.getAffectation().add(affectation2);
pilote5.getAffectation().add(affectation2);
chasseur4.getAffectation().add(affectation2);
mission3.getAffectation().add(affectation1);
pilote3.getAffectation().add(affectation1);
chasseur2.getAffectation().add(affectation1);
mission1.getAffectation().add(affectation3);
pilote5.getAffectation().add(affectation3);
chasseur2.getAffectation().add(affectation3);
mission2.getAffectation().add(affectation4);
pilote4.getAffectation().add(affectation4);
chasseur1.getAffectation().add(affectation4);
List list = piloteRepository.findByEtat(EtatPilote.DISPONIBLE);
for (var pilote : list) {
System.out.println("CHECK : " + pilote);
......
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.calculs;
import fr.ldnr.starWars.domains.Affectation;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.MissionService;
import java.util.HashSet;
import java.util.Set;
/**
*
* @author stag
*/
public class Calculs {
private final MissionService missionService;
public Calculs(MissionService missionService) {
this.missionService = missionService;
}
public int calculNbHeure(Pilote pilote) {
// boucle Set<Affectation> affectation then recuperate Mission then trier Mission par Statut TERMINE
Set<Mission> missions = new HashSet<>(); // Create a set to store missions
int totalNbHeure = 0;
for (Affectation affectation : pilote.getAffectation()) {
Mission mission = affectation.getMission();
if (mission != null && mission.getStatut().equals(StatutMission.TERMINE)) {
missions.add(mission);
// recuperate nbHeure
totalNbHeure += mission.getNbHeure();
}
}
// return total nbHeure
return totalNbHeure;
}
public int calculNbMission() {
int totalNbMission = 0;
return totalNbMission;
}
public GradePilote updateGradePilote() {
return GradePilote.CAPITAINE;
}
public TypePilote updateTypePilote() {
return TypePilote.APPRENTI;
}
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.calculs.Calculs;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author stag
*/
@Controller
public class ClotureMission {
private final MissionService missionService;
private final PiloteService piloteService;
public ClotureMission(MissionService missionService, PiloteService piloteService) {
this.missionService = missionService;
this.piloteService = piloteService;
}
@GetMapping("/clotureMission")
public String clotureMission(Model model) {
model.addAttribute("resultatMission", missionService.resultatMission());
model.addAttribute("missions", missionService.findByStatut(StatutMission.ENCOUR));
return "clotureMission";
}
@PostMapping("/clotureMission")
public String nouvelleMissionSubmit(Model model,
@RequestParam(value = "heures") String heures,
@RequestParam(value = "resultats") String resultats,
@RequestParam(value = "missions") String missions) {
model.addAttribute("missions", missionService.findByStatut(StatutMission.ENCOUR));
// recuperate Mission from db by Id
Integer idMission = (Integer.valueOf(missions));
Mission missionRecupere = missionService.findById(idMission);
System.out.println("CHECK PILOTE RECUPEREE : " + missionRecupere);
// remplir nbHeures et resultat au bean de Mission
missionRecupere.setNbHeure(Integer.valueOf(heures));
missionRecupere.setResultat(ResultatMission.valueOf(resultats));
missionRecupere.setStatut(StatutMission.TERMINE);
// persister missionRecupere dans la db
missionService.save(missionRecupere);
Calculs calculs = new Calculs(missionService);
Pilote pilote = piloteService.findById(5);
int nbHeure = calculs.calculNbHeure(pilote);
System.out.println("CHECK nbHeure : " + nbHeure);
return "clotureMission";
}
public void updateGradePilote() {
// test calculNbHeure
// test calculNbHeure
}
}
......@@ -5,7 +5,10 @@
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -49,6 +52,10 @@ public class InscriptionPiloteController {
pilote.setPrenom(prenom);
pilote.setRace(race2);
pilote.setAge(age2);
pilote.setEtat(EtatPilote.DISPONIBLE);
pilote.setType(TypePilote.APPRENTI);
pilote.setGrade(GradePilote.OFFICIER);
System.out.println("Check pilote : " + pilote);
piloteService.save(pilote);
return "menu";
......
......@@ -4,8 +4,8 @@
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.services.ChasseurService;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
......@@ -16,20 +16,20 @@ import org.springframework.web.bind.annotation.GetMapping;
* @author stag
*/
@Controller
public class FinMissionController {
public class ListePiloteDisponible {
private final MissionService missionService;
private final PiloteService piloteService;
public FinMissionController(MissionService missionService) {
this.missionService = missionService;
public ListePiloteDisponible(PiloteService piloteService) {
this.piloteService = piloteService;
}
@GetMapping("/clotureMission")
public String clotureMission(Model model) {
model.addAttribute("resultatMission", missionService.resultatMission());
@GetMapping("/listePiloteDisponible")
public String listePilote(Model model) {
//model.addAttribute("etats", piloteService.listEtat());
model.addAttribute("pilotes", piloteService.findByEtatAndType(EtatPilote.DISPONIBLE, TypePilote.COMBATTANT));
return "clotureMission";
}
return "listePiloteDisponible";
}
}
......@@ -6,7 +6,9 @@ package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import fr.ldnr.starWars.services.PiloteService;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -29,7 +31,6 @@ public class ListePiloteParEtat {
@GetMapping("/listePiloteParEtat")
public String listePilote(Model model) {
model.addAttribute("etats", piloteService.listEtat());
return "listePiloteParEtat";
}
......
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.services.ChasseurService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
* @author Johad
*/
@Controller
public class ModifierEtatChasseurController {
private final ChasseurService chasseurService;
public ModifierEtatChasseurController(ChasseurService chasseurService) {
this.chasseurService = chasseurService;
}
@GetMapping("/modifierEtatChasseur")
public String modifierEtatPilote(Model model) {
model.addAttribute("etatChasseur", chasseurService.listeTypeChasseur());
return "modifierEtatChasseur";
}
@PostMapping("/modifierEtatChasseur")
public String modifierEtatChasseur(@RequestParam Long id_chasseur, Model model,
@RequestParam(value="etat") String etat) {
model.addAttribute("etatChasseur", chasseurService.modifierEtat(id_chasseur, EtatChasseur.valueOf(etat)));
return "modifierEtatChasseur";
}
}
......@@ -4,10 +4,26 @@
*/
package fr.ldnr.starWars.controllers;
import fr.ldnr.starWars.domains.Affectation;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import fr.ldnr.starWars.services.AffectationService;
import fr.ldnr.starWars.services.ChasseurService;
import fr.ldnr.starWars.services.MissionService;
import fr.ldnr.starWars.services.PiloteService;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
*
......@@ -16,53 +32,129 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class NouvelleMissionController {
@Autowired
private final MissionService missionService;
@Autowired
private final PiloteService piloteService;
@Autowired
private final ChasseurService chasseurService;
@Autowired
private final AffectationService affectationService;
// pour stocker les pilotes et les chasseurs temporairement
ArrayList<Pilote> listPiloteTemp = new ArrayList<>();
ArrayList<Chasseur> listChasseurTemp = new ArrayList<>();
Integer idMission;
public NouvelleMissionController(MissionService missionService) {
public NouvelleMissionController(MissionService missionService, PiloteService piloteService, ChasseurService chasseurService, AffectationService affectationService) {
this.missionService = missionService;
this.piloteService = piloteService;
this.chasseurService = chasseurService;
this.affectationService = affectationService;
}
@RequestMapping("/nouvelleMission")
public String getMission(Model model) {
model.addAttribute("typeMissions", missionService.listMission());
model.addAttribute("mission", new Mission());
model.addAttribute("affectationFormVisible", false); // Initially hidden
// Update the table with Pilot and Plane info
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
return "nouvelleMission";
}
@PostMapping("/nouvelleMission")
public String nouvelleMissionSubmit(Model model,
@RequestParam(value = "titre") String titre,
@RequestParam(value = "typeMissions") String typeMissions) {
// Save the mission to the database
Mission mission = new Mission();
mission.setTitre(titre);
mission.setType(TypeMission.valueOf(typeMissions));
mission.setStatut(StatutMission.ENCOUR);
System.out.println("CHECK : " + mission);
model.addAttribute("typeMissions", missionService.listMission());
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
missionService.save(mission);
idMission = mission.getIdMission();
//System.out.println("CHECK2 : " + idMission);
// ATTENTION, BUG WHEN WE REFRESH THE PAGE, IT'LL KEEP ADDING THE AFFECTATION (LIKE PUSHING BUTTON AFFECTATION)
return "nouvelleMission";
}
//@Controller
//public class NouvelleMissionController {
//
// private final MissionService missionService;
// private List<PaireChasseurPilote> paireList = new ArrayList<>();
//
// public NouvelleMissionController(MissionService missionService) {
// this.missionService = missionService;
// }
//
// @RequestMapping("/nouvelleMission")
// public String getMission(Model model) {
// model.addAttribute("typeMissions", missionService.listMission());
// model.addAttribute("paireList", paireList); // Afficher la liste du personnel affecté
// return "nouvelleMission";
// }
//
// @PostMapping("/nouvelleMission")
// public String createMission(@RequestParam("titre") String titre) {
// // Créez la mission dans la base de données avec le titre
// Mission mission = new Mission(titre);
// missionService.saveMission(mission);
//
// // Associez les paires chasseur/pilote à cette mission
// for (PaireChasseurPilote paire : paireList) {
// paire.setMission(mission);
// }
// missionService.savePaireList(paireList);
@PostMapping("/affectation")
// Handle Affectation form submission
//@PostMapping("/affectation/{idMission}")
// public String affectationSubmit(@PathVariable Long missionId, @ModelAttribute Affectation affectation, Model model) {
public String affectationSubmit(Model model,
@RequestParam(value = "piloteSelect") String piloteSelect,
@RequestParam(value = "chasseurSelect") String chasseurSelect) {
// Update the table with Pilot and Plane info
model.addAttribute("typeMissions", missionService.listMission());
List<Pilote> listPilotes = piloteService.findByEtat(EtatPilote.DISPONIBLE);
List<Chasseur> listChasseurs = chasseurService.findByEtat(EtatChasseur.OPERATIONNEL);
model.addAttribute("pilotesDispo", listPilotes);
model.addAttribute("chasseursDispo", listChasseurs);
System.out.println("CHECK " + piloteSelect);
// recuperate Pilote from db
Integer idPilote = (Integer.valueOf(piloteSelect));
Pilote piloteRecupere = piloteService.findById(idPilote);
System.out.println("CHECK PILOTE RECUPEREE : " + piloteRecupere);
// recuperate Chasseur from db
Integer idChasseur = (Integer.valueOf(chasseurSelect));
//System.out.println("CHECK chasseurSelect : " + chasseurSelect);
Chasseur chasseurRecupere = chasseurService.findById(idChasseur);
System.out.println("CHECK Chasseur RECUPEREE : " + chasseurRecupere);
// recuperate Chasseur from db
Mission missionRecupere = missionService.findById(idMission);
System.out.println("CHECK Mission RECUPEREE : " + missionRecupere);
//System.out.println("id Mission : " + idMission);
// create et remplir affectation
Affectation affectation = new Affectation();
affectation.setChasseur(chasseurRecupere);
affectation.setPilote(piloteRecupere);
affectation.setMission(missionRecupere);
affectationService.save(affectation);
System.out.println("affectation : " + affectation);
piloteRecupere.getAffectation().add(affectation);
chasseurRecupere.getAffectation().add(affectation);
missionRecupere.getAffectation().add(affectation);
piloteService.save(piloteRecupere);
chasseurService.save(chasseurRecupere);
missionService.save(missionRecupere);
listPiloteTemp.add(piloteRecupere);
listChasseurTemp.add(chasseurRecupere);
System.out.println("check listPiloteTemp : " + listPiloteTemp);
System.out.println("check listChasseurTemp : " + listChasseurTemp);
model.addAttribute("listPiloteTemps", listPiloteTemp);
model.addAttribute("listChasseurTemps", listChasseurTemp);
model.addAttribute("idMission", idMission);
model.addAttribute("missionToDisplay", missionService.findById(idMission));
//
// // Réinitialisez la liste des paires pour les futures missions
// paireList.clear();
// Affectation a = new Affectation();
// a.setChasseur(chasseurRecupere);
// a.setPilote(piloteRecupere);
// a.setMission(missionRecupere);
// piloteRecupere.getAffectation().add(a);
// System.out.println("apres ajouter affectation : " + piloteRecupere.getAffectation().toString());
//
// return "redirect:/nouvelleMission"; // Redirigez vers la page "nouvelleMission"
// }
//}
return "nouvelleMission";
}
}
......@@ -6,6 +6,9 @@ package fr.ldnr.starWars.domains;
import jakarta.persistence.EmbeddedId;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.MapsId;
......@@ -18,30 +21,25 @@ import java.util.Objects;
@Entity
public class Affectation {
@EmbeddedId // to mark the primary key
private AffectationId affectationId;
@Id // to mark the primary key
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer idAffectation;;
@ManyToOne
@MapsId("idPilote") // to tie to to part of the key
@JoinColumn
private Pilote pilote;
@ManyToOne
@MapsId("idChasseur")
@JoinColumn
private Chasseur chasseur;
@ManyToOne
@MapsId("idMission")
@JoinColumn
private Mission mission;
public AffectationId getAffectationId() {
return affectationId;
public Integer getIdAffectation() {
return idAffectation;
}
public void setAffectationId(AffectationId affectationId) {
this.affectationId = affectationId;
public void setIdAffectation(Integer idAffectation) {
this.idAffectation = idAffectation;
}
public Pilote getPilote() {
......@@ -70,8 +68,8 @@ public class Affectation {
@Override
public int hashCode() {
int hash = 5;
hash = 79 * hash + Objects.hashCode(this.affectationId);
int hash = 3;
hash = 59 * hash + Objects.hashCode(this.idAffectation);
return hash;
}
......@@ -87,13 +85,13 @@ public class Affectation {
return false;
}
final Affectation other = (Affectation) obj;
return Objects.equals(this.affectationId, other.affectationId);
return Objects.equals(this.idAffectation, other.idAffectation);
}
@Override
public String toString() {
return "Affectation{" + "affectationId=" + affectationId + ", pilote=" + pilote + ", chasseur=" + chasseur + ", mission=" + mission + '}';
}
// @Override
// public String toString() {
// return "Affectation{" + "idAffectation=" + idAffectation + ", pilote=" + pilote + ", chasseur=" + chasseur + ", mission=" + mission + '}';
// }
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package fr.ldnr.starWars.domains;
import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import java.io.Serializable;
import java.util.Objects;
/**
*
* @author stag
*/
@Embeddable
public class AffectationId implements Serializable {
@Column(name = "idPilote")
private Integer idPilote;
@Column(name = "idChasseur")
private Integer idChasseur;
@Column(name = "idMission")
private Integer idMission;
@Override
public int hashCode() {
int hash = 7;
hash = 17 * hash + Objects.hashCode(this.idPilote);
hash = 17 * hash + Objects.hashCode(this.idChasseur);
hash = 17 * hash + Objects.hashCode(this.idMission);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final AffectationId other = (AffectationId) obj;
if (!Objects.equals(this.idPilote, other.idPilote)) {
return false;
}
if (!Objects.equals(this.idChasseur, other.idChasseur)) {
return false;
}
return Objects.equals(this.idMission, other.idMission);
}
}
......@@ -11,6 +11,7 @@ import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -28,7 +29,7 @@ public class Chasseur {
private EtatChasseur etat;
@OneToMany(mappedBy = "chasseur")
Set<Affectation> affectation;
Set<Affectation> affectation = new HashSet<>();
public Integer getIdChasseur() {
return idChasseur;
......
......@@ -5,13 +5,14 @@
package fr.ldnr.starWars.domains;
import fr.ldnr.starWars.enumerations.ResultatMission;
import fr.ldnr.starWars.enumerations.StatutMission;
import fr.ldnr.starWars.enumerations.TypeMission;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.Date;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -29,9 +30,10 @@ public class Mission {
private TypeMission type;
private Integer nbHeure;
private ResultatMission resultat;
private StatutMission statut;
@OneToMany(mappedBy = "mission")
Set<Affectation> affectation;
Set<Affectation> affectation = new HashSet<>();
public Integer getIdMission() {
return idMission;
......@@ -65,6 +67,16 @@ public class Mission {
this.nbHeure = nbHeure;
}
public StatutMission getStatut() {
return statut;
}
public void setStatut(StatutMission statut) {
this.statut = statut;
}
public Set<Affectation> getAffectation() {
return affectation;
}
......
......@@ -9,10 +9,12 @@ import fr.ldnr.starWars.enumerations.GradePilote;
import fr.ldnr.starWars.enumerations.RacePilote;
import fr.ldnr.starWars.enumerations.TypePilote;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
......@@ -34,8 +36,8 @@ public class Pilote {
private EtatPilote etat;
private GradePilote grade;
@OneToMany(mappedBy = "pilote")
Set<Affectation> affectation;
@OneToMany(mappedBy = "pilote", fetch = FetchType.EAGER)
Set<Affectation> affectation = new HashSet<>();
public Integer getIdPilote() {
return idPilote;
......@@ -133,16 +135,8 @@ public class Pilote {
@Override
public String toString() {
return "Pilote{" + "idPilote=" + idPilote
+ ", nom=" + nom + ", prenom=" + prenom
+ ", age_inscription=" + age
+ ", race=" + race + ", type_pilote=" + type
+ ", etat=" + etat
+ ", grade=" + grade
+ ", affectation=" + "TBD}";
return "Pilote{" + "idPilote=" + idPilote + ", nom=" + nom + ", prenom=" + prenom + ", age=" + age + ", race=" + race + ", type=" + type + ", etat=" + etat + ", grade=" + grade + ", affectation=" + affectation + '}';
}
}
......@@ -13,5 +13,5 @@ package fr.ldnr.starWars.enumerations;
* @author stag
*/
public enum GradePilote {
OFFICIER, LIEUTENANT, CAPITAINE, COMMANDANT
OFFICIER, LIEUTENANT, CAPITAINE, MAJOR, COMMANDANT
}
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
*/
package fr.ldnr.starWars.enumerations;
/**
*
* @author stag
*/
public enum StatutMission {
ENCOUR, TERMINE
}
......@@ -5,6 +5,10 @@
package fr.ldnr.starWars.repositories;
import fr.ldnr.starWars.domains.Chasseur;
import fr.ldnr.starWars.domains.Pilote;
import fr.ldnr.starWars.enumerations.EtatChasseur;
import fr.ldnr.starWars.enumerations.EtatPilote;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
/**
......@@ -13,4 +17,6 @@ import org.springframework.data.repository.CrudRepository;
*/
public interface ChasseurRepository extends CrudRepository<Chasseur, Long> {
List<Chasseur> findByEtat(EtatChasseur etat);
}
......@@ -5,6 +5,9 @@
package fr.ldnr.starWars.repositories;
import fr.ldnr.starWars.domains.Mission;
import fr.ldnr.starWars.enumerations.EtatPilote;
import fr.ldnr.starWars.enumerations.StatutMission;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
/**
......@@ -12,5 +15,5 @@ import org.springframework.data.repository.CrudRepository;
* @author stag
*/
public interface MissionRepository extends CrudRepository<Mission, Long>{
public List<Mission> findByStatut(StatutMission statut);
}
......@@ -29,4 +29,9 @@ public interface PiloteRepository extends CrudRepository<Pilote, Long> {
List<Pilote> findByType(TypePilote type_pilote);
List<Pilote> findByRace(RacePilote race);
// to test
//List<Pilote> findByEtatInAndTypeIn(List<EtatPilote> etats, List<TypePilote> types);
List<Pilote> findByEtatAndType(EtatPilote etat, TypePilote type);
}
......@@ -14,4 +14,8 @@ public interface AffectationService {
public Affectation save(Affectation affectation);
}
......@@ -6,7 +6,6 @@ package fr.ldnr.starWars.services;
import fr.ldnr.starWars.domains.Affectation;
import fr.ldnr.starWars.repositories.AffectationRepository;
import fr.ldnr.starWars.repositories.MissionRepository;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.stereotype.Service;
......