毕业设计-基于Springboot实现公租房申请管理系统
作者主页:
作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师
主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助
文末获取源码
项目编号:BS-XX-120
一,项目简介
本项目基于Springboot开发实现了一个公租房申请管理系统平台,系统分为管理员用户和公租房申请用户。管理员用户又分为三种:超级管理员,基础数据管理员,审核管理员。超级管理员主要用来管理管理员和普通用户信息,资讯信息等,基础数据管理员主要用来管理小区,房屋等相关信息,审核管理员主要用来审核用户的申请信息,给用户进行配租等。前端用户在前台界面可以查看公租房申请的相关政策信息,相关流程,实现在线注册和登陆,并可以在线申请公租房。
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
后台开发技术:springboot+mybatis
前台开发技术:layui+jquery
特点技术:短信发送,GoEasy通信技术等
三,系统展示
前端用户功能展示
用户注册
用户登陆
首页
申请指南
新闻动态
审核结果公示
在线申请
申请结果查询
管理员功能展示
超级管理员登陆
后台主界面
管理员管理:可以停用和删除
前台用户管理
资讯管理
审核人员管理功能
办公地点管理
公告管理
审核结果发布
基础数据管理员
房屋管理
给通过人员配租
四,核心代码展示
package org.wy.gzf_boot.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.ModelAndView;import org.wy.gzf_boot.model.Admin;import org.wy.gzf_boot.model.Community;import org.wy.gzf_boot.service.AdminService;import org.wy.gzf_boot.service.ApartmentService;import org.wy.gzf_boot.service.CommunityService;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import java.util.HashMap;import java.util.List;import java.util.Map;/**
* <p>
* 管理员表 前端控制器
* </p>
*
* @since 2020-03-08
*/public class AdminController {
private AdminService adminService;
private CommunityService communityService;
private ApartmentService apartmentService;
public String toWelcome(){ return "xianadmin/welcome";
} /**
* 登录页面入口
* @return
*/
public String toLogin(){ return "xianadmin/login";
} /**
* 管理员登录验证账号密码
*/
public Map toCheck(Admin admin,HttpSession session){
Map map=new HashMap();
Admin a=adminService.login(admin); if(a!=null){
session.setAttribute("admin",a);
map.put("admin",a);
} return map;
}
public String toIndex(int adminState){ if(adminState==0){ return "superadmin/index";
}else if (adminState==1){ return "xianadmin/index";
}else{ return "shiadmin/index";
}
}
public String toRole(){ return "superadmin/admin-role";
}
public String toAdminList(){ return "superadmin/admin-list";
}
public String toCommunityList(){ return "superadmin/community-list";
}
public String toAddCommunity(){ return "superadmin/community-add";
}
public ModelAndView toApartmentList(ModelAndView mv){
List<Community> allCommunity=communityService.getCommunityList();
mv.addObject("allCommunity",allCommunity);
mv.setViewName("superadmin/apartment-list"); return mv;
}
public ModelAndView toAddApartment(ModelAndView mv){
List<Community> allCommunity=communityService.getCommunityList();
mv.addObject("allCommunity",allCommunity);
mv.setViewName("superadmin/apartment-add"); return mv;
}
public String toApplicant(){ return "xianadmin/applicant-list";
}
public String toAddApplicant(){ return "xianadmin/applicant-add";
}
public String toApplyCheck(){ return "shiadmin/shi-apply-list";
}
public String toNotice(){ return "superadmin/notice-write";
}
public ModelAndView adminExit(HttpSession session,ModelAndView mv){
session.invalidate();
mv.setViewName("xianadmin/login"); return mv;
}
public ModelAndView toNoticeBox(ModelAndView mv){
mv.setViewName("shiadmin/notice-box"); return mv;
}
public String toAdmin(){ return "superadmin/admin-list";
}
public Map toAdminList(Admin admin){
Map map=new HashMap();
List adminList=adminService.getAdminList(admin); int adminCount=adminService.getAdminCount(admin);
map.put("adminList",adminList);
map.put("adminCount",adminCount); return map;
}
public int addAdmin(Admin admin){ return adminService.addAdmin(admin);
}
public String toAddAdmin(){ return "superadmin/admin-add";
}
public int banAdminById(Admin admin){ return adminService.banAdminById(admin);
}
public int delAdmin(Admin admin){ return adminService.delAdmin(admin);
}
public String toApplyHelp(){ return "user/apply-help";
}
}
package org.wy.gzf_boot.controller;import com.github.pagehelper.PageInfo;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.*;import org.springframework.stereotype.Controller;import org.springframework.transaction.annotation.Transactional;import org.springframework.transaction.interceptor.TransactionAspectSupport;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.servlet.ModelAndView;import org.wy.gzf_boot.mapper.ApartmentMapper;import org.wy.gzf_boot.model.Apartment;import org.wy.gzf_boot.model.Community;import org.wy.gzf_boot.service.ApartmentService;import org.wy.gzf_boot.service.CommunityService;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.websocket.server.PathParam;import java.io.BufferedOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.List;import java.util.Map;/**
* <p>
* 房源表 前端控制器
* </p>
*
* @since 2020-03-08
*/public class ApartmentController {
private ApartmentService apartmentService;
private CommunityService communityService; //获取符合条件的所有房源
public Map getApartmentList(Community community, Apartment apartment,int pageNum, int pageSize){
apartment.setCommunity(community);
System.out.println("单元号:"+apartment.getUnitId());
Map map=new HashMap();
map.put("apartment",apartment); int apartmentCount=apartmentService.getApartmentCount(map);
map.put("pageNum",pageNum);
map.put("pageSize",pageSize);
PageInfo page=apartmentService.getApartmentList(map);
map.put("apartmentCount",apartmentCount);
map.put("page",page); return map;
} //获取符合条件的所有空闲房源
public Map getFreeApartmentList(Community community, Apartment apartment,int pageNum, int pageSize){
apartment.setCommunity(community);
System.out.println("单元号:"+apartment.getUnitId());
Map map=new HashMap();
map.put("apartment",apartment); int apartmentCount=apartmentService.getFreeApartmentCount(map);
map.put("pageNum",pageNum);
map.put("pageSize",pageSize);
PageInfo page=apartmentService.getFreeApartmentList(map);
map.put("apartmentCount",apartmentCount);
map.put("page",page); return map;
} /**
* 添加房源
* @param apartment
* @return
*/
public int addApartment(Apartment apartment,Community community){
apartment.setCommunity(community); int result=apartmentService.addApartment(apartment); return result;
}
public int delApartment(int apartmentId){ return apartmentService.delApartment(apartmentId);
}
public ModelAndView toEditApartment(Apartment apartment, ModelAndView mv){
Apartment apartment1=apartmentService.getApartmentById(apartment);
mv.addObject("apartment",apartment1);
mv.setViewName("superadmin/apartment-edit"); return mv;
}
public int editApartment(Apartment apartment){ return apartmentService.editApartment(apartment);
} /**
* excel导出
* @param request
* @param response
* @throws Exception
*/
public void exportPermMatrix(HttpServletRequest request, HttpServletResponse response) throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("xxx信息表");
List<Apartment> apartmentList = apartmentService.getAllApartment(); //此处添加数据
HSSFRow headerRow1 = sheet.createRow(0);
headerRow1.createCell(0).setCellValue("位置");
headerRow1.createCell(1).setCellValue("房源");
headerRow1.createCell(2).setCellValue("房源面积");
headerRow1.createCell(3).setCellValue("计租面积");
headerRow1.createCell(4).setCellValue("户型");
headerRow1.createCell(5).setCellValue("建筑结构");
headerRow1.createCell(6).setCellValue("状态"); //headerRow1.createCell(6).setCellValue("总层数");
for (int i = 0; i < apartmentList.size(); i++) { HSSFRow headerRow = sheet.createRow(i + 1);
headerRow.createCell(0).setCellValue(apartmentList.get(i).getCommunity().getLocation());
headerRow.createCell(1).setCellValue(apartmentList.get(i).getCommunity().getCommunityName()+apartmentList.get(i).getUnitId()+"号楼"+apartmentList.get(i).getFloorId()+"-"+apartmentList.get(i).getRoomId());
headerRow.createCell(2).setCellValue(apartmentList.get(i).getRoomArea()+"㎡");
headerRow.createCell(3).setCellValue(apartmentList.get(i).getRentArea()+"㎡");
headerRow.createCell(4).setCellValue(apartmentList.get(i).getHouseType());
headerRow.createCell(5).setCellValue(apartmentList.get(i).getCommunity().getStructure());
headerRow.createCell(6).setCellValue(apartmentList.get(i).getRoomState());
} //清空response
response.reset();
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment; filename=" + new String("房源信息列表".getBytes(), "iso8859-1") + ".xls"); OutputStream os = new BufferedOutputStream(response.getOutputStream());
workbook.write(os);
os.flush();
os.close(); //workbook.close();
} /**
* excel导入数据
*/
public Map importWatchExcel( { MultipartFile xlsFile)Map result = new HashMap<>(); // contentType
// String contentType = file.getContentType();
// excel文件名
// String fileName = file.getOriginalFilename();
if (xlsFile.isEmpty()) {
result.put("code", 500);
result.put("message", "导入文件为空!"); return result;
} // 根据不同excel创建不同对象,Excel2003版本-->HSSFWorkbook,Excel2007版本-->XSSFWorkbook
Workbook wb = null; InputStream im = null; try {
im = xlsFile.getInputStream();
wb = WorkbookFactory.create(im); // 根据页面index 获取sheet页
Sheet sheet = wb.getSheetAt(0); Row row = null; // 循环sheet页中数据从第x行开始,例:第3行开始为导入数据
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
Apartment apartment=new Apartment(); // 获取每一行数据
row = sheet.getRow(i); // 输出表格内容,此处可替换为数据插入操作
String communityName=row.getCell(1).getStringCellValue();
List communityList=communityService.getCommunityByName(communityName);
Community community= (Community) communityList.get(0);
apartment.setCommunity(community); if (null != row.getCell(2) && "" != row.getCell(2).toString()) {
row.getCell(2).setCellType(CellType.STRING);
apartment.setUnitId(Integer.parseInt(row.getCell(2).getStringCellValue()));
} if (null != row.getCell(3) && "" != row.getCell(3).toString()) {
row.getCell(3).setCellType(CellType.STRING);
apartment.setFloorId(Integer.parseInt(row.getCell(3).getStringCellValue()));
} if (null != row.getCell(4) && "" != row.getCell(4).toString()) {
row.getCell(4).setCellType(CellType.STRING);
apartment.setRoomId(Integer.parseInt(row.getCell(4).getStringCellValue()));
} if (null != row.getCell(5) && "" != row.getCell(5).toString()) {
String roomArea=row.getCell(5).getStringCellValue();
apartment.setRoomArea(Float.parseFloat(roomArea));
} if (null != row.getCell(6) && "" != row.getCell(6).toString()) {
String rentArea=row.getCell(6).getStringCellValue();
apartment.setRentArea(Float.parseFloat(rentArea));
} if (null != row.getCell(7) && "" != row.getCell(7).toString()) {
apartment.setHouseType(row.getCell(7).getStringCellValue());
} if (null != row.getCell(9) && "" != row.getCell(9).toString()) {
apartment.setRoomState(row.getCell(9).getStringCellValue());
}
apartmentService.addApartment(apartment);
}
result.put("code", 200);
result.put("message", "导入成功!");
} catch (Exception e1) { // 回滚数据
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e1.printStackTrace();
} finally { try {
im.close();
wb.close();
} catch (IOException e2) {
e2.printStackTrace();
}
} return result;
}
public String toSelectExcel(){ return "superadmin/apartment-excel-select";
}
public List getAllApartment(){ return apartmentService.getAllApartment();
}
}
package org.wy.gzf_boot.controller;import com.github.pagehelper.PageInfo;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.*;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Controller;import org.springframework.transaction.annotation.Transactional;import org.springframework.transaction.interceptor.TransactionAspectSupport;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.servlet.ModelAndView;import org.wy.gzf_boot.model.*;import org.wy.gzf_boot.service.ApplicantService;import org.wy.gzf_boot.service.SecondTrialService;import org.wy.gzf_boot.service.UserInformService;import org.wy.gzf_boot.util.FileUtils;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.util.*;/**
* <p>
* 申请人表 前端控制器
* </p>
*
* @since 2020-03-08
*/public class ApplicantController {
private ApplicantService applicantService;
private SecondTrialService secondTrialService;
private UserInformService userInformService;
private String uploadPath;
public Map getApplicantList(int pageSize, int pageNum, String applicantName, String adminState) { Map map = new HashMap();
map.put("adminState", adminState); int applicantCount = applicantService.getApplicantCount(map);
map.put("applicantCount", applicantCount);
System.out.println("申请人总条数:" + applicantCount);
map.put("pageNum", pageNum);
map.put("pageSize", pageSize);
map.put("applicantName", applicantName); PageInfo page = applicantService.getApplicantList(map);
map.put("page", page); return map;
} /**
* 申请人信息提交,多文件上传
*
* @param request
* @return
*/
public int addApply(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> file1 = multipartRequest.getFiles("file1");
List<MultipartFile> file2 = multipartRequest.getFiles("file2");
List<MultipartFile> file3 = multipartRequest.getFiles("file3");
List<MultipartFile> file4 = multipartRequest.getFiles("file4");
List<MultipartFile> file5 = multipartRequest.getFiles("file5"); Applicant applicant = new Applicant(); User user = new User();
user.setUserId(Integer.parseInt(multipartRequest.getParameter("userId")));
applicant.setUser(user);
applicant.setApplicantName(multipartRequest.getParameter("applicantName"));
applicant.setSex(Integer.parseInt(multipartRequest.getParameter("sex")));
applicant.setIdNumber(multipartRequest.getParameter("idNumber"));
applicant.setBirthday(multipartRequest.getParameter("birthday"));
applicant.setEducation(multipartRequest.getParameter("education"));
applicant.setWorkUnit(multipartRequest.getParameter("workUnit"));
applicant.setPhone(multipartRequest.getParameter("phone"));
applicant.setAddress(multipartRequest.getParameter("address")); Community community = new Community();
community.setCommunityId(Integer.parseInt(multipartRequest.getParameter("communityId")));
applicant.setCommunity(community);
applicant.setDemandArea(Integer.parseInt(multipartRequest.getParameter("demandArea")));
applicant.setDemandFloor(Integer.parseInt(multipartRequest.getParameter("demandFloor")));
applicant.setDemandRoom(multipartRequest.getParameter("demandRoom"));
List<MultipartFile> allFiles = new ArrayList<>();
allFiles.add(file1.get(0));
allFiles.add(file2.get(0));
allFiles.add(file3.get(0));
allFiles.add(file4.get(0));
allFiles.add(file5.get(0)); for (int i = 0; i < allFiles.size(); i++) { String fileName = allFiles.get(i).getOriginalFilename(); if (!"".equals(fileName)) { String suffixName = fileName.substring(fileName.lastIndexOf("."));
fileName = UUID.randomUUID() + suffixName; //新文件名
if (i == 0) {
applicant.setIdentityCard(fileName);
} else if (i == 1) {
applicant.setMarriageProof(fileName);
} else if (i == 2) {
applicant.setHouseProof(fileName);
} else if (i == 3) {
applicant.setWorkProof(fileName);
} else if (i == 4) {
applicant.setApplyDoc(fileName);
}
} String path = uploadPath;
FileUtils.upload(allFiles.get(i), path, fileName);
} int result = applicantService.addApplicant(applicant); if (result > 0) { UserInform userInform = new UserInform();
userInform.setTitle("申请提交通知");
userInform.setContent(applicant.getApplicantName() + "(先生/女士),您的公租房申请材料已经提交,请您耐心等待。您可在首页的查询办理进度,也可等待审核公告发布");
userInform.setUser(user);
userInformService.addUserInform(userInform); return result;
} return 0;
}
public ModelAndView getApplicantById(int applicantId, ModelAndView mv) { Applicant applicant = applicantService.getApplicantById(applicantId);
mv.addObject("applicant", applicant);
mv.setViewName("xianadmin/applicant-edit"); return mv;
}
public int editApplicant(Applicant applicant) { return applicantService.editApplicant(applicant);
}
public ModelAndView getIdentityCard(int applicantId, ModelAndView mv) { Applicant applicant = applicantService.getIdentityCard(applicantId);
mv.setViewName("xianadmin/identitycard-img");
mv.addObject("applicant", applicant); return mv;
}
public int editIdentityCard( { MultipartFile file, Applicant applicant)String fileName = file.getOriginalFilename(); if (!"".equals(fileName)) { String suffixName = fileName.substring(fileName.lastIndexOf("."));
fileName = UUID.randomUUID() + suffixName; //新文件名
} String path = "D:\\gzf_boot\\src\\main\\resources\\static\\upload";
FileUtils.upload(file, path, fileName);
applicant.setIdentityCard(fileName); int result = applicantService.editIdentityCard(applicant); return result;
}
public ModelAndView shiCheckApplicant(int applicantId, ModelAndView mv) { Applicant applicant = applicantService.getApplicantById(applicantId);
mv.addObject("applicant", applicant);
mv.setViewName("shiadmin/shi-apply-details"); return mv;
}
public ModelAndView xianCheckApplicant(int applicantId, ModelAndView mv) { Applicant applicant = applicantService.getApplicantById(applicantId);
mv.addObject("applicant", applicant);
mv.setViewName("xianadmin/xian-apply-details"); return mv;
}
public ModelAndView checkIdentityCard(int applicantId, ModelAndView mv) { Applicant applicant = applicantService.getIdentityCard(applicantId);
mv.setViewName("shiadmin/identitycard-check");
mv.addObject("applicant", applicant); return mv;
}
public ModelAndView checkMarriageProof(Applicant applicant, ModelAndView mv) {
mv.setViewName("shiadmin/marriageProof-check");
mv.addObject("applicant", applicant); return mv;
}
public ModelAndView checkWorkProof(Applicant applicant, ModelAndView mv) {
mv.setViewName("shiadmin/workProof-check");
mv.addObject("applicant", applicant); return mv;
}
public ModelAndView checkHouseProof(Applicant applicant, ModelAndView mv) {
mv.setViewName("shiadmin/houseProof-check");
mv.addObject("applicant", applicant); return mv;
}
public ModelAndView checkApplyDoc(Applicant applicant, ModelAndView mv) {
mv.setViewName("shiadmin/applyDoc-check");
mv.addObject("applicant", applicant); return mv;
}
public int checkSuccess(int applicantId) { Applicant applicant = new Applicant();
applicant.setShiState(1);
applicant.setApplicantId(applicantId); int result = applicantService.checkApply(applicant); SecondTrial secondTrial = new SecondTrial();
secondTrial.setApplicant(applicant); int result2 = secondTrialService.addTrial(secondTrial); if (result > 0 && result2 > 0) { return 1;
} else { return 0;
}
}
public ModelAndView toWriteRefuse(int applicantId, int userId, ModelAndView mv) {
mv.setViewName("shiadmin/refuse-write");
mv.addObject("applicantId", applicantId);
mv.addObject("userId", userId); return mv;
} /**
* 下载小区信息 导出 excel 使用我们的模板导出
* /excel_down
*/
public void exportPermMatrix(int shiState, HttpServletRequest request, HttpServletResponse response) throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("xxx信息表");
List<Applicant> list = new ArrayList<>();
System.out.println("________________" + shiState + "_________________________"); if (shiState == 0) {
list = applicantService.getAllApplicant();
} else {
list = applicantService.getOkApplicant();
} //此处添加数据
HSSFRow headerRow1 = sheet.createRow(0);
headerRow1.createCell(0).setCellValue("申请人姓名");
headerRow1.createCell(1).setCellValue("性别");
headerRow1.createCell(2).setCellValue("身份证号");
headerRow1.createCell(3).setCellValue("出生日期");
headerRow1.createCell(4).setCellValue("学历");
headerRow1.createCell(5).setCellValue("工作单位");
headerRow1.createCell(6).setCellValue("联系电话");
headerRow1.createCell(7).setCellValue("联系地址");
headerRow1.createCell(8).setCellValue("需求面积");
headerRow1.createCell(9).setCellValue("需求楼层");
headerRow1.createCell(10).setCellValue("需求房型");
headerRow1.createCell(11).setCellValue("状态"); for (int i = 0; i < list.size(); i++) { HSSFRow headerRow = sheet.createRow(i + 1);
headerRow.createCell(0).setCellValue(list.get(i).getApplicantName()); if (list.get(i).getSex() == 0) {
headerRow.createCell(1).setCellValue("男");
} else {
headerRow.createCell(1).setCellValue("女");
}
headerRow.createCell(2).setCellValue(list.get(i).getIdNumber());
headerRow.createCell(3).setCellValue(list.get(i).getBirthday());
headerRow.createCell(4).setCellValue(list.get(i).getEducation());
headerRow.createCell(5).setCellValue(list.get(i).getWorkUnit());
headerRow.createCell(6).setCellValue(list.get(i).getPhone());
headerRow.createCell(7).setCellValue(list.get(i).getAddress());
headerRow.createCell(8).setCellValue(list.get(i).getDemandArea() + "㎡");
headerRow.createCell(9).setCellValue(list.get(i).getDemandFloor() + "层");
headerRow.createCell(10).setCellValue(list.get(i).getDemandRoom()); if (list.get(i).getShiState() == 0) {
headerRow.createCell(11).setCellValue("未审核");
} else if (list.get(i).getShiState() == 1) {
headerRow.createCell(11).setCellValue("审核通过");
} else {
headerRow.createCell(11).setCellValue("审核未通过");
}
} //清空response
response.reset();
response.setContentType("multipart/form-data"); if (shiState == 0) {
response.setHeader("Content-Disposition", "attachment; filename=" + new String("申请人信息列表(全部)".getBytes(), "iso8859-1") + ".xls");
} else {
response.setHeader("Content-Disposition", "attachment; filename=" + new String("申请人信息列表(已通过)".getBytes(), "iso8859-1") + ".xls");
} OutputStream os = new BufferedOutputStream(response.getOutputStream());
workbook.write(os);
os.flush();
os.close();
workbook.close();
} /**
* excel导入数据
*/
public Map importWatchExcel( { MultipartFile xlsFile)Map result = new HashMap<>(); // contentType
// String contentType = file.getContentType();
// excel文件名
// String fileName = file.getOriginalFilename();
if (xlsFile.isEmpty()) {
result.put("code", 500);
result.put("message", "导入文件为空!"); return result;
} // 根据不同excel创建不同对象,Excel2003版本-->HSSFWorkbook,Excel2007版本-->XSSFWorkbook
Workbook wb = null; InputStream im = null; try {
im = xlsFile.getInputStream();
wb = WorkbookFactory.create(im); // 根据页面index 获取sheet页
Sheet sheet = wb.getSheetAt(0); Row row = null; // 循环sheet页中数据从第x行开始,例:第2行开始为导入数据
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) { Applicant applicant = new Applicant(); // 获取每一行数据
row = sheet.getRow(i); // 输出表格内容,此处可替换为数据插入操作
if (null != row.getCell(0) && "" != row.getCell(0).toString()) {
applicant.setApplicantName(row.getCell(0).getStringCellValue());
} // 内容,表格数字格式为常规
if (null != row.getCell(1) && "" != row.getCell(1).toString()) { String sex = row.getCell(1).getStringCellValue(); if ("男".equals(sex)) {
applicant.setSex(0);
} else {
applicant.setSex(1);
}
} if (null != row.getCell(2) && "" != row.getCell(2).toString()) {
applicant.setIdNumber(row.getCell(2).getStringCellValue());
} if (null != row.getCell(3) && "" != row.getCell(3).toString()) {
applicant.setBirthday(row.getCell(3).getStringCellValue());
} if (null != row.getCell(4) && "" != row.getCell(4).toString()) {
applicant.setEducation(row.getCell(4).getStringCellValue());
} if (null != row.getCell(5) && "" != row.getCell(5).toString()) {
applicant.setWorkUnit(row.getCell(5).getStringCellValue());
} if (null != row.getCell(6) && "" != row.getCell(6).toString()) {
applicant.setPhone(row.getCell(6).getStringCellValue());
} if (null != row.getCell(7) && "" != row.getCell(7).toString()) {
applicant.setAddress(row.getCell(7).getStringCellValue());
} if (null != row.getCell(8) && "" != row.getCell(8).toString()) {
row.getCell(8).setCellType(CellType.STRING);
applicant.setDemandArea(Integer.parseInt(row.getCell(8).getStringCellValue()));
} if (null != row.getCell(9) && "" != row.getCell(9).toString()) {
row.getCell(9).setCellType(CellType.STRING);
applicant.setDemandFloor(Integer.parseInt(row.getCell(9).getStringCellValue()));
} if (null != row.getCell(10) && "" != row.getCell(10).toString()) {
applicant.setDemandRoom(row.getCell(10).getStringCellValue());
} if (null != row.getCell(11) && "" != row.getCell(11).toString()) { String state = row.getCell(11).getStringCellValue(); if ("未审核".equals(state)) {
applicant.setShiState(0);
} else if ("审核通过".equals(state)) {
applicant.setShiState(1);
} else {
applicant.setShiState(2);
}
}
applicantService.addApplicant(applicant);
}
result.put("code", 200);
result.put("message", "导入成功!");
} catch (Exception e1) { // 回滚数据
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e1.printStackTrace();
} finally { try {
im.close();
wb.close();
} catch (IOException e2) {
e2.printStackTrace();
}
} return result;
}
public String toSelectExcel() { return "xianadmin/applicant-excel-select";
}
public Map toCheckApply(String applicantName, String idNumber) { Map map = new HashMap();
map.put("applicantName", applicantName);
map.put("idNumber", idNumber); Applicant applicant = applicantService.toCheckApply(map);
map.put("applicant", applicant); return map;
}
public Map getApplicantListByTime(String startDate, String endDate, int pageNum, int pageSize) { Map map = new HashMap();
map.put("startDate", startDate);
map.put("endDate", endDate); int applicantCount = applicantService.getApplicantListByTimeCount(map);
map.put("applicantCount", applicantCount);
System.out.println("申请人总条数:" + applicantCount);
map.put("pageNum", pageNum);
map.put("pageSize", pageSize); PageInfo page = applicantService.getApplicantListByTime(map);
map.put("page", page); return map;
}
public Map getApplicantForUser(String startDate, String endDate, int times, int pageNum, int pageSize) { Map map = new HashMap();
map.put("startDate", startDate);
map.put("endDate", endDate);
map.put("times", times); if (times == 1) { int applicantCount = applicantService.getApplicantListByTimeCount(map);
map.put("applicantCount", applicantCount);
map.put("pageNum", pageNum);
map.put("pageSize", pageSize); PageInfo page = applicantService.getApplicantListByTime(map);
map.put("applicantPage", page);
} else { int trialCount = secondTrialService.getAllTrialCount(map);
map.put("trialCount", trialCount);
map.put("pageNum", pageNum);
map.put("pageSize", pageSize); PageInfo page = secondTrialService.getAllTrial(map);
map.put("trialPage", page);
} return map;
}
}
五,项目总结
本项目基于springboot框架来进行开发实现,符合现在开发的主流趋势,项目结构清晰明了,层次分明,采用MVC设计模式和三层架构来进行整体设计。界面布局简洁大方,操作符合用户使用习惯,人机交互处理的比较人性化,适合做毕业设计使用,也可以做课程设计或期未作业使用。