Skip to content

Package: TagesplanungsService

TagesplanungsService

nameinstructionbranchcomplexitylinemethod
ueberfuehreSimulationInKalender(SimulationsErgebnis)
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: package tagesplanung;
2:
3: import java.util.Collection;
4: import java.util.List;
5: import java.util.Set;
6:
7: import auftraege.Dokumentenklasse;
8: import auftraege.auftragsBildungsParameter.abstraction.ProduktionsauftragsParameter;
9: import maschine.Maschine;
10: import material.MaterialMitMessung;
11: import mensch.Mitarbeiter;
12: import rollenbelegung.SortierParameter.MaschinenRollenbelegungServiceParameter;
13: import simulation.SimulationsErgebnis;
14: import simulation.exceptions.SimulationsException;
15: import util.Pair;
16:
17: /**
18: * Service zur Simulation einer kompletten Tagesplanung. Integriert die Algorithmen zum Bilden von
19: * {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}, zum Finden der Maschinentyp- und Rollenbelegung und der Simulation, variiert die
20: * Parameterbelegungen und bestimmt das beste {@link SimulationsErgebnis}.
21: */
22: public interface TagesplanungsService {
23:         
24:         /**
25:          * Führt die Algorithmen zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}, zum Finden der Maschinentyp- und Rollenbelegung
26:          * und der Simulation hintereinander aus.
27:          *
28:          * @param dokumentenklassen
29:          * mit heutigem SLA als Input für den Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}
30:          * @param produktionsauftragsParameter
31:          * als Input für den Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}
32:          * @param maschinen
33:          * als Input für den Algorithmus zum Finden der Maschinentyp- und Rollenbelegung
34:          * @param mitarbeiter
35:          * als Input für den Algorithmus zum Finden der Maschinentyp- und Rollenbelegung
36:          * @param maschinenRollenbelegungServiceParameter
37:          * als Input für den Algorithmus zum Finden der Maschinentyp- und Rollenbelegung
38:          * @param verfuegbaresMaterial
39:          * als Input für den Simulationsalgorithmus
40:          * @return {@link auftraege.Dokumentenklasse Dokumentenklassen}, die vom Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag
41:          * Produktionsaufträgen} übrig sind und das erzeugte {@link SimulationsErgebnis} als {@link Pair}
42:          * @throws SimulationsException
43:          * wird geworfen, wenn simuliert werden soll, aber das {@link simulation.PruefErgebnis} fehlerhaft ist.
44:          */
45:         Pair<Collection<Dokumentenklasse>, SimulationsErgebnis> planeUndSimuliere(
46:                         Collection<Dokumentenklasse> dokumentenklassen,
47:                         Set<ProduktionsauftragsParameter> produktionsauftragsParameter,
48:                         List<Maschine> maschinen,
49:                         List<Mitarbeiter> mitarbeiter,
50:                         MaschinenRollenbelegungServiceParameter maschinenRollenbelegungServiceParameter,
51:                         Collection<MaterialMitMessung<?>> verfuegbaresMaterial) throws SimulationsException;
52:         
53:         /**
54:          * Findet die optimalen {@link ProduktionsauftragsParameter} und {@link MaschinenRollenbelegungServiceParameter} für die Tagesplanung. Dabei
55:          * werden alle bekannten SortierParameter genutzt.
56:          *
57:          * @param dokumentenklassen
58:          * mit heutigem SLA als Input für den Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}
59:          * @param maschinen
60:          * als Input für den Algotihmus zum Finden der Maschinentyp- und Rollenbelegung
61:          * @param mitarbeiter
62:          * als Input für den Algotihmus zum Finden der Maschinentyp- und Rollenbelegung
63:          * @param verfuegbaresMaterial
64:          * als Input für den Simulationsalgorithmus
65:          * @param produktionsauftragsParameter
66:          * als Grundgesamtheit zum Variieren der {@link ProduktionsauftragsParameter}
67:          * @param maschinenRollenbelegungServiceParameter
68:          * als Grundgesamtheit zum Variieren der {@link MaschinenRollenbelegungServiceParameter}
69:          * @return ein {@link Pair} der optimalen {@link ProduktionsauftragsParameter} und {@link MaschinenRollenbelegungServiceParameter}
70:          */
71:         Pair<Set<ProduktionsauftragsParameter>, MaschinenRollenbelegungServiceParameter> findeOptimaleParameterAus(
72:                         Collection<Dokumentenklasse> dokumentenklassen,
73:                         List<Maschine> maschinen,
74:                         List<Mitarbeiter> mitarbeiter,
75:                         Collection<MaterialMitMessung<?>> verfuegbaresMaterial,
76:                         Set<ProduktionsauftragsParameter> produktionsauftragsParameter,
77:                         MaschinenRollenbelegungServiceParameter maschinenRollenbelegungServiceParameter);
78:         
79:         /**
80:          * Führt die Algorithmen zum Bilden von {@link auftraege.ProduktionsAuftrag}en, zum Finden der Maschinentyp- und Rollenbelegung und der Simulation
81:          * hintereinander aus und nutzt dabei die optimalen Parameter, die aus allen verfügbaren Parametern algorithmisch gefunden werden.
82:          *
83:          * @param dokumentenklassen
84:          * mit heutigem SLA als Input für den Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen}
85:          * @param maschinen
86:          * als Input für den Algorithmus zum Finden der Maschinentyp- und Rollenbelegung
87:          * @param mitarbeiter
88:          * als Input für den Algorithmus zum Finden der Maschinentyp- und Rollenbelegung
89:          * @param verfuegbaresMaterial
90:          * als Input für den Simulationsalgorithmus
91:          * @param produktionsauftragsParameter
92:          * als Grundgesamtheit zum Variieren der {@link ProduktionsauftragsParameter}
93:          * @param maschinenRollenBelegungServiceParameter
94:          * als Grundgesamtheit zum Variieren der {@link MaschinenRollenbelegungServiceParameter}
95:          * @return {@link Dokumentenklasse}n, die vom Algorithmus zum Bilden von {@link auftraege.ProduktionsAuftrag Produktionsaufträgen} übrig sind und
96:          * das erzeugte {@link SimulationsErgebnis} als {@link Pair}
97:          */
98:         Pair<Collection<Dokumentenklasse>, SimulationsErgebnis> planeUndSimuliereMitOptimalenParameternAus(
99:                         Collection<Dokumentenklasse> dokumentenklassen,
100:                         List<Maschine> maschinen,
101:                         List<Mitarbeiter> mitarbeiter,
102:                         Collection<MaterialMitMessung<?>> verfuegbaresMaterial,
103:                         Set<ProduktionsauftragsParameter> produktionsauftragsParameter,
104:                         MaschinenRollenbelegungServiceParameter maschinenRollenBelegungServiceParameter);
105:         
106:         /**
107:          * Überführt die ermittelten Belegungen des PruefErgebnisses des {@link SimulationsErgebnis SimulationsErgebnisses} in die Kalender der
108:          * entsprechenden {@link Maschine Maschinen} und {@link Mitarbeiter}.
109:          *
110:          * @param simulationsErgebnis
111:          * das in die Kalender überführt werden soll.
112:          */
113:         default void ueberfuehreSimulationInKalender(final SimulationsErgebnis simulationsErgebnis) {
114:                 simulationsErgebnis.erzeugeKalendereintraege();
115:         }
116:         
117: }