Considere o SISTEMA A da seguinte forma: contém dados de energia (10 campos) de 200 equipamentos e possui uma API para pegar esses dados. Em condições normais a API retornará 288 registros (cada um com os 10 campos mais a data e hora mais o nome do equipamento) por dia por equipamento.
Considere o SISTEMA B da seguinte forma: esse sistema consome arquivos texto com os dados provenientes do sistema A.
Considere o formado do arquivo da seguinte forma:
NomeDoPonto_NomeDoCampo,DataEHora,Valor
PI03621BAPLO_EnergiaAtivaIn,10-jul-20 00:05:00,21.636
Considerando esse formato, o arquivo de cada equipamento terá aproximadamente 2880 linhas a cada dia. São 10 campos e 288 registros por dia.
O escopo do projeto é fazer um software (preferencialmente em
C#.net ou php) que permita realizar a extração dos dados do sistema a via api e gravar arquivos texto em um diretório específico para consumo do sistema b. Isso deve ser feito uma vez por dia considerando os dados do dia anterior.
Para isso, o sistema deve:
- Consultar a API do sistema A para pegar os nomes dos equipamentos e permitir configurar numa tela quais são os equipamentos que serão integrados; Exemplo: o sistema A possui em seu cadastro 150 equipamentos, mas somente 40 deverão ser integrados.
- Permitir configurar numa tela o horário em que a geração dos arquivos pro sistema B será feita;
- Permitir configurar numa tela o diretório no qual serão gravados os arquivos texto para o sistema B;
- Garantir que os 288 registros de cada dia sejam integrados. Para isso, é importante que o sistema registre em banco de dados as seguintes informações: nome do equipamento, dia do mês, número de registros integrados.
Caso a API do sistema A não retornar os 288 registros de um equipamento de um dia específico, o software de integração deve fazer novas consultas por 35 dias. Depois disso, não precisará mais tentar.
- Apresentar numa tela o histórico das gerações com os seguintes campos: nome do equipamento, dia do mês, registros integrados.
Deve ser possível filtrar por mês e por equipamento.
- Registrar muitos logs para eventuais diagnósticos.
Prazo de Entrega: Não estabelecido