JAVAweb健康管理系统
今天星期天将以前开发的项目整理一下,希望跟大家一起共同学习
在前台的功能实现上,可以分为以下几个部分:
1.教师饮食管理:根据教师的相关信息,计算其每天所需热量,给出一周的推荐菜单。
2.教师健康日志:用户可以记录自己健康日记,记录每一天的睡眠,饮酒,吸烟,血压,体重等情况。
3.教师体检管理:教师可通过该平台查询每次的体检结果,显示部分项目随时间变化的曲线。
4.疾病预测评估:针对糖尿病和高血压两种疾病,利用数学线性回归的方法,模拟计算出教师患病概率。
代码已经上传github,下载地址:https://github.com/21503882/community-manage
2.2.2 后台功能
后台主要有四个功能:
1.管理员用户登录功能:通过编号登录系统。
2.管理员管理教师功能:可以增删改查教师基本信息。
3.管理员管理体检结果:可以增删改查教师体检记录。
4.管理员管理健康新闻:可以发布或删除新闻。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import cn.itbaizhan.health.action.base.ExamBaseAction;
import cn.itbaizhan.health.po.Exam;
import cn.itbaizhan.health.po.Teacher;
import cn.itbaizhan.health.service.impl.TeacherServiceImpl;
import cn.itbaizhan.health.util.ExcelFinalString;
import cn.itbaizhan.health.util.ExcelReader;
import cn.itbaizhan.health.vo.Highcharts;
import cn.itbaizhan.health.vo.Pages;
import com.opensymphony.xwork2.ActionContext;
public class ExamAction extends ExamBaseAction {
ActionContext actionContext = ActionContext.getContext();
Map<String, Object> session = actionContext.getSession();
Teacher sessionTeacher = (Teacher) session.get("teacher");
public String find() {
try {
examList = examService.find(sessionTeacher);
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}
public String show() {
try {
List<Exam> examList = examService.find(sessionTeacher);
List<String> xdataList = new ArrayList<String>();
List<Highcharts> ydataList = new ArrayList<Highcharts>();
List<Double> bpHighList = new ArrayList<Double>();
List<Double> bpLowList = new ArrayList<Double>();
Highcharts highchart1 = new Highcharts();
Highcharts highchart2 = new Highcharts();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时");
String date = "";
for (Exam e : examList) {
bpHighList.add(Double.parseDouble(e.getSbp()));
bpLowList.add(Double.parseDouble(e.getDbp()));
date = sdf.format(e.getDatetime());
xdataList.add(date);
}
highchart1.setName("舒张压");
highchart1.setData(bpHighList);
highchart2.setName("收缩压");
highchart2.setData(bpLowList);
ydataList.add(highchart1);
ydataList.add(highchart2);
jsonData.add(xdataList);
jsonData.add(ydataList);
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public String examBackFindAll() {
try {
if (pages == null) {
pages = new Pages();
}
if (pages.getPageSize() == null) {
pages.setPageSize(10);
}
pages = pageService.findAll(pages, "Exam", "datetime");
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}
public String examDelete() {
try {
boolean flag = examService.delete(id);
if (flag) {
return SUCCESS;
}
} catch (Exception e) {
e.printStackTrace();
}
errorMessage = "教师体检信息删除失败!";
return "error";
}
public String examSave() {
try {
ExcelReader excel = new ExcelReader();
List<String[]> list = excel.getExcle(getFilePath().toString());
boolean flag;
String[] temp;
for (int i = 0; i < list.size(); i++) {
flag = false;
temp = list.get(i);
Exam exam = new Exam();
Date date = HSSFDateUtil.getJavaDate(Double.parseDouble(temp[ExcelFinalString.DATE]));
exam.setDatetime(date);
exam.setSbp(temp[ExcelFinalString.SBP]);
exam.setDbp(temp[ExcelFinalString.DBP]);
exam.setBmi(temp[ExcelFinalString.BMI]);
exam.setWhr(temp[ExcelFinalString.WHR]);
exam.setBun(temp[ExcelFinalString.BUN]);
exam.setUa(temp[ExcelFinalString.UA]);
exam.setCrea(temp[ExcelFinalString.CREA]);
exam.setTg(temp[ExcelFinalString.TG]);
exam.setChol(temp[ExcelFinalString.CHOL]);
exam.setHdl(temp[ExcelFinalString.HDL]);
exam.setLdl(temp[ExcelFinalString.LDL]);
exam.setGlu(temp[ExcelFinalString.GLU]);
exam.setHcy(temp[ExcelFinalString.HCY]);
exam.setM_alb(temp[ExcelFinalString.M_ALB]);
exam.setM_alb_crea(temp[ExcelFinalString.M_ALB_CREA]);
Teacher teacher = teacherService.find(temp[ExcelFinalString.TEACHER_REALNAME]);
exam.setTeacher(teacher);
flag = examService.save(exam);
if (!flag) {
errorMessage = "第" + (i + 1) + "条记录入库失败";
return "error";
}
}
return SUCCESS;
} catch (Exception e) {
e.printStackTrace();
}
errorMessage = "体检表入库失败";
return "error";
}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/header.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>教师饮食管理</title>
<script type="text/javascript" src="${url}/dwr/engine.js"></script>
<script type="text/javascript" src="${url}/dwr/util.js"></script>
<script type="text/javascript" src="${url}/dwr/interface/foodheat.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("#sum").click(function() {
DWRUtil.useLoadingMessage("正在计算...");
var formMap = DWRUtil.getValues("heatform");
foodheat.heatCalculate(formMap, heat);
foodheat.showFoods(setTable);
});
var heat = function(value) {
$("#heat").html("您的当前目标热量值为 :" + value + "(千卡)");
$("#xia").css('display','block');
}
var setTable = function(foodlist) {
if (typeof window['DWRUtil'] == 'undefined')
window.DWRUtil = dwr.util;
$("#foodtable").html("");
var i=1;
DWRUtil.addRows("foodtable", foodlist, [
function(item) {
switch(i++){
case 1:return "周一";break;
case 2:return "周二";break;
case 3:return "周三";break;
case 4:return "周四";break;
case 5:return "周五";break;
case 6:return "周六";break;
case 7:return "周日";break;
}
},
function(item) {return item[0].name},
function(item) {return item[1].name},
function(item) {return item[2].name},
function(item) {return item[3].name},
function(item) {return item[4].name},
function(item) {return item[5].name},
function(item) {return item[6].name},
function(item) {return item[7].name},
function(item) {return item[8].name},
function(item) {return item[9].name},
function(item) {return item[10].name},
function(item) {return item[11].name},
], {
rowCreator:function(options) { //自定义 tr 的创建行为
var row = document.createElement("tr");
row.style.backgroundColor = "rgb(" + (options.rowIndex * 50) + ",80,140)";
return row;
},
cellCreator:function(options) { //自定义 td 的创建行为
var td = document.createElement("td");
td.style.fontWeight = "bold";
td.style.height = "25px";
return td;
}
});
}
});
</script>
</head>
<body>
<div id="main">
<div id="header">
<div id="top">
<div style="padding-top: 143px">
<div id="menu11" class="menu11">
<ul>
<li>
<a href="${url}/notice/show!show">主页</a>
</li>
<li>
<a href="${url}/exam/find!find">教师体检管理</a>
</li>
<li>
<a href="${url}/sick.jsp">疾病精确评估</a>
</li>
<li id="selected">
教师饮食管理
</li>
<li>
<a href="${url}/dairy/find!find?day=${date}">教师健康日志</a>
</li>
</ul>
</div>
</div>
</div>
<br />
<div id="locate">
当前位置>>首页>>教师饮食管理
</div>
</div>
<div id="content">
<div id="shang" style="padding-top: 70px">
<form id="heatform" action="" method="post">
<table border="0" width="500" align="left">
<tr>
<th colspan="2">
<font size=3px; color==#A4A4A4;float:left>配餐设置</font>
</th>
</tr>
<tr>
<td>
体重:
</td>
<td>
<input type="text" name="weight" id="weight" size="3px">
公斤
</td>
</tr>
<tr>
<td>
性别:
</td>
<td>
<input type="radio" name="sex" value="0" checked>
男
<input type="radio" name="sex" value="1">
女
</td>
</tr>
<tr>
<td>
年龄:
</td>
<td>
<input type="radio" name="agegroup" value="1" checked>
18-30岁
<input type="radio" name="agegroup" value="2">
31-60岁
<input type="radio" name="agegroup" value="3">
60岁以上
</td>
</tr>
<tr>
<td>
体力活动水平:
</td>
<td>
<input type="radio" name="coefficient" value="1">
极--轻卧床全天
<input type="radio" name="coefficient" value="2" checked>
轻--轻活动生活模式(多坐或缓步)
<input type="radio" name="coefficient" value="3">
重--一般活动度
<input type="radio" name="coefficient" value="4">
极重--活动量大的生活模式
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" id="sum" value="计算">
</td>
</tr>
<tr>
<td colspan="2">
<div id="heat"></div>
</td>
</tr>
</table>
</form>
<img src="images/q.jpg" border="0" width="310" height="210" />
</div>
<div id="xia" style="display: none;">
<table border=1 width="800" align="center" cellspacing="0"
cellpadding="0" bgcolor="#cccccc">
<caption>
<h1>
推荐配餐
</h1>
</caption>
<tr bgcolor="#aaa">
<th width="10%;" height="30px;">
时间
</th>
<th colspan="4" width="30%;">
早餐
</th>
<th colspan="4" width="30%;">
午餐
</th>
<th colspan="4" width="30%;">
晚餐
</th>
</tr>
<tbody id="foodtable"></tbody>
</table>
</div>
</div>
<div id="footer">
<div id="copyright">
<div id="copy">
<p>
<font size=3px; color=#666666;> CopyRight© 北京交通大学</font>
</p>
</div>
</div>
<div id="bgbottom"></div>
</div>
</div>
</body>
</html>