// Programme zum Datenverarbeitung der Sacannerdaten ************************************************************** private void BauteilBeendet(JgScannerAusgabe ScanAusgabe, JgMaschineStamm Maschine) { var meldung = new JgMeldung() { Id = Maschine.AktivBauteil.Id, IdBediener = Maschine.AktivBauteil.IdBediener, Meldung = ScannerMeldung.BAUT_ENDE, Aenderung = DateTime.Now }; Maschine.ListeBauteile.Add(new JgBauteilFertig(meldung.Id, Maschine.AktivBauteil.IdBauteilJgData)); Maschine.AktivBauteil = null; JgLog.Set(Maschine, $"Bauteilt: {meldung.Id} erledigt", JgLog.LogArt.Unbedeutend); _JgOpt.QueueSend($"Bauteil {ScanAusgabe.ScannKoerper} fertig", Maschine, meldung); ScanAusgabe.Set(false, false, "", "Bauteil", "fertig!"); }
private void MaschineAnmeldungEintragen(JgScannerAusgabe ScanAusgabe, JgMaschineStamm Maschine) { var bediener = _JgOpt.JgOpt.ListeBediener.FirstOrDefault(f => (f.Value.NummerAusweis == ScanAusgabe.ScannKoerper)).Value; if (bediener == null) { JgLog.Set(Maschine, $"Bediener ({ScanAusgabe.ScannKoerper}) nicht in Datenbank !", JgLog.LogArt.Info); ScanAusgabe.Set(false, true, "Bediener", ScanAusgabe.ScannKoerper, "nicht regisitriert"); } else { if ((ScanAusgabe.Meldung == ScannerMeldung.ANMELDUNG) && (Maschine.MeldBediener != null)) { if (bediener.Id == Maschine.MeldBediener.IdBediener) { ScanAusgabe.Set(false, true, "Bediener", bediener.BedienerName, "bereits angemeldet!"); return; } else if (Maschine.MeldListeHelfer.Any(f => f.IdBediener == bediener.Id)) { ScanAusgabe.Set(false, true, "Helfer", bediener.BedienerName, "bereits angemeldet!"); return; } } // In allen Maschinen nach einer Anmeldung suchen und abmelden var abmeldungBediener = false; var abmeldungHelfer = false; foreach (var maAbmeldung in _JgOpt.JgOpt.ListeMaschinen.Values) { // Wenn Bediener auf einer Maschine angemeldet ist if (maAbmeldung?.MeldBediener?.IdBediener == bediener.Id) { abmeldungBediener = true; var msg = $"Bediener {bediener.BedienerName} abgemeldet"; var meldung = maAbmeldung.MeldBediener.Abmeldung(); maAbmeldung.MeldBediener = null; _JgOpt.QueueSend(msg, maAbmeldung, meldung); JgLog.Set(Maschine, msg, JgLog.LogArt.Unbedeutend); // Bei Bedienerabmeldung auch alle Helfer abmelden foreach (var meldHelfer in maAbmeldung.MeldListeHelfer) { // Wenn Helfer in Liste Bediener vorhanden if (_JgOpt.JgOpt.ListeBediener.ContainsKey(meldHelfer.IdBediener)) { meldHelfer.Abmeldung(); msg = $"Helfer {_JgOpt.JgOpt.ListeBediener[meldHelfer.IdBediener].BedienerName} abgemeldet!"; _JgOpt.QueueSend(msg, maAbmeldung, meldHelfer); JgLog.Set(Maschine, msg, JgLog.LogArt.Unbedeutend); } } Maschine.MeldListeHelfer.Clear(); } else { // Ob in einer Helferliste eingetragen var lHelfer = maAbmeldung.MeldListeHelfer.Where(w => w.IdBediener == bediener.Id).ToList(); foreach (var meldHelfer in lHelfer) { abmeldungHelfer = true; if (_JgOpt.JgOpt.ListeBediener.ContainsKey(meldHelfer.IdBediener)) { var meldung = meldHelfer.Abmeldung(); maAbmeldung.MeldListeHelfer.Remove(meldHelfer); _JgOpt.QueueSend($"Helfer {_JgOpt.JgOpt.ListeBediener[meldHelfer.IdBediener]} abgemeldet", maAbmeldung, meldung); JgLog.Set(Maschine, $"Helfer {_JgOpt.JgOpt.ListeBediener[meldHelfer.IdBediener].BedienerName} abgemeldet!", JgLog.LogArt.Unbedeutend); } } } } if (ScanAusgabe.Meldung == ScannerMeldung.ABMELDUNG) { if (abmeldungBediener) { ScanAusgabe.Set(false, false, "", "Bediener", bediener.BedienerName, "abgemeldet!"); } else if (abmeldungHelfer) { ScanAusgabe.Set(false, false, "", "Helfer", bediener.BedienerName, "abgemeldet!"); } else { ScanAusgabe.Set(false, true, "Keine Anmeldung", bediener.BedienerName, "registriert!"); } } else // Anmeldung eintragen { if (Maschine.MeldBediener == null) { Maschine.MeldBediener = new JgMeldung(bediener.Id, ScannerMeldung.ANMELDUNG); _JgOpt.QueueSend($"Bediener {bediener.BedienerName} angemeldet", Maschine, Maschine.MeldBediener); ScanAusgabe.Set(false, false, "", "Bediener", bediener.BedienerName, "angemeldet!"); JgLog.Set(Maschine, $"Bediener {bediener.BedienerName} angemeldet!", JgLog.LogArt.Unbedeutend); } else // Wenn ein Bediener angemeldet, wird ein Helfer angemeldet { var meld = new JgMeldung(bediener.Id, ScannerMeldung.ANMELDUNG); Maschine.MeldListeHelfer.Add(meld); _JgOpt.QueueSend($"Helfer {bediener.BedienerName} angemeldet", Maschine, meld); ScanAusgabe.Set(false, false, "", "Helfer", bediener.BedienerName, "angemeldet!"); JgLog.Set(Maschine, $"Helfer {bediener.BedienerName} angemeldet!", JgLog.LogArt.Unbedeutend); } } } }