• 基于java SpringBoot和HTML实验室预约管理系统设计


    摘要

            实验室信息管理系统是利用计算机网络技术、数据存储技术、快速数据处理技术对实验室进行全方位管理的计算机软件系统。实验室信息管理系统从最初仅完成数据存储和有限的网络功能,发展到现在可以处理海量数据,具备完善的管理职能,并且能够运行于Internet之上,极大地提高了实验室的运行效率,节约了实验室的运营成本。针对教学型实验室以设备管理和实验教学为主要需求的特点,设计了融入预警机制的实验室信息管理系统,使实验室管理人员和实验室的主管部门更方便了解实验室的运行状况,提高管理水平。

    实现的功能

    管理员、教师、学生三种角色;

    管理员:用户管理(学生管理、教师管理)、实验室管理、教务管理(班级管理、课程管理)、预约(个人预约、教师预约、预约列表、审核列表);

    学生:实验室列表、预约(我的预约、个人预约);

    教师:班级管理、实验室列表、预约(教师预约、我的预约)。

    使用的技术

    后端:JAVA开发语言,SpringBoot框架,MySql数据库,Maven;

    前端:layUI框架、HTML页面。

    部分后端代码展示

    1. public class SubjectController {
    2. @Autowired
    3. SubjectService subjectService;
    4. @Autowired
    5. GradeService gradeService;
    6. @Autowired
    7. TeacherService teacherService;
    8. @GetMapping("/index.html")
    9. public String toSubjectPage() {
    10. return "/education/subject/index.html";
    11. }
    12. /**
    13. * 添加课程页面
    14. * */
    15. @GetMapping("/add.html")
    16. public String toSubjectAddPage(Model model, @RequestParam(value = "subjectId", defaultValue = "0") Integer subjectId) {
    17. Subject subject = new Subject();
    18. if (subjectId != 0) {
    19. subject = subjectService.getSubjectById(subjectId);
    20. }
    21. List gradeList = getGradeList();
    22. List teacherList = getTeacherList();
    23. Map weeks = ConstantUtils.initWeeks();
    24. Map days = ConstantUtils.initDays();
    25. Map parts = ConstantUtils.initParts();
    26. model.addAttribute("gradeList",gradeList);
    27. model.addAttribute("teacherList",teacherList);
    28. model.addAttribute("subject",subject);
    29. model.addAttribute("weeks",weeks);
    30. model.addAttribute("days",days);
    31. model.addAttribute("parts",parts);
    32. return "/education/subject/add.html";
    33. }
    34. private List getGradeList() {
    35. return gradeService.getGradeList();
    36. }
    37. private List getTeacherList() {
    38. return teacherService.getTeacherList();
    39. }
    40. /**
    41. * 添加课程
    42. * */
    43. @PostMapping
    44. @ResponseBody
    45. public ResultVO addSubject(Subject subject) {
    46. subjectService.save(subject);
    47. return ResultVO.SUCCESS();
    48. }
    49. /**
    50. * 获取所有班级
    51. * */
    52. @GetMapping
    53. @ResponseBody
    54. public ResultVO getSubjectList(@RequestParam(value = "page", defaultValue = "1") Integer page,
    55. @RequestParam(value = "limit", defaultValue = "10") Integer limit) {
    56. page -= 1;
    57. long total = subjectService.count();
    58. List subjectList = subjectService.getGradeList(page,limit);
    59. log.info("total {},page {},limit {}",total,page,limit);
    60. HashMap data = new HashMap<>();
    61. data.put("total",total);
    62. data.put("subjectList",subjectList);
    63. return ResultVO.SUCCESS(0,data);
    64. }
    65. @PostMapping("/delete")
    66. @ResponseBody
    67. public ResultVO deleteSubject(Subject subject) {
    68. subjectService.delete(subject);
    69. return ResultVO.SUCCESS(200);
    70. }
    71. }

    部分前端代码展示

    1. html>
    2. <html xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>添加课程title>
    6. <link rel="stylesheet" href="/layui/css/layui.css" media="all">
    7. head>
    8. <body>
    9. <div style="margin: 50px 50px 50px 50px;">
    10. <form class="layui-form" action="">
    11. <div class="layui-form-item" th:if="${subject.getId() == 0}">
    12. <label class="layui-form-label">
    13. <a href="http://localhost:8080/education/subject/index.html" class="layui-btn layui-btn-normal">返回a>
    14. label>
    15. div>
    16. <div class="layui-form-item" th:if="${subject.getId() != 0}">
    17. <input type="hidden" name="id" th:value="${subject.getId()}">
    18. div>
    19. <div class="layui-form-item">
    20. <label class="layui-form-label">课程名label>
    21. <div class="layui-input-block">
    22. <input type="text" name="name" th:value="${subject.getName()}" required lay-verify="required" placeholder="请输入课程名称" autocomplete="off" class="layui-input">
    23. div>
    24. div>
    25. <div class="layui-form-item">
    26. <label class="layui-form-label">班级label>
    27. <div class="layui-input-block">
    28. <select name="gradeId" lay-verify="required">
    29. <option value="">option>
    30. <option th:each="grade:${gradeList}" th:value="${grade.getId()}" th:text="${grade.getName()}" th:selected="${grade.getId() == subject.getGradeId()}">option>
    31. select>
    32. div>
    33. div>
    34. <div class="layui-form-item">
    35. <label class="layui-form-label">老师label>
    36. <div class="layui-input-block">
    37. <select name="teacherId" lay-verify="required">
    38. <option value="">option>
    39. <option th:each="teacher:${teacherList}" th:value="${teacher.getId()}" th:text="${teacher.getUsername()}" th:selected="${teacher.getId() == subject.getTeacherId()}">option>
    40. select>
    41. div>
    42. div>
    43. <div class="layui-form-item">
    44. <label class="layui-form-label">起始周label>
    45. <div class="layui-input-block">
    46. <select name="startWeek" lay-verify="required">
    47. <option value="">option>
    48. <option th:each="start:${weeks}" th:value="${start.key}" th:text="${start.value}" th:selected="${start.key == subject.getStartWeek()}">option>
    49. select>
    50. div>
    51. div>
    52. <div class="layui-form-item">
    53. <label class="layui-form-label">结束周label>
    54. <div class="layui-input-block">
    55. <select name="endWeek" lay-verify="required">
    56. <option value="">option>
    57. <option th:each="end:${weeks}" th:value="${end.key}" th:text="${end.value}" th:selected="${end.key == subject.getEndWeek()}">option>
    58. select>
    59. div>
    60. div>
    61. <div class="layui-form-item">
    62. <label class="layui-form-label">周几label>
    63. <div class="layui-input-block">
    64. <select name="day" lay-verify="required">
    65. <option value="">option>
    66. <option th:each="day:${days}" th:value="${day.key}" th:text="${day.value}" th:selected="${day.key == subject.getDay()}">option>
    67. select>
    68. div>
    69. div>
    70. <div class="layui-form-item">
    71. <label class="layui-form-label">节次label>
    72. <div class="layui-input-block">
    73. <select name="part" lay-verify="required">
    74. <option value="">option>
    75. <option th:each="part:${parts}" th:value="${part.key}" th:text="${part.value}" th:selected="${part.key == subject.getPart()}">option>
    76. select>
    77. div>
    78. div>
    79. <div class="layui-form-item">
    80. <div class="layui-input-block">
    81. <button class="layui-btn" type="button" lay-submit lay-filter="formSubmit">立即提交button>
    82. <button type="reset" class="layui-btn layui-btn-primary" th:if="${subject.getId() == 0}">重置button>
    83. div>
    84. div>
    85. form>
    86. div>
    87. body>
    88. <script src="/layui/layui.js">script>
    89. <script src="/js/jquery.min.js">script>
    90. <script src="/js/education/subject/add.js">script>
    91. html>

    演示视频

    基于JAVA SpringBoot实验室预约管理系统设计

  • 相关阅读:
    投稿经验分享之三:SCI投稿之JEI录用
    JAVA在线家教预约系统计算机毕业设计Mybatis+系统+数据库+调试部署
    0826(040天 集合框架05 亿点总结)
    抓包整理外篇fiddler———— 会话栏与过滤器[二]
    spring boot单元测试
    Java学习笔记3.4.3 static关键字 - 静态代码块
    java计算机毕业设计网络教育学习平台源程序+mysql+系统+lw文档+远程调试
    想要防止视频被盗?用它给视频加水印
    设计模式系列详解 -- 建造者模式
    v-for的用法及key值原理
  • 原文地址:https://blog.csdn.net/qq_28245905/article/details/133014137