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

摘要

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

实现的功能

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

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

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

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

使用的技术

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

前端:layUI框架、HTML页面。

部分后端代码展示

public class SubjectController {

    @Autowired
    SubjectService subjectService;

    @Autowired
    GradeService gradeService;

    @Autowired
    TeacherService teacherService;

    @GetMapping("/index.html")
    public String toSubjectPage() {
        return "/education/subject/index.html";
    }

    /**
     * 添加课程页面
     * */
    @GetMapping("/add.html")
    public String toSubjectAddPage(Model model, @RequestParam(value = "subjectId", defaultValue = "0") Integer subjectId) {

        Subject subject = new Subject();
        if (subjectId != 0) {
            subject = subjectService.getSubjectById(subjectId);
        }
        List<Grade> gradeList = getGradeList();
        List<Teacher> teacherList = getTeacherList();

        Map weeks = ConstantUtils.initWeeks();
        Map days = ConstantUtils.initDays();
        Map parts = ConstantUtils.initParts();

        model.addAttribute("gradeList",gradeList);
        model.addAttribute("teacherList",teacherList);

        model.addAttribute("subject",subject);
        model.addAttribute("weeks",weeks);
        model.addAttribute("days",days);
        model.addAttribute("parts",parts);

        return "/education/subject/add.html";
    }



    private List<Grade> getGradeList() {
        return gradeService.getGradeList();
    }

    private List<Teacher> getTeacherList() {
        return teacherService.getTeacherList();
    }
    /**
     * 添加课程
     * */
    @PostMapping
    @ResponseBody
    public ResultVO addSubject(Subject subject) {

        subjectService.save(subject);
        return ResultVO.SUCCESS();
    }

    /**
     * 获取所有班级
     * */
    @GetMapping
    @ResponseBody
    public ResultVO getSubjectList(@RequestParam(value = "page", defaultValue = "1") Integer page,
                                 @RequestParam(value = "limit", defaultValue = "10") Integer limit) {
        page -= 1;
        long total = subjectService.count();
        List<Subject> subjectList = subjectService.getGradeList(page,limit);
        log.info("total {},page {},limit {}",total,page,limit);
        HashMap<String,Object> data = new HashMap<>();
        data.put("total",total);
        data.put("subjectList",subjectList);

        return ResultVO.SUCCESS(0,data);
    }

    @PostMapping("/delete")
    @ResponseBody
    public ResultVO deleteSubject(Subject subject) {
        subjectService.delete(subject);
        return ResultVO.SUCCESS(200);
    }
}

部分前端代码展示

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>添加课程</title>
    <link rel="stylesheet" href="/layui/css/layui.css" media="all">
</head>
<body>
<div style="margin: 50px 50px 50px 50px;">

    <form class="layui-form" action="">
        <div class="layui-form-item" th:if="${subject.getId() == 0}">
            <label class="layui-form-label">
                <a href="http://localhost:8080/education/subject/index.html" class="layui-btn layui-btn-normal">返回</a>
            </label>
        </div>
        <div class="layui-form-item" th:if="${subject.getId() != 0}">
            <input type="hidden" name="id" th:value="${subject.getId()}">
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">课程名</label>
            <div class="layui-input-block">
                <input type="text" name="name" th:value="${subject.getName()}" required  lay-verify="required" placeholder="请输入课程名称" autocomplete="off" class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">班级</label>
            <div class="layui-input-block">
                <select name="gradeId" lay-verify="required">
                    <option value=""></option>
                    <option th:each="grade:${gradeList}" th:value="${grade.getId()}" th:text="${grade.getName()}" th:selected="${grade.getId() == subject.getGradeId()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">老师</label>
            <div class="layui-input-block">
                <select name="teacherId" lay-verify="required">
                    <option value=""></option>
                    <option th:each="teacher:${teacherList}" th:value="${teacher.getId()}" th:text="${teacher.getUsername()}" th:selected="${teacher.getId() == subject.getTeacherId()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">起始周</label>
            <div class="layui-input-block">
                <select name="startWeek" lay-verify="required">
                    <option value=""></option>
                    <option th:each="start:${weeks}" th:value="${start.key}" th:text="${start.value}" th:selected="${start.key == subject.getStartWeek()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">结束周</label>
            <div class="layui-input-block">
                <select name="endWeek" lay-verify="required">
                    <option value=""></option>
                    <option th:each="end:${weeks}" th:value="${end.key}" th:text="${end.value}" th:selected="${end.key == subject.getEndWeek()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">周几</label>
            <div class="layui-input-block">
                <select name="day" lay-verify="required">
                    <option value=""></option>
                    <option th:each="day:${days}" th:value="${day.key}" th:text="${day.value}" th:selected="${day.key == subject.getDay()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">节次</label>
            <div class="layui-input-block">
                <select name="part" lay-verify="required">
                    <option value=""></option>
                    <option th:each="part:${parts}" th:value="${part.key}" th:text="${part.value}" th:selected="${part.key == subject.getPart()}"></option>
                </select>
            </div>
        </div>

        <div class="layui-form-item">
            <div class="layui-input-block">
                <button class="layui-btn" type="button" lay-submit lay-filter="formSubmit">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary" th:if="${subject.getId() == 0}">重置</button>
            </div>
        </div>
    </form>
</div>

</body>
<script src="/layui/layui.js"></script>
<script src="/js/jquery.min.js"></script>
<script src="/js/education/subject/add.js"></script>
</html>

演示视频

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值