Beispiel #1
0
        public static List<MaquinaJSON> CarregaTiposMaquina(String ids)
        {
            GrobContext db = new GrobContext();

            String[] listIds = ids.Trim().Split(';');
            List<Maquina> listaComTodasAsMaquinas = new List<Maquina>();

            foreach (var stringId in listIds)
            {
                if (stringId != "")
                {
                    int id = Convert.ToInt32(stringId);
                    List<Maquina> listMaquinas = db.Maquinas.Where(m => m.IdTipoMaquina == id).ToList();
                    listaComTodasAsMaquinas.AddRange(listMaquinas);
                }
            }

            List<MaquinaJSON> maquinaJsons = new List<MaquinaJSON>();
            foreach(Maquina m in listaComTodasAsMaquinas)
            {
                MaquinaJSON maquinaJson = new MaquinaJSON(m.Id,m.Desc,m.Nome,m.IdTipoMaquina);
                maquinaJsons.Add(maquinaJson);
            }

            return maquinaJsons;
        }
Beispiel #2
0
        public string Status()
        {
            const int ID_MOTIVO_MAQUINA_MANUTENCAO_PREV = 6;
            const int ID_MOTIVO_MAQUINA_MANUTENCAO_CORR = 18;

            GrobContext db = new GrobContext();

            List<ParadasMaquina> paradas = db.ParadasMaquinas.Where(p => p.IdMaquina == this.Id && p.DataFim == null).ToList();

            if(paradas.Count == 0)
            {
                return "Ativa";
            }else{
                List<ParadasMaquina> paradasMaquinas = db.ParadasMaquinas.Where(p => p.IdMaquina == this.Id && p.DataFim == null
                                                                     && (p.IdMotivo1 == ID_MOTIVO_MAQUINA_MANUTENCAO_CORR
                                                                         || p.IdMotivo1 == ID_MOTIVO_MAQUINA_MANUTENCAO_PREV)).ToList();

                if(paradasMaquinas.Count > 0)
                {
                    return "Manutenção";
                }else
                {
                    return "Parada";
                }
            }

            return null;
        }
Beispiel #3
0
        // ***********************************************
        // Método que retorna os dados do gráfico concatenados em uma string
        // só mandar o id da maquina, a data inicial de pesquisa e o context.
        private static string GeraDadosGrafico(int id, DateTime dateTime )
        {
            GrobContext db = new GrobContext();

            List<IGrouping<string, ParadasMaquina>> paradasMaquinas =
                db.ParadasMaquinas.Where(m => m.IdMaquina == id &&
                    (m.DataFim > dateTime || m.DataInicio > dateTime || m.DataFim == null)).GroupBy(m => m.Motivo1.Descricao).ToList();

            List<DadosGrafico> dadosGraficos = new List<DadosGrafico>();

            foreach (var paradasMaquina in paradasMaquinas)
            {
                TimeSpan? intervaloTempo = TimeSpan.Zero;
                foreach (var maquina in paradasMaquina)
                {
                    AcetaListaDeDatas(dateTime, maquina);
                    intervaloTempo = intervaloTempo + (maquina.DataFim - maquina.DataInicio);
                }
                dadosGraficos.Add(new DadosGrafico(paradasMaquina.Key, intervaloTempo));
            }
            dadosGraficos = dadosGraficos.OrderByDescending(d => d.IntervaloTempo).ToList();

            String valoresGrafico = String.Empty;
            foreach (var dadosGrafico in dadosGraficos)
            {
                String desc = dadosGrafico.Descricao;
                if (desc == null)
                {
                    desc = "Sem Motivo";
                }

                if(dadosGrafico.IntervaloTempo == null)
                {
                    dadosGrafico.IntervaloTempo = TimeSpan.Zero;
                }

                valoresGrafico = valoresGrafico + desc + ":" + dadosGrafico.IntervaloTempo.Value.TotalMinutes + ';';
            }
            db.Dispose();

            return valoresGrafico;
        }
Beispiel #4
0
        /* Método que implementa o cálculo
        Fórmula Disponibilidade:
        (24 - Todas as paradas - paradas gerais)*100 /24. */
        private static int GeraDadosDisponiblidade(int id, int horasTotais, DateTime dateTime)
        {
            GrobContext db = new GrobContext();

            List<ParadasMaquina> paradasMaquinas =
                db.ParadasMaquinas.Where(m => m.IdMaquina == id &&
                                              (m.DataFim > dateTime || m.DataInicio > dateTime || m.DataFim == null)).ToList();

            TimeSpan? intervaloTempo = TimeSpan.Zero;
            foreach (var paradasMaquina in paradasMaquinas)
            {
                AcetaListaDeDatas(dateTime, paradasMaquina);
                intervaloTempo = intervaloTempo + (paradasMaquina.DataFim - paradasMaquina.DataInicio);
            }

            //Faz o Calcúlo para saber quais das paradas são gerais.
            List<ParadasMaquina> maquinas = paradasMaquinas.Where(p => p.IdMotivo1 == 39).ToList();
            TimeSpan? intervaloTempoGeral = TimeSpan.Zero;
            foreach (var paradasMaquina in maquinas)
            {
               AcetaListaDeDatas(dateTime, paradasMaquina);
                intervaloTempoGeral = intervaloTempoGeral + (paradasMaquina.DataFim - paradasMaquina.DataInicio);
            }

            if (intervaloTempo == null)
            {
                intervaloTempo = TimeSpan.Zero;
            }
            if (intervaloTempoGeral == null)
            {
                intervaloTempoGeral = TimeSpan.Zero;
            }

            double totalHoras = intervaloTempo.Value.TotalHours;
            double totalHorasGerais = intervaloTempoGeral.Value.TotalHours;

            db.Dispose();
            //Cálculo para saber a disponibilidade.
            return (int) (((horasTotais - (totalHoras - totalHorasGerais))*100)/horasTotais);
        }