Upload com dados anteriores a gestão smart = 0
This commit is contained in:
parent
a760aaab82
commit
c5db740cd2
201
Program.cs
201
Program.cs
@ -32,115 +32,132 @@ internal class Plat_integ {
|
|||||||
static string ACCESS_DB_LOCATION_APP = @"X:\Middle\Informativo Setorial\Modelo Word\BD_APP.accdb";
|
static string ACCESS_DB_LOCATION_APP = @"X:\Middle\Informativo Setorial\Modelo Word\BD_APP.accdb";
|
||||||
|
|
||||||
static void Main(string[] args) {
|
static void Main(string[] args) {
|
||||||
//
|
|
||||||
DateTime searchFromMonth = DateTime.Now.AddMonths(-24);
|
|
||||||
DateTime searchFrom = new DateTime(searchFromMonth.Year, searchFromMonth.Month, 1);
|
|
||||||
string searchFromString = searchFrom.ToString("yMM");
|
|
||||||
|
|
||||||
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
|
bool Consolidada = true; //True = econ estimada; False = econ consolidada
|
||||||
//transfere_PLD();
|
|
||||||
|
|
||||||
//Console.WriteLine("Iniciando importação dos dados cadastrais");
|
DateTime searchFromMonth = DateTime.Now.AddMonths(-24);
|
||||||
//transfere_DC();
|
DateTime searchFrom = new DateTime(searchFromMonth.Year, searchFromMonth.Month, 1);
|
||||||
//Console.WriteLine("Finalizando importação dos dados cadastrais");
|
string searchFromString = searchFrom.ToString("yMM");
|
||||||
//
|
|
||||||
//Console.WriteLine("Iniciando importação dos dados TE");
|
|
||||||
//transfere_TE(searchFromString);
|
|
||||||
//Console.WriteLine("Finalizando importação dos dados TE");
|
|
||||||
//
|
|
||||||
//Console.WriteLine("Iniciando importação dos dados de economia");
|
|
||||||
//transfere_econ(searchFromString);
|
|
||||||
//Console.WriteLine("Finalizando importação dos dados de economia");
|
|
||||||
|
|
||||||
//args -> limit & offset
|
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
|
||||||
string limit = "1000"; //args[0];
|
//transfere_PLD();
|
||||||
string offset = "0"; // args[1];
|
|
||||||
int limitInt = Int32.Parse(limit);
|
if (Consolidada)
|
||||||
int offsetInt = Int32.Parse(offset);
|
{
|
||||||
Console.WriteLine("Iniciando importação dos dados estimados de economia");
|
//Console.WriteLine("Iniciando importação dos dados cadastrais");
|
||||||
transfere_econ_estimado(searchFromString, limitInt, offsetInt);
|
//transfere_DC();
|
||||||
Console.WriteLine("Finalizando importação dos dados estimados de economia");
|
//Console.WriteLine("Finalizando importação dos dados cadastrais");
|
||||||
Environment.Exit(0);
|
|
||||||
return;
|
//Console.WriteLine("Iniciando importação dos dados TE");
|
||||||
|
//transfere_TE(searchFromString);
|
||||||
|
//Console.WriteLine("Finalizando importação dos dados TE");
|
||||||
|
|
||||||
|
Console.WriteLine("Iniciando importação dos dados de economia");
|
||||||
|
transfere_econ(searchFromString);
|
||||||
|
Console.WriteLine("Finalizando importação dos dados de economia");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//args -> limit & offset
|
||||||
|
string limit = "1000"; //args[0];
|
||||||
|
string offset = "0"; // args[1];
|
||||||
|
int limitInt = Int32.Parse(limit);
|
||||||
|
int offsetInt = Int32.Parse(offset);
|
||||||
|
Console.WriteLine("Iniciando importação dos dados estimados de economia");
|
||||||
|
transfere_econ_estimado(searchFromString, limitInt, offsetInt);
|
||||||
|
Console.WriteLine("Finalizando importação dos dados estimados de economia");
|
||||||
|
}
|
||||||
|
Environment.Exit(0);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void transfere_econ(string searchFromString) {
|
private static void transfere_econ(string searchFromString) {
|
||||||
string strCOM_ac, strCOM_pg;
|
string strCOM_ac, strCOM_pg, strCOM_ac_list;
|
||||||
|
|
||||||
long cod_econ, cod_smart_unidade;
|
long cod_econ, cod_smart_unidade;
|
||||||
string mes;
|
string mes;
|
||||||
double custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit;
|
double custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit;
|
||||||
|
|
||||||
//abre conexao com o Accesss
|
//abre conexao com o Accesss
|
||||||
OleDbConnection conn_access = new("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ACCESS_DB_LOCATION + ";Jet OLEDB:Database Password=gds21");
|
OleDbConnection conn_access = new("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ACCESS_DB_LOCATION + ";Jet OLEDB:Database Password=gds21");
|
||||||
conn_access.Open();
|
conn_access.Open();
|
||||||
|
|
||||||
//dados >= 2021-01-01
|
//dados >= 2021-01-01
|
||||||
strCOM_ac = "SELECT * FROM Economia WHERE mes >= " + searchFromString;
|
strCOM_ac_list = "SELECT DISTINCT cod_smart_unidade FROM Economia WHERE mes >= " + searchFromString;
|
||||||
OleDbCommand tbEC = new(strCOM_ac, conn_access);
|
|
||||||
OleDbDataReader reader_access = tbEC.ExecuteReader();
|
|
||||||
|
|
||||||
//abre a conexao com o PG
|
OleDbCommand tbList = new(strCOM_ac_list, conn_access);
|
||||||
NpgsqlConnection conn_pg;
|
OleDbDataReader reader_access_list = tbList.ExecuteReader();
|
||||||
if (ENVIRONMENT is "dev") {
|
|
||||||
conn_pg = new(PG_CONN_STRING_DEV);
|
|
||||||
} else {
|
|
||||||
conn_pg = new(PG_CONN_STRING_PROD);
|
|
||||||
}
|
|
||||||
conn_pg.Open();
|
|
||||||
|
|
||||||
Console.WriteLine("Excluindo dados existentes de economia");
|
//abre a conexao com o PG
|
||||||
string pg_strCOM = $"DELETE FROM economia WHERE mes::INTEGER >= {searchFromString}"; //TODO: ESTUDAR TROCA PARA TRUNCATE
|
NpgsqlConnection conn_pg;
|
||||||
NpgsqlCommand pg_tcSCDE = new(pg_strCOM, conn_pg);
|
if (ENVIRONMENT is "dev") {
|
||||||
NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader();
|
conn_pg = new(PG_CONN_STRING_DEV);
|
||||||
pg_reader.Close();
|
} else {
|
||||||
Console.WriteLine("Dados de economia excluídos");
|
conn_pg = new(PG_CONN_STRING_PROD);
|
||||||
|
}
|
||||||
|
conn_pg.Open();
|
||||||
|
|
||||||
using (var pg_writer = conn_pg.BeginBinaryImport("COPY economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado) FROM STDIN (FORMAT BINARY)")) {
|
Console.WriteLine("Excluindo dados existentes de economia");
|
||||||
while (reader_access.Read()) {
|
//string pg_strCOM = $"DELETE FROM economia WHERE mes::INTEGER >= {searchFromString}"; //TODO: ESTUDAR TROCA PARA TRUNCATE
|
||||||
//Console.WriteLine(reader_access["Data"]);
|
//NpgsqlCommand pg_tcSCDE = new(pg_strCOM, conn_pg);
|
||||||
//Console.ReadKey();
|
//NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader();
|
||||||
mes = reader_access["Mes"].ToString();
|
//pg_reader.Close();
|
||||||
|
Console.WriteLine("Dados de economia excluídos");
|
||||||
|
|
||||||
double.TryParse(reader_access["Custo_cativo"].ToString(), out custo_cativo);
|
using (var pg_writer = conn_pg.BeginBinaryImport("COPY economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado) FROM STDIN (FORMAT BINARY)")) {
|
||||||
double.TryParse(reader_access["Custo_livre"].ToString(), out custo_livre);
|
while (reader_access_list.Read())
|
||||||
double.TryParse(reader_access["Economia_mensal"].ToString(), out economia_mensal);
|
{
|
||||||
double.TryParse(reader_access["Economia_acumul"].ToString(), out economia_acumulada);
|
string idUni = reader_access_list["cod_smart_unidade"].ToString()!;
|
||||||
double.TryParse(reader_access["Custo_unit"].ToString(), out custo_unit);
|
strCOM_ac = $"SELECT calendario_aamm.data, IIf(a.custo_cativo IS NULL, 0, a.custo_cativo) AS custo_cativo, IIf(a.custo_livre IS NULL, 0, a.custo_livre) AS custo_livre, IIf(a.economia_mensal IS NULL, 0, a.economia_mensal) AS economia_mensal, IIf(a.economia_acumul IS NULL, 0, a.economia_acumul) AS economia_acumul, IIf(a.Custo_unit IS NULL, 0, a.economia_acumul) AS Custo_unit FROM calendario_aamm LEFT JOIN (SELECT * FROM economia WHERE cod_smart_unidade = {idUni} ORDER BY mes) AS a ON calendario_aamm.data = a.mes WHERE calendario_aamm.data >= {searchFromString} And calendario_aamm.data <= (SELECT MAX(mes) FROM economia WHERE cod_smart_unidade = {idUni})";
|
||||||
long.TryParse(reader_access["Cod_econ"].ToString(), out cod_econ);
|
|
||||||
long.TryParse(reader_access["Cod_Smart_unidade"].ToString(), out cod_smart_unidade);
|
|
||||||
|
|
||||||
//COMENTADO SO DEV -> Random rnd = new Random();
|
OleDbCommand tbEC = new(strCOM_ac, conn_access);
|
||||||
//COMENTADO SO DEV -> custo_unit = 500 + rnd.NextDouble()*200;
|
OleDbDataReader reader_access = tbEC.ExecuteReader();
|
||||||
|
while (reader_access.Read())
|
||||||
|
{
|
||||||
|
//Console.WriteLine(reader_access["Data"]);
|
||||||
|
//Console.ReadKey();
|
||||||
|
mes = reader_access["data"].ToString()!;
|
||||||
|
|
||||||
//strCOM_pg = "INSERT INTO economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado)";
|
double.TryParse(reader_access["Custo_cativo"].ToString(), out custo_cativo);
|
||||||
//strCOM_pg += $" VALUES ({cod_econ}, {cod_smart_unidade},'{mes}', {custo_cativo}, {custo_livre}, {economia_mensal}, {economia_acumulada}, {custo_unit}, {false});";
|
double.TryParse(reader_access["Custo_livre"].ToString(), out custo_livre);
|
||||||
pg_writer.StartRow();
|
double.TryParse(reader_access["Economia_mensal"].ToString(), out economia_mensal);
|
||||||
pg_writer.Write(cod_econ, NpgsqlTypes.NpgsqlDbType.Bigint);
|
double.TryParse(reader_access["Economia_acumul"].ToString(), out economia_acumulada);
|
||||||
pg_writer.Write(cod_smart_unidade, NpgsqlTypes.NpgsqlDbType.Bigint);
|
double.TryParse(reader_access["Custo_unit"].ToString(), out custo_unit);
|
||||||
pg_writer.Write(mes);
|
long.TryParse(String.Concat(idUni, mes), out cod_econ);
|
||||||
pg_writer.Write(custo_cativo, NpgsqlTypes.NpgsqlDbType.Numeric);
|
long.TryParse(idUni, out cod_smart_unidade);
|
||||||
pg_writer.Write(custo_livre, NpgsqlTypes.NpgsqlDbType.Numeric);
|
|
||||||
pg_writer.Write(economia_mensal, NpgsqlTypes.NpgsqlDbType.Numeric);
|
|
||||||
pg_writer.Write(economia_acumulada, NpgsqlTypes.NpgsqlDbType.Numeric);
|
|
||||||
pg_writer.Write(custo_unit, NpgsqlTypes.NpgsqlDbType.Numeric);
|
|
||||||
pg_writer.Write(false, NpgsqlTypes.NpgsqlDbType.Boolean);
|
|
||||||
|
|
||||||
//try {
|
//COMENTADO SO DEV -> Random rnd = new Random();
|
||||||
// NpgsqlCommand tcDC = new(strCOM_pg, conn_pg);
|
//COMENTADO SO DEV -> custo_unit = 500 + rnd.NextDouble()*200;
|
||||||
// using (NpgsqlDataReader reader = tcDC.ExecuteReader()) {
|
|
||||||
// };
|
|
||||||
//} catch (Exception ex) {
|
|
||||||
// Console.WriteLine(ex.Message);
|
|
||||||
// Console.WriteLine(strCOM_pg);
|
|
||||||
// //Console.ReadKey();
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
pg_writer.Complete();
|
|
||||||
}
|
|
||||||
|
|
||||||
conn_access.Close();
|
//strCOM_pg = "INSERT INTO economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado)";
|
||||||
conn_pg.Close();
|
//strCOM_pg += $" VALUES ({cod_econ}, {cod_smart_unidade},'{mes}', {custo_cativo}, {custo_livre}, {economia_mensal}, {economia_acumulada}, {custo_unit}, {false});";
|
||||||
|
pg_writer.StartRow();
|
||||||
|
pg_writer.Write(cod_econ, NpgsqlTypes.NpgsqlDbType.Bigint);
|
||||||
|
pg_writer.Write(cod_smart_unidade, NpgsqlTypes.NpgsqlDbType.Bigint);
|
||||||
|
pg_writer.Write(mes);
|
||||||
|
pg_writer.Write(custo_cativo, NpgsqlTypes.NpgsqlDbType.Numeric);
|
||||||
|
pg_writer.Write(custo_livre, NpgsqlTypes.NpgsqlDbType.Numeric);
|
||||||
|
pg_writer.Write(economia_mensal, NpgsqlTypes.NpgsqlDbType.Numeric);
|
||||||
|
pg_writer.Write(economia_acumulada, NpgsqlTypes.NpgsqlDbType.Numeric);
|
||||||
|
pg_writer.Write(custo_unit, NpgsqlTypes.NpgsqlDbType.Numeric);
|
||||||
|
pg_writer.Write(false, NpgsqlTypes.NpgsqlDbType.Boolean);
|
||||||
|
|
||||||
|
//try {
|
||||||
|
// NpgsqlCommand tcDC = new(strCOM_pg, conn_pg);
|
||||||
|
// using (NpgsqlDataReader reader = tcDC.ExecuteReader()) {
|
||||||
|
// };
|
||||||
|
//} catch (Exception ex) {
|
||||||
|
// Console.WriteLine(ex.Message);
|
||||||
|
// Console.WriteLine(strCOM_pg);
|
||||||
|
// //Console.ReadKey();
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pg_writer.Complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
conn_access.Close();
|
||||||
|
conn_pg.Close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user