`
xxp3369
  • 浏览: 152321 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oa_09

JSP 
阅读更多
提供人员管理、模块管理、角色管理、用户管理相关的代码。

同时,需注意,在分页中实现了动态更改每页显示行数的功能(请参考机构管理的实例)



package com.bjsxt.oa.manager.impl;

import com.bjsxt.oa.PagerModel;
import com.bjsxt.oa.manager.ModuleManager;
import com.bjsxt.oa.manager.SystemException;
import com.bjsxt.oa.model.Module;

public class ModuleManagerImpl extends AbstractManager implements ModuleManager {

	public void addModule(Module module, int parentId) {
		if(parentId != 0){
			module.setParent(findModule(parentId));
		}
		getHibernateTemplate().save(module);
	}

	public void delModule(int moduleId) {
		Module module = findModule(moduleId);
		if(module.getChildren().size() > 0){
			throw new SystemException("模块【"+module.getName()+"】存在有子模块,不允许删除!");
		}
		
		getHibernateTemplate().delete(module);
	}

	public Module findModule(int moduleId) {
		return (Module)getHibernateTemplate().load(Module.class,moduleId);
	}

	public PagerModel searchModules(int parentId) {

		String hql = "select m from Module m";
		
		if(parentId == 0){
			//返回顶级模块列表
			hql = hql + " where m.parent is null";
			
		}else{
			hql = hql + " where m.parent.id = "+parentId;
		}
		
		return searchPaginated(hql);
	}

	public void updateModule(Module module, int parentId) {
		if(parentId != 0){
			module.setParent(findModule(parentId));
		}
		getHibernateTemplate().update(module);
	}

}



package com.bjsxt.oa.manager.impl;

import com.bjsxt.oa.PagerModel;
import com.bjsxt.oa.manager.PersonManager;
import com.bjsxt.oa.model.Organization;
import com.bjsxt.oa.model.Person;

public class PersonManagerImpl extends AbstractManager implements PersonManager {

	public void addPerson(Person person, int orgId) {
		if(orgId != 0){
			person.setOrg((Organization)this.getHibernateTemplate().load(Organization.class, orgId));
		}
		getHibernateTemplate().save(person);
	}

	public void delPerson(int personId) {
		getHibernateTemplate().delete(findPerson(personId));
	}

	public Person findPerson(int personId) {
		
		return (Person)getHibernateTemplate().load(Person.class, personId);
	}

	public PagerModel searchPersons() {
		
		return searchPaginated("from Person");
	}

	public void updatePerson(Person person, int orgId) {
		if(orgId != 0){
			person.setOrg((Organization)this.getHibernateTemplate().load(Organization.class, orgId));
		}
		getHibernateTemplate().update(person);
	}
	
	public PagerModel searchPersons(int orgId) {
		return searchPaginated("select p from Person p where p.org.id = "+orgId);
	}
}




package com.bjsxt.oa.manager.impl;

import com.bjsxt.oa.PagerModel;
import com.bjsxt.oa.manager.RoleManager;
import com.bjsxt.oa.model.Role;

public class RoleManagerImpl extends AbstractManager implements RoleManager {

	public void addRole(Role role) {
		getHibernateTemplate().save(role);
	}

	public void delRole(int roleId) {
		getHibernateTemplate().delete(findRole(roleId));
	}

	public Role findRole(int roleId) {
		return (Role)getHibernateTemplate().load(Role.class, roleId);
	}

	public PagerModel searchRoles() {
		return searchPaginated("from Role");
	}

	public void updateRole(Role role) {
		getHibernateTemplate().update(role);
	}

}



package com.bjsxt.oa.manager.impl;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import com.bjsxt.oa.PagerModel;
import com.bjsxt.oa.manager.SystemException;
import com.bjsxt.oa.manager.UserManager;
import com.bjsxt.oa.model.Person;
import com.bjsxt.oa.model.Role;
import com.bjsxt.oa.model.User;
import com.bjsxt.oa.model.UsersRoles;

public class UserManagerImpl extends AbstractManager implements UserManager {

	public void addOrUpdateUserRole(int userId, int roleId, int orderNo) {
		//首先根据userId和roleId,判断这两者之间是否已建立关联
		UsersRoles ur = findUsersRoles(userId, roleId);
		if(ur == null){
			ur = new UsersRoles();
			ur.setRole((Role)getHibernateTemplate().load(Role.class, roleId));
			ur.setUser((User)getHibernateTemplate().load(User.class, userId));
			ur.setOrderNo(orderNo);
			getHibernateTemplate().save(ur);
			return;
		}
		
		ur.setOrderNo(orderNo);
		getHibernateTemplate().update(ur);
	}

	public void addUser(User user, int personId) {
		if(personId == 0){
			throw new SystemException("建立用户帐号时,人员信息不允许为空");
		}
		user.setPerson((Person)getHibernateTemplate().load(Person.class, personId));
		user.setCreateTime(new Date());
		getHibernateTemplate().save(user);
	}

	public void delUser(int userId) {
		getHibernateTemplate().delete(findUser(userId));
	}

	public void delUserRole(int userId, int roleId) {
		getHibernateTemplate().delete(findUsersRoles(userId, roleId));
	}

	public User findUser(int userId) {
		return (User)getHibernateTemplate().load(User.class, userId);
	}

	public User login(String username, String password) {
		
		User user = (User)getSession()
			.createQuery("select u from com.bjsxt.oa.model.User u where u.username = ?")
			.setParameter(0, username)
			.uniqueResult();
		
		if(user == null){
			throw new SystemException("没有这个用户");
		}
		
		if(!user.getPassword().equals(password)){
			throw new SystemException("密码错误!");
		}
		
		if(user.getExpireTime() != null){
			
			//现在时间
			Calendar now = Calendar.getInstance();
			
			//失效时间
			Calendar expireTime = Calendar.getInstance();
			expireTime.setTime(user.getExpireTime());
			
			//如果现在在失效时间之后
			if(now.after(expireTime)){
				throw new SystemException("用户帐号已失效!");
			}
		}
		
		return user;
	}

	public List searchUserRoles(int userId) {
		return getHibernateTemplate().find("select ur from UsersRoles ur " +
				"where ur.user.id = ? order by ur.orderNo",userId);
	}

	public PagerModel searchUsers() {
		
		return searchPaginated("from com.bjsxt.oa.model.User");
	}

	public void updateUser(User user, int personId) {
		if(personId == 0){
			throw new SystemException("更新用户帐号时,人员信息不允许为空");
		}
		user.setPerson((Person)getHibernateTemplate().load(Person.class, personId));
		getHibernateTemplate().update(user);
	}
	
	//本方法被【AdminRoleAssignmentHandler】所使用
	public List searchUsersOfRole(String roleName) {
		String hql = "select u.username from UsersRoles ur " +
				"join ur.user u join ur.role r where r.name = ? ";
		return getHibernateTemplate().find(hql,roleName);
	}

	private UsersRoles findUsersRoles(int userId,int roleId){
		return (UsersRoles)getSession().createQuery(
					"select ur from UsersRoles ur where " +
					"ur.role.id = ? and ur.user.id = ?"
				)
				.setParameter(0, roleId)
				.setParameter(1, userId)
				.uniqueResult();
	}

}




<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@include file="/common/common.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<link href="style/oa.css" rel="stylesheet" type="text/css">
<script language="javascript" src="script/public.js"></script>
<script type="text/javascript">
function selectPagesize(field){
	document.location.href = document.all.firstpageurl.href + "&pagesize="+field.value;
}
</script>
<title>机构管理</title>
</head>
<BODY bgColor=#dee7ff leftMargin=0 background="" topMargin=0 marginheight="0" marginwidth="0">
<center>
      <TABLE width="778" border=0 cellPadding=0 cellSpacing=0 borderColor=#ffffff bgColor=#dee7ff style="FONT-SIZE: 10pt">
        <TBODY>
          <TR height=35>
            <TD align=middle width=20 background=images/title_left.gif 
          bgColor=#dee7ff></TD>
            <TD align=middle width=120 background=images/title_left.gif 
          bgColor=#dee7ff><FONT color=#f7f7f7>机构管理<font color="#FFFFFF">&nbsp;</font></FONT> </TD>
            <TD align=middle width=11 background=images/title_middle.gif 
          bgColor=#dee7ff><FONT color=#f7f7f7>&nbsp;</FONT> </TD>
            <TD align=middle background=images/title_right.gif 
          bgColor=#dee7ff><FONT color=#f7f7f7>&nbsp;</FONT> </TD>
          </TR>
        </TBODY>
      </TABLE>
      <TABLE width="778" border=0 align=center cellPadding=0 cellSpacing=0 borderColor=#ffffff style="FONT-SIZE: 10pt">
        <TBODY>
          <TR>
            <TD width="82%" height=14 align=right vAlign=center noWrap>
            </TD>
            <TD width="18%" align=right vAlign=center noWrap> </TD>
          </TR>
          <TR>
            <TD height=14 align=right vAlign=center noWrap>&nbsp;<!-- 在这里插入查询表单 -->
            </TD>
            <TD height=14 align="left" vAlign=center noWrap>
            <a href="#" onClick="openWin('org.do?method=addInput&parentId=${orgForm.parentId }','addorg',600,200);">添加机构信息</a>
            <a href="org.do?parentId=${ppid }">返回</a>
            </TD>
          </TR>
          <TR>
            <TD height=28 colspan="2" align=right vAlign=center noWrap background=images/list_middle.jpg>&nbsp;&nbsp;
            <!-- 可以在这里插入分页导航条 -->
            </TD>
          </TR>
        </TBODY>
      </TABLE>
      <table width="778" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6">
          <!-- 列表标题栏 -->
	      <tr bgcolor="#EFF3F7" class="TableBody1">
		      <td width="5%" height="37" align="center"><b>序号</b></td>
		      <td width="18%" height="37" align="center"><B>机构名称</B></td>
		      <td width="18%" height="37" align="center"><b>机构编号</b></td>
		      <td width="18%" height="37" align="center"><b>父机构名称</b></td>
              <td width="5%" height="37" align="center"><b>操作</b></td>
          </tr>
          <!-- 列表数据栏 -->
          <c:if test="${!empty pm.datas}">
          <c:forEach items="${pm.datas }" var="org">
	      <tr bgcolor="#EFF3F7" class="TableBody1" onMouseOver="this.bgColor = '#DEE7FF';" onMouseOut="this.bgColor='#EFF3F7';">
		      <td align="center" vAlign="center">${org.id }</td>
	          <td align="center" vAlign="center"><a href="org.do?parentId=${org.id }">${org.name }</a></td>
	          <td align="center" vAlign="center">${org.sn }</td>
	          <td align="center" vAlign="center">${org.parent.name }</td>
	          <td align="center" vAlign="center">
	          <a href="#" onClick="del('org.do?method=del&id=${org.id }')" >删除</a>
	          </td>
        </tr>
        </c:forEach>
		</c:if>
        <!-- 在列表数据为空的时候,要显示的提示信息 -->
	    <c:if test="${empty pm.datas}">
	    <tr>
	    	<td colspan="7" align="center" bgcolor="#EFF3F7" class="TableBody1" onMouseOver="this.bgColor = '#DEE7FF';" onMouseOut="this.bgColor='#EFF3F7';">
	    	没有找到相应的记录
	    	</td>
	    </tr>
	    </c:if>
      </table>
      <TABLE width="778" border=0 align=center cellPadding=0 cellSpacing=0 borderColor=#ffffff style="FONT-SIZE: 10pt">
        <TBODY>
          <TR>
            <TD height=28 align=right vAlign=center noWrap background=images/list_middle.jpg>&nbsp;&nbsp;
            <!-- 可以在这里插入分页导航条 -->
<pg:pager items="${pm.total }" url="org.do" maxPageItems="${ps}"  export="currentPageNumber=pageNumber">
	<pg:param name="parentId"/>
	<pg:first>
		<a href="${pageUrl }" id="firstpageurl">首页</a>	</pg:first>
	<pg:prev>
		<a href="${pageUrl }">前页</a>	</pg:prev>
	<pg:pages>
		<c:choose>
			<c:when test="${currentPageNumber eq pageNumber}">
				<font color="red">${pageNumber }</font>			</c:when>
			<c:otherwise>
				<a href="${pageUrl }">${pageNumber }</a>			</c:otherwise>
		</c:choose>
	</pg:pages>
	<pg:next>
		<a href="${pageUrl }">后页</a>	</pg:next>
	<pg:last>
		<a href="${pageUrl }">尾页</a>	</pg:last>
</pg:pager>
<select name="pagesize" onChange="selectPagesize(this)" >
  <c:forEach begin="5" end="50" step="5" var="i">
    <option value="${i}"
	>
      <c:if test="${ps eq i }">selected</c:if>
      >${i}</option>
  </c:forEach>
</select></TD>
          </TR>
        </TBODY>
      </TABLE>
</center>

</body>

</html>
分享到:
评论

相关推荐

    oa_09.rar_java oa_java oa mysql_oa mysql_oa mysql_办公OA

    在本项目中,我们关注的是一个基于...总之,这个"oa_09.rar"项目展示了一个完整的基于Java的OA系统实现,涵盖了从后端开发、数据库设计到服务器部署的全过程,对于学习和理解企业级Java应用开发具有很高的参考价值。

    oasystem_2016-09-12.sql

    oasystem_2016-09-12.sql

    oa系统代码9

    7. **oa_gl_09**:这个文件名可能代表“OA系统的财务/管理模块的第九个部分”,“gl”可能是“会计”或“管理”的缩写,表示该部分代码专注于企业的财务管理功能。 综合以上知识点,我们可以推测“oa系统代码9”...

    jpbm公文流转实现

    在实际应用中,"oa_09"可能代表该系统的一个特定版本或者一个特定的模块,它可能包含了公文流转实现的详细代码、配置文件、数据库脚本等资源。对于开发人员来说,理解这些资源的结构和作用,是深入学习和优化"jpbm...

    数飞OA系统登录助手

    数飞OA网络协同办公软件是深圳市数飞尔有限公司专门为企业、政府、学校等单位制定的办公管理软件。本软件主要解决过去复杂、...数飞OA系统2010beta09版下载地址:http://www.saas88.com/download/SZOA2010beta09.rar

    信呼协同办公OA系统 v1.9.8

    信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。简介:1、让每个企业单位都有自己的工作系统。2、移动,免费开源工作系统,数据全部自己管理。3、自定义管理应用,模块数据...

    OA工作流(2012-09-23).zip

    OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zipOA工作流(2012-09-23).zip OA工作流(2012-09-23).zip OA工作流(2012-09-23).zip

    小微OA系统领悟版 1.0.zip

    小微OA系统是一个开源的,简单易用,审批灵活,...小微OA系统领悟版 1.0 更新日志:2015-09-06 1.编辑器修改为Tinycme 2.修复邮件接受两个以上附件时错误 3。简化任务流程 取消接受环节。 4。改善微信企业号相关功能。

    PHP客户关系管理源码 OA CRM 商品进销存销售管理合同订单库存财务管理跟单管理系统.rar

    2018.09.27修复更新了 1.创建客户资料,自动创建默认联系人。 2.修复当设置员工管理范围的时候,只能看到自己的客户。 看不到自己管理范围其他员工的客户。 跟单,订单,合同,售后,费用。 3.修复了通知栏目,跟单...

    【信呼协同办公OA系统+v2.2.0】免费开源跨平台办公系统+支持APPpc网页版pc客户端.zip

    信呼协同办公OA系统特点: 1、让每个企业单位都有自己的工作系统。 2、移动,免费开源工作系统,数据全部自己管理。 3、自定义管理应用,模块数据,权限分配。 4、单据快速提醒推送,重要通知任务及时提醒。 5、即时...

    北大青鸟 Accp 5.0 电子课件 Y2 HR CRM OA B2C毕业设计项目开发(HR CRM OA B2C Project).part09.rar

    北大青鸟 Accp 5.0 电子课件 Y2 HR CRM OA B2C毕业设计项目开发(HR CRM OA B2C Project) 共计15个压缩包,需要全部下载才能解压.

    09-springbooOA办公系统+基于RuoYi开发+flowable

    基于RuoYi开发+flowable实现OA办公系统,java项目。 eclipse和idea都能打开运行。 推荐环境配置:eclipse/idea jdk1.8 maven mysql 前端技术:Layui,Ajax,Json 后端技术:SpringBoot,MyBatis 本系统共分为两个角色...

    OA测试用例

    本文档主要以实例的形式来讲述办公自动化软件的测试用例的设计方法

    oa办公系统

    OA(Office Automation)办公系统是一种基于信息技术的管理系统...在“oa09”这个文件中,很可能是关于一个特定版本的OA系统的详细资料,包括系统配置、使用手册、更新日志等,对于理解和使用该系统具有重要参考价值。

    信呼协同办公OA系统-PHP

    信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。 信呼协同办公OA系统特点: ...日期:2020-12-09 1、完善系统安全性。 2、系统优化等。 3、添加人员证件等模块。

    java+mysql学生学籍后台管理系统OA源码

    java+mysql学生学籍后台管理系统OA源码 2020-09-09 其它源码、模板 379 推广 java+mysql学生学籍后台管理系统OA源码 PS 本源码提供给大家学习研究借鉴美工之用,请勿用于商业和非法用途,无任何技术支持! 运行...

    新OA系统使用情况调查问卷结果分析报告

    - **时间**:2015年11月26日09:35至2015年11月28日23:59。 - **问卷设计**:包含10道必答选择题(其中9道单选、1道多选),以及4道选填题目供参与者提出具体意见和建议。 - **内容覆盖**:主要涉及界面美观度、易用...

    java开发oa办公系统源码-oa:使用react,react-router,redux开发的公司内部办公系统

    java开发oa办公系统源码 oa办公系统 前端使用webpack,react,ant desidn,react-redux开发, 后端同事提供,环境是tomcat7.x,开发语言java,目录结构: 资源文件:ROOT/resouces/.js | .css 页面:ROOT/WEB-INF/page...

Global site tag (gtag.js) - Google Analytics