public void FichajeMaquina(FichajeAsociacionEventArgs ev) { if (OnFichajeMaquina != null) { OnFichajeMaquina(this, ev); } }
private void FichajeAgente_OnFichajeAsociacion(object sender, FichajeAsociacionEventArgs e) { try { this.colaEventosFichaje.Enqueue(e); } catch (Exception ex) { new Log().Escribir(ex); } }
private void FichajeAgente_OnFichajeAsociacion(object sender, FichajeAsociacionEventArgs e) { try { this.colaEventosFichaje.Enqueue(e); if (maquinasEmparejadas.ContainsKey(e.CodigoMaquina)) { this.colaEventosFichaje.Enqueue(new FichajeAsociacionEventArgs(maquinasEmparejadas[e.CodigoMaquina], e.CodigoBarquilla)); } } catch (Exception ex) { new Log().Escribir(ex); } }
private void TimerEventoFichaje_Tick(object sender, EventArgs e) { FichajeAsociacionEventArgs evento = null; try { if (colaEventosFichaje.Count == 0) { return; } evento = colaEventosFichaje.Dequeue(); if (evento != null) { //asociar Maquinas maquina = null; foreach (var pantalla in this.paginasModulos) { foreach (var m in pantalla.Maquinas) { if (m.CodigoEtiqueta == evento.CodigoMaquina) { maquina = m; break; } } } if (maquina != null) { var infoBarquillaSeccion = daoTarea.BuscarInformacionBarquilla(evento.CodigoBarquilla, maquina.CodSeccion); if (infoBarquillaSeccion.Any()) { // check por si hay fallo de barquilla duplicada var agrupacion = infoBarquillaSeccion.First().Agrupacion; var idOrden = infoBarquillaSeccion.First().IdOrden; var codigoBarquilla = infoBarquillaSeccion.First().CodigoEtiqueta; if (!infoBarquillaSeccion.All(x => x.Agrupacion == agrupacion && x.CodigoEtiqueta == codigoBarquilla)) { infoBarquillaSeccion.RemoveAll(x => x.Agrupacion != agrupacion || x.CodigoEtiqueta != codigoBarquilla); } // fin check var idsOrden = infoBarquillaSeccion.Select(x => x.IdOrden); var idsOrdenDistinto = idsOrden.Distinct(); if (idsOrden.Count() != idsOrdenDistinto.Count()) { // multiOperacion } else { var idsTareas = infoBarquillaSeccion.Select(x => x.IdTarea.Value).Distinct().ToList(); evento.Control = daoTarea.BuscarControlGuardado(infoBarquillaSeccion.First().IdOperacion, maquina.IdTipo ?? 0); // bd BackgroundWorker bwActualizarCola = new BackgroundWorker(); List <MaquinasColasTrabajo> cola = new List <MaquinasColasTrabajo>(); bwActualizarCola.DoWork += (se, ev) => { cola = daoPuesto.ActualizarColaTrabajo(evento.CodigoBarquilla, idsTareas, infoBarquillaSeccion.First().Agrupacion ?? 0, maquina.ID, maquina.OperarioACargo.Id, infoBarquillaSeccion.Sum(x => x.Cantidad)); Dictionary <int, int> idOrdenesOperaciones = new Dictionary <int, int>(); foreach (var info in infoBarquillaSeccion) { idOrdenesOperaciones.Add(info.IdOrden, info.IdOperacion); } daoBarquilla.Ubicar(idOrdenesOperaciones, maquina.CodSeccion, evento.CodigoBarquilla, maquina.CodUbicacion); }; bwActualizarCola.RunWorkerCompleted += (se, ev) => { maquina.AsignarColaTrabajo(cola); }; bwActualizarCola.RunWorkerAsync(); // mqtt MqttAsociarBarquilla(infoBarquillaSeccion, maquina); } } } } } catch (Exception ex) { //MessageBox.Show(ex.Message); colaEventosFichaje.Enqueue(evento); new Log().Escribir(ex); } }