Exemplo n.º 1
0
        // 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!");
        }
Exemplo n.º 2
0
        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);
                    }
                }
            }
        }