Gestion de Stock [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

2ème Année GI

Ecole Hassania des Travaux Publics

Ateliers JEE Application de Gestion de Stock Nous souhaitons développer une application de gestion de stock pour une entreprise de commercialisation de produits informatiques. Partie 1 : Les produits L’entreprise commercialise un catalogue de produits avec deux entités métiers : Les marques des produits constituent une première entité. Chaque marque est définie par les éléments suivants 

Nom de la marque



Origine de fabrication



Liste des références des produits de la marque

Un exemple d’une marque pourrait correspondre aux éléments : 

Apple



Chine



(IMAC_32, I_MAC_27, IPHONE10,IPHONE 11, macbookpro13)

La deuxième entité métier correspond aux produits commercialisés par l’entreprise. Chaque produit est défini par les éléments suivants : 

Référence du produit



La marque du produit



Dénomination



Prix



Poids



Volume

1

Un exemple d’un produit pourrait correspondre aux éléments suivants : 

IPHONE10



Apple



Smartphone



10 000,00



0,2



0,0002

Nous souhaitons, dans un premier lieu, développer la partie correspondant à la gestion des produits. Pour cela, il faudra : 

Créer les entités Marque et Produit



Créer les ejbs session façade permettant d’implanter les méthodes métiers de gestion suivantes : o Création d’une marque o Suppression d’une marque o Ajouter un produit à une marque o Lister l’ensemble des marques o Création d’un produit o Suppression d’un produit o Modification des éléments d’un produit (sauf bien sûr la clé primaire) o Lister les produits





En donnant l’ensemble des produits référencés



En donnant la liste des produits d’une marque

Créer les servlets correspondantes permettant d’interroger les ejbs session façade.

Commentaires  : 

Pour l’entité Marque, o La clé primaire est le nom de la marque (doit être signalé par l’annotation

@Id). o L’attribut correspondant à la liste des produits correspond à une liste des clés étrangères avec une relation de type 1,*. Pour ce faire utiliser l’annotation

@OneToMany avec un code du type :

2



@OneToMany public List ListeDesProduits=new ArrayList();



o Définir un constructeur prenant en argument le nom de la marque et le pays d’origine. Ne pas oublier de déclarer un constructeur sans argument. 

Pour l’entité Produit, o La clé primaire est la référence du produit (doit être signalé par l’annotation

@Id). 

L’attribut correspondant à la marque fait référence à une clé étrangère avec une relation de type *,1. Pour ce faire utiliser l’annotation @ManyToOne avec un code du type :



@ManyToOne



public Marque MarqueProduit;

o Définir un constructeur prenant en argument la référence du produit, la référence de la marque du produit, la dénomination, le prix, le poids, et le volume. Ne pas oublier de déclarer un constructeur sans argument en appelant super. 

Pour l’EJB session facade pour l’entité Marque, coder les quatre méthodes de création, de suppression, de liste des marques, et de rajout de produit. o Pour la méthode de création, de préférence lui faire renvoyer un booléen. Prendre en argument le nom de la marque ainsi que le pays d’origine. Vérifier que le nom n’est pas référencé dans la base de données. Si c’est le cas, renvoyer faux, sinon appeler le constructeur et renvoyer vrai pour signifier la réussite de la création. o Pour la suppression, rester dans la même logique et renvoyer aussi un booléen. o Pour la méthode de listing des produits d’une marque, prendre en argument le nom de la marque. Utiliser la méthode find et renvoyer un type

List en utilisant le getter sur l’attribut correspondant. o Pour le rajout de produit, prendre en argument, une marque et un produit. Appeler la méthode add sur l’attribut listeProduits de marque, puis la méthode merge de l’entity manager pour mettre à jour la base de données. 

Pour l’EJB session façade pour l’entité Produit, coder l’ensemble des méthodes. Faire attention : 3

o Pour la création d’un produit, il faut s’assurer que la référence du produit n’est pas référencée dans la BD, mais aussi s’assurer que le nom de la marque est référencé dans la BD. o Pour le listing global des produits, renvoyer un type : List en faisant appel à la méthode findAll. 

Pour les servlets, prendre en compte les éléments suivants : o A titre d’exemple, prenant la servlet de création d’une marque, 

Dans le get, on aura un formulaire avec les deux champs nom de la marque et pays d’origine.



Dans le post, on fera appel à la méthode de création (après injection de ref ou recherche jndi pour l’EJB session façade de l’entité Marque). On affichera un message de confirmation ou non selon le retour de l’exécution de la méthode.

o Pour la création de référence, il serait intéressant, pour minimiser les erreurs de saisie, d’utiliser un champ de type select pour la spécification de la marque. Dans le cas de réussite de la création ou de son échec, afficher le message correspondant. o Pour le listing, dans le get de la servlet, utiliser un champ de type select permettant de choisir la marque dont les produits seront affichés en plus d’un choix « Toutes les marques ». Une fois la sélection faite, le post appellera la méthode correspondante. Partie 2 : Gestion du stock Une fois que les produits et les marques sont bien référencés dans la BD, on souhaite maintenant implanter la partie du code qui va permettre de gérer le stock de l’entreprise avec une visibilité sur les disponibilités des produits. Pour cela, nous allons définir les classes java suivantes : 

La classe ElementDeStock considérant 2 attributs. Le premier attribut RefProduit donne la référence du produit concerné, alors que le deuxième attribut Quantite donne la quantité de ce produit. Des getters et des setters seront définis pour les deux attributs. 4



La

classe

ListeDeStock

considérant

un

attribut

unique

de

type :

List. Une fois ces deux classes définies, on pourra définir l’entité métier correspondant au stock. Généralement une entreprise possède plusieurs stocks (par exemple, le stock d’exposition des magasins, les stocks dans les différents dépôts, le stock en route, etc.). Pour cela chaque stock sera défini par les éléments suivants 

Nom du stock



Liste de stock

Un exemple d’un stock pourrait correspondre aux éléments : 

StockMagasinCasablanca



((IMAC,10), (IPHONE,34), (macobookpro,8))

Etant donné que liste de stock est un attribut de l’entité Stock, il est nécessaire que les deux classes ElementDeStock et ListeDeStock implémentent l’interface Serializable. Nous allons, ensuite, définir un EJB session façade pour le traitement des stocks en implémentant les méthodes suivantes : 

Création d’un stock en passant en argument le nom du stock



La prise en compte d’une entrée de stock en passant en argument le nom du stock, la référence du produit, ainsi que la quantité correspondante.



La prise en compte d’une sortie de stock



La modification du stock d’un élément avec une nouvelle quantité



La liste d’un stock donné ou la somme de l’ensemble des stocks

Par la suite, on définira les servlets de gestion de stock correspondantes

5

Modalités d’évaluation des ateliers JEE 

Possibilité de travailler en binôme.



Retour en 3 phases o Etat d’avancement 1/3 : Dimanche 30 Mai, minuit o Etat d’avancement 2/3 : Dimanche 06 Juin, minuit o Retour Final : Dimanche 13 Juin, minuit



Type de retour pour chaque phase : o Un mail envoyé sur l’adresse « [email protected] », avec deux fichiers : 

Code source sous forme d’un projet NetBeans (merci d’indiquer la version utilisée)



Un rapport sous forme d’une screen vidéo adressant les deux points suivants : 

Survol et commentaire du code



Scénarii

d’exécution

en

considérant

les

différentes

fonctionnalités demandées et en couvrant les cas les plus significatifs  

Les éventuelles améliorations ou extensions du projet

6