定位系统之人员考勤查询

在这里插入图片描述
目的:
实现以上图片的功能
思路:
根据查询条件的不同,sql语句不同;
但是主要还是:
根据num可以查询出某个时间段内的信息,如果多条信息取第一和最后一个信息,如果只有一条就这样;
代码如下:
jsp:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>华金矿业-人员考勤查询</title>
    <!-- 首页 -->
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
	<link rel="stylesheet" type="text/css" href="css/index.css">
	<link rel="stylesheet" type="text/css" href="css/Personnel_definition.css">
	<script type="text/javascript">
	function hide(){
    var id=document.getElementById("center_img");
    var name=id.getAttribute("name");
	var left=document.getElementById("center-left");
	if(name=="block"){
	left.setAttribute("style", "display:none;");
	id.setAttribute("name", "none");
	}if(name=="none"){
	left.setAttribute("style", "display:block;");
	id.setAttribute("name", "block");
	}
	}
	function display(a){
	var elements=[];
	//获得所有的li标签
	var list=document.getElementsByTagName("li");
	var len=list.length;//获得长度
	//把class=sub-menu的li都放在集合里面
	for(var i=0;i<len;i++){
          if(list[i].className== "sub-menu"){
          elements[elements.length]=list[i];
                                            }
	                     } 
	/*把所有的隐藏  */
	for(var i=0;i<elements.length;i++){
	//获得下面的ul
	   var ul=elements[i].childNodes[3];
	   /* 设置属性为隐藏 */
	   ul.setAttribute("style","display:none");
	   /* 点击当前元素的Ul设置可见 */
	                                }    
	                                /* 对所有的input背景颜色设置 */
	   var tree=document.getElementsByName("tree"); 
	   for(var i=0;i<tree.length;i++){
	   tree[i].setAttribute("style", "background-color:#E1F1FD;");
	             }                                              
	   var input=document.getElementById(a);
	   input.setAttribute("style", "background-color:#5094D6;");
	   var ula=input.parentNode;
	   var lla=ula.childNodes;
	   for(var i=0;i<lla.length;i++){
       if(lla[i].nodeName=='UL'){
	    lla[i].setAttribute("style","display:block");
	                    }
	                                   }
	}
	/*获取当前的日期和时间  */
	function tm(){
	var today = new Date();
	var year=today.getFullYear();
	var month=today.getMonth()+1;
	var day=today.getDay();
	var tm=year+"年"+month+"月"+day+"日"+"  "+today.getHours() + ":"     
+ today.getMinutes() + ":" + today.getSeconds();  ;
	var rq=document.getElementById("rq");
	rq.innerHTML=tm;
	}
	
	</script>
	<script type="text/javascript">
	function checktime() {
		var stime=document.getElementById("stime").value;
		var etime=document.getElementById("etime").value;
		var submit=document.getElementById("submit");
		if(stime!=null&&etime!=null&&stime!=""&&etime!=""){
		submit.setAttribute("type","submit");
		document.getElementById("error_info").innerHTML="";
		}else{
		submit.setAttribute("type","button");
		document.getElementById("error_info").innerHTML="开始时间和结束时间不能为空";
		}
	}
	
	

	</script>
  </head>
  <body onload="tm();">
  <!-- 上 -->
<div id="up">
<div id="up_left">
<ul>
<li style="font-size:12px;">铜陵华金矿业有限责任公司</li>
<li>井下综合监管系统</li>
</ul>
</div>
<table id="up_right">
<tr>
<td class="prompt">您好!<%=request.getParameter("username") %></td>
<td class="prompt">[华金矿业]:</td>
<td class="prompt" id="rq"></td>
</tr>
<tr>
<td class="prompt">密码</td>
<td class="prompt">桌面</td>
<td class="prompt">注销</td>
</tr>
</table>
</div>
<div style="width:102%;height: 50px;background-color: #4891C6;position: relative;margin-top: -14px;margin-left: -7px;"></div>
<!--中  -->
<div id="centers">
<div id="center-left">
<input type="button" value="功能菜单" class="view">
<ul id="all">
<!-- 第一个菜单 -->
<li class="sub-menu">
<input type="button" value="图形展现" class="button" name="tree" id="jpg" onclick="display(this.id);">
<ul style="display: none;">
<li><a href="total_picture.jsp">实时总图</a></li>
<li><a href="role_position.jsp" >轨迹定位</a></li>
</ul>
</li>
<!-- 第二个菜单 -->
<li class="sub-menu">
<input type="button" value="人员定位" class="button" name="tree" id="people" onclick="display(this.id);">
<ul style="display: none;">
<li>井下人员状况</li>
<li>LED通知管理</li>
<li>LED显示管理</li>
<li>大屏幕输出</li>
<li>人员定位搜索</li>
<li>人员考勤搜索</li>
<li>调度统计</li>
</ul>
</li>
<!-- 第三个菜单 -->
<li class="sub-menu">
<input type="button" value="环境监测" class="button" name="tree" id="supervise" onclick="display(this.id);">
<ul style="display: none;">
<li>环境测试总图</li>
<li>环境监测数据查询</li>
<li>环境报警数据查询</li>
</ul>
</li>
<!-- 第四个菜单 -->
<li class="sub-menu">
<input type="button" value="查询统计" class="button" name="tree" id="select" onclick="display(this.id);">
<ul style="display: none;">
<li>人员报警查询</li>
<li>超时人员查询</li>
<li>设备工作状况</li>
<li>设备工作状态查询</li>
</ul>
</li>
<!-- 第五个菜单 -->
<li class="sub-menu">
<input type="button" value="基础信息管理" class="button" name="tree" id="information" onclick="display(this.id);">
<ul style="display: none;">
<li>基站定义</li>
<li>采集基站定义</li>
<li>采集设备定义</li>
<li><a href="/Socket/Personnel_definition">人员定义</a></li>
<li>工种定义</li>
<li>职务定义</li>
<li>带班领导定义</li>
</ul>
</li>
<!-- 第六个菜单 -->
<li class="sub-menu">
<input type="button" value="系统管理" class="button" name="tree" id="system" onclick="display(this.id)">
<ul style="display: none;">
<li>机构定义</li>
<li>用户定义</li>
</ul>
</li>
</ul>
<!--隐藏下面的具体字节  -->
</div>
<div id="center-right">
<!--  人员信息界面-->
<form action="/Socket/Attendance_Search" method="post">
<div id="peo_head">人员考勤查询</div>
<span class="peo_left">人员名称:<input type="text" name="name"/></span>
<span class="peo_left" style="margin-left: 37px;">人员编号:<input type="text"  name="number"/></span>
<span class="peo_left">所属机构:
<select id="tjn" >
 <c:forEach items="${alllist}" var="i"  varStatus="status">
<option value=${status.index }>${i}</option>
</c:forEach>
</select>
</span><input style="display: none;" name="part" id="part"/><br>
<span class="peo_left">开始时间:<input type="text"  name="stime" id="stime" placeholder="yyyy-mm-dd hh:mm:ss" /></span>
<span class="peo_left">结束时间:<input type="text"  name="etime" id="etime"  placeholder="yyyy-mm-dd hh:mm:ss" /></span>
<span id="error_info" style="color:red;"></span><br>
<span id="button">
<input type="button" value="查询" class="select" id="submit" onclick="checktime();"/>
<input type="reset" value="重置" class="select"/>
<input type="button" value="人员报表" class="select"/>
</span>
</form>
<br>
<div id="peo_info" style="height: 419px;">
<table  style="width: 99%;">
<tr><td>人员编号</td><td>人员名称</td><td>入井地点</td><td>入井时间</td><td>出井地点</td><td>出井时间</td><td>工作时间</td></tr>
 <c:forEach items="${list}" var="i"  varStatus="status">
 <c:if test="${status.index % 2 == 0}">
 <tr style="background-color: white"><td class="list_p">${i.name}</td><td class="list_p">${i.num}</td><td class="list_p">${i.sbs}</td><td class="list_p">${i.stime}</td><td class="list_p">${i.ebs}</td><td class="list_p">${i.etime}</td><td class="list_p">${i.wtime}</td></tr>
 </c:if>
 <c:if test="${status.index % 2 == 1}">
 <tr style="background-color: #f2f7fa"><td class="list_p">${i.name}</td><td class="list_p">${i.num}</td><td class="list_p">${i.sbs}</td><td class="list_p">${i.stime}</td><td class="list_p">${i.ebs}</td><td class="list_p">${i.etime}</td><td class="list_p">${i.wtime}</td></tr>
 </c:if>
 </c:forEach>
</table>
</div>
</div>
<!--  遍历数据库里面的集合-->
</div>
  <!--下  -->
<div id="bottom">
诚信安天下-------铜陵力凡有限责任公司
</div>
  </body>
  <script type="text/javascript">
  var my=document.getElementById("tjn");
	 //1:拿到select对象:

    //2:拿到选中项的索引:
    var index=my.selectedIndex ; // selectedIndex代表的是你所选中项的index
    //3:拿到选中项options的value: 
    var ss=my.options[index].text;
    document.getElementById("part").value=ss;
  </script>
</html>

servlet代码:

package cn.com.servlet;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.com.gj.StringSeven;
import cn.com.lf.Attend;
import cn.com.lf.JdbcUtils;
public class Attendance_Search extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
               doPost(request, response);
	                                              }
	
	@SuppressWarnings("unused")
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//1.获取前台jsp页面所有的查询条件的值
		//名称
		String name=request.getParameter("name");
		name = URLEncoder.encode(name, "ISO-8859-1");
		name = URLDecoder.decode(name, "UTF-8");
		//编号
		String number=request.getParameter("number");
		number = URLEncoder.encode(number, "ISO-8859-1");
		number = URLDecoder.decode(number, "UTF-8");
		//部门
		String part=request.getParameter("part");
		part = URLEncoder.encode(part, "ISO-8859-1");
		part = URLDecoder.decode(part, "UTF-8");
		//开始时间
		String stime=request.getParameter("stime");
		stime = URLEncoder.encode(stime, "ISO-8859-1");
		stime = URLDecoder.decode(stime, "UTF-8");
		//结束时间
		String etime=request.getParameter("etime");
		etime = URLEncoder.encode(etime, "ISO-8859-1");
		etime = URLDecoder.decode(etime, "UTF-8");
		//判断条件
		String sql = null;
		List<String> lists=new ArrayList<String>();
		List<StringSeven> listseven=new ArrayList<StringSeven>();  
		//1.根据姓名查询
		if(part==null||part==""){
			if(name!=null&&number==null&&name!=null&&number==""&&name!=null&&number==null||name!=""&&number==""){
				sql="SELECT number FROM person_info WHERE  name='"+name+"'";
				 ResultSet rs=JdbcUtils.select(sql, null);    
				 try {
					if(rs.next()){
						  number=rs.getString(1);	
						  lists=Attend.common(stime, etime, name, number, listseven);
						  request.setAttribute("alllist", lists);
							 request.setAttribute("list", listseven);
							 request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
					              }else{
						 //1.没有符合条件的结果
					            	  //查询所有部门的名称
					  				response.sendRedirect("/Socket/All_Part?num=2");		
					                   }
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			//2.根据number查询name
			if(name==null&&number!=null&&name==null&&number!=""&&name==""&&number!=null&&name==""&&number!=""){
			sql="SELECT name FROM person_info WHERE number ='"+number+"' ";
			 ResultSet rs=JdbcUtils.select(sql, null); 
			 try {
				if(rs.next()){
					  name=rs.getString(1);	
					  lists=Attend.common(stime, etime, name, number, listseven);
					  request.setAttribute("alllist", lists);
						 request.setAttribute("list", listseven);
						 request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
									              }else{
										 //1.没有符合条件的结果
									            	  //查询所有部门的名称
									  				response.sendRedirect("/Socket/All_Part?num=2");		
									                   }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}	
			 
			    
			                  }	

		}

		if(part!=null&&part!=""){
			   //3.根据部门查询
			//注意根据部门可以查到多个Num是一个集合
			if(name==null&&number==null||name==null&&number==""||name==null&&number==null||name==""&&number==""){
				sql="SELECT DISTINCT number FROM person_info WHERE  part='"+part+"'";
				//不仅仅查询num还有name	
				 ResultSet rs=JdbcUtils.select(sql, null); 
				 int m=0;
				try {
					while(rs.next()){
						  m++;
						  number=rs.getString(1);		
						//获取名称和编号
						  String sqln="SELECT  name FROM person_info WHERE  number='"+number+"'";
						  ResultSet rsn=JdbcUtils.select(sqln, null);			  
						  if(rsn.next()){
							 name=rsn.getString(1); 
							 lists=Attend.common(stime, etime, name, number, listseven);	
						  }
						 //rsn.close(); 
					 }
				    if(m==0){
				    	 //查询所有部门的名称
							response.sendRedirect("/Socket/All_Part?num=2");		   	
				    }
                    if(m>0){
				    	 request.setAttribute("alllist", lists);
						 request.setAttribute("list", listseven);
						 request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
				    }
					
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			                }
			
		                         }
		
    if(number!=null&&number!=""){    	
    	if(part!=null&&part!=""){
    	if(name!=null&&name!=""){
    		//7.根据name+num+part查询,是否符合,存在查询yh		
    		 sql="SELECT number FROM person_info WHERE  name='"+name+"' and number='"+number+"' and part='"+part+"'";			
    		 ResultSet rs=JdbcUtils.select(sql, null);  
			 try {
				 int m=0;
				if(rs.next()){
					m++;
					  number=rs.getString(1);		
					//获取名称和编号
					  lists=Attend.common(stime, etime, name, number, listseven);	
					  request.setAttribute("alllist", lists);
						 request.setAttribute("list", listseven);
						 request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
				 }
				if(m==0){
					 //1.没有符合条件的结果
					 response.sendRedirect("/Socket/All_Part?num=2");		   	
				       }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	
    	}else{
    		//6.根据部门+num查询name,是否符合,存在查询yh		
    		 sql="SELECT name FROM person_info WHERE   number='"+number+"' and part='"+part+"'";			
    		 ResultSet rs=JdbcUtils.select(sql, null);  
			 try {
				if(rs.next()){
					  name=rs.getString(1);		
					//获取名称和编号
					  lists=Attend.common(stime, etime, name, number, listseven);	
					  request.setAttribute("alllist", lists);
						 request.setAttribute("list", listseven);
						 request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
				 }else{
					 //1.没有符合条件的结果
					 response.sendRedirect("/Socket/All_Part?num=2");		   	
				       }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
    	
    	}	
    		
    	}
    	
    	
    	
    }
			
   
  //5.根据姓名+部门查询记录 num是否存在,存在查询yh
    if(name!=null&&name!=""){
    	if(part!=null&&part!=""){
    		if(number==null||number==""){
    			 sql="SELECT number FROM person_info WHERE   name='"+name+"' and part='"+part+"'";			
        		 ResultSet rs=JdbcUtils.select(sql, null);  
        		 try {
        		 if(rs.next()){
						number=rs.getString(1);
						//获取名称和编号
						  lists=Attend.common(stime, etime, name, number, listseven);	
						  request.setAttribute("alllist", lists);
						  request.setAttribute("list", listseven);
						  request.getRequestDispatcher("Attendance_search.jsp").forward(request, response);	
					 }else{
						 //1.没有符合条件的结果
						 response.sendRedirect("/Socket/All_Part?num=2");		   	
					       } }catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}		
    				//获取名称和编号
    				 
    			 }	
    			
    		}
    		
    	}

	}

}
	


	

信息类:

package cn.com.gj;

public class StringSeven {
	//人员考勤查询封装类
private String name;
private String num;
private String sbs;
private String stime;
private String ebs;
private String etime;
private String wtime;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public String getNum() {
	return num;
}
public void setNum(String num) {
	this.num = num;
}
public String getSbs() {
	return sbs;
}
public void setSbs(String sbs) {
	this.sbs = sbs;
}
public String getStime() {
	return stime;
}
public void setStime(String stime) {
	this.stime = stime;
}
public String getEbs() {
	return ebs;
}
public void setEbs(String ebs) {
	this.ebs = ebs;
}
public String getEtime() {
	return etime;
}
public void setEtime(String etime) {
	this.etime = etime;
}
public String getWtime() {
	return wtime;
}
public void setWtime(String wtime) {
	this.wtime = wtime;
}
public StringSeven(String name, String num, String sbs, String stime,
		String ebs, String etime, String wtime) {
	super();
	this.name = name;
	this.num = num;
	this.sbs = sbs;
	this.stime = stime;
	this.ebs = ebs;
	this.etime = etime;
	this.wtime = wtime;
}
@Override
public String toString() {
	return "StringSeven [name=" + name + ", num=" + num + ", sbs=" + sbs
			+ ", stime=" + stime + ", ebs=" + ebs + ", etime=" + etime
			+ ", wtime=" + wtime + "]";
}

}

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/82908284
今日推荐