JSFiddle - React, Tailwind, and code Playground
JavaScript
<%
String queryBarra = "select DATA_APONT, ATIVO, APROV_MOTOR from RELAT_APROVEITAMENTO_MOTOR order by data_apont, ativo"; //incluir condição para limitar pelo período que está na variavel titulo e considerar a operação
String data = "select DATA_APONT from RELAT_APROVEITAMENTO_MOTOR group by data_apont";
Integer ativoAtual=0;
%>
<executequery:query resultSet="collExecuteList1" listPages="collListPagesList"
sqlSelect="<%=queryBarra.toString()%>" page="0" conPool="6" >
</executequery:query>
<executequery:query resultSet="collExecuteList2" listPages="collListPagesList"
sqlSelect="<%=data.toString()%>" page="0" conPool="6" >
</executequery:query>
<script>
var qtdDatas=0;
var qtdAtivos=0;
var qtdAprov=0;
var cont=0;
var aLabels =[];
var dados = [];
var ativos =[];
var aprov = [];
var data = [];
var ativo = [];
var aproveitamento = [];
var valordados =[];
var j=0;
<struts_logic:iterate id="arrExecute" name="collExecuteList1" scope="page" type="java.util.ArrayList">
<struts_logic:iterate id="arrData" name="collExecuteList2" scope="page" type="java.util.ArrayList">
//Vetor de labels (informação abaixo das barras)
if( !aLabels.includes("<%=arrData.get(0).toString()%>") ){
qtdDatas = aLabels.push("<%=arrData.get(0).toString()%>");
}
if( !ativos.includes("<%=arrExecute.get(1).toString()%>") ){
qtdAtivos = ativos.push("<%=arrExecute.get(1).toString()%>");
}
if( !aprov.includes("<%=arrExecute.get(2).toString()%>") ){
qtdAprov = aprov.push("<%=arrExecute.get(2).toString()%>");
}
data[cont]="<%=arrExecute.get(0).toString()%>";
ativo[cont]="<%=arrExecute.get(1).toString()%>";
aproveitamento[cont]="<%=arrExecute.get(2).toString()%>";
cont++;
</struts_logic:iterate>
</struts_logic:iterate>
console.log(aLabels);
console.log(ativos);
console.log();
for (var...