课题 - highcharts插件使用总结和开发中遇到的问题及解决办法(2)

2019-06-11 17:30

//把map数据转化为json数据

JSONObject jsonObjectFromMap =JSONObject.fromObject(recordInfo);

dto.setAddress(jsonObjectFromMap.toString());

action层代码 /**

* 1. 构造HighChart的x轴用到的每月时间数据信息 (月份不足两位的没有补0,直接放在request中)

* 2. 返回值map中月份不足2位的,进行了补0,该map在构造每月订单数量统计时使用 * @throws ParseException */

private Map extractHighChartXAxisInfo(ServletRequest request) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(\ Calendar curr = Calendar.getInstance(); Calendar curr2 = curr;

Date beginPayDate = curr.getTime(); // 传进来的当前时间 curr2.add(Calendar.YEAR, -1); curr2.add(Calendar.MONTH, 1);

Date endPayDate = curr2.getTime(); // 上一年的时间

GregorianCalendar[] ga=getDate(simpleDateFormat.format(endPayDate), simpleDateFormat.format(beginPayDate)); //循环数组

StringBuffer stringBuffer = new StringBuffer();

Map initMap = new LinkedHashMap(); stringBuffer.append(\ for(GregorianCalendar e:ga) {

stringBuffer.append(\ initMap.put(modifyTime(e), 0); }

//当ga数组中有数据时才删除末尾的 逗号 if(stringBuffer.length()>1){

stringBuffer.deleteCharAt(stringBuffer.length()-1); }

stringBuffer.append(\

log.info(\轴用到的每月时间数据信息 (月份不足两位的没有补0) \ request.setAttribute(\ return initMap; }

/**

*

* @param startTime * @param endTime

* @return 返回开始时间和结束时间之间的每一个月 * 如:2013.1 2013.2 2013.3 2013.4 2013.5 2013.6 2013.7 * @throws ParseException */

public static GregorianCalendar[] getDate(String startTime,String endTime) throws ParseException {

Vector v=new Vector(); SimpleDateFormat sdf=new SimpleDateFormat(\

GregorianCalendar gc1=new GregorianCalendar(),gc2=new GregorianCalendar(); gc1.setTime(sdf.parse(startTime)); gc2.setTime(sdf.parse(endTime)); do{

GregorianCalendar gc3=(GregorianCalendar)gc1.clone(); v.add(gc3);

gc1.add(Calendar.MONTH, 1);

}while(!gc1.after(gc2));

return v.toArray(new GregorianCalendar[v.size()]); }

//按格式获取时间,月份不足两位的补0

public static String modifyTime(GregorianCalendar e){ String curdate = e.get(Calendar.YEAR)+\ if((e.get(Calendar.MONTH)+1)<10){

curdate = curdate+\ }else {

curdate = curdate+\ }

return curdate; }

//按格式获取时间,月份不足两位的没有补0

public static String modifyTimeAnthor(GregorianCalendar e){ String curdate = e.get(Calendar.YEAR)+\

curdate = curdate+\ return curdate; }

/**

* 1. 传递查询时间段的日期信息

* 2. 要求查询当月以及向前倒推11个月(总共12的月)的数据

* 3. 如当前日期是 2014.01,则构造开始时间2013.02,结束时间2014.02,都是由于oracle的between and * @param mulOrderDTO */

private void passDateInfo(TMulOrderCountDTO mulOrderDTO) { //传递月份信息

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(\ Calendar curr = Calendar.getInstance();

//注意这里把curr变量的引用赋值给了curr2,当curr的值变化时,会影响到curr2的值 Calendar curr2 = curr;

curr.add(Calendar.MONTH, 1);

Date beginPayDate = curr.getTime(); // 传进来的当前时间 curr2.add(Calendar.YEAR, -1);

Date endPayDate = curr2.getTime(); // 上一年的时间

mulOrderDTO.setBeginPayDate(simpleDateFormat.format(endPayDate)); mulOrderDTO.setEndPayDate(simpleDateFormat.format(beginPayDate)); }

/**

* 构造每个月 订单总量、合约机总量、裸机总量的字符串信息,用于填充highChart插件 * @param request * @param str */

@SuppressWarnings(\

private void extractHighChartRecordInfo(ServletRequest request, String str,Map initMap) {

//接受最初传进来的map,使用了LinkedHashMap的构造方法,参数为map //由于数据的显示问题,这里构造了初始化的LinkedHashMap(带顺序) Map originalTotalMap = new LinkedHashMap(initMap); Map originalTotalLJMap = new LinkedHashMap(initMap); Map originalTotalHYMap = new LinkedHashMap(initMap); //把json数据重新转换为Map数据

Map m = parseJSON2Map(str); //遍历map,拿到map的key的集合的迭代对象

Iterator> iterator = m.entrySet().iterator(); while(iterator.hasNext()){ //拿到当前的迭代对象

Map.Entry me = iterator.next(); //拿到当前迭代对象的key(可以看做map的key)

String key = me.getKey();

String keyW = key.substring(key.indexOf(\ if(\

//拿到当前迭代对象的value,是List对象,取第一个元素拿到map List li = (List) me.getValue(); //拿到map

Map map = (Map) li.get(0); //覆盖一下初始化map的数据

originalTotalLJMap.putAll(map);

//拿到实际上保存数据的Map集合,如保存每月裸机订单数据的map

Iterator> iterator1 = originalTotalLJMap.entrySet().iterator(); StringBuffer stringBufferLJ = new StringBuffer(); stringBufferLJ.append(\

log.info(\解析每月裸机数据..................................................\ while(iterator1.hasNext()){

Map.Entry mea = iterator1.next(); //这里的getKey获取到是月份 如:2013.1

String keya = mea.getKey();

log.info(keya+\ \

// getValue()是获取当月的订单数量,保存到StringBuffer中,并处理//StringBuffer数据使得满足highchart插件的要求 stringBufferLJ.append(mea.getValue()+\ }

//当iterator1中有数据时才删除掉末尾的逗号 if(stringBufferLJ.length()>1){

stringBufferLJ.deleteCharAt(stringBufferLJ.length()-1); }

stringBufferLJ.append(\ log.info(\裸机订单数

量 :\

request.setAttribute(\ }

if(\

List li = (List) me.getValue(); //拿到map

Map map = (Map) li.get(0);

originalTotalHYMap.putAll(map);

Iterator> iterator1 = originalTotalHYMap.entrySet().iterator(); StringBuffer stringBufferHY = new StringBuffer(); stringBufferHY.append(\

log.info(\解析每月合约机数据..................................................\ while(iterator1.hasNext()){

Map.Entry mea = iterator1.next(); String keya = mea.getKey();

stringBufferHY.append(mea.getValue()+\

log.info(keya+\ \ }

//当iterator1中有数据时才删除掉末尾的逗号 if(stringBufferHY.length()>1){

stringBufferHY.deleteCharAt(stringBufferHY.length()-1); }

stringBufferHY.append(\ log.info(\合约机订单数

量 :\ request.setAttribute(\ }

if(\

List li = (List) me.getValue(); //拿到map

Map map = (Map) li.get(0); originalTotalMap.putAll(map);

Iterator> iterator1 = originalTotalMap.entrySet().iterator(); StringBuffer stringBufferTotal = new StringBuffer(); stringBufferTotal.append(\

log.info(\解析每月订单总量数据..................................................\ while(iterator1.hasNext()){

Map.Entry mea = iterator1.next(); String keya = mea.getKey();

stringBufferTotal.append(mea.getValue()+\

log.info(keya+\ \ }

//当iterator1中有数据时才删除掉末尾的逗号 if(stringBufferTotal.length()>1){

stringBufferTotal.deleteCharAt(stringBufferTotal.length()-1); }

stringBufferTotal.append(\

log.info(\总订单数

量 :\

request.setAttribute(\ } } }

highcharts效果图

附上jsp的代码

<%@ page language=\ import=\ pageEncoding=\%> <%

String path = request.getContextPath();

String basePath = request.getScheme()+\+request.getServerName()+\+request.getServerPort()+path+\; %>

  |     |  


课题 - highcharts插件使用总结和开发中遇到的问题及解决办法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:陈友华关于人口红利研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: