patient.jsp:
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>行事曆</title>
</head>
<body>
<table border="1" align="center" width="927" height="326">
<h:outputText value="#{calender.datetable}" escape="false"/>
</table>
</body>
</html>
</f:view>
-----------------------------------------------------------------------------------------------------------
Calender.java:
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.sql.*;
import java.util.List;
/**
*
* @author wanglin
*/
public class Calender {
String dayNames[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
String Period[] = {"morning", "afternoon", "night"};
String dateday[] = new String[8];
String date[] = new String[8];
private Connection conn = null;
private String datetable;
public String getDatetable() throws SQLException, ClassNotFoundException {
int year;
int month;
int day;
int WEEK;
int i = 0;
String strdate;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://IP位置";
String user = "root";
String password = "密碼";
try {
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url, user, password);
if (conn != null && !conn.isClosed()) {
System.out.println("資料庫連線測試成功!");
//conn.close();
}
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT num,id,doctor,rdate,time,time FROM date order by rdate ,time");
datetable = "";
for (i = 0; i < 4; i++) {
datetable = datetable + "<tr>";
if (i == 0) {
datetable = datetable + "<td height=\"40\" width=\"91\" align=\"center\"><font size=\"4\" color=\"#0000FF\" face=\"標楷體\">診別/日期</font></td>";
}
if (i == 1) {
datetable = datetable + "<td height=\"95\" align=\"center\" width=\"91\"><font size=\"4\" color=\"#0000FF\" face=\"標楷體\">上午診<br>(09:00-12:00)</font></td>";
}
if (i == 2) {
datetable = datetable + "<td height=\"95\" align=\"center\" width=\"91\"><font size=\"4\" color=\"#0000FF\" face=\"標楷體\">下午診<br>(14:00-17:00)</font></td>";
}
if (i == 3) {
datetable = datetable + "<td height=\"95\" align=\"center\" width=\"91\"><font size=\"4\" color=\"#0000FF\" face=\"標楷體\">夜 診<br>(18:00-21:00)</font></td>";
}
for (int j = 0; j < 8; j++) {
if (i == 0) {
Date date = new Date();//取時間
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(calendar.DATE, j);//把日期往後增加一天.整數往後推,負數往前移動
date = calendar.getTime(); //這個時間就是日期往後推一天的結果
year = calendar.get(calendar.YEAR);
month = calendar.get(calendar.MONTH) + 1;
day = calendar.get(calendar.DATE);
WEEK = calendar.get(Calendar.DAY_OF_WEEK) - 1;
/// String formatStr = "%03d";
dateday[j] = String.format("%04d", year) + "-" + String.format("%02d", month) + "-" + String.format("%02d", day);
datetable = datetable + "<td height=\"40\" width=\"97\" align=\"center\">" + dayNames[WEEK] + "<BR>" + month + "/" + day + "</td>";
} else {
datetable = datetable + "<td height=\"40\" width=\"97\" align=\"center\"> ";
rs.beforeFirst();
while (rs.next()) {
strdate = rs.getString(4);
if (strdate.equals(dateday[j]) && rs.getString(5).equals(Period[i - 1])) {
//out.print(rs.getString(1) + "\n");// 可用欄位索引值(1,2,3,...)撈取資料,
datetable = datetable + "<a href=\"../faces/doctordate.jsp?num=" + rs.getString(1) + "&id=" + rs.getString(2) + "\">";
datetable = datetable + rs.getString(3);
datetable = datetable + "</a><br></br>";
}
}
datetable = datetable + "</td>";
}
}
datetable = datetable + "</tr>";
}
this.datetable = datetable;
} catch (SQLException e) {
e.printStackTrace();
}
return datetable;
}
public Calender() {
}
}
-----------------------------------------------------------------------------------------------------------
doctordate.jsp:
<title>線上掛號系統</title>
<body bgcolor="#FFFFFF">
<center>
<p> </p>
<table width="450" border="0" height="48">
<tbody><tr align="center">
<td background="./三軍總醫院線上掛號系統_files/BG-21.gif"><b>
<font color="#FFFFFF" size="4">請確認您的掛號內容</font></b></td>
</tr>
</tbody></table>
<table width="600" border="0" height="200" bgcolor="#21447A">
<tbody><tr valign="CENTER">
<td><b><font face="標楷體" color="#FFFFFF" size="4">
<%
String id = request.getParameter("id");
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://IP位置";
String user = "root";
String password = "密碼";
String dayNames[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
String Period[] = {"morning", "afternoon", "night"};
String time = "";
String dateday = "";
String num = request.getParameter("num");
String timePeriod = "";
int check=0;
try {
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url,
user, password);
if (conn != null && !conn.isClosed()) {
System.out.println("資料庫連線測試成功!");
//conn.close();
}
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM date,department where department.doctor=date.doctor and date.num=" + num);
rs.beforeFirst();
while (rs.next()) {
if (rs.getString(5).equals(Period[0])) {
time = "上午診(09:00-12:00)門診";
timePeriod = Period[0];
}
if (rs.getString(5).equals(Period[1])) {
time = "下午診(14:00-17:00)門診";
timePeriod = Period[1];
}
if (rs.getString(5).equals(Period[2])) {
time = "夜 診(18:00-21:00)門診";
timePeriod = Period[2];
}
out.print("看診科別: " + rs.getString(9) + "<br>");
out.print("看診醫師:" + rs.getString(3) + "<br>");
out.print("看診診室: 診室" + rs.getString(9) + "<br>");
out.print("看診時段: " + time + "<br>");
dateday = rs.getString(4);
out.print("看診日期: " + rs.getString(4) + "" + "<br>");
out.print("看診區域: 內湖門診區" + "<br>");
}
Statement stmt1 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs1 = stmt1.executeQuery("SELECT * ,count(patient.doctor) FROM patient,date,department where patient.doctor=date.doctor and patient.doctor=department.doctor and patient.time=date.time and date.num='" + num + "' group by patient.doctor ,patient.time");
rs1.beforeFirst();
while (rs1.next()) {
if(!rs1.getString(17).isEmpty()){
out.print("預掛序號: " + (rs1.getInt(17) + 1) + "號");
check=1;
}
}
if(check==0) out.print("預掛序號: 1號");
} catch (ClassNotFoundException e) {
System.out.println("找不到驅動程式類別");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
<font color="red">(此號為估算,不代表正式掛號可掛到此號)</font><br>
</font></b>
</td>
</tr>
</tbody></table>
<form name="test" method="post" action="register.jsp?id=<%=id%>&day=<%=dateday%>">
<table width="450" border="0">
<tbody><tr><td colspan="2">
<font size="3" face="標楷體" color="#663333"><b>請輸入您的:</b></font>
</td></tr>
<tr>
<td width="330" height="2">
<font size="3" face="標楷體" color="#663333"><b>病歷號或身分證字號預約</b></font>
</td>
<td width="370" height="2">
<input type="text" name="num" maxlength="10" size="12" value="">
<input type="submit" name="Submit" value="送出">
</td>
</tr>
</tbody></table>
</form>
<form name="test1" method="post" action="cancel.jsp?id=<%=id%>&day=<%=dateday%>&time=<%=timePeriod%>">
<table width="450" border="0">
<tbody><tr><td colspan="2">
<font size="3" face="標楷體" color="#663333"><b>請輸入您的:</b></font>
</td></tr>
<tr>
<td width="330" height="2">
<font size="3" face="標楷體" color="#663333"><b>病歷號或身分證字號取消預約</b></font>
</td>
<td width="370" height="2">
<input type="text" name="patient" maxlength="10" size="12" value="">
<input type="submit" name="Submit" value="送出">
</td>
</tr>
</tbody></table>
</form>
</center>
</form>
-----------------------------------------------------------------------------------------------------------
register.jsp:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
String id = request.getParameter("id");
String daydate = request.getParameter("day");
String num = request.getParameter("num");
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://IP位置";
String user = "root";
String password = "密碼";
try {
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url+"?user="+
user+"&password="+password+"&useUnicode=true&characterEncoding=utf-8");
if (conn != null && !conn.isClosed()) {
System.out.println("資料庫連線測試成功!");
//conn.close();
}
String dayNames[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
String Period[] = {"morning", "afternoon", "night"};
String dateday[] = new String[8];
int year;
int month;
int day;
int WEEK;
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT id,doctor,rdate,time FROM date");
rs.beforeFirst();
while (rs.next()) {
if (rs.getString(1).equals(id) && rs.getString(3).equals(daydate)) {
String upd = "INSERT INTO patient (id,doctor,Patient,rdate,time) VALUES(" + id + ",'" + rs.getString(2) + "','" + num + "','" + daydate + "','" + rs.getString(4) + "')";
stmt.executeUpdate(upd);
out.print("預約成功");
break;
}
}
} catch (ClassNotFoundException e) {
System.out.println("找不到驅動程式類別");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html>
-----------------------------------------------------------------------------------------------------------
cancel.jsp:
<body>
<%
String id = request.getParameter("id");
String day = request.getParameter("day");
String time = request.getParameter("time");
String patient = request.getParameter("patient");
%>
<sql:setDataSource
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://IP位置:3306/ttuweb?user=root&password=密碼&useUnicode=true&characterEncoding=utf8"
/>
<sql:update var="result"
sql="Delete From patient where id=? AND Patient=? AND rdate =? AND time=?" >
<div align="center">
<sql:param value="<%=id%>" />
<sql:param value="<%=patient%>" />
<sql:param value="<%=day%>" />
<sql:param value="<%=time%>" />
<br/>
<br/>
<br/>
</div>
</sql:update>
<div align="center"> <span class="style1">刪除${result==1?"成功":"失敗"}</span><br>
</body>
cancel.jsp:
<body>
<%
String id = request.getParameter("id");
String day = request.getParameter("day");
String time = request.getParameter("time");
String patient = request.getParameter("patient");
%>
<sql:setDataSource
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://IP位置:3306/ttuweb?user=root&password=密碼&useUnicode=true&characterEncoding=utf8"
/>
<sql:update var="result"
sql="Delete From patient where id=? AND Patient=? AND rdate =? AND time=?" >
<div align="center">
<sql:param value="<%=id%>" />
<sql:param value="<%=patient%>" />
<sql:param value="<%=day%>" />
<sql:param value="<%=time%>" />
<br/>
<br/>
<br/>
</div>
</sql:update>
<div align="center"> <span class="style1">刪除${result==1?"成功":"失敗"}</span><br>
</body>
沒有留言:
張貼留言