Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rudolph Vogel Geändert vor über 8 Jahren
1
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS 2012-13 Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 1
2
Gliederung Fleet Management Xtreme Programming Aufbau Java MVC, Singleton- Patterns Funktionen Fahrzeuge Reservierungen Werkstatt Statistiken PDF-Generator Testfälle (J-Unit-Tests) Web-Applikation (PHP) Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 2
3
Fleet Management Tool Einfach Möglichkeit den firmeninternen Fuhrpark zu verwalten – Ausleihe – Reservierung – Mitarbeiterverwaltung – Statistiken – Zusätzliche Weboberfläche Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 3
4
ER-Model Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 4
5
Xtreme Programming Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 5 RollenAufgabenBeispiel ProduktbesitzerHat Verantwortung, setzt Prioritäten, Entscheider für bestes ROI Produktmanagement, Marketing, ein Benutzer, Kunde, Manager des Benutzers, Analyst, Sponsor KundeEntscheidet, was gemacht wird, gibt Rückmeldung, Auftraggeber Auftraggeber, kann auch Produktbesitzer sein EntwicklerEntwickelt das ProduktProgrammierer, Tester, DB- Experte, Architekt, Designer ProjektmanagerFührung des TeamsNormalerweise Produktbesitzer, kann auch Entwickler sein BenutzerWird das zu erstellende Produkt nutzen Nutzer des Produkts Quelle: http://de.wikipedia.org/wiki/Extreme_Programming
6
User Stories Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 6
7
Pair-Programming Wechselnde Paare Höherer Wissenstransfer Anfänger kommen schneller rein Ständiger Codereview Ziel: Bessere Codequalität Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 7
8
MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 8 Termin für Reparatur vereinbaren Status
9
MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 9
10
MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 10
11
MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 11
12
MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 12
13
MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 13
14
MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 14
15
Aufbau Java MVC und Singleton Pattern Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 15
16
MVC MVC Pattern – Flexible Programmierung Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld ViewControllerModel DAO
17
Singleton Singleton Pattern – Nur ein Objekt der Klasse darf existieren Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 17 Singleton -instance: Singleton -Singleton() + getInstance(): Singleton
18
Singleton Beispiel: package com.hsulm.wf5.fleetmanagement.model; public class FahrzeugDAO implements InterfaceDAO { private Ausstattung ausstattung; // Singleton// nur ein Objekt der Klasse kann erzeugt werden private static FahrzeugDAO instance = new FahrzeugDAO(); Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 18
19
Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 19
20
Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 20
21
Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 21
22
package com.hsulm.wf5.fleetmanagement.view.FahrzeugBearbeiten.java JButton btnHinzufgen = new JButton("Hinzuf\u00FCgen"); btnHinzufgen.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { String kennzeichen = kennzeichenTextField.getText(); String standort = standortTextField.getText(); String farbe = farbeTextField.getText(); String erstzulassung = erstzulassungTextField.getText(); String kraftstoffart = kraftstoffartTextField.getText(); int sitzplaetze = Integer.parseInt(sitzplaetzeTextField.getText()); DateFormat formater = new SimpleDateFormat(); Date vertragsbeginn = null; String tuev = null; try { vertragsbeginn = (Date) formater.parse(vertragsbeginnTextField.getText()); } catch (ParseException e) { e.printStackTrace(); return; } tuev = tuevTextField.getText(); int serviceintervall = Integer.parseInt(serviceintervallTextField.getText()); String getriebe = getriebeTextField.getText(); int vertragslaufzeit = Integer.parseInt(vertragslaufzeitTextField.getText()); int herstellerId = Integer.parseInt(herstellerIdTextField.getText()); int werkstattId = Integer.parseInt(werkstattIdTextField.getText()); int kilometerstand = Integer.parseInt(kilometerstandTextField.getText()); String vertragsart = vertragsartTextField.getText(); String model = modelTextField.getText(); FahrzeugController fc = FahrzeugController.getInstance(); } }); Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 22
23
package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java public void fahrzeugUpdaten(int arrayID, String vertragsart, int serviceintervall, String kennzeichen, String standort, String tuev, String vertragsbeginn, int vertragslaufzeit, int werkstattId, int kilometerstand) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException { Fahrzeug fahrzeug = fahrzeuge.get(arrayID); fahrzeug.setKennzeichen(kennzeichen); fahrzeug.setKilometerstand(kilometerstand); fahrzeug.setStandort(standort); fahrzeug.setTuev(tuev); fahrzeug.setVertragsBeginn(vertragsbeginn); fahrzeug.setVertragsLaufzeitMonate(vertragslaufzeit); fahrzeug.setWerkstattId(werkstattId); fahrzeug.setVertragsart(vertragsart); fahrzeug.setServiceIntervall_KM(serviceintervall); System.out.println("controller" + fahrzeug.getKilometerstand()); // fahrzeug updaten fahrzeug.objektUpdaten(fahrzeug); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 23
24
package com.hsulm.wf5.fleetmanagement.model.Fahrzeug.java public void objektUpdaten(Fahrzeug fahrzeug) { dao.objektUpdaten(fahrzeug); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 24
25
package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java public void objektUpdaten(Fahrzeug object) { try { java.sql.Connection conn = Connection.connect(); PreparedStatement preStmt = conn.prepareStatement("CALL updateFahrzeug(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); java.sql.Date vertragsbeginn=null; if(!object.getVertragsBeginn().equals("null")){vertragsbeginn = java.sql.Date.valueOf(object.getVertragsBeginn());} preStmt.setString(1, object.getKennzeichen()); preStmt.setString(2, object.getStandort()); preStmt.setString(3, object.getFarbe()); preStmt.setString(4, object.getErstzulassung()); preStmt.setString(5, object.getKraftstoffart()); preStmt.setInt(6, object.getSitzplaetze()); preStmt.setString(7, object.getTuev()); preStmt.setInt(8, object.getServiceIntervall_KM()); preStmt.setString(9, object.getGetriebe()); preStmt.setString(10, object.getVertragsart()); preStmt.setDate(11, vertragsbeginn); preStmt.setInt(12, object.getVertragsLaufzeitMonate()); preStmt.setInt(13, object.getWerkstattId()); preStmt.setInt(14, object.getHerstellerId()); preStmt.setString(15, object.getModell()); preStmt.setInt(16, object.getKilometerstand()); preStmt.executeUpdate(); preStmt.close(); conn.close(); } catch (SQLException sqle) { sqle.printStackTrace(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 25
26
Suchfunktion Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 26
27
package com.hsulm.wf5.fleetmanagement.view.MainGui.java public JTextField sucheFahrzeug; this.sucheFahrzeug = new JTextField(); public void set_fahrzeugsucheListener(KeyListener l){ sucheFahrzeug.addKeyListener(l); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 27
28
package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java public void Fahrzeuginit() { MainGUI.getInstance().getTable_2().setRowSorter(null); MainGUI.getInstance().sucheFahrzeug.setText(""); MainGUI.getInstance().set_fahrzeugsucheListener(new fahrzeug_sucheListener()); } class fahrzeug_sucheListener implements KeyListener{ public void keyReleased(KeyEvent e) { TableRowSorter sorter = new TableRowSorter (MainGUI.getInstance().getTable_2().getModel()); MainGUI.getInstance().getTable_2().setRowSorter(sorter); filter(MainGUI.getInstance().sucheFahrzeug.getText(),sorter); } public void filter (String text,TableRowSorter sorter) { if (text.length() == 0) { sorter.setRowFilter(null); } else { try { sorter.setRowFilter(RowFilter.regexFilter("(?i)"+text)); } catch (PatternSyntaxException e) { System.out.println(e.getPattern()); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 28
29
Reservierungen Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 29
30
Reservierungen Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 30
31
Mitarbeiterübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 31
32
Mitarbeiterübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 32
33
Werkstattübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 33
34
Werkstattübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 34
35
Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 35
36
Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 36
37
Statistiken Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 37
38
package com.hsulm.wf5.fleetmanagement.view.MainGui.java ActionListener al7 = new ActionListener() { public void actionPerformed(ActionEvent e) { FahrzeugReserviert demo = new FahrzeugReserviert("Vergleich„, "Fahrzeuge, die am meisten reserviert wurden"); demo.FahrzeugReserviertStart(); demo.pack(); demo.setVisible(true); } }; Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 38
39
package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java ArrayList fz; public FahrzeugReserviert(String applicationTitle, String chartTitle) { super(applicationTitle); fz = new ArrayList (); fz = FahrzeugDAO.getInstance().fahrzeugeAmMeistenReserviert(); // This will create the dataset PieDataset dataset = createDataset(); // based on the dataset we create the chart chart = createChart(dataset, chartTitle); // we put the chart into a panel ChartPanel chartPanel = new ChartPanel(chart); // default size chartPanel.setPreferredSize(new java.awt.Dimension(600, 400)); // add it to our application this.FahrzeugReserviert = chartPanel; } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 39
40
package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java public ArrayList fahrzeugeAmMeistenReserviert() { ArrayList fahrzeugstat = new ArrayList (); Fahrzeug fahrzeug; try { java.sql.Connection con = Connection.connect(); CallableStatement cst; cst = con.prepareCall("Call FahrzeugAmMeistenReserviert()"); ResultSet rs = cst.executeQuery(); while (rs.next()) { fahrzeug = new Fahrzeug(rs.getInt("AnzahlReservierungen"), rs.getString("Kennzeichen"), rs.getString("Name"), rs.getString("Modell")); fahrzeugstat.add(fahrzeug); } cst.close(); rs.close(); con.close(); } catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } return fahrzeugstat; } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 40
41
FahrzeugAmMeistenReserviert () delimiter $$ CREATE DEFINER=`wfprj_wf5_09`@`%` PROCEDURE `FahrzeugAmMeistenReserviert`() begin select count(f.Kennzeichen) AS "AnzahlReservierungen", h.Name, ft.Modell, f.kennzeichen from hersteller h join fahrzeugtyp ft join fahrzeug f join reservierungspos rp where f.Kennzeichen = rp.Kennzeichen and ft.Modell = f.Modell and h.HerstellerID = ft.HerstellerID group by f.Kennzeichen order by count(f.Kennzeichen) desc; end$$ Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 41
42
Chart: Fahrzeuge, die am meisten reserviert wurden Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 42
43
PDF-Generator Generation von PDFs – Tabellen Fahrzeug Reservierungen Mitarbeiter – Statistiken Top 5 gefahrene Kilometer Reservierte Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 43
44
PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 44
45
PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 45
46
PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 46
47
PDF-Generator Programmierung – PDFGenerator.java Erstellt PDF – ExportPDFFrame.java (GUI) Ruft Jtables auf – Jtables-Klassen und Statistik-Klassen Rufen PDFGenerator auf Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 47
48
package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java ActionListener exp = new ActionListener() { @Override public void actionPerformed( ActionEvent e ) { if(FahrzeugeIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); } if(ReservierungenIsActive()){ MainGUI.getInstance().getTable_3().createPDF(); } if(MitarbeiterIsActive()) { MainGUI.getInstance().getTable_4().createPDF(); } if(TopFuenfIsActive()) { erstelleMitarbeiterKMPDF(); } if(ReservierteFahrzeugeIsActive()) { erstelleFahrzeugeReserviertPDF(); } if(AlleIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); MainGUI.getInstance().getTable_3().createPDF(); erstelleMitarbeiterKMPDF(); erstelleFahrzeugeReserviertPDF(); } }}; Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 48
49
package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java public void erstelleFahrzeugeReserviertPDF() { FahrzeugReserviert reservierteFahrzeuge; reservierteFahrzeuge = new FahrzeugReserviert("Vergleich", "Fahrzeuge, die am meisten reserviert wurden"); reservierteFahrzeuge.pack(); RefineryUtilities.centerFrameOnScreen(reservierteFahrzeuge); reservierteFahrzeuge.setVisible(false); reservierteFahrzeuge.createPDF(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 49
50
package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java public void createPDF() { PDFGenerator gen = new PDFGenerator(); PDFGenerator.writeChartToPDF(getChart(), 585, 312, "Reservierte Fahrzeuge.pdf"); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 50
51
package com.hsulm.wf5.fleetmanagement.pdfgeneration.PDFGenerator.java public static void writeChartToPDF(JFreeChart chart, int width, int height, String fileName) { PdfWriter writer = null; Document document = new Document(PageSize.A4.rotate(), 20, 15, 15, 15); try { writer = PdfWriter.getInstance(document, new FileOutputStream(fileName)); document.open(); BufferedImage bufferedImage = chart.createBufferedImage(width, height); Image image = Image.getInstance(writer, bufferedImage, 1.0f); document.add(image); document.close(); writer.close(); Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + fileName); } catch (Exception e) { e.printStackTrace(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 51
52
Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 52
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.