Я реализовал график с использованием высокой диаграммы js. Мой класс обслуживания возвращает объект, который содержит графические данные, одно из свойств возвращает месяц и год, например, «Декабрь 2018» или «Декабрь 2018», но с высокой диаграммой.выдает ошибку после рендеринга и отображает «Декабрь» не объявлен, а для «2018» неожиданный токен.
У меня вопрос, как мне показать название месяца в формате, например «Декабрь 2018», это выглядитстранно на графике, в настоящее время я использую значение по умолчанию 201812
<script type="text/javascript">
$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Salary Statistics'
xAxis: {
categories: [${boardData.attDashboardData.valueBean.val1}],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Amount (INR)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} INR</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Gross Earning',
data: [${boardData.attDashboardData.valueBean.val3} ]
}, {
name: 'Gross Deduction',
data: [${boardData.attDashboardData.valueBean.val2}]
}, {
name: 'Net Pay',
data: [${boardData.attDashboardData.valueBean.val4}]
}]
});
});
</script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
Я думаю, что highchart не может понять строковое значение внутри данных [], пожалуйста, помогите мне
СЕРВИСНЫЙ КЛАСС
public TwoValueBeanVer2 getMothlySalaryStatistics(final String yearMonth, final String refId) {
TwoValueBeanVer2 bean = new TwoValueBeanVer2();
String query = " SELECT "
+ " YEAR_MONTH yearMonth, "
+ " count(distinct EMPLOYEE_ID) tot_emp, "
+ " SUM(net_salary) net_salary, "
+ " SUM(gross_earning) gross_earn, "
+ " SUM(gross_deduction) gros_deduct "
+ " "
+ " FROM "
+ " employee_salary_summary "
+ " WHERE EMPLOYEE_ID NOT IN (1,2) "
+ " AND REFERENCE_ID =" + refId
+ " AND YEAR_MONTH=" + yearMonth
+ " group by YEAR_MONTH ";
List<AttOfficerDashboardDTO> list = getNamedParameterJdbcTemplate().query(query, new RowMapper<AttOfficerDashboardDTO>() {
@Override
public AttOfficerDashboardDTO mapRow(ResultSet rs, int i) throws SQLException {
AttOfficerDashboardDTO dto = new AttOfficerDashboardDTO();
dto.setTotEmp(rs.getInt("tot_emp"));
dto.setGrossEarning(rs.getDouble("gross_earn"));
dto.setGrossDeduction(rs.getDouble("gros_deduct"));
dto.setGrossDeduction(rs.getDouble("gros_deduct"));
dto.setNetPay(rs.getDouble("net_salary"));
dto.setYearMonth(rs.getString("yearMonth"));
return dto;
}
});
if (list.size() > 0) {
List<String> val1 = new ArrayList<>();
List<String> val2 = new ArrayList<>();
List<String> val3 = new ArrayList<>();
List<String> val4 = new ArrayList<>();
for (AttOfficerDashboardDTO graphData : list) {
val1.add(graphData.getYearMonth());
val2.add(String.valueOf(graphData.getGrossDeduction()));
val3.add(String.valueOf(graphData.getGrossEarning()));
val4.add(String.valueOf(graphData.getNetPay()));
}
bean.setVal1(StringProcessorUtil.arrayToString(val1.toArray(new String[]{}), null));
bean.setVal2(StringProcessorUtil.arrayToString(val2.toArray(new String[]{}), null));
bean.setVal3(StringProcessorUtil.arrayToString(val3.toArray(new String[]{}), null));
bean.setVal4(StringProcessorUtil.arrayToString(val4.toArray(new String[]{}), null));
}
return bean;
}
}
My DOMAIN CLASS Генерировать строковое значение соответствующего monthYear
public void setYearMonth(String yearMonth) {
this.yearMonth = yearMonth;
if (yearMonth != null) {
String year = yearMonth.substring(0, 4);
String month = yearMonth.substring(4, 6);
monthYearStr = DateUtility.getMonthNameV2(month) + "," + year;
}
}
и метод getMonthNAmeV2 ()
public static String getMonthNameV2(String month) {
String m = "";
switch (month) {
case "01":
m = "January";
break;
case "02":
m = "February";
break;
case "03":
m = "March";
break;
case "04":
m = "April";
break;
case "05":
m = "May";
break;
case "06":
m = "June";
break;
case "07":
m = "July";
break;
case "08":
m = "August";
break;
case "09":
m = "September";
break;
case "10":
m = "October";
break;
case "11":
m = "November";
break;
case "12":
m = "December";
break;
default:
m = "Invalid Month";
break;
}
return m;
}