給點(diǎn)個(gè)人意見。第一張表應(yīng)該是id 帳戶 考勤日期,不管簽到簽退都把數(shù)據(jù)插入第一張表。
威信ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
第二張表不需要。你的設(shè)計(jì)不僅允余,而且沒有考慮從考勤機(jī)導(dǎo)入數(shù)據(jù)的情況。
此外你還要設(shè)計(jì)一張表記錄法定假日等非工作時(shí)間。
設(shè)計(jì)的難點(diǎn)在于通過考勤記錄表和工作時(shí)間設(shè)定來計(jì)算考勤結(jié)果,這些需要你自己來思考。
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title發(fā)送公文/title
link rel="stylesheet" href="../css/main.css" type="text/css" /
script src="../js/oa.js" language="javascript"/script
/head
body
%
if(((String)session.getAttribute("username")!=null)(((Integer)session.getAttribute("type")).intValue()==2)){//判斷用戶是否登陸和用戶類型是否為2。
EmployeeModel ope=new EmployeeModel(); //構(gòu)造用戶操作對象
Eminfo us=ope.getUserByUserCode((String)session.getAttribute("username"),"2");//取得用戶的信息。
String sender=us.getName();//取得用戶名。
BuffModel opr=new BuffModel();//構(gòu)造公文操作對象
String saction=request.getParameter("action");//從上一個(gè)頁得到是action的值。
if(saction!=null!saction.equals("")saction.equals("del")) {//如果action是del,那么刪除這條公文。
String rsid=request.getParameter("ID");
opr.deleteTest(rsid);
}
%
以上代碼就是先判斷用戶是否登陸和用戶類型是否為2。如果是的話,取得用戶的信息,并取得此用戶所發(fā)布的公文的信息。
還有就是對上一個(gè)頁提交過來的表單進(jìn)行處理。如果是刪除公文的操作,那么就刪除公文。
FORM METHOD="POST" ACTION="uploadBuff.jsp" ENCTYPE="multipart/form-data"
table width="99%" cellpadding="0" cellspacing="0" border="1" align="center"
%
//取得該用戶發(fā)送的所有公文
ArrayList al=opr.getAllBuff(sender);
if(al!=nullal.size()0){
out.print("trtd align=center colspan=3你已經(jīng)發(fā)布了下列公文/td/tr");
%
tr
td align="center" 公文名稱/td
td align="center" 發(fā)布日期/td
td align="center" 操作/td
/tr
%
for(int i=0;ial.size();i++){
Bumf rs=(Bumf)al.get(i);
%
tr
td align="center"
%=(rs.getTitle())%
/td
td align="center"
%=rs.getTime()%
/td
td align="center"
a href="send.jsp?ID=%=rs.getId()%action=del"刪除/a
/td
/tr
% } %
%
}else{
out.print("trtd align=center colspan=3你還沒有發(fā)布任何公文/td/tr");
}%
上面的代碼很簡單,把取得的公文信息用表格顯示出來。如果公文條數(shù)為0的話,就只顯示一個(gè)“你還沒有發(fā)布任何公文”。如果不為0的話,就列出來。后面加個(gè)“刪除”按鈕,還可以刪除。
總體來說這個(gè)頁可以分為兩部分,從開頭到這里的部分就是完成將已經(jīng)發(fā)布的公文顯示出來的功能。下面的代碼,構(gòu)建一個(gè)功能的表單,一大堆輸入框什么的,就是完成發(fā)布新功文的功能。
tr
td height="20" colspan="3" align="center" 發(fā)送公文
/td
/tr
tr
td align="left" 接收人:/td
tdselect name="accepter"
option value=""請選擇/option
%
EmployeeModel dm=new EmployeeModel();
Collection c=dm.selectAllEm();//取得所有的用戶。
Iterator it=c.iterator();
while(it.hasNext()){
Eminfo d=(Eminfo)it.next();
%
option value="%=d.getName()%"%=d.getName()%/option
%} %
/select/td
這里是構(gòu)建了一個(gè)下拉列表,就是一點(diǎn)向下的箭頭,可以列出所有的用戶。用戶不能自已寫接收人,只能從里面選一個(gè)。
td
/td
/tr
tr
td align="left" 標(biāo) 題:/td
td input type="text" name="title" //tdtd
/td
/tr
tr
td align="left" 內(nèi) 容:/td
tdtextarea name="bumf" cols="42" rows="4"/textarea/tdtd
/td
/tr
tr
td colspan="2" align="left"附 件:input type="file" name="file" //tdtd
/td
/tr
tr
td colspan="3" align="center"
input type="hidden" name="action" value="add"
input type="hidden" name="type" value="1"
input type="hidden" name="sender" value="%=sender%"
INPUT type=submit value=現(xiàn)在發(fā)送 name=ok input type="reset" value="取消發(fā)送"/
/td/tr
/table
從中間部分一直到這里更簡單了,就是構(gòu)建了一個(gè)表單,用來提交公文的內(nèi)容。點(diǎn)發(fā)送就提交,點(diǎn)取消就重置表單。
/form
/body
/html
可以用Eclipse或者InteliJ IDEA
工程與包管理:用Maven (自動(dòng)下載相應(yīng)的jar包,在pom.xml里版本號自己定義,更新jar包方便)
框架:Spring + MyBatis (簡稱SM)
前臺(tái)用: HTML + jQuery + AJAX + CSS
數(shù)據(jù)庫:MySQL 或者 Postgre SQL
Web服務(wù)器:Tomcat一般應(yīng)用都能適應(yīng)!