• 基于ssm的OA办公管理系统


    一、系统简介


    本项目采用eclipse工具开发,spring+springmvc+mybatis+bootstrap技术编写,数据库采用的是mysql,navicat管理工具。

    系统一共分为5个角色分别是:管理员,用户(员工,财务,部门经理,老板)

    二、模块简介

    管理员

    1、登录

    2、用户管理

    3、个人信息管理

    4、员工考勤管理

    5、员工督办管理

    6、员工工资管理

    7、会议管理

    8、员工请假管理

    9、统计管理

    用户(员工)

    1、登录

    2、个人信息管理

    3、查看考勤

    4、查看督办信息

    5、查看工资

    6、查看会议

    7、请假管理

    8、查看统计

    用户(部门经理)

    1、登录

    2、个人信息管理

    3、查看考勤

    4、查看督办

    5、查看工资

    6、会议管理

    7、请假管理

    8、统计

    用户(财务)

    1、登录

    2、个人信息管理

    3、查看考勤

    4、查看督办

    5、工资管理,发放

    6、查看会议,会议审核

    7、请假管理,请假审核

    8、统计

    用户(老板)

    1、登录

    2、个人信息管理

    3、查看考勤

    4、查看督办

    5、工资审核

    6、会议审核

    7、请假审核

    8、统计

    项目简介:
    难度等级:✩✩✩
    用户类型:5角色( 管理员,用户(员工,财务,部门经理,老板))
    设计模式:MVC
    项目架构:B/S架构
    开发语言:Java语言
    前端技术:bootstrap+HTML、CSS、JS、JQuery等
    后端技术:JSP、ssm框架
    运行环境:Windows7或10、JDK1.8
    运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!!)
    数  据  库:MySQL5.5/5.7/8.0版本
    运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
    是否基于Maven环境:否
    是否采用框架:是
    数据库表数量:9张表
    JSP页面数量:20多张
    是否有分页:有分页

    相关截图

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    相关代码 

     登录

    1. <%@ page language="java" contentType="text/html; charset=utf-8"
    2. pageEncoding="utf-8"%>
    3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    4. <%
    5. String path = request.getContextPath();
    6. String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    7. %>
    8. html>
    9. <html lang="en">
    10. <head>
    11. <meta charset="UTF-8">
    12. <meta name="viewport"
    13. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    14. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    15. <title>登录title>
    16. <link rel="icon" href="<%=path%>/resource/static/favicon.ico">
    17. <link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css">
    18. <link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css">
    19. <script src="<%=path%>/resource/static/js/vue.min.js">script>
    20. <script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js">script>
    21. <script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js">script>
    22. head>
    23. <body>
    24. <div class="login">
    25. <form id="saveForm">
    26. <h2>OA管理系统登录h2>
    27. <div class="form-group">
    28. <label>用户名label>
    29. <input type="text" v-model="username" name="username" id="username" class="form-control form-control-lg">
    30. div>
    31. <div class="form-group">
    32. <label>密码label>
    33. <input type="password" v-model="password" name ="password" id="password" class="form-control form-control-lg" id="pwd">
    34. div>
    35. <div class="form-group form-check">
    36. <input type="radio" class="form-check-input" name="type" value="1" id="exampleCheck2" checked>
    37. <label class="form-check-label" for="exampleCheck2">管理员label>        
    38. <input type="radio" class="form-check-input" name="type" value="2" id="exampleCheck1" >
    39. <label class="form-check-label" for="exampleCheck1">普通用户label>
    40. div>
    41. <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg btn-block">
    42. <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true">span>
    43. 立即登录
    44. button>
    45. form>
    46. div>
    47. <script>
    48. $("#login").click(function(){
    49. var username = $("#username").val();
    50. var password = $("#password").val();
    51. if(username == null || username == ""){
    52. alert("请填写用户名");
    53. return false;
    54. }if(password == null || password == ""){
    55. alert("请填写密码");
    56. return false;
    57. }
    58. //执行添加的操作ajax
    59. $.ajax({
    60. cache:true,
    61. type:"post",
    62. url:"login",
    63. data:$("#saveForm").serialize(),
    64. async:false,
    65. success:function(e){
    66. if(e){
    67. alert("登录成功");
    68. window.parent.location.href="toMain";
    69. }else{
    70. alert("登录失败,账号或密码错误");
    71. }
    72. }
    73. })
    74. });
    75. script>
    76. body>
    77. html>
    1. /**
    2. * 登录
    3. * @param username
    4. * @param request
    5. * @param password
    6. * @param session
    7. * @param response
    8. * @param mv
    9. * @return
    10. * @throws ServletException
    11. * @throws IOException
    12. */
    13. @RequestMapping("/login")
    14. @ResponseBody
    15. public boolean login(@RequestParam("username")String username,
    16. HttpServletRequest request,@RequestParam("password")String password,
    17. HttpSession session,HttpServletResponse response,ModelAndView mv) throws ServletException, IOException {
    18. session.removeAttribute("admin");
    19. session.removeAttribute("user");
    20. String type=request.getParameter("type").toString();
    21. User user =new User();
    22. Admin admin = new Admin();
    23. request.getSession().setAttribute("type", type);
    24. boolean re = false;
    25. if(type != null && type.equals("1")){
    26. admin.setUsername(username);
    27. admin.setPassword(password);
    28. Admin admin1 = us.selectAdmin(admin);
    29. if(admin1 != null){
    30. request.getSession().setAttribute("admin", admin1);
    31. session.setAttribute("admin", admin1);
    32. re = true;
    33. }
    34. }else if(type != null && type.equals("2")){
    35. user.setUsername(username);
    36. user.setPassword(password);
    37. User te = us.selectUser(user);
    38. if(te != null){
    39. request.getSession().setAttribute("user", te);
    40. session.setAttribute("user", te);
    41. re = true;
    42. }
    43. }
    44. return re;
    45. }

    其他相关代码都是类似的,主要是前端jsp和后端控制器交互比较重要!!!用户之前关系,模块之间的审核操作重中之重!!!!!非开源!!!!!!
    其他模块代码都是类似的,此项目适合初学者学习借鉴,项目整体比较简单,可用作于期末考核,课设,毕设等方面的作业!!!!!
    喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!不明白的可以私我!!!!!
    感谢  = v =

     

  • 相关阅读:
    off-by-one+overlapped chunk
    二:对表进行基本CRUD操作
    用anacnda创建虚拟环境用不用指定python版本
    [Error]Swift开发调试时使用LLDB的po和print命令无法输出变量
    Reactive的使用(reactive 和 shallowReactive使用上区别)
    Golang基础 函数详解 函数基础
    2023-11-22 LeetCode每日一题(网格中的最小路径代价)
    【andriod】设备APP开发之前端实战操作代码
    Maven基础篇7
    大语言模型-Transformer
  • 原文地址:https://blog.csdn.net/qq_43485489/article/details/126158288