基于javaweb+mysql的springboot学生考勤系统(java+springboot+vue+mybatis+maven+mysql)
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot学生考勤系统(java+springboot+vue+mybatis+maven+mysql)
一、项目运行 环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
}
package com.demo.controller;
@CrossOrigin
@RestController
@RequestMapping("/notice")
public class NoticeController {
@Autowired
private NoticeService noticeService;
/**
* 发送公告
* @param notice
* @return
*/
@PostMapping("/sendNotice")
public String sendLeave(@RequestBody Notice notice) {
return noticeService.sendNotice(notice);
}
/**
* 显示最新公告
* @return
*/
@GetMapping("/showNotice")
return "success";
} else {
return "empty";
}
}
/**
* 删除用户信息
*
* @param username
*/
@DeleteMapping("deleteData/{username}")
public void deleteData(@PathVariable("username") String username) {
dataService.deleteData(username);
}
/**
* 删除所有用户信息
*
* @param
*/
@DeleteMapping("deleteData")
public void deleteData() {
dataService.deleteData();
}
/**
* 删除用户信息
*
* @param
*/
@DeleteMapping("deleteDataByChoice/{choice}")
public void deleteDataByChoice(@PathVariable("choice") String choice) {
dataService.deleteDataByChoice(choice);
}
/**
* 批量上传excel文件导入用户信息
* @param multipartFile
* @param request
* @return
* @throws IOException
*/
@ResponseBody
}else {
//用户或选择用户错误
return "userError";
}
}else{
//用户不存在
return "empty";
}
}
/**
* 按用户名查找单个账号信息
* @param username
* @return
*/
@GetMapping("/findAllByUsername/{username}")
public User findAllByUsername(@PathVariable("username") String username) {
return userService.findAllByUsername(username);
}
/**
* 分页查询所有账号信息
* @param currentPage
* @param pageSize
* @return
*/
@GetMapping("findAll/{currentPage}/{pageSize}")
public Map<String,Object> findAll(@PathVariable("currentPage") Integer currentPage, @PathVariable("pageSize") Integer pageSize){
PageHelper.startPage(currentPage, pageSize);
Map<String,Object> returnMap=new HashMap<String,Object>();
List<User> list=null;
returnMap.put("content", list);
list= userService.findAll();
returnMap.put("content", list);
return returnMap;
}
/**
* 按用户类型查询账号所有信息
* @param currentPage
* @param pageSize
* @param choice
* @return
*/
@GetMapping("findAllByChoice/{currentPage}/{pageSize}/{choice}")
public Map<String,Object> findAllByChoice(@PathVariable("currentPage") Integer currentPage, @PathVariable("pageSize") Integer pageSize
, @PathVariable("choice") String choice){
PageHelper.startPage(currentPage, pageSize);
Map<String,Object> returnMap=new HashMap<String,Object>();
/* 将验证码注入数据库 */
userService.updateCode(username, verifyCode);
/* 验证码在指定时间内失效 */
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
String RandomCode = RandomUtil.getCode();
userService.updateCode(username, RandomCode);
}
},300000);//300000ms(300s)即5分钟
return "success";
}catch(Exception e){
return "error";
}
}else{
//邮箱地址错误
return "addressError";
}
}else {
//用户或选择用户错误
return "userError";
}
}else{
//用户不存在
return "empty";
}
}
/**
* 按用户名查找单个账号信息
* @param username
* @return
*/
@GetMapping("/findAllByUsername/{username}")
public User findAllByUsername(@PathVariable("username") String username) {
return userService.findAllByUsername(username);
}
/**
* 分页查询所有账号信息
* @param currentPage
* @param pageSize
* @return
*/
@GetMapping("findAll/{currentPage}/{pageSize}")
public Map<String,Object> findAll(@PathVariable("currentPage") Integer currentPage, @PathVariable("pageSize") Integer pageSize){
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<User> list = null;
returnMap.put("content", list);
list = userService.FuzzyQueryByChioce(realname, choice);
returnMap.put("content", list);
return returnMap;
}
}
package com.demo.controller;
@CrossOrigin
@RestController
@RequestMapping("/leave")
public class LeaveController {
@Autowired
private LeaveService leaveService;
*/
@GetMapping("/ShowLeave/{currentPage}/{pageSize}/{username}/{state}")
public Map<String, Object> ShowLeave(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("username") String username,
@PathVariable("state") String state){
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Leave> list = null;
List<Leave> pagelist = null;
returnMap.put("content", list);
list = leaveService.showLeave(username, state);
pagelist = leaveService.startPage(list, currentPage, pageSize);
returnMap.put("content", pagelist);
return returnMap;
}
/**
* 删除申请表
* @param id
*/
@DeleteMapping("deleteLeave/{id}")
public void deleteData(@PathVariable("id") Integer id) {
leaveService.deleteLeave(id);
}
/**
* 查找辅导员管理的班级
* @param checkname
* @return
*/
@GetMapping("/findClass/{checkname}")
public List<String> findClass(@PathVariable("checkname") String checkname) {
List<Audit> audit = leaveService.FindClass(checkname);
List<String> list = new ArrayList<String>();
for(int i = 0 ; i < audit.size(); i++) {
String classes = audit.get(i).getClasses();
list.add(classes);
}
return list;
}
/**
* 删除辅导员管理的班级
* @param classes
*/
@DeleteMapping("delClass/{classes}")
public void delClass(@PathVariable("classes") String classes) {
leaveService.delClass(classes);
}
/**
* 添加辅导员要管理的班级
@PathVariable("classes") String classes,
@PathVariable("username") String username
){
Map<String,Object> returnMap = new HashMap<String,Object>();
Data data = dataService.findAllByUsername(username);
List<Attend> attend = attendService.findAll();
int[] arr = {0};
if(data !=null || attend.isEmpty() == false) {
String choice =data.getChoice();
String dept = data.getDept();
if(choice.equals("院领导")) {
for(int i = 0; i<attend.size();i++) {
String checkdept = attend.get(i).getDept();
String checkclasses = attend.get(i).getClasses();
if(checkdept.equals(dept)&&checkclasses.equals(classes)) {
arr[0] = 1;
}
}
if(arr[0] == 1) {
PageHelper.startPage(currentPage, pageSize);
List<Attend> list=null;
returnMap.put("content", list);
list = attendService.findByClass(classes);
returnMap.put("content", list);
return returnMap;
}else {
return returnMap;
}
}
PageHelper.startPage(currentPage, pageSize);
List<Attend> list=null;
returnMap.put("content", list);
list = attendService.findByClass(classes);
returnMap.put("content", list);
return returnMap;
}
return returnMap;
}
/**
* 将考勤信息单独传给后端做个人考勤信息柱状图
* @param username
* @return
*/
@GetMapping("showChatrStudent/{username}")
public Integer[] showChatrStudent(@PathVariable("username") String username){
return attendService.showChartStudent(username);
}
/**
* 将考勤信息单独传给后端做考勤信息饼图图
* @param classes
* 查询需要审核的请假表
* @param currentPage
* @param pageSize
* @param username
* @return
*/
@GetMapping("/showExamLeave/{currentPage}/{pageSize}/{username}")
public Map<String, Object> showExamLeave(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("username") String username) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Leave> list = leaveService.showExamLeave(username);
if(list == null) {
return returnMap;
}else {
returnMap.put("content", list);
return returnMap;
}
}
/**
* 审核请假表
* @param username
* @param leave
* @return
*/
@PostMapping("/examLeave/{username}")
public String examLeave(@PathVariable("username") String username,@RequestBody Leave leave) {
String StuUsername = leave.getUsername();
Leave ownleave = leaveService.ShowOwnLeave(StuUsername);
Integer oldId = ownleave.getId();
Integer id = leave.getId();
if(oldId == id) {
return leaveService.examLeave(leave, username);
}else {
return "repeat";
}
}
}
package com.demo.controller;
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
try {
EasyExcel.read(file.getInputStream(), Data.class, new DataListener(dataService)).sheet().doRead();
}catch (Exception e){
e.printStackTrace();
}
return "success";
}
}
package com.demo.controller;
@CrossOrigin
@RestController
@RequestMapping("/user")
public class AccountController {
@Autowired
private UserService userService;
@Autowired
private DataService dataService;
/**
* 注册
* @param user
* @return
*/
@PostMapping("/register")
public String register(@RequestBody User user) {
String username = user.getUsername();
* @return
*/
@GetMapping("/showExamLeave/{currentPage}/{pageSize}/{username}")
public Map<String, Object> showExamLeave(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("username") String username) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Leave> list = leaveService.showExamLeave(username);
if(list == null) {
return returnMap;
}else {
returnMap.put("content", list);
return returnMap;
}
}
/**
* 审核请假表
* @param username
* @param leave
* @return
*/
@PostMapping("/examLeave/{username}")
public String examLeave(@PathVariable("username") String username,@RequestBody Leave leave) {
String StuUsername = leave.getUsername();
Leave ownleave = leaveService.ShowOwnLeave(StuUsername);
Integer oldId = ownleave.getId();
Integer id = leave.getId();
if(oldId == id) {
return leaveService.examLeave(leave, username);
}else {
return "repeat";
}
}
}
package com.demo.controller;
Map<String,Object> returnMap = new HashMap<String,Object>();
Attend attend = attendService.findAllByUsername(username);
List<Attend> list = new ArrayList<Attend>();
returnMap.put("content", list);
if(attend == null) {
return returnMap;
}else {
list.add(attend);
returnMap.put("content", list);
return returnMap;
}
}
/**
* 修改考勤信息
* @param attend
* @return
*/
@PostMapping("/updateAttend")
public String updateAttend(@RequestBody Attend attend) {
String username = attend.getUsername();
Attend test = attendService.findAllByUsername(username);
if (test != null) {
attendService.saveAttend(attend);
return "success";
} else {
return "empty";
}
}
/**
* 删除考勤信息
* @param username
*/
@DeleteMapping("deleteAttend/{username}")
public void deleteData(@PathVariable("username") String username) {
attendService.delAttend(username);
}
/**
* 删除全部的考勤信息
*/
@DeleteMapping("deleteAttend")
public void deleteData() {
attendService.delAttend();
}
/**
* 按姓名模糊查询某一种用户
*
* @param currentPage
* @param pageSize
* @param realname
* @return
data.setClasses(classes);
data.setDept(dept);
data.setChoice(choice);
// 将实体类插入数据库
// dataService.InsertData(data);
String isRepeat = dataService.InsertData(data);
test.add(isRepeat);
// System.out.println("循环监视");
}
for(int j = 0;j <test.size();j++ ) {
if(test.get(j).equals("success")) {
// System.out.println(test.get(j));
return "success";
}else {
// System.out.println(test.get(j));
return "repeat";
}
}
return "repeat";
}
}
@GetMapping("/download")
public void toExcel(HttpServletResponse response) throws IOException {
List<Data> data = dataService.findAll();
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("用户信息表", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// Student.class 是按导出类 data()应为数据库查询数据,这里只是模拟
EasyExcel.write(response.getOutputStream(), Data.class).sheet("模板").doWrite(data);
}
@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
try {
EasyExcel.read(file.getInputStream(), Data.class, new DataListener(dataService)).sheet().doRead();
}catch (Exception e){
e.printStackTrace();
}
return "success";
}
}
package com.demo.controller;
list = attendService.FuzzyQueryByRealname(realname);
returnMap.put("content", list);
return returnMap;
}
/**
*
* 按用户类型通过姓名模糊查询
* @param currentPage
* @param pageSize
* @param realname
* @param choice
* @return
*/
@GetMapping("FuzzyQuery/{currentPage}/{pageSize}/{realname}/{classes}")
public Map<String, Object> FuzzyQueryByChoice(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize, @PathVariable("realname") String realname,
@PathVariable("classes") String classes) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Attend> list = null;
returnMap.put("content", list);
list = attendService.FuzzyQueryByChioce(realname, classes);
returnMap.put("content", list);
return returnMap;
}
/**
* 批量上传excel文件导入用户信息
* @param multipartFile
* @param request
* @return
* @throws IOException
*/
@SuppressWarnings("unused")
@ResponseBody
@RequestMapping(value = "/fileUpload")
public String handlerForUpload(@RequestParam("fileList") MultipartFile multipartFile, HttpServletRequest request)
throws IOException {
/**
*查找单个申请表
* @param id
* @return
*/
@GetMapping("/findAllById/{id}")
public Leave findAllByUsername(@PathVariable("id") Integer id) {
return leaveService.findAllById(id);
}
/**
* 学生查询申请表当前状态
* @param username
* @return
*/
@GetMapping("/ShowOwnLeave/{username}")
public Map<String, Object> ShowOwnLeave(@PathVariable("username") String username) {
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Leave> list = new ArrayList<Leave>();
Leave ownleave = leaveService.ShowOwnLeave(username);
if(ownleave == null) {
return returnMap;
}else {
returnMap.put("content", list);
list.add(ownleave);
returnMap.put("content", list);
return returnMap;
}
}
/**
* 查询以往申请记录
* @param currentPage
* @param pageSize
* @param username
* @return
*/
@GetMapping("/ShowOldLeave/{currentPage}/{pageSize}/{username}")
public Map<String, Object> ShowOldLeave(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("username") String username) {
List<Leave> test = leaveService.findAll(username);
Integer size = test.size();//数据库中所有请假信息的总数
e.printStackTrace();
}
// 将InputStream转XLSX对象(即表格对象)
@SuppressWarnings("resource")
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(in);
// 获取表格的第一页
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
// 获取该页有多少数据
int rowNum = xssfSheet.getLastRowNum();
for (int i = 1; i <= rowNum; i++) {
// 获取当前行
XSSFRow xssfRow = xssfSheet.getRow(i);
if(xssfRow == null) {
return "error";
}
// 由于年龄是纯数字,默认纯数字是以double传的,写进据库会变成科学计数法格式的,需要改为以string传进来
xssfRow.getCell(2).setCellType(CellType.STRING);
xssfRow.getCell(3).setCellType(CellType.STRING);
xssfRow.getCell(4).setCellType(CellType.STRING);
// 以此获得该行的所有单元格
String realname = xssfRow.getCell(0).getStringCellValue();
String sex = xssfRow.getCell(1).getStringCellValue();
String ageString = xssfRow.getCell(2).getStringCellValue();
Double ageDouble = Double.valueOf(ageString);
String username = xssfRow.getCell(3).getStringCellValue();
String classes = xssfRow.getCell(4).getStringCellValue();
String dept = xssfRow.getCell(5).getStringCellValue();
String choice = xssfRow.getCell(6).getStringCellValue();
Integer age = Integer.valueOf(ageDouble.intValue());
// 将数据写入实体类
Data data = new Data();
data.setRealname(realname);
data.setSex(sex);
data.setAge(age);
data.setUsername(username);
data.setClasses(classes);
data.setDept(dept);
data.setChoice(choice);
// 将实体类插入数据库
// dataService.InsertData(data);
String isRepeat = dataService.InsertData(data);
test.add(isRepeat);
// System.out.println("循环监视");
* @param pageSize
* @param choice
* @return
*/
@GetMapping("findAllByChoice/{currentPage}/{pageSize}/{choice}")
public Map<String, Object> findAllByChoice(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize, @PathVariable("choice") String choice) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Data> list = null;
returnMap.put("content", list);
list = dataService.findAllByChoice(choice);
returnMap.put("content", list);
return returnMap;
}
/**
* 按用户名查找单个用户信息
*
* @param username
* @return
*/
@GetMapping("/findAllByUsername/{username}")
public Data findAllByUsername(@PathVariable("username") String username) {
return dataService.findAllByUsername(username);
}
/**
* 修改用户信息
*
* @param data
* @return
*/
@PostMapping("/updateData")
public String updateData(@RequestBody Data data) {
String username = data.getUsername();
String chioce = data.getChoice();
String classes = data.getClasses();
String dept = data.getDept();
String realname = data.getRealname();
Data test = dataService.findAllByUsername(username);
if (test != null) {
leaveService.updateAuditCheckname(data);
userService.updateChioceAndRealname(username, chioce,realname);
Attend attend = attendService.findAllByUsername(username);
}
}
}
package com.demo.controller;
@CrossOrigin
@RestController
@RequestMapping("/notice")
public class NoticeController {
@Autowired
private NoticeService noticeService;
/**
* 发送公告
* @param notice
* @return
*/
@PostMapping("/sendNotice")
public String sendLeave(@RequestBody Notice notice) {
return noticeService.sendNotice(notice);
}
/**
* 显示最新公告
* @return
*/
@GetMapping("/showNotice")
public Notice showNotice() {
return noticeService.showNotice();
}
/**
public class AccountController {
@Autowired
private UserService userService;
@Autowired
private DataService dataService;
/**
* 注册
* @param user
* @return
*/
@PostMapping("/register")
public String register(@RequestBody User user) {
String username = user.getUsername();
String choice = user.getChoice();
String checkChoice = dataService.getChoice(username);
if(checkChoice.equals("empty")) {
// 学生信息不存在,请核对信息或者先进行录入
return "empty";
}else {
if(choice.equals(checkChoice)) {
// 学生姓名和学号与真实对应,可进行注册
return userService.insertUser(user);
}else {
// 选择用户错误
return "error";
}
}
}
/**
* 登录
* @param user
* @return
*/
@PostMapping("/login")
public String login(@RequestBody User user) {
String username = user.getUsername();
String password = user.getPassword();
String check = user.getChoice();
User test = userService.findAllByUsername(username);
if(test != null){
String choice = test.getChoice();
String encrypassword = test.getPassword();
@Autowired
private DataService dataService;
/**
* 添加学生考勤信息
* @param attend
* @return
*/
@PostMapping("/insertAttend")
public String insertAttend(@RequestBody Attend attend) {
String username = attend.getUsername();
Attend test = attendService.findAllByUsername(username);
if (test == null) {
return attendService.insertAttend(attend);
} else {
return "repeat";
}
}
/**
* 按用户类型显示学生考勤信息
* @param currentPage
* @param pageSize
* @param username
* @return
*/
@GetMapping("findAll/{currentPage}/{pageSize}/{username}")
public Map<String,Object> findAll(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize,
@PathVariable("username") String username){
Map<String,Object> returnMap=new HashMap<String,Object>();
Data data = dataService.findAllByUsername(username);
if(data == null) {
return returnMap;
}else {
String choice = data.getChoice();
if(choice.equals("辅导员")) {
String realname = data.getRealname();
List<Attend> list=null;
returnMap.put("content", list);
list = attendService.findAll(realname);
List<Attend> pageList = attendService.startPage(list, currentPage, pageSize);
returnMap.put("content", pageList);
return returnMap;
}else if(choice.equals("院领导")) {
String dept = data.getDept();
List<Attend> list=null;
returnMap.put("content", list);
}
/**
* 查找辅导员管理的班级
* @param checkname
* @return
*/
@GetMapping("/findClass/{checkname}")
public List<String> findClass(@PathVariable("checkname") String checkname) {
List<Audit> audit = leaveService.FindClass(checkname);
List<String> list = new ArrayList<String>();
for(int i = 0 ; i < audit.size(); i++) {
String classes = audit.get(i).getClasses();
list.add(classes);
}
return list;
}
/**
* 删除辅导员管理的班级
* @param classes
*/
@DeleteMapping("delClass/{classes}")
public void delClass(@PathVariable("classes") String classes) {
leaveService.delClass(classes);
}
/**
* 添加辅导员要管理的班级
* @param classes
* @param realname
* @return
*/
@PostMapping("/insertClass")
public String insertClass(@RequestBody Audit aidit) {
return leaveService.insertAudit(aidit);
}
/**
* 按班级查找对应的辅导员
* @param classes
* @return
*/
String email = user.getEmail();
String verifyCode = user.getVerifyCode();
User test = userService.findAllByUsername(username);
if(test != null){
String oldverifyCode = test.getVerifyCode();
String matches =userService.matchesEncoder(verifyCode, oldverifyCode);
if(matches.equals("success")) {
userService.updateEmail(username, email);
return "success";
}else {
return "error";
}
}else {
return "empty";
}
}
/**
* 发送邮箱并获取验证码
* @param user
* @return
*/
@PostMapping("/getCheckemail")
public String sendCodeToMail(@RequestBody User user){
String username = user.getUsername();
String email = user.getEmail();
String choice = user.getChoice();
User test = userService.findAllByUsername(username);
if(test != null){ //判断用户是否存在
String mailAddress = test.getEmail();
String checkchoice = test.getChoice();
String checkusername = test.getUsername();
if (checkusername.equals(username)&&choice.equals(checkchoice)) {
//根据username获取保存的邮箱
if(email.equals(mailAddress)){ //用户输入邮箱与绑定邮箱一致→发送验证码
try{
//生成验证码
String verifyCode = RandomUtil.getCode();
//邮件主题
String emailTitle = "邮箱验证";
String classes = xssfRow.getCell(2).toString();
String dept = xssfRow.getCell(3).toString();
String earlyString = xssfRow.getCell(4).toString();
String lateString = xssfRow.getCell(5).toString();
String vacationString = xssfRow.getCell(6).toString();
String truancyString = xssfRow.getCell(7).toString();
// String scoreString = xssfRow.getCell(8).toString();
Integer early = Integer.valueOf(earlyString);
Integer late = Integer.valueOf(lateString);
Integer vacation = Integer.valueOf(vacationString);
Integer truancy = Integer.valueOf(truancyString);
// Integer score = Integer.valueOf(scoreString);
// 将数据写入实体类
// data = new Data();
Attend attend = new Attend();
attend.setRealname(realname);
attend.setUsername(username);
attend.setClasses(classes);
attend.setDept(dept);
attend.setEarly(early);
attend.setLate(late);
attend.setVacation(vacation);
attend.setTruancy(truancy);
// attend.setScore(score);
// 将实体类插入数据库
// dataService.InsertData(data);
String isRepeat = attendService.insertAttend(attend);
test.add(isRepeat);
// System.out.println("循环监视");
}
for(int j = 0;j <test.size();j++ ) {
if(test.get(j).equals("success")) {
// System.out.println(test.get(j));
return "success";
}else {
// System.out.println(test.get(j));
public void toExcel(HttpServletResponse response) throws IOException {
List<Data> data = dataService.findAll();
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("用户信息表", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
// Student.class 是按导出类 data()应为数据库查询数据,这里只是模拟
EasyExcel.write(response.getOutputStream(), Data.class).sheet("模板").doWrite(data);
}
@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
try {
EasyExcel.read(file.getInputStream(), Data.class, new DataListener(dataService)).sheet().doRead();
}catch (Exception e){
e.printStackTrace();
}
return "success";
}
}
package com.demo.controller;
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Data> list = null;
returnMap.put("content", list);
list = dataService.FuzzyQueryByChioce(realname, choice);
returnMap.put("content", list);
return returnMap;
}
/**
* 按用户类型查询用户信息
*
* @param currentPage
* @param pageSize
* @param choice
* @return
*/
@GetMapping("findAllByChoice/{currentPage}/{pageSize}/{choice}")
public Map<String, Object> findAllByChoice(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize, @PathVariable("choice") String choice) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
List<Data> list = null;
returnMap.put("content", list);
list = dataService.findAllByChoice(choice);
returnMap.put("content", list);
return returnMap;
}
/**
* 按用户名查找单个用户信息
*
* @param username
* @return
*/
@GetMapping("/findAllByUsername/{username}")
public Data findAllByUsername(@PathVariable("username") String username) {
return dataService.findAllByUsername(username);
}
/**
* 修改用户信息
*
* @param data
* @return
*/
public String updateAttend(@RequestBody Attend attend) {
String username = attend.getUsername();
Attend test = attendService.findAllByUsername(username);
if (test != null) {
attendService.saveAttend(attend);
return "success";
} else {
return "empty";
}
}
/**
* 删除考勤信息
* @param username
*/
@DeleteMapping("deleteAttend/{username}")
public void deleteData(@PathVariable("username") String username) {
attendService.delAttend(username);
}
/**
* 删除全部的考勤信息
*/
@DeleteMapping("deleteAttend")
public void deleteData() {
attendService.delAttend();
}
/**
* 按姓名模糊查询某一种用户
*
* @param currentPage
* @param pageSize
* @param realname
* @return
*/
@GetMapping("FuzzyQuery/{currentPage}/{pageSize}/{realname}")
public Map<String, Object> FuzzyQuery(@PathVariable("currentPage") Integer currentPage,
@PathVariable("pageSize") Integer pageSize, @PathVariable("realname") String realname) {
PageHelper.startPage(currentPage, pageSize);
Map<String, Object> returnMap = new HashMap<String, Object>();
// 默认纯数字是以double传的,写进据库会变成科学计数法格式的,需要改为以string传进来
xssfRow.getCell(1).setCellType(CellType.STRING);
xssfRow.getCell(2).setCellType(CellType.STRING);
xssfRow.getCell(4).setCellType(CellType.STRING);
xssfRow.getCell(5).setCellType(CellType.STRING);
xssfRow.getCell(6).setCellType(CellType.STRING);
xssfRow.getCell(7).setCellType(CellType.STRING);
// xssfRow.getCell(8).setCellType(CellType.STRING);
// 以此获得该行的所有单元格
// String realname = xssfRow.getCell(0).getStringCellValue();
// String username = xssfRow.getCell(1).getStringCellValue();
// String classes = xssfRow.getCell(2).getStringCellValue();
// String dept = xssfRow.getCell(3).getStringCellValue();
//
//
// String earlyString = xssfRow.getCell(4).getStringCellValue();
// String lateString = xssfRow.getCell(5).getStringCellValue();
// String vacationString = xssfRow.getCell(6).getStringCellValue();
// String truancyString = xssfRow.getCell(7).getStringCellValue();
String realname = xssfRow.getCell(0).toString();
String username = xssfRow.getCell(1).toString();
String classes = xssfRow.getCell(2).toString();
String dept = xssfRow.getCell(3).toString();
String earlyString = xssfRow.getCell(4).toString();
String lateString = xssfRow.getCell(5).toString();
String vacationString = xssfRow.getCell(6).toString();
String truancyString = xssfRow.getCell(7).toString();
// String scoreString = xssfRow.getCell(8).toString();
Integer early = Integer.valueOf(earlyString);
Integer late = Integer.valueOf(lateString);
Integer vacation = Integer.valueOf(vacationString);
Integer truancy = Integer.valueOf(truancyString);
// Integer score = Integer.valueOf(scoreString);
// 将数据写入实体类