——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SSM+Maven学生考勤管理系统(java+ssm+poi导出+easyui+jfreechart+maven+mysql+jsp)
这个项目适合SSM框架的初学者(涉及大量增删改查,很适合初学者)以及对Shiro安全框架和Poi技术感兴趣的同学。
项目功能:
用户管理功能(登录、退出登录、增加用户、编辑用户、删除用户、多条件查询用户、上传用户头像、修改个人密码);角色管理功能(添加角色、编辑角色、删除角色、查询角色);权限管理功能(添加权限、编辑权限、删除权限、多条件查询权限);缺勤管理功能(添加缺勤、编辑缺勤、删除缺勤、多条件查询缺勤、导出Excel、柱形图显示缺勤情况)。
应用技术:Jsp + SSM + Shiro + Poi(Excel表格) + JFreeChart(柱形图) + Easyui
运行环境:eclipse/IDEA + MySQL5.7 + Maven3.6.3 + JDK1.8 + Tomcat8.5
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| queryMap.put("roleId", roleId); queryMap.put("username", username); queryMap.put("userNo", userNo); queryMap.put("offset", page.getOffset()); queryMap.put("pageSize", page.getRows()); ret.put("rows", userService.findAllUsers(queryMap)); ret.put("total", userService.getAllTotals(queryMap)); return ret; }
@RequestMapping(value="/add",method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> add(User user){ log.info("接收添加用户时的User信息:{}",user); return userService.add(user); }
@RequestMapping(value="/edit",method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> edit(User user){ log.info("接收编辑用户时的User信息:{}",user); return userService.edit(user); }
@RequestMapping(value="/delete",method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> delete(String ids){ return userService.delete(ids); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| try { ImageIO.write(captchaUtil.generatorRotateVCodeImage(generatorVCode, true), "gif", response.getOutputStream()); } catch (IOException e) { e.printStackTrace(); } }
} package com.yjq.programmer.service;
@Service public interface UserService {
public User findUserByUserNo(String userNo);
public User findUserById(Long id);
public List<User> findAllUsers(Map<String, Object> queryMap);
public int getAllTotals(Map<String, Object> queryMap);
public int addUser(User user);
public int deleteUser(String ids);
public int editUser(User user);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| */
@Controller @RequestMapping("/system") public class SystemController {
private Logger log = LoggerFactory.getLogger(SystemController.class);
@Autowired private ResourceLoader resourceLoader;
@RequestMapping(value="/index",method = RequestMethod.GET) public ModelAndView index(ModelAndView model){ model.setViewName("system/index"); return model; }
@RequestMapping(value="/not_permit",method = RequestMethod.GET) public ModelAndView notPermit(ModelAndView model){ model.setViewName("system/not_permit"); return model; }
@RequestMapping(value="/welcome",method = RequestMethod.GET) public ModelAndView welcome(ModelAndView model){ model.setViewName("system/welcome"); return model;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @RequestMapping(value = "/finish", method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> finishAttendance(Attendance attendance){ return attendanceService.finishAttendance(attendance); }
@RequestMapping(value = "/export_absence", method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> exportAbsence(Attendance attendance){ return attendanceService.exportAbsence(attendance); } } package com.yjq.programmer.controller;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
@RequestMapping(value="/logout",method = RequestMethod.GET) public ModelAndView logout(ModelAndView model){ Subject subject = SecurityUtils.getSubject(); User user = (User) subject.getPrincipal(); if(user != null ){ log.info("当前退出的用户的学号/学工号={}",user.getUserNo()); } SecurityUtils.getSubject().logout(); model.setViewName("user/login"); return model; }
@RequestMapping(value="/login",method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> login(User user, String captcha, HttpServletRequest request){ return userService.login(user,captcha,request); }
@RequestMapping(value="/list",method = RequestMethod.POST) @ResponseBody public Map<String,Object> list(Long roleId, String username, String userNo, Page page){ Map<String, Object> ret = new HashMap<String, Object>(); Map<String, Object> queryMap = new HashMap<>(); queryMap.put("roleId", roleId); queryMap.put("username", username); queryMap.put("userNo", userNo); queryMap.put("offset", page.getOffset());
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| @ResponseBody public ResponseVo<Boolean> delete(String ids){ return userService.delete(ids); }
@RequestMapping(value="/modify_passwd",method = RequestMethod.POST) @ResponseBody public ResponseVo<Boolean> modifyPasswd(String prePasswd, String newPasswd, String rePasswd){ return userService.modifyPasswd(prePasswd, newPasswd, rePasswd); }
} package com.yjq.programmer.controller;
@Controller @RequestMapping("/attendance")
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=311422282105200dd
https://javayms.pages.dev?id=311422282105200dd