给点个人意见。第一张表应该是id 帐户 考勤日期,不管签到签退都把数据插入第一张表。
威信ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
第二张表不需要。你的设计不仅允余,而且没有考虑从考勤机导入数据的情况。
此外你还要设计一张表记录法定假日等非工作时间。
设计的难点在于通过考勤记录表和工作时间设定来计算考勤结果,这些需要你自己来思考。
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title发送公文/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(); //构造用户操作对象
Eminfo us=ope.getUserByUserCode((String)session.getAttribute("username"),"2");//取得用户的信息。
String sender=us.getName();//取得用户名。
BuffModel opr=new BuffModel();//构造公文操作对象
String saction=request.getParameter("action");//从上一个页得到是action的值。
if(saction!=null!saction.equals("")saction.equals("del")) {//如果action是del,那么删除这条公文。
String rsid=request.getParameter("ID");
opr.deleteTest(rsid);
}
%
以上代码就是先判断用户是否登陆和用户类型是否为2。如果是的话,取得用户的信息,并取得此用户所发布的公文的信息。
还有就是对上一个页提交过来的表单进行处理。如果是删除公文的操作,那么就删除公文。
FORM METHOD="POST" ACTION="uploadBuff.jsp" ENCTYPE="multipart/form-data"
table width="99%" cellpadding="0" cellspacing="0" border="1" align="center"
%
//取得该用户发送的所有公文
ArrayList al=opr.getAllBuff(sender);
if(al!=nullal.size()0){
out.print("trtd align=center colspan=3你已经发布了下列公文/td/tr");
%
tr
td align="center" 公文名称/td
td align="center" 发布日期/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你还没有发布任何公文/td/tr");
}%
上面的代码很简单,把取得的公文信息用表格显示出来。如果公文条数为0的话,就只显示一个“你还没有发布任何公文”。如果不为0的话,就列出来。后面加个“删除”按钮,还可以删除。
总体来说这个页可以分为两部分,从开头到这里的部分就是完成将已经发布的公文显示出来的功能。下面的代码,构建一个功能的表单,一大堆输入框什么的,就是完成发布新功文的功能。
tr
td height="20" colspan="3" align="center" 发送公文
/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
这里是构建了一个下拉列表,就是一点向下的箭头,可以列出所有的用户。用户不能自已写接收人,只能从里面选一个。
td
/td
/tr
tr
td align="left" 标 题:/td
td input type="text" name="title" //tdtd
/td
/tr
tr
td align="left" 内 容:/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=现在发送 name=ok input type="reset" value="取消发送"/
/td/tr
/table
从中间部分一直到这里更简单了,就是构建了一个表单,用来提交公文的内容。点发送就提交,点取消就重置表单。
/form
/body
/html
可以用Eclipse或者InteliJ IDEA
工程与包管理:用Maven (自动下载相应的jar包,在pom.xml里版本号自己定义,更新jar包方便)
框架:Spring + MyBatis (简称SM)
前台用: HTML + jQuery + AJAX + CSS
数据库:MySQL 或者 Postgre SQL
Web服务器:Tomcat一般应用都能适应!
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款