Skip to content

Method: getZuVerarbeitenderAuftrag()

1: package zeit.eintraege;
2:
3: import auftraege.ProduktionsAuftrag;
4: import com.google.common.base.Objects;
5: import tec.uom.se.ComparableQuantity;
6:
7: import javax.measure.quantity.Time;
8: import java.time.LocalDateTime;
9:
10: /**
11: * Repräsentiert abstrakt die Belegung eines Menschen oder einer Maschine in der Produktionsplanung.
12: * Diese erbt von KalenderEintrag, da diese Belegungen im Kalender des Menschen oder der Maschine eingetragen werden müssen.
13: */
14: public abstract class BelegungsEintrag extends KalenderEintrag {
15:         private final ProduktionsAuftrag zuVerarbeitenderAuftrag;
16:
17:         /**
18:          *
19:          * @param startZeitpunkt Startzeitpunkt der Belegung
20:          * @param dauer Dauer der Belegung
21: * @param zuVerarbeitenderAuftrag Produktionsauftrag an welchem gearbeitet wird
22:          */
23:         protected BelegungsEintrag(final LocalDateTime startZeitpunkt,
24: final ComparableQuantity<Time> dauer,
25: final ProduktionsAuftrag zuVerarbeitenderAuftrag) {
26: super(startZeitpunkt, dauer, KalenderEintragTyp.BELEGT);
27: this.zuVerarbeitenderAuftrag = zuVerarbeitenderAuftrag;
28: }
29:
30:         /**
31:          *
32:          * @param startZeitpunkt Startzeitpunkt der Belegung
33:          * @param endeZeitpunkt Endezeitpunkt der Belegung
34: * @param zuVerarbeitenderAuftrag Produktionsauftrag an welchem gearbeitet wird
35:          */
36: protected BelegungsEintrag(final LocalDateTime startZeitpunkt,
37: final LocalDateTime endeZeitpunkt,
38: final ProduktionsAuftrag zuVerarbeitenderAuftrag) {
39: super(startZeitpunkt, endeZeitpunkt, KalenderEintragTyp.BELEGT);
40: this.zuVerarbeitenderAuftrag = zuVerarbeitenderAuftrag;
41: }
42:
43: /**
44: * @param andererEintrag andere Belegung
45: * @return true, falls der Zeitraum der Belegung und der Produktionsauftrag an welchem gearbeitet wird gleich sind.
46: */
47:         public boolean gleicherZeitraumUndProduktionsauftrag(final BelegungsEintrag andererEintrag) {
48:                 return this.getVon().equals(andererEintrag.getVon())
49:                                 && this.getBis().equals(andererEintrag.getBis())
50:                                 && this.getZuVerarbeitenderAuftrag().equals(andererEintrag.getZuVerarbeitenderAuftrag());
51:         }
52:
53:         /**
54:          * @return den Produktionsauftrag an welchem, im Rahmen dieser Belegung, gearbeitet wird.
55:          */
56:         public ProduktionsAuftrag getZuVerarbeitenderAuftrag() {
57:                 return this.zuVerarbeitenderAuftrag;
58:         }
59:
60: @Override
61: public boolean equals(final Object o) {
62: if (this == o) {
63: return true;
64: }
65: if (!(o instanceof BelegungsEintrag)) {
66: return false;
67: }
68: if (!super.equals(o)) {
69: return false;
70: }
71: final BelegungsEintrag that = (BelegungsEintrag) o;
72: return Objects.equal(this.zuVerarbeitenderAuftrag, that.zuVerarbeitenderAuftrag);
73: }
74:
75: @Override
76: public int hashCode() {
77: return Objects.hashCode(super.hashCode(), this.zuVerarbeitenderAuftrag);
78: }
79: }