att
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
application.type=widget
|
||||
application.code=dashdata
|
||||
application.title=dashdata
|
||||
application.description=dashdata
|
||||
application.fluig.version=null
|
||||
application.category=SYSTEM
|
||||
application.renderer=freemarker
|
||||
developer.code=andrey.cunha
|
||||
developer.name=andrey.cunha
|
||||
developer.url=http://www.fluig.com
|
||||
application.uiwidget=true
|
||||
application.mobileapp=false
|
||||
application.version=${build.version}-${build.revision}
|
||||
view.file=view.ftl
|
||||
edit.file=edit.ftl
|
||||
locale.file.base.name=dashdata
|
||||
application.resource.js.1=/resources/js/dashdata.js
|
||||
application.resource.css.2=/resources/css/dashdata.css
|
||||
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<div id="dashdata_${instanceId}"
|
||||
class="super-widget wcm-widget-class"
|
||||
data-params="DashData.instance()">
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jboss-web>
|
||||
<context-root>/dashdata</context-root>
|
||||
<disable-cross-context>false</disable-cross-context>
|
||||
</jboss-web>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
||||
version="3.0">
|
||||
<session-config>
|
||||
<session-timeout>
|
||||
30
|
||||
</session-timeout>
|
||||
</session-config>
|
||||
</web-app>
|
||||
@@ -0,0 +1 @@
|
||||
/* Coloque aqui seu codigo CSS */
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
@@ -0,0 +1,123 @@
|
||||
var DashData = SuperWidget.extend({
|
||||
|
||||
init:function(){
|
||||
|
||||
console.log("DashData carregado");
|
||||
|
||||
var self=this;
|
||||
|
||||
window.addEventListener("dashboardFiltro",function(e){
|
||||
|
||||
console.log("DashData recebeu filtros:",e.detail);
|
||||
|
||||
self.carregar(e.detail);
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
carregar:function(filtros){
|
||||
|
||||
console.log("Consultando dataset...", filtros);
|
||||
|
||||
var self=this;
|
||||
|
||||
$.ajax({
|
||||
|
||||
url:"/api/public/ecm/dataset/search",
|
||||
type:"POST",
|
||||
contentType:"application/json",
|
||||
|
||||
data:JSON.stringify({
|
||||
datasetId:"ds_dashboard_checklist"
|
||||
}),
|
||||
|
||||
success:function(res){
|
||||
|
||||
console.log("Resposta dataset:",res);
|
||||
|
||||
var dados=res.content || [];
|
||||
|
||||
console.log("Quantidade registros:", dados.length);
|
||||
|
||||
// FILTRO POR LOJA
|
||||
if(filtros.loja){
|
||||
|
||||
dados = dados.filter(function(item){
|
||||
|
||||
return normalizaTexto(item.loja) === normalizaTexto(filtros.loja);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// FILTRO POR DATA
|
||||
if(filtros.dataInicio || filtros.dataFim){
|
||||
|
||||
dados = dados.filter(function(item){
|
||||
|
||||
var dataInicioAuditoria = normalizaData(item.dataAuditoria);
|
||||
var dataLimite = normalizaData(item.dataLimite);
|
||||
var inicioFiltro = normalizaData(filtros.dataInicio);
|
||||
var fimFiltro = normalizaData(filtros.dataFim);
|
||||
|
||||
// Mantem quando data de auditoria OU data limite estiver na faixa filtrada
|
||||
return dataNaFaixa(dataInicioAuditoria, inicioFiltro, fimFiltro) ||
|
||||
dataNaFaixa(dataLimite, inicioFiltro, fimFiltro);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// Mantem somente auditorias com status final (evita divergencia entre total e KPIs)
|
||||
var antesStatus = dados.length;
|
||||
dados = dados.filter(function(item){
|
||||
var st = normalizaTexto(item.saidaAnalise || item.status || "");
|
||||
return st === "CONFORME" || st === "NAO_CONFORME";
|
||||
});
|
||||
console.log("Registros com status final:", dados.length, "de", antesStatus);
|
||||
|
||||
// Ordena por data de auditoria mais recente
|
||||
dados.sort(function(a,b){
|
||||
var da = normalizaData(a.dataAuditoria);
|
||||
var db = normalizaData(b.dataAuditoria);
|
||||
if(da < db) return 1;
|
||||
if(da > db) return -1;
|
||||
return 0;
|
||||
});
|
||||
|
||||
console.log("Registros filtrados:", dados);
|
||||
|
||||
window.dispatchEvent(
|
||||
new CustomEvent("dashboardData",{detail:dados})
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
function normalizaTexto(valor){
|
||||
return String(valor || "").trim().toUpperCase();
|
||||
}
|
||||
|
||||
function normalizaData(valor){
|
||||
var v = String(valor || "").trim();
|
||||
return v;
|
||||
}
|
||||
|
||||
function dataNaFaixa(data, inicio, fim){
|
||||
if(!data){
|
||||
return false;
|
||||
}
|
||||
if(inicio && data < inicio){
|
||||
return false;
|
||||
}
|
||||
if(fim && data > fim){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user