Novo git da alteração

This commit is contained in:
2026-03-01 17:27:48 -03:00
parent 8b7a079235
commit 9ec8d6e70b
366 changed files with 50299 additions and 27325 deletions
+72 -49
View File
@@ -1,61 +1,84 @@
function defineStructure() {
addColumn("codigo");
addColumn("descricao");
}
function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
var dataSource = "/jdbc/ProtheusDSs"; // Nome da conexão cadastrada no Fluig
var ic = new javax.naming.InitialContext();
var ds = ic.lookup(dataSource);
var conn = ds.getConnection();
var stmt = null;
var rs = null;
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("DESCRICAO");
dataset.addColumn("CBO");
try {
log.info("Iniciando execução do dataset...");
var servicecode = "Postprod";
var usuario = "fluig";
var senha = "Ginseng@";
var sql = "select C8V_CODIGO, C8V_DESCRI from C8V010 where D_E_L_E_T_= '' and C8V_FILIAL = '01'";
log.info("Query SQL: " + sql);
var filial = "01";
var pagesize = 100;
var page = 1;
var total = null;
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
try {
var clientService = fluigAPI.getAuthorizeClientService();
dataset.addColumn("codigo");
dataset.addColumn("descricao");
while (true) {
var endpoint =
"https://rest.grupoginseng.com.br/rest/uf_sigagpe/funcoes" +
"?filial=" + encodeURIComponent(filial) +
"&page=" + encodeURIComponent(page) +
"&pagesize=" + encodeURIComponent(pagesize);
var encontrados = {}; // Usando um objeto para evitar duplicação
while (rs.next()) {
var codigo = rs.getString("C8V_CODIGO");
var descricao = rs.getString("C8V_DESCRI");
if (!encontrados[codigo]) { // Verifica se já foi adicionado
encontrados[codigo] = true; // Marca como processado
log.info("Registro encontrado: " + codigo + " - " + descricao);
dataset.addRow([codigo, descricao]);
}
var data = {
companyId: "1",
serviceCode: servicecode,
endpoint: endpoint,
method: "get",
timeoutService: "60000",
params: {},
options: {
encoding: "UTF-8",
useBasicAuth: true,
username: usuario,
password: senha
}
};
if (Object.keys(encontrados).length === 0) {
log.info("Nenhum registro encontrado para a consulta.");
}
var vo = clientService.invoke(JSON.stringify(data));
var retorno = vo.getResult();
} catch (e) {
log.error("Erro ao executar dataset: " + e.message);
} finally {
try {
if (rs) rs.close();
if (stmt) stmt.close();
if (conn) conn.close();
} catch (e) {
log.error("Erro ao fechar recursos: " + e.message);
}
if (!retorno) break;
var obj = JSON.parse(retorno);
// se a API usa "sucesso"
if (obj.sucesso !== true) {
dataset.addRow(["(API retornou sucesso=false)", ""]);
break;
}
// sua lista vem em "funcoes" (não "items")
var funcoes = obj.funcoes;
if (!funcoes || funcoes.length === 0) break;
// guarda total se vier
if (total === null && obj.total != null) total = Number(obj.total);
for (var i = 0; i < funcoes.length; i++) {
dataset.addRow([
funcoes[i].RJ_DESC || "",
funcoes[i].RJ_CODCBO || "" // ou RJ_CBO se for o campo desejado
]);
}
// condição de parada segura
if (funcoes.length < pagesize) break;
// se quiser parar com base no total:
if (total !== null && page * pagesize >= total) break;
page++;
}
return dataset;
}
} catch (e) {
dataset = DatasetBuilder.newDataset();
dataset.addColumn("ERRO");
dataset.addRow([String(e)]);
}
function onMobileSync(user) {}
return dataset;
}