Example #1
0
        static void Extrator(object sender)
        {
            try
            {
                if (DateTime.Now.ToString("HHmm") == "1658")
                {
                    if (ExtratorRodou == false)
                    {
                        JSgi db = new JSgi();
                        ExtratorRodou = true;
                        Console.WriteLine("Executando-> " + " SP_SGI_EXTRATOR '" + DateTime.Now.ToString("yyyyMMdd") + "', ''");
                        db.Database.ExecuteSqlCommand(" SP_SGI_EXTRATOR " + DateTime.Now.ToString("yyyyMMdd") + ", ''");
                    }
                }
                else
                {
                    ExtratorRodou = false;
                }


                StreamWriter vWriter = new StreamWriter(@"c:\Play\Extrator.txt", true);
                vWriter.WriteLine("Servico Rodando: " + DateTime.Now.ToString());
                vWriter.Flush();
                vWriter.Close();
                //Console.WriteLine("->"+ DateTime.Now.ToString("HHmm")+"    "+ DateTime.Now.ToString("HH:mm:ss"));
            }
            catch (Exception)
            {
                StreamWriter vWriter = new StreamWriter(@"c:\Play\Extrator.txt", true);
                vWriter.WriteLine("ERRO Extrator: " + DateTime.Now.ToString());
                Console.WriteLine("ERRO Extractor;");

                throw;
            }
        }
Example #2
0
        // GET: PlugAndPlay/DesempenhoProducao
        public ActionResult FeedbacksDesempenho(string maquina, string strDataDe, string strDataAte, string tipo, string status)
        {
            DateTime?dataDe  = !string.IsNullOrEmpty(strDataDe) ? (DateTime?)DateTime.ParseExact(strDataDe, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture) : null;
            DateTime?dataAte = !string.IsNullOrEmpty(strDataAte) ? (DateTime?)DateTime.ParseExact(strDataAte, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture) : null;

            using (var db = new JSgi())
            {
                ViewBag.maquinaId = new SelectList(db.Maquina.ToList(), "Id", "Descricao", maquina);
                ViewBag.dataDe    = dataDe == null?DateTime.Now.ToString("dd/MM/yyyy") : ((DateTime)dataDe).ToString("dd/MM/yyyy");

                ViewBag.dataAte = dataAte == null?DateTime.Now.ToString("dd/MM/yyyy") : ((DateTime)dataAte).ToString("dd/MM/yyyy");

                ViewBag.tipo = new SelectList(new[] {
                    new { id = "T", desc = "Todos" },
                    new { id = "P", desc = "Performance" },
                    new { id = "S", desc = "Setup" },
                    new { id = "SA", desc = "Setup Ajuste" },
                    new { id = "SS", desc = "Setup e Setup Ajuste" }
                }, "id", "desc", tipo);
                ViewBag.status = new SelectList(new[] {
                    new { id = "T", desc = "Todos" },
                    new { id = "G", desc = "Bom" },
                    new { id = "B", desc = "Ruim" }
                }, "Id", "desc", status);
            }
            return(View());
        }
Example #3
0
        /// <summary>
        /// Metódo para incluir auditoria de movimentações realizadas no sistema.
        /// </summary>
        /// <param name="auditor">Objeto do tipo T_Auditoria</param>
        public static void Registrar(T_Auditoria auditor)
        {
            JSgi db = new JSgi();

            auditor.T_Usuario = db.T_Usuario.Find(auditor.ID_USUARIO);
            db.T_Auditoria.Add(auditor);
            db.SaveChanges();
        }
Example #4
0
 public ActionResult Menu()
 {
     using (var db = new JSgi())
     {
         try
         {
             ViewBag.MaquinasMenu = db.Maquina.Where(f => f.ControlIp != "" && f.ControlIp != null && (f.MaqIdMaqPai == null || f.MaqIdMaqPai == "")).ToList();
         }
         finally { }
     }
     return(View());
 }
Example #5
0
        /// <summary>
        /// Rotina para retornar valores referente ao ano Anterior
        /// </summary>
        /// <param name="ano">Ano atual</param>
        /// <returns>Lista de dados do tipo vw_SGI_PARAMETRO_RELMEDICOES</returns>
        public static List <vw_SGI_PARAMETRO_RELMEDICOES> AnoAnterior(string ano)
        {
            JSgi   db2      = new JSgi();
            var    anoAtual = DateTime.Parse("01/01/" + ano);
            var    valores  = new List <vw_SGI_PARAMETRO_RELMEDICOES>();
            string query    = "select * from vw_SGI_PARAMETRO_RELMEDICOES ";

            //Filtra ano atual
            query  += "where LEFT(MES,4) = '" + anoAtual.AddYears(-1).Year.ToString() + "' ";
            query  += "order by IND_ID,Mes";
            valores = db2.Database.SqlQuery <vw_SGI_PARAMETRO_RELMEDICOES>(query).ToList();
            return(valores);
        }
Example #6
0
        public TargetProduto ObterUltimaMeta(string maquinaId, string produtoId, int?movId = null, JSgi db = null)
        {
            TargetProduto metaPerformace, metaSetup, metaSetupAjuste;
            TargetProduto target = null;

            if (db == null)
            {
                db = new JSgi();
            }

            if (movId == null)
            {
                metaPerformace = db.TargetProduto.Where(t => t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                                 .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
                metaSetup = db.TargetProduto.Where(t => t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                            .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
                metaSetupAjuste = db.TargetProduto.Where(t => t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                                  .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
            }
            else
            {
                metaPerformace = db.TargetProduto.Where(t => t.MovimentoEstoqueId < movId && t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                                 .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
                metaSetup = db.TargetProduto.Where(t => t.MovimentoEstoqueId < movId && t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                            .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
                metaSetupAjuste = db.TargetProduto.Where(t => t.MovimentoEstoqueId < movId && t.MaquinaId == maquinaId && t.ProdutoId == produtoId && t.RealizadoPerformace != -1)
                                  .OrderByDescending(t => t.MovimentoEstoqueId).Take(1).FirstOrDefault();
            }
            if (metaPerformace != null && metaSetup != null && metaSetupAjuste != null)
            {
                target = new TargetProduto()
                {
                    PerformaceMinAmarelo        = metaPerformace.PerformaceMinAmarelo,
                    PerformaceMinVerde          = metaPerformace.PerformaceMinVerde,
                    PerformaceMaxVerde          = metaPerformace.PerformaceMaxVerde,
                    RealizadoPerformace         = metaPerformace.RealizadoPerformace,
                    ProximaMetaPerformace       = metaPerformace.ProximaMetaPerformace,
                    SetupMinVerde               = metaSetup.SetupMinVerde,
                    SetupMaxVerde               = metaSetup.SetupMaxVerde,
                    SetupMaxAmarelo             = metaSetup.SetupMaxAmarelo,
                    RealizadoTempoSetup         = metaSetup.RealizadoTempoSetup,
                    ProximaMetaTempoSetup       = metaSetup.ProximaMetaTempoSetup,
                    SetupAjusteMinVerde         = metaSetupAjuste.SetupAjusteMinVerde,
                    SetupAjusteMaxVerde         = metaSetupAjuste.SetupAjusteMaxVerde,
                    SetupAjusteMaxAmarelo       = metaSetupAjuste.SetupAjusteMaxAmarelo,
                    RealizadoTempoSetupAjuste   = metaSetupAjuste.RealizadoTempoSetupAjuste,
                    ProximaMetaTempoSetupAjuste = metaSetupAjuste.ProximaMetaTempoSetupAjuste
                };
            }
            return(target);
        }
Example #7
0
        /// <summary>
        /// Rotina para retornar valores referente ao ano Anterior
        /// </summary>
        /// <param name="ano">Ano atual</param>
        /// <param name="idMeta">Id Meta</param>
        /// <returns>Lista de dados do tipo vw_SGI_PARAMETRO_RELMEDICOES</returns>
        public static List <vw_SGI_PARAMETRO_RELMEDICOES> AnoAnterior(string ano, int idIndicador)
        {
            JSgi   db2      = new JSgi();
            var    anoAtual = DateTime.Parse("01/01/" + ano);
            var    valores  = new List <vw_SGI_PARAMETRO_RELMEDICOES>();
            string query    = "select * from vw_SGI_PARAMETRO_RELMEDICOES WHERE IND_ID = '" + idIndicador.ToString() + "' ";

            //Filtra ano atual
            if (ano != "" && ano != null)
            {
                query += "AND LEFT(MES,4) = '" + anoAtual.AddYears(-1).Year.ToString() + "' ";
            }
            query  += "order by IND_ID,Mes";
            valores = db2.Database.SqlQuery <vw_SGI_PARAMETRO_RELMEDICOES>(query).ToList();
            return(valores);
        }
Example #8
0
 public static string GetMensagem(string msgid)
 {
     using (JSgi db = new JSgi())
     {
         Mensagem Men = null;
         Men = db.Mensagens.Find(msgid);
         if (Men == null)
         {
             return("");
         }
         else
         {
             return(Men.MEN_MENSAGEM);
         }
     }
 }
Example #9
0
        public static List <String> GetOrderBy(int idObject)
        {
            var lstCampos = new List <String>();

            try
            {
                JSgi   db2   = new JSgi();
                string query = "SELECT name Nome FROM sys.columns ";
                query    += "where object_id = '" + idObject + "' ";
                lstCampos = db2.Database.SqlQuery <String>(query).ToList();
            }
            catch (Exception erro)
            {
                throw erro;
            }
            return(lstCampos);
        }
Example #10
0
 public static void SetPrimeiraProducao(JSgi bd, string Maquina)
 {
     // DEFINI OPE PRODUZINDO CASO NAO ENCONTRE NENHUM PEDIDO
     if (bd.VwFilaProducao.Count(f => f.RotMaqId == Maquina && f.Produzindo == 1) < 1)
     {
         var Op = bd.VwFilaProducao.Where(f => f.RotMaqId == Maquina).OrderBy(f => f.FprDataInicioPrevista).Take(1).FirstOrDefault();
         if (Op != null)
         {
             string sql = " UPDATE T_FILA_PRODUCAO SET FPR_PRODUZINDO = 1 " +
                          " WHERE ORD_ID = '" + Op.OrdId + "' AND ROT_" +
                          "PRO_ID = '" + Op.PaProId + "' " +
                          " AND ROT_MAQ_ID = '" + Maquina + "' AND ROT_SEQ_TRANFORMACAO = " + Op.RotSeqTransformacao + " " +
                          " AND FPR_SEQ_REPETICAO = " + Op.FprSeqRepeticao;
             bd.Database.ExecuteSqlCommand(sql);
         }
     }
 }
Example #11
0
        /// <summary>
        /// Metódo para processar as medições filtrando por indicadores
        /// </summary>
        /// <param name="indicadores">Objeto com dados dos indicadores para serem filtrados.</param>
        /// <param name="pAno">Ano a ser filtrado</param>
        /// <returns>Objeto do tipo T_Medicoes</returns>
        public static List <T_Medicoes> GetMedicao(List <MedicoesInd> indicadores, string pAno)
        {
            JSgi db = new JSgi();
            List <T_Medicoes> medicoes = new List <T_Medicoes>();

            foreach (var item in indicadores)
            {
                //Busca dados no banco filtrando por indicador e meta
                var medicao = db.T_Medicoes.Where(x => x.T_Metas.IND_ID == item.IND_ID && x.MET_ID == item.MET_ID).ToList();
                //Appenda dados no objeto lista medições
                if (pAno != "" && pAno != null)
                {
                    medicao = medicao.Where(x => x.MED_DATAMEDICAO.Substring(0, 4) == pAno).ToList();
                }
                medicoes.AddRange(medicao);
            }
            return(medicoes);
        }
Example #12
0
        /// <summary>
        /// Metódo para buscar os dados da dre no banco de dados
        /// </summary>
        /// <param name="idVisao">Código da visão</param>
        /// <param name="data1">Data inicial</param>
        /// <param name="data2">Data final</param>
        /// <returns></returns>
        public static List <DreView> DrePadrao(int idVisao, string data)
        {
            JSgi db = new JSgi();

            //Query banco de dados
            #region Query
            string query = "";
            query += "select p.PLA_ID,isnull(m.MOV_DATA,'')MOV_DATA,p.PLA_TIPO,ISNULL(m.MOV_UNID,0)MOV_UNID,u.UNI_DESCRICAO,p.PLA_CODIGO,p.PLA_DESCRICAO,isnull(sum(m.MOV_VALOR),0) VALOR from TR_VISOES v ";
            query += "inner join TR_PLANOCONTAS p on p.PLA_ID = v.VIS_PLANID ";
            query += "left join TR_MOVIMENTOS m on m.MOV_PLAID = p.PLA_ID and left(m.MOV_DATA,len(@data)) = @data ";
            query += "left join TR_UNIDADE u on u.UNI_ID = m.MOV_UNID ";
            query += "where v.CAB_ID = @idVisao ";
            query += "group by p.PLA_ID,p.PLA_CODIGO,p.PLA_DESCRICAO,p.PLA_TIPO,m.MOV_UNID,u.UNI_DESCRICAO,m.MOV_DATA ";
            List <SqlParameter> parameters = new List <SqlParameter>();
            parameters.Add(new SqlParameter("@idVisao", idVisao));
            parameters.Add(new SqlParameter("@data", data));
            var dre = db.Database.SqlQuery <DreView>(query, parameters.ToArray()).ToList();
            #endregion Query

            //Soma contas sinteticas

            /*    #region SomaSinteticas
             * var sinteticasSomadas = new List<DreView>();
             * foreach (var item in dre.Where(x => x.PLA_TIPO == (int)Enums.TipoConta.Sintetica).ToList())
             * {
             *  foreach (var meses in dre.Where(x => !String.IsNullOrEmpty(x.MOV_DATA)).GroupBy(x => new { mes = x.MOV_DATA.Substring(4, 2) }).Select(x => new { x.Key.mes }).OrderBy(x => x.mes).OrderBy(x => x.mes))
             *  {
             *      //Filtra valores por unidade de medida
             *      var valores = dre.Where(x => !String.IsNullOrEmpty(x.MOV_DATA) && x.MOV_DATA.Substring(0, 6) == data.Substring(0, 4) + meses.mes && x.PLA_CODIGO.Substring(0, Math.Min(item.PLA_CODIGO.Length, x.PLA_CODIGO.Length)) == item.PLA_CODIGO).GroupBy(x => new { x.UNI_DESCRICAO, x.MOV_UNID }).Select(x => new { valor = x.Sum(j => j.Valor), UNI_DESCRICAO = x.Key.UNI_DESCRICAO, MOV_UNID = x.Key.MOV_UNID });
             *      //Percorre e adiciona contas sinteticas
             *      foreach (var valor in valores)
             *      {
             *          sinteticasSomadas.Add(new DreView { MOV_DATA = data.Substring(0, 4) + meses.mes + "01", MOV_UNID = valor.MOV_UNID, PLA_CODIGO = item.PLA_CODIGO, PLA_DESCRICAO = item.PLA_DESCRICAO, PLA_ID = item.PLA_ID, PLA_TIPO = item.PLA_TIPO, UNI_DESCRICAO = valor.UNI_DESCRICAO, Valor = valor.valor });
             *      }
             *  }
             * }
             * dre.AddRange(sinteticasSomadas);
             #endregion SomaSinteticas
             *
             */
            return(dre.OrderBy(x => x.PLA_CODIGO).ToList());
        }
Example #13
0
        public static void SetProduzindo(JSgi bd, string maquina, string produto, string order, int seqRep, int seqTran)
        {
            try
            {
                bd.Database.ExecuteSqlCommand(@" UPDATE T_FILA_PRODUCAO SET FPR_PRODUZINDO = 0  WHERE ROT_MAQ_ID= '" + maquina + "'  AND FPR_PRODUZINDO = 1 ");
                string sql = " UPDATE T_FILA_PRODUCAO SET FPR_PRODUZINDO = 1  WHERE ORD_ID = '" + order + "' AND ROT_PRO_ID = '" + produto + "' AND ROT_MAQ_ID = '" + maquina + "' AND ROT_SEQ_TRANFORMACAO = " + seqTran + " AND FPR_SEQ_REPETICAO = " + seqRep;
                bd.Database.ExecuteSqlCommand(sql);
                bd.Database.ExecuteSqlCommand(" SP_PLUG_SET_FASES_CLP_PENDENTES '" + maquina + "'");
                bd.Database.ExecuteSqlCommand(" SP_PLUG_CALCULA_FILAS '" + maquina + "'");
            }
            catch (Exception ex) {
                Console.WriteLine("Erro ao executar SQL:" + ex);
            }

            /*Mensagem m = new Mensagem();
             * m.MEN_ID = "SP_PLUG_SET_FASES_CLP_PENDENTES" + maquina;
             * m.MEN_MENSAGEM = "PENDENTE";
             * m.AddMensagem(bd, m);
             * m = null;*/
        }
Example #14
0
        /// <summary>
        /// Metódo para processar as medições filtrando por indicadores
        /// </summary>
        /// <param name="indicadores">Objeto com dados dos indicadores para serem filtrados.</param>
        /// <param name="pAno">Ano a ser filtrado</param>
        /// <returns></returns>
        public static List <vw_SGI_PARAMETRO_RELMEDICOES> GetMedicoes(List <MedicoesInd> indicadores, string pAno)
        {
            JSgi db2 = new JSgi();
            List <vw_SGI_PARAMETRO_RELMEDICOES> medicoes = new List <vw_SGI_PARAMETRO_RELMEDICOES>();
            var medicao = new List <vw_SGI_PARAMETRO_RELMEDICOES>();

            foreach (var item in indicadores)
            {
                //Busca dados no banco filtrando por indicador e meta
                medicao = db2.Database.SqlQuery <vw_SGI_PARAMETRO_RELMEDICOES>("select * from vw_SGI_PARAMETRO_RELMEDICOES WHERE IND_ID = '" + item.IND_ID.ToString() + "' ").ToList();
                //db2.vw_SGI_PARAMETRO_RELMEDICOES.Where(x => x.IND_ID == item.IND_ID && x.MET_ID == item.MET_ID).ToList();
                //Appenda dados no objeto lista medições
                if (pAno != "" && pAno != null)
                {
                    medicao = medicao.Where(x => x.Mes.Substring(0, 4) == pAno).ToList();
                }
                medicoes.AddRange(medicao);
            }
            return(medicoes);
        }
Example #15
0
        public Boolean AddMensagem(JSgi db, Mensagem m)
        {
            Mensagem Men = null;

            Men = db.Mensagens.Find(m.MEN_ID);
            if (Men == null)
            {
                m.MEN_EMISSAO = DateTime.Now;
                db.Mensagens.Add(m);
            }
            else
            {
                db.Entry(Men).State = EntityState.Modified;
                Men.MEN_EMISSAO     = DateTime.Now;
                Men.MEN_MENSAGEM    = m.MEN_MENSAGEM;
                db.SaveChanges();
            }
            db.SaveChanges();
            m   = null;
            Men = null;
            return(true);
        }
Example #16
0
 public void IniciarSincronizacao()
 {
     System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "LogEntrouIniSinc.txt");
     try
     {
         using (JSgi bd = new JSgi())
         {
             List <Maquina> maquinas = bd.Maquina.ToList();
             foreach (var m in maquinas)
             {
                 if (m.ControlIp != null)
                 {
                     MaquinasTimerControl.Add(new MaquinaTimer(m));
                 }
             }
         }
     }
     catch (Exception e)
     {
         System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "LogErroIniSinc.txt");
     }
 }
Example #17
0
        public Boolean AddParametro(JSgi db, Param p)
        {
            Param Par = db.Parametros.Find(p.PAR_ID);

            if (Par == null)
            {
                Par.PAR_ID        = p.PAR_ID;
                Par.PAR_DESCRICAO = p.PAR_DESCRICAO;
                Par.PAR_VALOR_S   = p.PAR_VALOR_S;
                Par.PAR_VALOR_N   = p.PAR_VALOR_N;
                db.Parametros.Add(Par);
            }
            else
            {
                db.Entry(Par).State = EntityState.Modified;
                Par.PAR_ID          = p.PAR_ID;
                Par.PAR_DESCRICAO   = p.PAR_DESCRICAO;
                Par.PAR_VALOR_S     = p.PAR_VALOR_S;
                Par.PAR_VALOR_N     = p.PAR_VALOR_N;
            }
            db.SaveChanges();
            return(true);
        }
Example #18
0
 public static void SendMensagem(string msgid, string msg)
 {
     using (JSgi db = new JSgi())
     {
         Mensagem Men = null;
         Men = db.Mensagens.Find(msgid);
         if (Men == null)
         {
             Mensagem m = new Mensagem();
             m.MEN_ID       = msgid;
             m.MEN_EMISSAO  = DateTime.Now;
             m.MEN_MENSAGEM = msg;
             db.Mensagens.Add(m);
         }
         else
         {
             db.Entry(Men).State = EntityState.Modified;
             Men.MEN_EMISSAO     = DateTime.Now;
             Men.MEN_MENSAGEM    = msg;
         }
         db.SaveChanges();
         Men = null;
     }
 }
Example #19
0
        public ActionResult ObterFeedbacksDeDesenpenho(string maquina, DateTime dataDe, DateTime dataAte,
                                                       string tipo, string status)
        {
            List <string[]> jsonReturn = null;

            using (var db = new JSgi())
            {
                IQueryable <V_MOTIVO_FEEDBACKS_DESEMPENHO> query = db.Set <V_MOTIVO_FEEDBACKS_DESEMPENHO>();

                if (!string.IsNullOrEmpty(maquina))
                {
                    query = query.Where(t => t.MAQ_ID == maquina);
                }
                if (dataDe != null)
                {
                    query = query.Where(t => t.TAR_DIA_TURMA_D >= dataDe.Date);
                }
                if (dataAte != null)
                {
                    query = query.Where(t => t.TAR_DIA_TURMA_D <= dataAte.Date);
                }

                string filtro = "";
                if (status != "" && tipo != "" && tipo != "SS")
                {
                    if (tipo == "T" && status == "T")
                    {
                        filtro = "";
                    }
                    else if (tipo == "T" && status != "T")
                    {
                        filtro = status;
                    }
                    else if (status == "T" && tipo != "T")
                    {
                        filtro = tipo;
                    }
                    else if (tipo != "T" && status != "T")
                    {
                        filtro = status + tipo;
                    }
                }
                if (tipo == "SS")
                {
                    if (status == "B")
                    {
                        query = query.Where(t => (new string[] { "BSA", "BS" }).Contains(t.TIPO));
                    }
                    if (status == "G")
                    {
                        query = query.Where(t => (new string[] { "GSA", "GS" }).Contains(t.TIPO));
                    }
                    if (status != "B" && status != "G")
                    {
                        query = query.Where(t => (new string[] { "BSA", "BS", "GSA", "GS" }).Contains(t.TIPO));
                    }
                }
                if (filtro != "")
                {
                    if (filtro == "P" || filtro == "S" || filtro == "SA")
                    {
                        query = query.Where(t => System.Data.Entity.DbFunctions.Right(t.TIPO_ID, filtro.Length) == filtro);
                    }
                    else if (filtro == "GS" || filtro == "BS")
                    {
                        query = query.Where(t => t.TIPO_ID == filtro);
                    }
                    else
                    {
                        query = query.Where(t => System.Data.Entity.DbFunctions.Left(t.TIPO_ID, filtro.Length) == filtro);
                    }
                }
                jsonReturn = query
                             .OrderBy(t => t.TAR_DIA_TURMA_D).ToList().Select(t => new[] {
                    //t.ID.ToString(),
                    t.TIPO.ToString(),
                    t.TAR_DIA_TURMA.ToString(),
                    t.OCO_ID_PERFORMANCE.ToString(),
                    t.OCO_DESCRICAO,
                    t.TAR_OBS_PERFORMANCE,
                    t.NOME,
                    t.MAQ_ID,
                    t.ORD_ID,
                    t.PRO_ID,
                    t.FPR_SEQ_REPETICAO.ToString(),
                    t.ROT_SEQ_TRANFORMACAO.ToString(),
                    t.TURM_ID,
                    t.TURN_ID,
                    t.TAR_DIA_TURMA_D != null ? ((DateTime)t.TAR_DIA_TURMA_D).ToString("dd/MM/yyyy") : ""
                }).ToList();
            }
            return(Json(new
            {
                data = jsonReturn
            }, JsonRequestBehavior.AllowGet));
        }
Example #20
0
        private void GravarMedicao(object state)
        {
            using (JSgi bd = new JSgi())
            {
                List <Maquina> maquinas = bd.Maquina.ToList();
                foreach (var m in maquinas)
                {
                    if (m.ControlIp != null)
                    {
                        HttpWebResponse response     = null;
                        StreamReader    streamReader = null;
                        try
                        {
                            string   url        = "http://" + m.ControlIp + "/getLotes";
                            DateTime dataMenor  = new DateTime(1970, 01, 01, 00, 00, 00);
                            DateTime dataAtual  = DateTime.Now;
                            var      difSeconds = Math.Floor((dataAtual - dataMenor).TotalSeconds);
                            url += "?data=" + difSeconds + "&h=";

                            var cmd = bd.Database.Connection.CreateCommand();
                            cmd.Connection.Open();
                            cmd.CommandText = @"SELECT * FROM V_QUEBRA_LOTES_CLP   WHERE CAL_ID = 0 OR CAL_ID = @CalendarioId";
                            DbParameter parametros = cmd.CreateParameter();
                            parametros.ParameterName = "CalendarioId";
                            parametros.Value         = m.CalendarioId;
                            cmd.Parameters.Add(parametros);

                            var             dataReader = cmd.ExecuteReader();
                            List <TimeSpan> horas      = new List <TimeSpan>();
                            if (dataReader.HasRows)
                            {
                                while (dataReader.Read())
                                {
                                    string hora      = dataReader.GetString(1);
                                    var    arrayHora = hora.Split(':');
                                    horas.Add(new TimeSpan(Convert.ToInt32(arrayHora[0]), Convert.ToInt32(arrayHora[1]), Convert.ToInt32(arrayHora[2])));
                                }
                            }
                            cmd.Connection.Close();
                            foreach (TimeSpan h in horas)
                            {
                                url += h.Hours + ":" + h.Minutes + ".";
                            }
                            string         result         = string.Empty;
                            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                            httpWebRequest.Timeout = 5000;
                            List <ClpMedicoes> medicoes = new List <ClpMedicoes>();
                            response = (HttpWebResponse)httpWebRequest.GetResponse();

                            streamReader = new StreamReader(response.GetResponseStream(), true);
                            result       = streamReader.ReadToEnd();
                            if (!string.IsNullOrEmpty(result))
                            {
                                string[] dataArray;
                                string[] linhas = result.Split('|');
                                foreach (string l in linhas)
                                {
                                    if (!string.IsNullOrEmpty(l.Trim()))
                                    {
                                        string[]    colunas = l.Split('#');
                                        ClpMedicoes medicao = new ClpMedicoes();
                                        dataArray          = colunas[1].Split(new Char[] { '-', ' ', ':' });
                                        medicao.DataInicio = new DateTime(Convert.ToInt32(dataArray[0]), Convert.ToInt32(dataArray[1]),
                                                                          Convert.ToInt32(dataArray[2]), Convert.ToInt32(dataArray[3]), Convert.ToInt32(dataArray[4]), Convert.ToInt32(dataArray[5]), 00);
                                        dataArray       = colunas[2].Split(new Char[] { '-', ' ', ':' });
                                        medicao.DataFim = new DateTime(Convert.ToInt32(dataArray[0]), Convert.ToInt32(dataArray[1]),
                                                                       Convert.ToInt32(dataArray[2]), Convert.ToInt32(dataArray[3]), Convert.ToInt32(dataArray[4]), Convert.ToInt32(dataArray[5]), 00);
                                        medicao.Quantidade = Convert.ToDouble(colunas[3]);
                                        /* medicao.OrdemProducaoId = "";*/ /*colunas[4];*/
                                        //medicao.IdLoteClp = Convert.ToInt32(colunas[0]);
                                        //medicao.MaquinaId = m.Id;
                                        /*medicao.ProdutoId = "";*//*colunas[5];*/
                                        //medicao.Status = 0;
                                        /*medicao.SequenciaTransformacaoId = 0;*//*!string.IsNullOrEmpty(colunas[6]) ? Convert.ToInt32(colunas[6]) : 0;*/
                                        /*medicao.SequenciaRepeticaoId = 0;*//*!string.IsNullOrEmpty(colunas[7]) ?  Convert.ToInt32(colunas[7]) : 0;*/
                                        //medicao.OcorrenciaId = "";
                                        //medicao.FilaProducaoId = 0;
                                        //medicao.ClpOrigem = "";
                                        //medicao.Grupo = 1.2;
                                        //medicoes.Add(medicao);
                                    }
                                }
                                url = "http://" + m.ControlIp + "/confirmLotes?l=";
                                foreach (ClpMedicoes med in medicoes)
                                {
                                    if (bd.ClpMedicoes.Where(x => x.IdLoteClp == med.IdLoteClp &&
                                                             x.DataInicio == med.DataInicio).Count() == 0)
                                    {
                                        bd.ClpMedicoes.Add(med);
                                    }
                                    url += med.IdLoteClp + ".";
                                }
                                bd.SaveChanges();
                                response.Close();
                                httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                                response       = (HttpWebResponse)httpWebRequest.GetResponse();
                                response.Close();
                            }
                        }
                        catch (Exception e)
                        {
                            if (response != null)
                            {
                                response.Close();
                            }
                        }
                        finally
                        {
                            if (streamReader != null)
                            {
                                streamReader.Close();
                            }
                        }
                    }
                }
            }
            _timer.Change(5000, Timeout.Infinite);
        }
Example #21
0
        /// <summary>
        /// Metódo responsavel por retornar agrupado os indicadores para serem utilizados na páginação
        /// </summary>
        /// <param name="nPageSize">Registros por página</param>
        /// <param name="page">Página a ser exibida</param>
        /// <param name="idNegocio">Código do negócio</param>
        /// <param name="pAno">Ano a ser filtrado</param>
        /// <returns>Irá retornar lista de indicadores com ano,id negocio e id meta</returns>
        public static IPagedList <MedicoesInd> GetIndicadores(int?nPageSize, int?page, int?idNegocio, int?idGrupo, int?idUnidade, int?idDepartamento, string pAno, string search, List <T_Favoritos> Favoritos)
        {
            JSgi db          = new JSgi();
            var  _PageNumber = page ?? 1;
            var  _PageSize   = nPageSize ?? 10;
            var  agrupado    = new List <MedicoesInd>();
            //Agrupa dados por mês, Indicador e meta
            var indicadores = db.vw_SGI_PARAMETRO_RELMEDICOES
                              .Select(x => new { Ano = x.Mes.Substring(0, 4), IND_DESCRICAO = x.IND_DESCRICAO, IND_ID = x.IND_ID, NEG_ID = x.NEG_ID, UNI_ID = x.UNID })
                              .GroupBy(x => new { x.IND_ID, x.IND_DESCRICAO, x.NEG_ID, x.Ano, x.UNI_ID }).OrderByDescending(x => x.Key.Ano).ToList();

            #region Filtros

            //Filtra grupos por usuário

            /*if (!HttpContext.Current.User.IsInRole("Admin"))
             * {
             *  var usuario = db.T_Usuario.First(x => x.ID_USUARIO == ((ICustomPrincipal)HttpContext.Current.User).Id);
             *  var grupos = db.T_USER_GRUPO.Where(x => x.ID_USUARIO == usuario.ID_USUARIO).ToList();
             *  var indGrupos = db.T_Grupo_Indicador.ToList().Where(x => grupos.Any(g => g.GRU_ID == x.GRU_ID)).ToList();
             *  indicadores = indicadores.Where(x => indGrupos.Any(g => x.Key.IND_ID == g.IND_ID)).ToList();
             * }*/

            //Filtra Ano
            if (pAno != "" && pAno != null)
            {
                indicadores = indicadores.Where(x => x.Key.Ano == pAno).ToList();
            }
            //Filtra Negócio
            if (idNegocio > 0)
            {
                indicadores = indicadores.Where(x => x.Key.NEG_ID == idNegocio).ToList();
            }

            //Filtra Grupo
            if (idGrupo > 0)
            {
                var grupos = db.T_Grupo_Indicador.Where(x => x.GRU_ID == idGrupo).ToList();
                indicadores = indicadores.Where(x => grupos.Any(g => g.IND_ID == x.Key.IND_ID)).ToList();
            }

            //Filtra Departamento
            if (idDepartamento > 0)
            {
                var departamentos = db.T_Indicadores_Departamentos.Where(x => x.DEP_ID == idDepartamento).ToList();
                indicadores = indicadores.Where(x => departamentos.Any(d => d.IND_ID == x.Key.IND_ID)).ToList();
            }

            //Filtra por unidade
            if (idUnidade > 0)
            {
                indicadores = indicadores.Where(x => x.Key.UNI_ID == idUnidade).ToList();
            }

            //Filtra por pesquisa de usuário
            if (!string.IsNullOrEmpty(search))
            {
                indicadores = indicadores.Where(x => (x.Key.IND_DESCRICAO).ToUpper().Contains(search.ToUpper())).ToList();
            }

            #endregion Filtros
            //Percorre registros recuperados
            foreach (var item in indicadores.OrderBy(x => x.Key.IND_DESCRICAO))
            {
                if (agrupado.Count(x => x.IND_ID == item.Key.IND_ID) <= 0)
                {
                    //busca detalhes do indicador
                    var indicador = db.T_Indicadores.Where(x => x.IND_ID == item.Key.IND_ID).FirstOrDefault();
                    //busca as dimensoes do indicador
                    indicador.Dimensoes = db.T_Medicoes
                                          .Where(x => x.IndId == indicador.IND_ID && x.DimId != null)
                                          .Select(x => new Dimensao
                    {
                        Id        = (int)x.DimId,
                        Descricao = x.DimDescricao
                    }).Distinct().ToList();

                    //busca as sub dimensoes do indicador

                    /*var SubDimensoes = db.T_Medicoes
                     *  .Where(x => x.IndId == indicador.IND_ID && x.DimSubId != null)
                     *  .Select(x => new SubDimensao
                     *  {
                     *      Id = x.DimSubId,
                     *      Descricao = x.DimSubDescricao
                     *  }).Distinct().ToList();
                     *
                     * indicador.Dimensoes.ElementAt(0).SubDimensao = SubDimensoes;
                     */
                    var dimId = indicador.Dimensoes.ElementAt(0).Id;
                    //busca os periodos de um indicador baseado na primeira dimensão recuperada

                    var periodos = db.T_Medicoes
                                   .Where(x => x.IndId == indicador.IND_ID &&
                                          x.DimId != null && x.DimId == dimId &&
                                          x.PerId != null && x.PerId.Trim().ToUpper() != "MAC" && x.PerId.Trim().ToUpper() != "DAC")
                                   .Select(x => new Periodo {
                        Id = x.PerId, Descricao = x.PerDescricao
                    })
                                   .Distinct().ToList();

                    //adciona os periodos na primeira posicao da lista de dimensoes do indicador
                    indicador.Dimensoes.ElementAt(0).Periodos = periodos;
                    agrupado.Add(new MedicoesInd()
                    {
                        ID_FAVORITO     = (Favoritos.Count(x => x.ID_INDICADOR == item.Key.IND_ID) > 0 ? item.Key.IND_ID : 0),
                        IND_ID          = item.Key.IND_ID,
                        Ano             = item.Key.Ano,
                        Indicador       = indicador,
                        DESC_CALCULO    = indicador.DESC_CALCULO,
                        TIPO_COMPARADOR = indicador.IND_TIPOCOMPARADOR.ToString(),
                        IND_CONEXAO     = indicador.IND_CONEXAO,
                        IND_GRAFICO     = indicador.IND_GRAFICO,
                        DIM_ID          = indicador.DIM_ID,
                        PER_ID          = indicador.PER_ID
                    });
                }
            }
            return(agrupado.OrderBy(x => x.Indicador.IND_DESCRICAO).OrderByDescending(x => x.ID_FAVORITO).ToPagedList(_PageNumber, _PageSize));
        }
Example #22
0
        /// <summary>
        /// Metódo responsavel por retornar agrupado os indicadores para serem utilizados na páginação
        /// </summary>
        /// <param name="nPageSize">Registros por página</param>
        /// <param name="page">Página a ser exibida</param>
        /// <param name="idNegocio">Código do negócio</param>
        /// <param name="pAno">Ano a ser filtrado</param>
        /// <returns>Irá retornar lista de indicadores com ano,id negocio e id meta</returns>
        public static IPagedList <MedicoesInd> GetIndicadores(string pesquisa, int?nPageSize, int?page, int?idNegocio, int?idGrupo, int?idUnidade, int?idDepartamento, string pAno)
        {
            JSgi db          = new JSgi();
            var  _PageNumber = page ?? 1;
            var  _PageSize   = nPageSize ?? 10;
            var  agrupado    = new List <MedicoesInd>();
            //Agrupa dados por mês, Indicador e meta
            var indicadores = db.vw_SGI_PARAMETRO_RELMEDICOES
                              .Select(x => new { Ano = x.Mes.Substring(0, 4), IND_ID = x.IND_ID, NEG_ID = x.NEG_ID, UNI_ID = x.UNID })
                              .GroupBy(x => new { x.IND_ID, x.NEG_ID, x.Ano, x.UNI_ID }).ToList();

            #region Filtros
            //Filtra grupos por usuário
            if (!HttpContext.Current.User.IsInRole("Admin"))
            {
                var usuario         = db.T_Usuario.First(x => x.EMAIL == HttpContext.Current.User.Identity.Name);
                var grupos          = db.T_USER_GRUPO.Where(x => x.ID_USUARIO == usuario.ID_USUARIO).ToList();
                var gruposLiberados = db.T_Grupo_Indicador.Where(x => grupos.Any(g => g.GRU_ID == x.GRU_ID)).ToList();
                indicadores = indicadores.Where(x => gruposLiberados.Any(g => x.Key.IND_ID == g.IND_ID)).ToList();
            }
            //Filtra Ano
            if (pAno != "" && pAno != null)
            {
                indicadores = indicadores.Where(x => x.Key.Ano == pAno).ToList();
            }
            //Filtra Negócio
            if (idNegocio > 0)
            {
                indicadores = indicadores.Where(x => x.Key.NEG_ID == idNegocio).ToList();
            }
            //Filtra Grupo
            if (idGrupo > 0)
            {
                var grupos = db.T_Grupo_Indicador.Where(x => x.GRU_ID == idGrupo).ToList();
                indicadores = indicadores.Where(x => grupos.Any(g => g.IND_ID == x.Key.IND_ID)).ToList();
            }
            //Filtra por unidade
            if (idUnidade > 0)
            {
                indicadores = indicadores.Where(x => x.Key.UNI_ID == idUnidade).ToList();
            }
            //Filtra Departamento
            if (idDepartamento > 0)
            {
                var departamentos = db.T_Indicadores_Departamentos.Where(x => x.DEP_ID == idDepartamento).ToList();
                indicadores = indicadores.Where(x => departamentos.Any(d => d.IND_ID == x.Key.IND_ID)).ToList();
            }
            #endregion Filtros
            //Percorre registros recuperados
            foreach (var item in indicadores)
            {
                if (agrupado.Count(x => x.IND_ID == item.Key.IND_ID) <= 0)
                {
                    agrupado.Add(new MedicoesInd()
                    {
                        IND_ID    = item.Key.IND_ID,
                        Ano       = item.Key.Ano,
                        Indicador = db.T_Indicadores.Find(item.Key.IND_ID)
                    });
                }
            }
            return(agrupado.OrderBy(x => x.MET_ID).ToPagedList(_PageNumber, _PageSize));
        }