基于SSM框架+mysql实现的监考安排管理系统[含源码+数据库+项目开发技术手册]
功能实现要求
学院教室监考安排管理系统 | |||||
---|---|---|---|---|---|
22461700014 xxx | 1. 考试栏目表(考试ID(主键),考试名称,学期,发起单位【某学院,教务处】,主考教师ID,副主考教师ID,创建时间,创建人ID(外键)) 2. 教师监考安排信息表(监考安排编号(主键),考试栏目ID(外键)课程学院,课程科目,考试班级,监考日期,监考时间,监考教室,教师1ID(外键),教师2ID(外键),考务办公室) 3. 用户信息表(工号(主键),密码,姓名,手机号码,用户类型【管理员,教师】,所在学院,所在系室) 4. 监考安排视图(以监考安排表为主表,连接考试栏目表,用户表的多表查询) | (1) 考试栏目信息实体类 (2) 监考安排信息实体类 (3) 用户信息实体类 (4) 监考安排视图实体类 | (1) 考试栏目信息DAO类(增,删,查,改) (2) 监考安排信息DAO类(增,删,查,改) (3) 用户信息DAO类(增,删,查,改) | (1) 考试栏目业务类:(添加考试栏目信息,修改考试栏目信息,删除考试栏目信息,根据栏目ID查询考试栏目,根据考试名称模糊查询考试栏目) (2) 监考安排业务类:(添加监考安排记录,修改监考安排记录,删除监考安排记录,根据教师工号和考试栏目名称查询某次考试栏目的教师的监考安排记录,根据教师名称和考试栏目名称查询某次考试栏目的教师的监考安排记录,查看某学期,某教师的所有监考安排记录,查看某学期,某教师的所有监考安排的总次数) (3) 用户信息业务类(用户注册,用户登录,修改用户信息,删除用户信息,查询用户信息) | (1) 主页:展示学校所有考试栏目信息,可按照考试栏目名称,学期,考务发起单位进行模糊查询,有菜单。 (2) 考试栏目详细信息页面:从 (1) 中点击考试栏目进入,展示考试栏目发起单位的详细信息。 (3) 考试栏目编辑页面:从 (1) 中菜单进入,实现添加修改考试栏目。 (4) 监考安排展示页面:从 (1) 点击考试栏目后的监考安排链接进入,展示该考试所有场次监考安排信息,可按照教师ID,教师姓名查询教师的监考信息。 (5) 监考安排编辑页面:从 (4) 中进入,实现添加修改监考安排信息。 (6) 教师学期监考安排查询页面:可查看教师某个学期所有监考安排西信息,并统计该教师的总次数。 (7) 用户注册页面:一个页面实现管理员的注册 (8) 用户登录页面 |
1. 考试栏目管理请求控制类 2. 监考安排管理请求控制类 3. 用户信息管理请求控制类 |
页面效果
部分代码实现
考试栏目Controller
package com.ruoyi.jiankao.controller;import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.jiankao.domain.JkExamSubject;
import com.ruoyi.jiankao.service.IJkExamSubjectService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;/*** 考试栏目Controller* * @author ruoyi* @date 2025-06-21*/
@Controller
@RequestMapping("/exam/subject")
public class JkExamSubjectController extends BaseController
{private String prefix = "exam/subject";@Autowiredprivate IJkExamSubjectService jkExamSubjectService;@RequiresPermissions("exam:subject:view")@GetMapping()public String subject(){return prefix + "/subject";}/*** 查询考试栏目列表*/@RequiresPermissions("exam:subject:list")@PostMapping("/list")@ResponseBodypublic TableDataInfo list(JkExamSubject jkExamSubject){startPage();List<JkExamSubject> list = jkExamSubjectService.selectJkExamSubjectList(jkExamSubject);return getDataTable(list);}/*** 导出考试栏目列表*/@RequiresPermissions("exam:subject:export")@Log(title = "考试栏目", businessType = BusinessType.EXPORT)@PostMapping("/export")@ResponseBodypublic AjaxResult export(JkExamSubject jkExamSubject){List<JkExamSubject> list = jkExamSubjectService.selectJkExamSubjectList(jkExamSubject);ExcelUtil<JkExamSubject> util = new ExcelUtil<JkExamSubject>(JkExamSubject.class);return util.exportExcel(list, "考试栏目数据");}/*** 新增考试栏目*/@RequiresPermissions("exam:subject:add")@GetMapping("/add")public String add(){return prefix + "/add";}/*** 新增保存考试栏目*/@RequiresPermissions("exam:subject:add")@Log(title = "考试栏目", businessType = BusinessType.INSERT)@PostMapping("/add")@ResponseBodypublic AjaxResult addSave(JkExamSubject jkExamSubject){return toAjax(jkExamSubjectService.insertJkExamSubject(jkExamSubject));}/*** 修改考试栏目*/@RequiresPermissions("exam:subject:edit")@GetMapping("/edit/{subjectId}")public String edit(@PathVariable("subjectId") Long subjectId, ModelMap mmap){JkExamSubject jkExamSubject = jkExamSubjectService.selectJkExamSubjectBySubjectId(subjectId);mmap.put("jkExamSubject", jkExamSubject);return prefix + "/edit";}/*** 修改保存考试栏目*/@RequiresPermissions("exam:subject:edit")@Log(title = "考试栏目", businessType = BusinessType.UPDATE)@PostMapping("/edit")@ResponseBodypublic AjaxResult editSave(JkExamSubject jkExamSubject){return toAjax(jkExamSubjectService.updateJkExamSubject(jkExamSubject));}/*** 删除考试栏目*/@RequiresPermissions("exam:subject:remove")@Log(title = "考试栏目", businessType = BusinessType.DELETE)@PostMapping( "/remove")@ResponseBodypublic AjaxResult remove(String ids){return toAjax(jkExamSubjectService.deleteJkExamSubjectBySubjectIds(ids));}
}
监考安排信息Controller
package com.ruoyi.jiankao.controller;import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.jiankao.domain.JkInvigilateArrangement;
import com.ruoyi.jiankao.service.IJkInvigilateArrangementService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;/*** 教师监考安排信息Controller* * @author ruoyi* @date 2025-06-21*/
@Controller
@RequestMapping("/invigilate/arrangement")
public class JkInvigilateArrangementController extends BaseController
{private String prefix = "invigilate/arrangement";@Autowiredprivate IJkInvigilateArrangementService jkInvigilateArrangementService;@RequiresPermissions("invigilate:arrangement:view")@GetMapping()public String arrangement(){return prefix + "/arrangement";}/*** 查询教师监考安排信息列表*/@RequiresPermissions("invigilate:arrangement:list")@PostMapping("/list")@ResponseBodypublic TableDataInfo list(JkInvigilateArrangement jkInvigilateArrangement){startPage();List<JkInvigilateArrangement> list = jkInvigilateArrangementService.selectJkInvigilateArrangementList(jkInvigilateArrangement);return getDataTable(list);}@PostMapping("/queryList")@ResponseBodypublic Object queryList(@RequestBody JkInvigilateArrangement jkInvigilateArrangement){return jkInvigilateArrangementService.selectJkInvigilateArrangementList(jkInvigilateArrangement);}/*** 导出教师监考安排信息列表*/@RequiresPermissions("invigilate:arrangement:export")@Log(title = "教师监考安排信息", businessType = BusinessType.EXPORT)@PostMapping("/export")@ResponseBodypublic AjaxResult export(JkInvigilateArrangement jkInvigilateArrangement){List<JkInvigilateArrangement> list = jkInvigilateArrangementService.selectJkInvigilateArrangementList(jkInvigilateArrangement);ExcelUtil<JkInvigilateArrangement> util = new ExcelUtil<JkInvigilateArrangement>(JkInvigilateArrangement.class);return util.exportExcel(list, "教师监考安排信息数据");}/*** 新增教师监考安排信息*/@RequiresPermissions("invigilate:arrangement:add")@GetMapping("/add")public String add(){return prefix + "/add";}/*** 新增保存教师监考安排信息*/@RequiresPermissions("invigilate:arrangement:add")@Log(title = "教师监考安排信息", businessType = BusinessType.INSERT)@PostMapping("/add")@ResponseBodypublic AjaxResult addSave(JkInvigilateArrangement jkInvigilateArrangement){return toAjax(jkInvigilateArrangementService.insertJkInvigilateArrangement(jkInvigilateArrangement));}/*** 修改教师监考安排信息*/@RequiresPermissions("invigilate:arrangement:edit")@GetMapping("/edit/{arrangementId}")public String edit(@PathVariable("arrangementId") Long arrangementId, ModelMap mmap){JkInvigilateArrangement jkInvigilateArrangement = jkInvigilateArrangementService.selectJkInvigilateArrangementByArrangementId(arrangementId);mmap.put("jkInvigilateArrangement", jkInvigilateArrangement);return prefix + "/edit";}/*** 修改保存教师监考安排信息*/@RequiresPermissions("invigilate:arrangement:edit")@Log(title = "教师监考安排信息", businessType = BusinessType.UPDATE)@PostMapping("/edit")@ResponseBodypublic AjaxResult editSave(JkInvigilateArrangement jkInvigilateArrangement){return toAjax(jkInvigilateArrangementService.updateJkInvigilateArrangement(jkInvigilateArrangement));}/*** 删除教师监考安排信息*/@RequiresPermissions("invigilate:arrangement:remove")@Log(title = "教师监考安排信息", businessType = BusinessType.DELETE)@PostMapping( "/remove")@ResponseBodypublic AjaxResult remove(String ids){return toAjax(jkInvigilateArrangementService.deleteJkInvigilateArrangementByArrangementIds(ids));}
}
开发技术手册
源码获取
欢迎大家点赞、收藏、关注、评论啦 ,可以直接下载https://download.csdn.net/download/weixin_43860634/91149992
,也可以查看👇🏻获取联系方式👇🏻