HighCharts 柱状图的实现
//上周和本周的时间设置:上周(dbbartime4至dbbartime3);本周(dbbartime2至dbbartime1)
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime1 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -6);
String dbbartime2 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime3 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -5);
String dbbartime4 = sf.format(c2.getTime());
model.addAttribute("dbbartime1", dbbartime1);
model.addAttribute("dbbartime2", dbbartime2);
model.addAttribute("dbbartime3", dbbartime3);
model.addAttribute("dbbartime4", dbbartime4);
在dbbargraph.jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/views/include/easyui-head2.jsp"%>
<link rel="stylesheet" type="text/css" href="static/theme/css/operation/count.css">
<script type="text/javascript" src="static/js/operation/dbbargraph.js" ></script>
<script type="text/javascript" src="static/js/_Highcharts/highcharts.js"></script>
<div class="panel panel-info">
<div class="panel-header panel-header-index clearfix">
<h3 class="pull-left">数据到报统计柱状图</h3>
</div>
<div class="zf_fitem">
<label>类型:</label>
<select id="type_id" class="easyui-combobox" name="timeid" style="width:60px;" required="true" editable="false">
<option value="0">到报率</option>
<option value="1">延时</option>
</select>
<label class="label2">上周:</label>
<input id="dbbartime4" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime4}"></input>
<label class="label3">至</label> <input id="dbbartime3" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime3}"></input>
<label class="label2">本周:</label>
<input id="dbbartime2" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime2}"></input>
<label class="label3">至</label> <input id="dbbartime1" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime1}"></input>
<button class="button button-mini button-primary" id="checkbtn" onclick="dbbarshow()" style="font-size: 14px;">查询</button>
</div>
<div id="canvas2" style="height:90%;"></div>
</div>
在easyui-head2.jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/default/easyui2.css">
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/icon.css">
<script type="text/javascript" src="static/js/common/uuid.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="static/js/common/easyui.common.js"></script>
在dbbargraph.js中:
$(document).ready(function(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
});
function dbbarshow(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
}
function showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type){
var labellist;
var countlist;
var timelist;
var arrcountlist=[]; //存放上周数据
var arrtimelist=[]; //存放本周数据
$.ajax({
url:path + '/operation/getDbBarGraph',
data:{
dbbartime4 : dbbartime4,
dbbartime3 : dbbartime3,
dbbartime2 : dbbartime2,
dbbartime1 : dbbartime1,
type : type
},
type:'post',
contentType:"application/x-www-form-urlencoded;charset=utf-8",
dataType:'json',
success:function(msg){
$("#canvas2").html('');
labellist = msg[0].all[0].labellist; //横轴数据
countlist = msg[0].all[1].countlist;
timelist = msg[0].all[2].timelist;
for(var i =0; i<countlist.length;i++){
var aa = Number(countlist[i]);
arrcountlist.push(aa); //上周数据
}
for(var i =0; i<timelist.length;i++){
var aa = Number(timelist[i]);
arrtimelist.push(aa); //本周数据
}
$(function () {
$('#canvas2').highcharts({
chart: {
type: 'column',
margin: [ 20, 20, 60, 60] //整个图表的位置(上下左右的空隙)
},
title: {
text: ''
},
xAxis: {
categories:labellist,
labels: {
rotation: 0, //横坐标45度倾斜
align: 'center',
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: true
},
credits: {
enabled: false
},
/*plotOptions: {
column: {
dataLabels: {
enabled: true
}
}
},*/
plotOptions: {
series: {
dataLabels: {
enabled: true
}
}
},
// plotOptions: {
// series: {
// events: {
// //控制图标的图例legend不允许切换
// legendItemClick: function (event){
//
// return false; //return true 则表示允许切换
// }
// }
// }
// },
// tooltip: {
// valueSuffix: ' 小时'
// },
series: [{
name: '上周',
data: arrcountlist,
color:'#5380B9', //上周柱状图的颜色
tooltip: {
valueSuffix: ' '
},
/*dataLabels: {
enabled: true, //这个属性:柱状图上面显示不显示数据
rotation: -90, //显示数据的方向偏向
color: '#FFFFFF',
align: 'right',
x: 4,
y: 10,
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif',
textShadow: '0 0 3px black'
}
}*/
},{
name:'本周',
data:arrtimelist,
color:'#C14F4F', //本周柱状图的颜色
tooltip: {
valueSuffix: ' '
}
}]
});
});
}
});
}
Java类方法:
@ResponseBody
@RequestMapping(value = "/getDbBarGraph", produces = "application/html; charset=utf-8")
public String getDbBarGraph(Model model, HttpServletRequest request,HttpServletResponse response) {
try {
//上周:dbbartime4至dbbartime3
String dbbartime4 = request.getParameter("dbbartime4");
String dbbartime3 = request.getParameter("dbbartime3");
//本周:dbbartime2至dbbartime1
String dbbartime2 = request.getParameter("dbbartime2");
String dbbartime1 = request.getParameter("dbbartime1");
String type = request.getParameter("type");
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
//判断时间是否为空
if(dbbartime4 == null || "".equals(dbbartime4)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -13);
dbbartime4 = sf.format(c.getTime());
}
if(dbbartime3 == null || "".equals(dbbartime3)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -8);
dbbartime3 = sf.format(c.getTime());
}
if(dbbartime2 == null || "".equals(dbbartime2)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7);
dbbartime2 = sf.format(c.getTime());
}
if(dbbartime1 == null || "".equals(dbbartime1)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
dbbartime1 = sf.format(c.getTime());
}
String sql1 = "";
String sql2 = "";
String sql3 = "";
String sql4 = "";
String sql5 = "";
String sql6 = "";
String sql7 = "";
String sql8 = "";
if (type.equals("0")) { //到报率
//深圳市遥测站 上周 到报率
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 到报率
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 到报率
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 到报率
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1rate = Float.parseFloat(list1.get(0).get("rate".toUpperCase()) == null ? "" : list1.get(0).get("rate".toUpperCase()).toString());
float sql2rate = Float.parseFloat(list2.get(0).get("rate".toUpperCase()) == null ? "" : list2.get(0).get("rate".toUpperCase()).toString());
float sql3rate = Float.parseFloat(list3.get(0).get("rate".toUpperCase()) == null ? "" : list3.get(0).get("rate".toUpperCase()).toString());
float sql4rate = Float.parseFloat(list4.get(0).get("rate".toUpperCase()) == null ? "" : list4.get(0).get("rate".toUpperCase()).toString());
//深圳市遥测站 本周 到报率
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 到报率
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 到报率
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 到报率
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5rate = Float.parseFloat(list5.get(0).get("rate".toUpperCase()) == null ? "" : list5.get(0).get("rate".toUpperCase()).toString());
float sql6rate = Float.parseFloat(list6.get(0).get("rate".toUpperCase()) == null ? "" : list6.get(0).get("rate".toUpperCase()).toString());
float sql7rate = Float.parseFloat(list7.get(0).get("rate".toUpperCase()) == null ? "" : list7.get(0).get("rate".toUpperCase()).toString());
float sql8rate = Float.parseFloat(list8.get(0).get("rate".toUpperCase()) == null ? "" : list8.get(0).get("rate".toUpperCase()).toString());
//到报率四舍五入
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String rate1 = df.format(sql1rate);//返回的是String类型的
String[] arr1 = rate1.split("\\.");
String a1 = arr1[1];
if("00".equals(a1)){
rate1 = arr1[0];
}
String rate2 = df.format(sql2rate);//返回的是String类型的
String[] arr2 = rate2.split("\\.");
String a2 = arr2[1];
if("00".equals(a2)){
rate2 = arr2[0];
}
String rate3 = df.format(sql3rate);//返回的是String类型的
String[] arr3 = rate3.split("\\.");
String a3 = arr3[1];
if("00".equals(a3)){
rate3 = arr3[0];
}
String rate4 = df.format(sql4rate);//返回的是String类型的
String[] arr4 = rate4.split("\\.");
String a4 = arr4[1];
if("00".equals(a4)){
rate4 = arr4[0];
}
String rate5 = df.format(sql5rate);//返回的是String类型的
String[] arr5 = rate5.split("\\.");
String a5 = arr5[1];
if("00".equals(a5)){
rate5 = arr5[0];
}
String rate6 = df.format(sql6rate);//返回的是String类型的
String[] arr6 = rate6.split("\\.");
String a6 = arr6[1];
if("00".equals(a6)){
rate6 = arr6[0];
}
String rate7 = df.format(sql7rate);//返回的是String类型的
String[] arr7 = rate7.split("\\.");
String a7 = arr7[1];
if("00".equals(a7)){
rate7 = arr7[0];
}
String rate8 = df.format(sql8rate);//返回的是String类型的
String[] arr8 = rate8.split("\\.");
String a8 = arr8[1];
if("00".equals(a8)){
rate8 = arr8[0];
}
net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();
lb.add("深圳市遥测站");
countlist.add(rate1);
timelist.add(rate5);
lb.add("深圳市自动站");
countlist.add(rate2);
timelist.add(rate6);
lb.add("广东省自动站");
countlist.add(rate3);
timelist.add(rate7);
lb.add("广东省雷达数据");
countlist.add(rate4);
timelist.add(rate8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}else if(type.equals("1")) { //延时
//深圳市遥测站 上周 延时
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 延时
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 延时
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 延时
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1relay = Float.parseFloat(list1.get(0).get("relay".toUpperCase()) == null ? "" : list1.get(0).get("relay".toUpperCase()).toString());
float sql2relay = Float.parseFloat(list2.get(0).get("relay".toUpperCase()) == null ? "" : list2.get(0).get("relay".toUpperCase()).toString());
float sql3relay = Float.parseFloat(list3.get(0).get("relay".toUpperCase()) == null ? "" : list3.get(0).get("relay".toUpperCase()).toString());
float sql4relay = Float.parseFloat(list4.get(0).get("relay".toUpperCase()) == null ? "" : list4.get(0).get("relay".toUpperCase()).toString());
//深圳市遥测站 本周 延时
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 延时
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 延时
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 延时
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5relay = Float.parseFloat(list5.get(0).get("relay".toUpperCase()) == null ? "" : list5.get(0).get("relay".toUpperCase()).toString());
float sql6relay = Float.parseFloat(list6.get(0).get("relay".toUpperCase()) == null ? "" : list6.get(0).get("relay".toUpperCase()).toString());
float sql7relay = Float.parseFloat(list7.get(0).get("relay".toUpperCase()) == null ? "" : list7.get(0).get("relay".toUpperCase()).toString());
float sql8relay = Float.parseFloat(list8.get(0).get("relay".toUpperCase()) == null ? "" : list8.get(0).get("relay".toUpperCase()).toString());
DecimalFormat df = new DecimalFormat("0");//格式化小数,不足的补0,四舍五入
String relay1 = df.format(sql1relay);//返回的是String类型的
String relay2 = df.format(sql2relay);
String relay3 = df.format(sql3relay);
String relay4 = df.format(sql4relay);
String relay5 = df.format(sql5relay);
String relay6 = df.format(sql6relay);
String relay7 = df.format(sql7relay);
String relay8 = df.format(sql8relay);
net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();
lb.add("深圳市遥测站");
countlist.add(relay1);
timelist.add(relay5);
lb.add("深圳市自动站");
countlist.add(relay2);
timelist.add(relay6);
lb.add("广东省自动站");
countlist.add(relay3);
timelist.add(relay7);
lb.add("广东省雷达数据");
countlist.add(relay4);
timelist.add(relay8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}
} catch (Exception e) {
LOGGER.error("",e);
}
return null;
}
UtilsJson.java 类:.
package com.yuanls.uitl;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
@SuppressWarnings("all")
public class UtilsJson {
public static JSONArray json(List list){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(list,jsonConfig);
return ja;
}
public static JSONArray list2json(List list){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(list,jsonConfig);
return ja;
}
public static JSONArray object2json(Object object){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(object,jsonConfig);
return ja;
}
/**
* 数据转换成JSON文件
*
* @param path
* @param array
*/
public static void writeJsonFile(String path, net.sf.json.JSONArray array) {
File file = new File(path);
try {
FileOutputStream fout = new FileOutputStream(file);
for (int j = 0; j < array.size(); j++) {
fout.write(array.getJSONObject(j).toString().getBytes());
fout.write("\n".getBytes());
}
fout.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime1 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -6);
String dbbartime2 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime3 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -5);
String dbbartime4 = sf.format(c2.getTime());
model.addAttribute("dbbartime1", dbbartime1);
model.addAttribute("dbbartime2", dbbartime2);
model.addAttribute("dbbartime3", dbbartime3);
model.addAttribute("dbbartime4", dbbartime4);
在dbbargraph.jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/views/include/easyui-head2.jsp"%>
<link rel="stylesheet" type="text/css" href="static/theme/css/operation/count.css">
<script type="text/javascript" src="static/js/operation/dbbargraph.js" ></script>
<script type="text/javascript" src="static/js/_Highcharts/highcharts.js"></script>
<div class="panel panel-info">
<div class="panel-header panel-header-index clearfix">
<h3 class="pull-left">数据到报统计柱状图</h3>
</div>
<div class="zf_fitem">
<label>类型:</label>
<select id="type_id" class="easyui-combobox" name="timeid" style="width:60px;" required="true" editable="false">
<option value="0">到报率</option>
<option value="1">延时</option>
</select>
<label class="label2">上周:</label>
<input id="dbbartime4" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime4}"></input>
<label class="label3">至</label> <input id="dbbartime3" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime3}"></input>
<label class="label2">本周:</label>
<input id="dbbartime2" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime2}"></input>
<label class="label3">至</label> <input id="dbbartime1" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime1}"></input>
<button class="button button-mini button-primary" id="checkbtn" onclick="dbbarshow()" style="font-size: 14px;">查询</button>
</div>
<div id="canvas2" style="height:90%;"></div>
</div>
在easyui-head2.jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/default/easyui2.css">
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/icon.css">
<script type="text/javascript" src="static/js/common/uuid.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="static/js/common/easyui.common.js"></script>
在dbbargraph.js中:
$(document).ready(function(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
});
function dbbarshow(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
}
function showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type){
var labellist;
var countlist;
var timelist;
var arrcountlist=[]; //存放上周数据
var arrtimelist=[]; //存放本周数据
$.ajax({
url:path + '/operation/getDbBarGraph',
data:{
dbbartime4 : dbbartime4,
dbbartime3 : dbbartime3,
dbbartime2 : dbbartime2,
dbbartime1 : dbbartime1,
type : type
},
type:'post',
contentType:"application/x-www-form-urlencoded;charset=utf-8",
dataType:'json',
success:function(msg){
$("#canvas2").html('');
labellist = msg[0].all[0].labellist; //横轴数据
countlist = msg[0].all[1].countlist;
timelist = msg[0].all[2].timelist;
for(var i =0; i<countlist.length;i++){
var aa = Number(countlist[i]);
arrcountlist.push(aa); //上周数据
}
for(var i =0; i<timelist.length;i++){
var aa = Number(timelist[i]);
arrtimelist.push(aa); //本周数据
}
$(function () {
$('#canvas2').highcharts({
chart: {
type: 'column',
margin: [ 20, 20, 60, 60] //整个图表的位置(上下左右的空隙)
},
title: {
text: ''
},
xAxis: {
categories:labellist,
labels: {
rotation: 0, //横坐标45度倾斜
align: 'center',
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: ''
}
},
legend: {
enabled: true
},
credits: {
enabled: false
},
/*plotOptions: {
column: {
dataLabels: {
enabled: true
}
}
},*/
plotOptions: {
series: {
dataLabels: {
enabled: true
}
}
},
// plotOptions: {
// series: {
// events: {
// //控制图标的图例legend不允许切换
// legendItemClick: function (event){
//
// return false; //return true 则表示允许切换
// }
// }
// }
// },
// tooltip: {
// valueSuffix: ' 小时'
// },
series: [{
name: '上周',
data: arrcountlist,
color:'#5380B9', //上周柱状图的颜色
tooltip: {
valueSuffix: ' '
},
/*dataLabels: {
enabled: true, //这个属性:柱状图上面显示不显示数据
rotation: -90, //显示数据的方向偏向
color: '#FFFFFF',
align: 'right',
x: 4,
y: 10,
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif',
textShadow: '0 0 3px black'
}
}*/
},{
name:'本周',
data:arrtimelist,
color:'#C14F4F', //本周柱状图的颜色
tooltip: {
valueSuffix: ' '
}
}]
});
});
}
});
}
Java类方法:
@ResponseBody
@RequestMapping(value = "/getDbBarGraph", produces = "application/html; charset=utf-8")
public String getDbBarGraph(Model model, HttpServletRequest request,HttpServletResponse response) {
try {
//上周:dbbartime4至dbbartime3
String dbbartime4 = request.getParameter("dbbartime4");
String dbbartime3 = request.getParameter("dbbartime3");
//本周:dbbartime2至dbbartime1
String dbbartime2 = request.getParameter("dbbartime2");
String dbbartime1 = request.getParameter("dbbartime1");
String type = request.getParameter("type");
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
//判断时间是否为空
if(dbbartime4 == null || "".equals(dbbartime4)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -13);
dbbartime4 = sf.format(c.getTime());
}
if(dbbartime3 == null || "".equals(dbbartime3)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -8);
dbbartime3 = sf.format(c.getTime());
}
if(dbbartime2 == null || "".equals(dbbartime2)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7);
dbbartime2 = sf.format(c.getTime());
}
if(dbbartime1 == null || "".equals(dbbartime1)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
dbbartime1 = sf.format(c.getTime());
}
String sql1 = "";
String sql2 = "";
String sql3 = "";
String sql4 = "";
String sql5 = "";
String sql6 = "";
String sql7 = "";
String sql8 = "";
if (type.equals("0")) { //到报率
//深圳市遥测站 上周 到报率
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 到报率
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 到报率
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 到报率
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1rate = Float.parseFloat(list1.get(0).get("rate".toUpperCase()) == null ? "" : list1.get(0).get("rate".toUpperCase()).toString());
float sql2rate = Float.parseFloat(list2.get(0).get("rate".toUpperCase()) == null ? "" : list2.get(0).get("rate".toUpperCase()).toString());
float sql3rate = Float.parseFloat(list3.get(0).get("rate".toUpperCase()) == null ? "" : list3.get(0).get("rate".toUpperCase()).toString());
float sql4rate = Float.parseFloat(list4.get(0).get("rate".toUpperCase()) == null ? "" : list4.get(0).get("rate".toUpperCase()).toString());
//深圳市遥测站 本周 到报率
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 到报率
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 到报率
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 到报率
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5rate = Float.parseFloat(list5.get(0).get("rate".toUpperCase()) == null ? "" : list5.get(0).get("rate".toUpperCase()).toString());
float sql6rate = Float.parseFloat(list6.get(0).get("rate".toUpperCase()) == null ? "" : list6.get(0).get("rate".toUpperCase()).toString());
float sql7rate = Float.parseFloat(list7.get(0).get("rate".toUpperCase()) == null ? "" : list7.get(0).get("rate".toUpperCase()).toString());
float sql8rate = Float.parseFloat(list8.get(0).get("rate".toUpperCase()) == null ? "" : list8.get(0).get("rate".toUpperCase()).toString());
//到报率四舍五入
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String rate1 = df.format(sql1rate);//返回的是String类型的
String[] arr1 = rate1.split("\\.");
String a1 = arr1[1];
if("00".equals(a1)){
rate1 = arr1[0];
}
String rate2 = df.format(sql2rate);//返回的是String类型的
String[] arr2 = rate2.split("\\.");
String a2 = arr2[1];
if("00".equals(a2)){
rate2 = arr2[0];
}
String rate3 = df.format(sql3rate);//返回的是String类型的
String[] arr3 = rate3.split("\\.");
String a3 = arr3[1];
if("00".equals(a3)){
rate3 = arr3[0];
}
String rate4 = df.format(sql4rate);//返回的是String类型的
String[] arr4 = rate4.split("\\.");
String a4 = arr4[1];
if("00".equals(a4)){
rate4 = arr4[0];
}
String rate5 = df.format(sql5rate);//返回的是String类型的
String[] arr5 = rate5.split("\\.");
String a5 = arr5[1];
if("00".equals(a5)){
rate5 = arr5[0];
}
String rate6 = df.format(sql6rate);//返回的是String类型的
String[] arr6 = rate6.split("\\.");
String a6 = arr6[1];
if("00".equals(a6)){
rate6 = arr6[0];
}
String rate7 = df.format(sql7rate);//返回的是String类型的
String[] arr7 = rate7.split("\\.");
String a7 = arr7[1];
if("00".equals(a7)){
rate7 = arr7[0];
}
String rate8 = df.format(sql8rate);//返回的是String类型的
String[] arr8 = rate8.split("\\.");
String a8 = arr8[1];
if("00".equals(a8)){
rate8 = arr8[0];
}
net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();
lb.add("深圳市遥测站");
countlist.add(rate1);
timelist.add(rate5);
lb.add("深圳市自动站");
countlist.add(rate2);
timelist.add(rate6);
lb.add("广东省自动站");
countlist.add(rate3);
timelist.add(rate7);
lb.add("广东省雷达数据");
countlist.add(rate4);
timelist.add(rate8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}else if(type.equals("1")) { //延时
//深圳市遥测站 上周 延时
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 延时
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 延时
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 延时
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1relay = Float.parseFloat(list1.get(0).get("relay".toUpperCase()) == null ? "" : list1.get(0).get("relay".toUpperCase()).toString());
float sql2relay = Float.parseFloat(list2.get(0).get("relay".toUpperCase()) == null ? "" : list2.get(0).get("relay".toUpperCase()).toString());
float sql3relay = Float.parseFloat(list3.get(0).get("relay".toUpperCase()) == null ? "" : list3.get(0).get("relay".toUpperCase()).toString());
float sql4relay = Float.parseFloat(list4.get(0).get("relay".toUpperCase()) == null ? "" : list4.get(0).get("relay".toUpperCase()).toString());
//深圳市遥测站 本周 延时
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 延时
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 延时
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 延时
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5relay = Float.parseFloat(list5.get(0).get("relay".toUpperCase()) == null ? "" : list5.get(0).get("relay".toUpperCase()).toString());
float sql6relay = Float.parseFloat(list6.get(0).get("relay".toUpperCase()) == null ? "" : list6.get(0).get("relay".toUpperCase()).toString());
float sql7relay = Float.parseFloat(list7.get(0).get("relay".toUpperCase()) == null ? "" : list7.get(0).get("relay".toUpperCase()).toString());
float sql8relay = Float.parseFloat(list8.get(0).get("relay".toUpperCase()) == null ? "" : list8.get(0).get("relay".toUpperCase()).toString());
DecimalFormat df = new DecimalFormat("0");//格式化小数,不足的补0,四舍五入
String relay1 = df.format(sql1relay);//返回的是String类型的
String relay2 = df.format(sql2relay);
String relay3 = df.format(sql3relay);
String relay4 = df.format(sql4relay);
String relay5 = df.format(sql5relay);
String relay6 = df.format(sql6relay);
String relay7 = df.format(sql7relay);
String relay8 = df.format(sql8relay);
net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();
lb.add("深圳市遥测站");
countlist.add(relay1);
timelist.add(relay5);
lb.add("深圳市自动站");
countlist.add(relay2);
timelist.add(relay6);
lb.add("广东省自动站");
countlist.add(relay3);
timelist.add(relay7);
lb.add("广东省雷达数据");
countlist.add(relay4);
timelist.add(relay8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}
} catch (Exception e) {
LOGGER.error("",e);
}
return null;
}
UtilsJson.java 类:.
package com.yuanls.uitl;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;
@SuppressWarnings("all")
public class UtilsJson {
public static JSONArray json(List list){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(list,jsonConfig);
return ja;
}
public static JSONArray list2json(List list){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(list,jsonConfig);
return ja;
}
public static JSONArray object2json(Object object){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
JSONArray ja = JSONArray.fromObject(object,jsonConfig);
return ja;
}
/**
* 数据转换成JSON文件
*
* @param path
* @param array
*/
public static void writeJsonFile(String path, net.sf.json.JSONArray array) {
File file = new File(path);
try {
FileOutputStream fout = new FileOutputStream(file);
for (int j = 0; j < array.size(); j++) {
fout.write(array.getJSONObject(j).toString().getBytes());
fout.write("\n".getBytes());
}
fout.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}