15 Inventaire du jeu de données
J.P.Niepceron 於 1 周之前 修改了此頁面

Scénario #1 - Devis, recherche de position des pièces

Dans ce scénario, le camion rentre à l’atelier typiquement pour une semaine de 5 jours, un “tour de camion” permet d’identifier les non-conformités, d’adresser le devis au client. Lorsque le devis est accepté, les réparations commencent. le technicien interroge l’application d’inventaire selon les deux étapes suivantes, immuables:

  • connecté à la page web d’accueil, il fourni la référence de la pièce dont il cherche la position dans le magasin;
  • l'écran de réponse qu’il reçoit affiche la localisation de la caisse contenant la pièce répondant à cette référence. La réparation se termine soit par une Remise en Service, soit par une Vérification Générale Périodique, dans les deux cas menée par un inspecteur d’une société de certification (bureau Veritas, Dekra, ou autre), avant de repartir vers son propriétaire.

Pour des raisons de viscosité historique, il est préférable de ne pas ajouter au devis une annexe dans laquelle seraient listées les pièces, leurs référence, leur position dans le magasin. Une évolution quelconque de l’application générant le devis est hors de propos dans le cadre de ce projet. Cela pourra poser problème pour ne serait-ce que pour faire ajouter un QR code à coté de chaque référence de pièce dans le corps du devis

Données à collecter et manipuler dans la base

  • une liste des références pour chaque pièce, qui serait notée ELECACC1883 par exemple; question: comment rester souple dans l'écriture du code, pour permettre qu’elle manipule d’autre type de référence sans grand effort d’adaptation ?
  • une liste de quatre localisations, selon le cas: peut-on ignorer cette information, car elle est déjà connue de tous les techniciens ?
    1. soit dans la zone contenant des meubles à étagères, sur lesquelles sont posées les boîtes de pièces;
    2. soit dans la zonep our les grosses pièces, telles que les garde-boue, qui sont posées à même le sol;
    3. soit dans le premier des deux véhicules d’intervention. faut-il prévoir une évolution du nombre de véhicules d’intervention ?
    4. soit dans le second des deux véhicules d’intervention.
  • une liste des milliers boîtes, identifiées par la référence de la pièce qui s’y trouve en un ou plusieurs exemplaires;
  • une liste des 3 allées dans lesquelles sont alignées les meubles d'étagères; le coté droit et le coté gauche de l’allée physique correspondent donc à 2x3 = 6 rangées distinctes
  • une liste des 5 meubles d'étagères par allée; soit 10 meubles, en comptant le coté droit et le coté gauche de l’allée
  • une liste des 10 étagères par meubles;
  • une liste des 10 emplacements par étagères.

Vue intérieure du magasin


Par jean-Pierre (nécessitant une remise en forme) les données (tables de la base de données à construire): je vais ci dessous indiquer quel sont les entités tables “concrètes” de la base de données à créer (pour les tables “abstraites” tel que des tables de liaisons entre deux tables “concrètes” nous le verrons plus tard). Cette liste n’est pas en l'état actuel exhaustive.

Pièce ( pièce mécanique de camion possédant une référence l’identifiant de manière unique que je vais appeler clé primaire). La pièce se trouve rangée à un endroit dans le magasin et dans les camions d’intervention. Il existe une zone où se trouve des pièces d’ocasion. La pièce existe dans une certaine quantité dans ces endroits. En dessous d’une certaine quantité la pièce doit être recommandée. La pièce peut faire parti d’un type de pièce exemple : les L.E.D., les ressorts, les relais … . La pièce peut être composée de pièces ; elle aussi donc aussi faire parti d’une pièce ou sans qu’il n’existe une pièce plus importante la pièce peut être associé à une autre pièce exemple potentiomètre et ressort de rappel ou extincteur et caisson d’extincteur. La pièce a une désignation par exemple L.E.D. rouge 12V. La pièce peut avoir un ou plusieurs document associés. La pièce peut avoir un programme associé. Les documents associés sont associés à la pièce uniquement ou ( au sens exclusif ) à la pièce et à un type de machine ou à un modèle de porteur. La pièce a une photo principale ( photo de la pièce neuve qui permet une identification immédiate par un humain). La pièce peut avoir d’autres photos ( pour l’apprentissage de la reconnaissance automatique d’objet ).

Porteur ( équipement porteur de nacelle élévatrice, dans la majorité des cas camions, mais peut être une remorque rail/route pour la S.N.C.F., peut être un engin sur roues ou chenilles télécommandé etc …). Le porteur peut posséder une immatriculation qui l’identifie de manière unique. Le porteur est associé à vie à une machine ( qui possède un numéro de série que je vais appeler clé primaire).Il existe au moins une machine qui à changé de camion porteur ( machine à bras isolé créée en 1995 ). Le porteur à une marque (Renault, Iveco, Mercedes, Fiat, etc.). Il existe quelques porteurs qui sont particuliers : camions ateliers et camion grues, leurs machines ne sont pas des nacelles élévatrices.

Machine (équipement à nacelle élévatrice, grue ou évent et porte-échelle situé sur le camion ) La machine possède une marque Exemple France Elevateur, Multitel, … . La machine possède un numéro de série. La machine est constitué d’un ensemble limité et défini de pièces. La machine possède un mode d’emploi. La machine peut posséder des documents comme : un schéma hydrolique, un schéma electrique plusieurs procedures d’entretien, de réglage et de calibation.

Marque ( marque de l’équipement. Permet de savoir qui à construit l’équipement). La marque fait parti du groupe FE ou ne fait pas parti du groupe FE ou à collaboré avec le groupe FE. Il existe des documents qui concernent toutes les machines d’une marque ( par exemple les codes d’erreur) .

Programme  ( fichier à téléverser dans un calculateur ) Selon le type de machine, le programme peut avoir une version figée ou avoir une version à mettre à jour à chaque fois que l’on à une intervention associé au programme ou à mettre à jour à chaque fois que l’on intervient sur la machine. Le programme possède un numéro de version.

Site du client contient une adresse, un contact, un numéro de téléphone ( je pense que les informations du client changent de temps en temps). Ces informations sont utiles pour les interventions des techniciens. Les cordonnées GPS sous format Qrcode permetraient de fournir une localisation précise pour se rendre sur le site d’intervention transmissible au téléphone personnel du technicien.

Proposition de devis. Lorsque le camion arrive pour une panne ou une maintenance VGP nous réalisons un tour de camion ou nous notons les défaults contatés. Pour un client, nous notons si le défaut est imputable au client et nous nomons ces défaults “casse”. pour les autres nous les nomons “usure”. Après avoir effectué le tour du camion, nous inscrivons la référence des pièces défectueuses sur le même document. Les phrases de description sont calibrées et elles doivent être rangées dans un certain ordre. ( une base de donnée des phrases descrivant le problème avec une interface homme machine adéquate permettrait de gagner du temps à la rédaction de la proposition de devis et au travail de remise en forme de la proposition de devis effectuée par l’administratif Le problème technique est la méthode pour transmetre la proposition de devis)

Devis. L’administatif soumet la proposition de devis au client qui soit accepte le devis complet, soit accepte une partie du devis , soit refuse le devis. A partir du devis accepté par le client nous allons chercher les pièces dans le magasin et prévenons l’administratif si une pièce est en rupture de stock ou proche de la rupture de stock ( Un QRCode par pièce sur le devis permetrait de trouver rapidement les pièces exotiques )

QRCode calculé à partir de la référence de la pièce et du mon de domaine du serveur ex: https://niepceron/inventaire/ELECACC1883

Technicien ( utilisateur de ce système ) Selon l’utilisateur des droits plus ou moins élevés doivent être appliqués ( Il doit etre possible pour un utilisateur bordélique de retirer les droits d’ajout et de retrait des documents). Tous les utilisateurs devraient pouvoir, à partir d’un QRcode, determiner la position d’une pièce dans le magasin. Un utilisateur qui n’est pas technicien itinérant ne devrait pas pouvoir acceder au stock dans les camions d’intervention etc... (J’envisage au début d’etre le seul à pouvoir gérer les droits.). Pour ne pas avoir à gerer les données personnelles avec toute sa lourdeur de gestion (RGPD) aucunes données personnelles ne seront présentes.

Contact Personne physique. Dans un avenir lointain j’intégrerais les contacts mais cela implique de suie la réglementation RGPD. Ces contacts sont important: ils peuvent par exemple dans un cas de panne etre un référent pour une machine, pour unte de problème , dans le cas de la necessité d’obtention de pièce ils peuvent nous dire sa disponibilité physique et les délais etc...es données sont le nom, le téléphone, une description de ce qu’ils peuvent nous donner comme information ou svice

schema des données: mettre en mode modification pour pouvoir lire correctement

╔══════════════════════════════════════════╗ ║ Pièce ║ ╟──────────────────────────────────────────╢ ║ Référence (1)clé primaire ║ ║ taille ║ -> contient sol, C1 ou C2 pour pièce au sol, dans une petite caisse, dans une grande caisse ║ positionMagasin ║ -> position dans le magasin
║ positionCamion1 ║ -> " " le camion 1
║ positionCamion2 ║ -> " " le camion 2
║ stockMagasin ║ -> stock dans le magasin
║ stockCamion1 ║ -> " " le camion 1 ║ stockCamion2 ║ -> " " le camion 2 ║ stockMini ║ -> seuil de déclenchement de notification de commande pour le stock magasin ║ stockOcasion ║ ║ type ║ ║ composantDe ║ -> réference de la piece contenant cette pièce.
║ ║ (la relation réciproque “contient la pièce” se déduit) ║ désignation ║ ║ cheminPhoto1 ║ -> chemin sur le serveur ou se trouve la photo1 de la pièce ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Fabriquant de la pièce ║ ╟──────────────────────────────────────────╢ ║ NAssociationPièce (2)clé primaire ║ ║ référencePièce clé étrangère(1)║ ║ marqueFabriquant ║ -> marque du fabriquant de la pièce ║ référenceFabriquant ║ -> référence de la pièce chez le fabriquant ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Pièce associée pièce ║ ╟──────────────────────────────────────────╢ ║ NAssociationPièce (3)clé primaire ║ ║ référencePièce1 clé étrangère(1)║ -> référence de l’une des deux pièces de l’association ║ référencePièce2 clé étrangère(1)║ -> référence de l’autre pièce de l’association ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Document ║ ╟──────────────────────────────────────────╢ ║ NDocument (4)clé primaire ║ ║ chemin ║ -> chemin ou se trouve le document sur le serveur (à voir: la reconnaissance du type PDF, exe...) ║ titre ║ -> titre du document affiché dans l’application ║ description ║ -> description du document affiché dans l’application ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Document associé piece ║ ╟──────────────────────────────────────────╢ ║ NAssociationDocument (5)clé primaire ║ -> numéro généré automatiquement ║ nDocument clé étrangère(4)║ -> référence du document ║ référencePièce clé étrangère(1)║ -> référence de la pièce ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Machine ║ ╟──────────────────────────────────────────╢ ║ NuméroSérie (6)clé primaire ║ -> numéro de série de la machine ║ modèle ║ -> modèle de la machine : ex 162TLE ║ type ║ -> : nacelle elevatrice, grue, atelier, porte échelle, hayon, araignée, rail route ... ║ description ║ -> : 4x4, 4x2, caisson ... ║ aFaire ║ -> zone textuelle contenant ce qu’il y aura a faire les prochaines fois sur la machine ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Porteur ║ ╟──────────────────────────────────────────╢ ║ NuméroImmatriculation (7)clé primaire ║ -> immatriculation du porteur ║ numéroSériePorteur ║ ║ marquePorteur ║ -> marque du constructeur du porteur ║ description ║ -> texte ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Document associé machine ║ ╟──────────────────────────────────────────╢ ║ NAssociationPorteur (8)clé primaire ║ -> numéro généré automatiquement ║ numéroImmatriculation clé étrangère(7)║ -> immatriculation du porteur ║ numéroSérie clé étrangère(6)║ -> numéro de série de la machine ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Option de la machine ║ ╟──────────────────────────────────────────╢ ║ NuméoOption (9)clé primaire ║ -> numéro généré automatiquement ║ numéroSérie clé étrangère(6)║ -> numéro de série de la machine ║ typeOption ║ -> valeur parmi : treuil, double commande, ... ║ description ║ -> texte ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Document associé machine ║ ╟──────────────────────────────────────────╢ ║ NAssociationDocument (10)clé primaire ║ -> numéro généré automatiquement ║ nDocument clé étrangère(4)║ -> référence du document ║ NumeroSérie clé étrangère(6)║ -> numéro de série de la machine ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Document associé à un type de machine ║ ╟──────────────────────────────────────────╢ ║ NAssociationDocument (11)clé primaire ║ -> numéro généré automatiquement ║ nDocument clé étrangère(4)║ -> référence du document ║ typeMachine clé étrangère(6)║ -> type de machine défini dans machine ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Pièce associée machine ║ ╟──────────────────────────────────────────╢ ║ NAssociationPièce (12)clé primaire ║ -> numéro généré automatiquement ║ référencePièce clé étrangère(1)║ -> référence de la pièce associé à la machine ║ numeroSérie clé étrangère(6)║ -> numéro de série de la machine ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Proposition de devis ║ ╟──────────────────────────────────────────╢ ║ NPropositionDevis (13)clé primaire ║ -> numéro généré automatiquement ║ nContact clé étrangère(x) ║ ║ nMachine clé étrangère(x) ║ ║ date date ║ ║ garantie? ║ ║ kilométrage ║ ║ heures moteur ║
║ heures hydrolique ║ ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Proposition des pièces du devis ║ ╟──────────────────────────────────────────╢ ║ NPropositionDevis (14)clé primaire ║ -> numéro généré automatiquement ║ référencePièce clé étrangère(1)║ -> référence de la pièce associé à la machine ║ enDéfaut? ║ -> oui ou non (permet de valider que le technicien a vérifié la pièce ou pas) contrainte B ║ référenceDéfaut clé étrangère ║ ║ référenceCaracDéfaut clé étrangère ║ ║ usure? ║ -> usure ou casse ║ référenceLocalisDéfaut clé étrangère ║ ╚══════════════════════════════════════════╝

contrainte B (externe doit etre vérifier par le programme qui interface le serveur web avec la base de données) toutes les pièces doivent être validées pour que le tour de camion soit fini.

╔══════════════════════════════════════════╗ ║ Contact ║ ╟──────────────────────────────────────────╢ ║ NContact (15)clé primaire ║ -> numéro généré automatiquement ║ nom ║ ║ prénom ║ ║ tel ║ ║ email ║ ║ adresse ║ ║ type ║ -> : client, fournisseur, aide technique ║ informationComplémentaire ║ -> spécifie plus précisément le domaine d’expertise. ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Type machine ║ ╟──────────────────────────────────────────╢ ║ NTypeMachine (16)clé primaire ║ -> numéro généré automatiquement ║ référenceTypeMachine ║ ║ désignationTypeMachine ║ ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Liste de vérifications par type machine ║ ╟──────────────────────────────────────────╢ ║ NVérifTypeMachine (17)clé primaire ║ -> numéro généré automatiquement ║ nTypeMachine clé externe(16) ║ ║ rangVérif numéro ║ -> rang de la piece à vérifier par type de machine (cntrainte A) ║ pièce clé externe(1) ║ ╚══════════════════════════════════════════╝

Contrainte A (interne : assure la cohérence de la base de données) pour un type de machine il ne doit pas exister 2 vérifications différentes ayant le même rang. Il faut pouvoir inserrer une vérification à n’importe quel endroit Donc il faut pouvoir renumérotter les rangs originellement de n vers le dernier à m vers le dernier( le tour de camion se fait dans un ordre particulier).

╔══════════════════════════════════════════╗ ║ Liste des défauts par pièce ║ ╟──────────────────────────────────────────╢ ║ NDéfautPièce (18)clé primaire ║ -> numéro généré automatiquement ║ nTypeMachine clé externe(16) ║ ║ référencePièce clé externe(1) ║ -> permet de connaitre la pièce et d’afficher la photo ║ désignationDéfaut ║ -> texte qui doit etre envoyé sur l’interface homme machine pour réaliser le tour du camion ╚══════════════════════════════════════════╝

╔══════════════════════════════════════════╗ ║ Caractéristique des défauts ║ ╟──────────────────────────────────────────╢ ║ NCaracDéfaut (19)clé primaire ║ -> numéro généré automatiquement ║ nDéfautPièce clé externe(18) ║ ║ référencePièce clé externe(1) ║ -> permet de connaitre la pièce et d’afficher la photo ║ désignationCaracDéfaut ║ -> Lors d’un défaut sur un tour de camion caractéristique qui doit choisi par le technicien ║ usure/case ║ ╚══════════════════════════════════════════╝ exemple lorsque le défaut (désignationDéfaut) est “autocollant de signalisation”, il vas exister 2 caractéristiques de défauts qui seront “inscription effacées” et “etiquette déchirée” le tecnicien choisi une caractéristique )

╔══════════════════════════════════════════╗ ║ Localisation des défauts ║ ╟──────────────────────────────────────────╢ ║ NLocalisDéfaut (20)clé primaire ║ -> numéro généré automatiquement ║ nDéfautPièce clé externe(18) ║ ║ référencePièce clé externe(1) ║ -> permet de connaitre la pièce et d’afficher la photo ║ désignationLocalisDéfaut ║ -> Lors d’un défaut sur un tour de camion localisation qui doit choisi par le technicien ╚══════════════════════════════════════════╝ exemple lorsque le défaut (désignationDéfaut) est “autocollant de signalisation”, il vas exister plusieurs localisations du défauts qui seront “arrière du panier”, “droite du plateau” gauche du plateau” ... le tecnicien choisi une localisation )

Le tour de cammion (pré devis) commence toujours par l’immatriculation du camion. Si le camion n’existe pas dans la base, il faut en plus noter le numéro de serie du porteur. Il faut en suite noter ses km, ses heures hydroliques et si possible ses heures moteur. Puis viens le niveau de carburant, si il est inférieur à la quantité necessaire pour faire la distance de l’atelier au site client, il faut refaire le plein ( si la quantité restante est inférieur à 1/4 du reservoir ). On verifie ensuite les pièces du camion.

l’algorithme permettant d’effectuer cela peut par exemple etre:

recuperer l’imatriculation et le type de camion. si la table tour de camion n’existe pas lancer le mode de création de la table tour de camion. si le type de camion n’existe pas lancer le mode de création de la table d’exclusion du type de camion. si l’immatriculation du camion n’existe pas lancer le mode de création de la table d’exclusion du camion.

Recuperer les entrées de la table tour de camion complet Recuperer les entrées de la table exclusions du type de camion concerné Recuperer les entrées de la table exclusions du camion concerné retirer de la liste tours de camion les exclusions ranger la liste dans l’ordre croissant des rangs nomer cette liste vérifications tant qu’il existe une vérification qui n’est ni “bon” ni “hors service” faire : pour vérification dans vérifications faire : afficher la vérification, afficher les choix “bon”, “hors service” et “je ne sais pas” si choix est “hors service” afficher la liste des caractéristiques dans un bouton radio, afficher la liste des localisation dans un bouton radio et un bouton annuler enregistrer le défaut sinon si choix est “bon” enregistrer le fait qu’il n’y à pas de défaut fin si fin du pour fin du tant que

un des deux téléphones portables des camions d’intervention est un BLACKVIEW BL7000 afficheur graphique : 6.78-inch | 1080 x 2460 | 120Hz Refresh Rate wifi : 802.11 b/g/n/a/ac

Pour les droits des utilisateurs, nous nous reposons sur la gestion faite par le Système de Gestion de Base de Données Relationnelles Je vais me charger de créer la machine serveur certainement à base de matériellement

  • un dell optiplex 3XXX avec un ssd et un hdd.
  • du scotch et du papier pour les QRcodes des pièces logiciellement
  • Un OS Debian en serveur. - la gestion du wifi - apache comme serveur web - je ne sais pas encore quelle base de donnée. - PHP pour acceder à la base de donnée - La couche au dessus de PHP je te laisse décider - Il serait donc plus simple que tu gère aussi l’HTML et le CSS les cibles sont des smartsphones récents et peut-être à terme deux PC sous #@ SGREUX NIEUX NIEUX windows @# :-( !

Point d’attention

  • Toutes les allées ne sont pas structurées aussi simplement, par exemple:

    • les pièces hydrauliques sont dans des meubles d'étagères en bois de forme différente des précédentes;
    • les petits boulons et vis ( de 4, de 6) sont dans une armmoire métallique contenant une trentaine de tiroirs;
    • les fusibles et porte-fusibles sont dans une autre armoire métallique;
    • les bagues-ressorts sont dans une autre armoire métallique.
  • Lors de l’inventaire annuel, les boîtes sont souvent reposées à un autre emplacement sur les étagères: il n’est pas garanti que la position d’aujourd’hui soit la position de demain.