HIGHCHARTS后台取数+SSH

JS文件:

		var chart;
		var json = {
				chart: {
					renderTo: 'container',
					defaultSeriesType: 'line',
					marginRight: 130,
					marginBottom: 25
				},
				title: {
					text: '血压',
					x: -20 //center
				},
				subtitle: {
					text: '血压折线图',
					x: -20
				},
				xAxis: {
					categories: []
				},
				yAxis: {
					title: {
						text: '血压范围 (mmhg)'
					},
					plotLines: [{
						value: 0,
						width: 1,
						color: '#808080'
					}]
				},
				tooltip: {
					formatter: function() {
			                return '<b>'+ this.series.name +'</b><br/>'+
							this.x +': '+ this.y +'';
					}
				},
				legend: {
					layout: 'vertical',
					align: 'right',
					verticalAlign: 'top',
					x: -10,
					y: 200,
					borderWidth: 0
				},
				series: [{
					name: '低血压',
					data: []
				}, {
					name: '高血压',
					data: []
				}]
			};

		   //var x1 = [154,125,142,179,177,132,77,82];
		  // var y1 = [135,96,83,99,119,149,155,86];

		  $(document).ready(function() {
			$.ajax({
				type : "post",
				url : "pressure!queryHistoryPressure.action",
				data : {
					typeID :'1',
					userID :'00101',
				},
				dataType : "json",
				success : function(data) {
						json.xAxis.categories = data.categories_date;

						json.series[0].data = data.categories_bloodsystolic;
						json.series[1].data = data.categories_diastolic;

						chart = new Highcharts.Chart(json);
				}
			});

		});

后台文件:

/**
 * <project>hansci_search</project>
 * <package>com.hansci.search.action</package>
 * <class>IssuedAction.java</class>
 * @time:2013-3-1 下午12:27:08
 *
 */
package com.neowave.health.action;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.commons.lang.ObjectUtils;
import org.apache.log4j.Logger;

import com.hansci.base.action.BaseAction;
import com.neowave.health.bean.HistoryBloodPressure;
import com.neowave.health.entity.NeowaveBloodPressure;
import com.neowave.health.entity.NeowaveUser;
import com.neowave.health.entity.NeowaveUserInfo;
import com.neowave.health.service.HealthBloodPressureService;
import com.neowave.health.util.WebConstant;
import com.opensymphony.xwork2.ActionContext;

public class PressureAction extends BaseAction {

	private static final long serialVersionUID = 1217029936556299526L;

    private Logger log = Logger.getLogger(PressureAction.class);

    private NeowaveBloodPressure neowaveBloodPressure;

    private List<NeowaveBloodPressure> neowaveBloodPressures;

    private String typeID;

    private String userID;

    private HistoryBloodPressure historyBloodPressure; 

	@Resource
	private HealthBloodPressureService healthBloodPressureService;

	private SimpleDateFormat format = new SimpleDateFormat("dd");

	public String execute() {

		ActionContext ctx = ActionContext.getContext();
		log.info("---------------"+ctx.getSession().get(WebConstant.USER_ID));

		String userID = ObjectUtils.toString(ctx.getSession().get(WebConstant.USER_ID),"");

		log.info("---------typeID="+typeID);

		//获取血压的历史值
		neowaveBloodPressures = healthBloodPressureService.getHistoryMonitor(userID, Integer.parseInt(typeID));

		log.info("-------neowaveBloodPressures.size="+neowaveBloodPressures.size());

		String bloodsystolic = "";
		String diastolic="";
		String categories="";
		if(null!=neowaveBloodPressures&&neowaveBloodPressures.size()>0) {
	        	for(NeowaveBloodPressure bps:neowaveBloodPressures) {
	        		categories+="'"+format.format(bps.getBloodTime())+"日',";
	        		bloodsystolic+=bps.getBloodSystolic()+",";
	        		diastolic+=bps.getBloodDiastolic()+",";
	        	}
	     }
		categories = categories.substring(0, categories.length()-1);
		bloodsystolic = bloodsystolic.substring(0, bloodsystolic.length()-1);
		diastolic = diastolic.substring(0, diastolic.length()-1);

		historyBloodPressure = new HistoryBloodPressure();
		historyBloodPressure.setCategories(categories);
		historyBloodPressure.setSystolic(bloodsystolic);
		historyBloodPressure.setDiastolic(diastolic);

		log.info(historyBloodPressure.getCategories());
		log.info(historyBloodPressure.getDiastolic());
		log.info(historyBloodPressure.getSystolic());

		Map<String, String> jsonMap = new HashMap<String, String>();

		jsonMap.put("categories_date", categories);

		return LIST;
	}

	@SuppressWarnings("unchecked")
	public String queryHistoryPressure() {
		Map jsonMap = new HashMap();

//		ActionContext ctx = ActionContext.getContext();
//		log.info("---------------"+ctx.getSession().get(WebConstant.USER_ID));
//
//		String userID = ObjectUtils.toString(ctx.getSession().get(WebConstant.USER_ID),"");

		log.info("---------typeID="+typeID);

		//获取血压的历史值
		neowaveBloodPressures = healthBloodPressureService.getHistoryMonitor(userID, Integer.parseInt(typeID));

		log.info("-------neowaveBloodPressures.size="+neowaveBloodPressures.size());

		String bloodsystolic = "";
		String diastolic="";
		String categories="";
		List categories_date = new ArrayList(); 

		List total = new ArrayList();
		List categories_bloodsystolic = new ArrayList();
		List categories_diastolic = new ArrayList(); 

		if(null!=neowaveBloodPressures&&neowaveBloodPressures.size()>0) {
	        	for(NeowaveBloodPressure bps:neowaveBloodPressures) {
	        		categories_date.add(format.format(bps.getBloodTime())+"日");
	        		categories_bloodsystolic.add(Integer.parseInt(ObjectUtils.toString(bps.getBloodSystolic(), "")));
	        		categories_diastolic.add(Integer.parseInt(ObjectUtils.toString(bps.getBloodDiastolic(), "")));
	        		bloodsystolic+=bps.getBloodSystolic()+",";
	        		diastolic+=bps.getBloodDiastolic()+",";
	        	}
	     }

		String bs_str = bloodsystolic;
		bloodsystolic = bloodsystolic.substring(0, bloodsystolic.length()-1);
		bloodsystolic = "name: '低压',data:["+bloodsystolic+"]";
		diastolic = diastolic.substring(0, diastolic.length()-1);
		diastolic = "name: '高压',data:["+diastolic+"]";

		log.info(bloodsystolic);
		log.info(diastolic);

		total.add(bloodsystolic);
		total.add(diastolic);

		//jsonMap.put("categories_date", categories);
		jsonMap.put("categories_date", categories_date);
		jsonMap.put("categories_bloodsystolic", categories_bloodsystolic);
		jsonMap.put("categories_diastolic", categories_diastolic);
		jsonMap.put("bloodsystolic", bloodsystolic);
		jsonMap.put("diastolic", diastolic);
		jsonMap.put("bs_str", bs_str);
//{"categories_date":['19日','20日','21日','22日','23日','24日','25日','26日'}

		return this.ajaxJson(jsonMap);
	}

	public NeowaveBloodPressure getNeowaveBloodPressure() {
		return neowaveBloodPressure;
	}

	public void setNeowaveBloodPressure(NeowaveBloodPressure neowaveBloodPressure) {
		this.neowaveBloodPressure = neowaveBloodPressure;
	}

	public List<NeowaveBloodPressure> getNeowaveBloodPressures() {
		return neowaveBloodPressures;
	}

	public void setNeowaveBloodPressures(
			List<NeowaveBloodPressure> neowaveBloodPressures) {
		this.neowaveBloodPressures = neowaveBloodPressures;
	}

	public String getTypeID() {
		return typeID;
	}

	public void setTypeID(String typeID) {
		this.typeID = typeID;
	}

	public HistoryBloodPressure getHistoryBloodPressure() {
		return historyBloodPressure;
	}

	public void setHistoryBloodPressure(HistoryBloodPressure historyBloodPressure) {
		this.historyBloodPressure = historyBloodPressure;
	}

	public String getUserID() {
		return userID;
	}

	public void setUserID(String userID) {
		this.userID = userID;
	}

}
时间: 2024-09-07 15:57:57

HIGHCHARTS后台取数+SSH的相关文章

十幅图读懂BI自助取数系统!

有5年没有做报表取数了,但现在总是会想起取数的事,想到了现在还在欢乐运行着的自助取数系统,亲切的叫它"取数快点吧",今天就来谈一谈这个系统 . 一.总体思路 在活字印刷出现以前,要印一本书很困难,需要根据书的内容刻成雕版,由于每本书的内容各不一样,需要为每本书单独刻成雕版,这样做既费事又费力.但是后来发现虽然每本书的内容千变万化,但是构成书的基本单元"字"是不变的,常用的中文字也就几千个,书无非是这些字的组合.后来毕昇发明的活字印刷术将每个字雕刻下来,形成活字,通过

excel通过VLOOKUP函数从一个表中取数到另一个表

  Excel表格处理数据的功能很强大,工作中,经常需要从数据库文件中查找索引数据到另一个文件中,如何实现这个引用?通过VLOOKUP函数,就可以轻松做到. VLOOKUP函数是一个纵向查找函数,用于按列进行查找索引数据.我们根据需求,进行设定就能快速完成. 步骤 打开电脑,点开Excel,打开数据库文件和需要引用数据的文件. 现以一份电子账册的料件为例:企业在海关备案了552个不同的商品,这552个"商品名称"有"备案序号",另一份料件表文件只有"备案序

关于GridView中各种列后台取值的方法

1.GridView中默认的是BoundField在后台可用GridView1.Rows[0].Cells[0]来取值. 2.如果是其他列如HyperLinkField,ButtonField,CheckBoxField则要在后台进行转化. 转化方法如下: ((HyperLink)GridView1.Rows[RowIndex].Cells[0].Controls[0]).Text 对应的Field转化为相应的类型,简单的方法就是Field的类型名如ButtonField去掉Field就OK了

卓帐终身免费财务软件会计报表取数公式的设置

卓帐终身免费财务软件高度集成了帐务处理.出纳管理.辅助核算.报表处理等功能模块.该软件支持新旧会计制度以及国 家最新数据接口标准.适用于各类企事业行政单位.软件界面简洁大方.易学.易用.实用.好用.免费.在这里我们就先来看看卓帐终身免费财务软件会计报表取 数公式该如何设置吧! 打开"会计分析报表" 计算公式"> 选择对应的报表点[修改]进入"财务报表管理"点对应的科目的年初数.期末数的方格内再点菜单上的[公式]如下图 选择的是货币资金的期末数 选择起

enctype=&amp;amp;quot;multipart/form-data&amp;amp;quot;后台取不到表单里的值

问题描述 后台取不到表单里的值 问题补充:用的是commons-fileupload组件,想用hibernate进行存储,有知道思路的帮忙看看!新手请教 解决方案 // // //1 创建解析工厂// DiskFileItemFactory factory = new DiskFileItemFactory();// //2 获取一个解析器// ServletFileUpload upload = new ServletFileUpload(factory);// //3 对请求对象进行解析//

金蝶eas-求推荐取数工具能取金蝶eAS的账簿,试过了审计大师的取数工具取不了。。

问题描述 求推荐取数工具能取金蝶eAS的账簿,试过了审计大师的取数工具取不了.. 求推荐取数工具能取金蝶eAS的账簿,试过了审计大师的取数工具取不了.. 解决方案 可以用数据提取大师2015光碟版提取

java jtable-关于从jtabl中取数,跪求答案啊

问题描述 关于从jtabl中取数,跪求答案啊 50C int row=-1; for(int i=0;i<v.length;i++){ for(int j=0;j<v[i].length;j++){ for(int k=0;k<v[i][j].length;k++){ for(int l=0;l<v[i][j][k].length;l++){ //v[i][j][k][l]=new Variable(); v[i][j][k][l]=new Variable(); row++; v

jtable-关于从Jtable中取数到多维数组的问题

问题描述 关于从Jtable中取数到多维数组的问题 5C int row=0; for(int i=0;i<v.length;i++){ for(int j=0;j<v[i].length;j++){ for(int k=0;k<v[i][j].length;k++){ for(int l=0;l<v[i][j][k].length;l++){ v[i][j][k][l]=new Variable(); v[i][j][k][l].setTheta(Double.parseDoub

后台file为null-jquery ajax 上传文件 后台取不到file

问题描述 jquery ajax 上传文件 后台取不到file 正在做一个文件上传的程序,在上传之前需要验证文件的大小,不能超过10M,我采用的是jquery ajax的方式提交到后台Action,由后台Action判断文件大小. 首先看jsp页面: 上传的文件不得大于10M ....省略部分.... javascript代码: function checkFileSize() { var uploadfile = jq("#uploadfile"); var returnval =