private ContadorEstatistico AtualizarContadorEvento(ContadorEstatistico Contador, int NumEquipamentosEspera) { this.Duracao = (Funcionario.Experiencia * gerarValorAleatorio(1, 10)); Contador.IncrementaEmbalarEquipamentoParaEnvio(TempoEntrada, TempoEntradaEmFilaEspera, Duracao, NumEquipamentosEspera); return(Contador); }
private ContadorEstatistico AtualizarContadorEvento(ContadorEstatistico Contador, int NEquipamentoFilaEspera) { this.Duracao = gerarValorAleatorio(1, 7, this.Funcionario.Experiencia); Contador.IncrementaReceberEquipamento(TempoEntrada, TempoEntradaEmFilaEspera, Duracao, NEquipamentoFilaEspera); return(Contador); }
public ContadorEstatistico AtualizarContadorEvento(ContadorEstatistico Contador, int NumEquipamentosEspera) { //Determina o tempo de testes com base da experienca e do valor aleatorio entre 40 e 60 u tempo Duracao = (Funcionario.Experiencia) * (float)(Reparacao.Testes) + (gerarValorAleatorio(2, 4)); Contador.IncrementaExecutaTestes(TempoEntrada, TempoEntradaEmFilaEspera, Duracao, NumEquipamentosEspera); return(Contador); }
//vai atualizando o contador estatistico public ContadorEstatistico AtualizarContadorEvento(ContadorEstatistico Contador, int NumEquipamentosEspera) { var distribuicaoStock = gerarValorAleatorio(0, 100); if (distribuicaoStock >= 30) { Duracao = gerarValorAleatorio(3, 5); } else if (distribuicaoStock <= 30) { Duracao = (float)(Funcionario.Experiencia) * (float)(gerarValorAleatorio(4, 9)); } Contador.IncrementaFazPedidoRecebeMaterial(TempoEntrada, TempoEntradaEmFilaEspera, Duracao, NumEquipamentosEspera); return(Contador); }
private void GerarEvento(List <ColaboradorArmazem> Funcionarios, List <FazPedidoRecebeMaterial> ListaEspera, List <IEvento> ListaEventos, ContadorEstatistico contador) { if (ListaEspera.Count() > 0 && Funcionarios.Any(x => x.Ocupado == false)) { ListaEspera = ListaEspera.OrderBy(x => x.TempoEntradaEmFilaEspera).ToList(); var novoEvento = ListaEspera.FirstOrDefault(); ListaEspera.RemoveAt(0); novoEvento.Funcionario = Funcionarios.FirstOrDefault(x => x.Ocupado == false); novoEvento.TempoEntrada = contador.TempoAtual; ListaEventos.Add(novoEvento); novoEvento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); } }
private void AvancarProximoEvento(List <Tecnico> Funcionarios, List <ProcederReparacao> ListaEspera, ContadorEstatistico Contador, List <IEvento> ListaEventos) { if (Funcionarios.Where(x => x.Ocupado == false).Count() > 0) { var evento = new ProcederReparacao() { Equipamento = this.Equipamento, Funcionario = Funcionarios.Where(x => x.Ocupado == false).FirstOrDefault(), TempoEntradaEmFilaEspera = Contador.TempoAtual, TempoEntrada = Contador.TempoAtual }; evento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); ListaEventos.Add(evento); } else { var evento = new ProcederReparacao() { Equipamento = Equipamento, TempoEntradaEmFilaEspera = Contador.TempoAtual }; ListaEspera.Add(evento); } }
private void GerarEvento(List <ColaboradorLogistica> Funcionarios, List <EmbalarEquipamentoParaEnvio> ListaEspera, List <IEvento> ListaEventos, ContadorEstatistico contador) { if (ListaEspera.Count() > 0 && Funcionarios.Any(x => x.Ocupado == false)) { ListaEspera = ListaEspera.OrderBy(x => x.TempoEntradaEmFilaEspera).ToList(); var novoEvento = ListaEspera.FirstOrDefault(); ListaEspera.RemoveAt(0); novoEvento.Funcionario = Funcionarios.FirstOrDefault(x => x.Ocupado == false); novoEvento.TempoEntrada = contador.TempoAtual; novoEvento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); ListaEventos.Add(novoEvento); } }
private void AvancaEventoAposTeste(List <ColaboradorLogistica> Funcionarios, List <EmbalarEquipamentoParaEnvio> ListaEspera, ContadorEstatistico Contador, List <IEvento> ListaEventos) { if (Funcionarios.Where(x => x.Ocupado == false).Count() > 0) { var evento = new EmbalarEquipamentoParaEnvio() { Equipamento = this.Equipamento, Funcionario = Funcionarios.Where(x => x.Ocupado == false).FirstOrDefault(), TempoEntradaEmFilaEspera = Contador.TempoAtual, TempoEntrada = Contador.TempoAtual }; evento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); ListaEventos.Add(evento); } else { var evento = new EmbalarEquipamentoParaEnvio() { Equipamento = Equipamento, TempoEntradaEmFilaEspera = Contador.TempoAtual }; ListaEspera.Add(evento); } }
private void GerarEvento(List <Tecnico> Funcionarios, List <ProcederDiagnostico> ListaEspera, List <IEvento> ListaEventos, ContadorEstatistico contador) { if (ListaEspera.Count() > 0 && Funcionarios.Any(x => x.Ocupado == false)) { ListaEspera = ListaEspera.OrderBy(x => x.TempoEntradaEmFilaEspera) .OrderBy(x => x.Equipamento.EquipamentoUrgencia || x.Equipamento.EquipamentoReclamacao) .ToList(); var novoEvento = ListaEspera.FirstOrDefault(); ListaEspera.RemoveAt(0); novoEvento.Funcionario = Funcionarios.FirstOrDefault(x => x.Ocupado == false); novoEvento.TempoEntrada = contador.TempoAtual; ListaEventos.Add(novoEvento); novoEvento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); } }
private ContadorEstatistico AtualizarContadorEvento(ContadorEstatistico Contador, int NumEquipamentosEspera) { Contador.IncrementaProcederDiagnostico(TempoEntrada, TempoEntradaEmFilaEspera, Duracao, NumEquipamentosEspera); return(Contador); }
private void GerarFazPedidoRecebeMaterial(List <ColaboradorArmazem> Funcionarios, List <FazPedidoRecebeMaterial> ListaEspera, ContadorEstatistico Contador, List <IEvento> ListaEventos) { if (Funcionarios.Where(x => x.Ocupado == false).Count() > 0) { var evento = new FazPedidoRecebeMaterial() { Equipamento = this.Equipamento, Funcionario = Funcionarios.Where(x => x.Ocupado == false).FirstOrDefault(), TempoEntradaEmFilaEspera = Contador.TempoAtual, TempoEntrada = Contador.TempoAtual }; evento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); ListaEventos.Add(evento); } else { var evento = new FazPedidoRecebeMaterial() { Equipamento = Equipamento, TempoEntradaEmFilaEspera = Contador.TempoAtual }; ListaEspera.Add(evento); } }
public void GerarEvento(List <ColaboradorLogistica> Funcionarios, List <ReceberEquipamento> ListaEspera, ContadorEstatistico Contador, List <IEvento> ListaEventos, int NEquipamentos) { if (Funcionarios.Where(x => x.Ocupado == false).Count() > 0 && Contador.NumEquipamentos < NEquipamentos) { ReceberEquipamento novoEvento; if (ListaEspera.Any()) { novoEvento = ListaEspera.First(); novoEvento.Funcionario = Funcionarios.FirstOrDefault(x => x.Ocupado == false); ListaEspera.RemoveAt(0); } else { novoEvento = new ReceberEquipamento() { TempoEntradaEmFilaEspera = Contador.TempoAtual, TempoEntrada = Contador.TempoAtual + gerarValorAleatorio(0, 2, 1), Funcionario = Funcionarios.FirstOrDefault(x => x.Ocupado == false) }; } ListaEventos.Add(novoEvento); novoEvento.AtualizarEstadoFuncionario(Funcionarios.ToList(), true); } else { var novoRecebeEquipamento = new ReceberEquipamento() { TempoEntradaEmFilaEspera = Contador.TempoAtual, }; ListaEspera.Add(novoRecebeEquipamento); } }