系统的功能需求
3.2.1系统的基本功能
管理员子系统功能如下:
代码已经上传github,下载地址: https://github.com/21503882/personnel-manage
1、员工管理:对员工的信息进行管理。
2、员工工资管理:对员工工资的信息进行管理。
3、员工考核管理:对员工考核的信息进行管理。
4、员工考勤管理:对员工考勤的信息进行管理。
5、员工医保管理:对员工医保的信息进行管理。
6、系统维护管理:对系统的管理员帐号信息进行管理。
7、修改密码:登录系统的用户修改个人密码信息。
员工子系统功能如下:
1、员工工资管理:查看员工个人的工资信息。
2、员工考核管理:查看员工个人的考核信息。
3、员工考勤管理:查看员工个人的考核信息。
4、员工医保管理:查看员工个人的医保信息。
5、修改密码:登录系统的用户修改个人密码信息。
5.3.1 系统登录模块
系统登录模块负责对使用本系统的用户进行身份验证,只有通过验证的用户才可以使用本系统。登录界面对应的磁盘文件为servlet/LoginServlet?method= loginout,在登录模块中,需要输入用户名及密码。本系统的使用用户共分为2种:管理员,员工,当用户输入用户名和密码后,系统会自动判断用户的类型,并进入到相应的用户界面,等待用户进行操作,登录模块的页面设计如图5.1所示:
图5.1 登录界面
5.3.2 系统主界面
用户身份验证成功后,进入操作主界面,系统主界面对应的页面文件为pages/sy.jsp。在主界面中,左列列出了全部的操作功能按钮,用户可以选择某个按钮进行管理操作。页面的设计如图5.2所示:
图5.2 系统主界面
5.3.3管理员管理模块
对系统的管理员信息进行添加、修改、删除管理。
1.管理员管理主页面,在主页面中显示全部的管理员信息。并可按姓名快速查找。模块对应的磁盘文件为servlet/UsersServlet?method=findAllUsers,本页的界面设计如图5.3所示:
图5.3 管理员管理主页面 图5.4添加管理员页面
图5.5修改管理员页面
5.3.4员工管理模块
对员工信息进行添加、修改、删除管理
1.员工管理主界面
员工管理主界面中提供了新增,编辑删除和查询员工信息功能。员工管理主界面对应的磁盘文件为servlet/EmployeeServlet?method=findAllEmployee,员工管理主界面如图5.6所示:
图5.6员工管理主界面
2.添加员工页面
在员工管理主界面中点击添加按钮。打开添加员工信息页面,页面对应的磁盘文件为servlet/EmployeeServlet?method=addEmployee,界面如图5.7所示:
图5.7添加员工页面
3.修改员工信息页面
点击相应员工记录的修改按钮,进入修改员工信息界面。修改界面对应的磁盘文件为servlet/EmployeeServlet?method=updatePage&eid=3,修改界面如图5.8所示:
图5.8修改员工信息界面
5.3.5员工工资管理模块
员工工资管理模块完成对员工工资信息的管理。
1.员工工资管理主页面,模块对应的磁盘文件为servlet/LaborageServlet? method=findAllLaborage,页面设计如图5.9所示:
图5.9员工工资管理界面
2.添加员工工资管理页面,模块对应的磁盘文件为servlet/LaborageServlet? method= addLaborage,页面设计如图5.10所示:
图5.10添加员工工资管理界面
5.3.6员工考核管理模块
员工考核管理模块对员工的考核信息进行添加、删除、修改管理。
1.员工考核信息管理主界面
完成员工考核信息的管理功能。可按员工名称进行快速查询。员工考核信息管理主界面对应的磁盘文件为servlet/AssessServlet?method=findAllAssess。员工考核信息管理模块界面如图4.11所示:
图5.11员工考核管理主页面
2.添加员工考核信息管理界面
添加新的员工考核信息,界面对应的磁盘文件为servlet/AssessServlet?method= addAssess。添加员工考核信息管理模块界面如图5.12所示:
图5.12添加员工考核页面
5.3.7员工考勤管理模块
对员工的考勤信息进行添加、删除、修改管理。
1.员工考勤管理主页面,通过员工姓名可以快速查询考勤信息。界面对应的磁盘文件为servlet/CheckedServlet?method=findAllChecked,界面设计如图5.13所示:
图5.13员工考勤管理主页面
2.添加员工考勤管理页面,添加新的员工考勤信息。界面对应的磁盘文件为servlet/CheckedServlet?method=addChecked,界面设计如图5.14所示:
图5.14添加员工考勤管理页面
5.3.8员工医保管理模块
对员工的医保缴费信息进行添加、删除、修改管理。
1.员工医保管理主页面,通过员工姓名可以快速查询医保信息。界面对应的磁盘文件为servlet/MedicareServlet?method=findAllMedicare,界面设计如图5.15所示:
图5.15员工医保管理主页面
添加员工医保管理页面
5.4员工模块的设计和实现
5.4.1 员工子系统主页面模块
员工用户登录系统后进入员工的主页面。对应的磁盘文件为pages/sy.jsp,登录模块的页面设计如图5.16所示:
图5.16 员工子系统主页面
5.4.2 员工工资模块
员工查看个人的工资信息。对应的磁盘文件为servlet/LaborageServlet?method=findMyLaborage,模块的页面设计如图5.17所示:
图5.17 员工工资页面
5.4.3 员工考核模块
员工查看个人的考核信息。对应的磁盘文件为servlet/AssessServlet?method=findMyAssess,模块的页面设计如图5.18所示:
图5.18 员工考核页面
5.4.4员工考勤模块
员工查看个人的考勤信息。对应的磁盘文件为servlet/CheckedServlet?method=findMyChecked,模块的页面设计如图5.19所示:
图5.19 员工考勤页面
5.4.5员工医保模块
员工查看个人的医保缴费信息。对应的磁盘文件为servlet/MedicareServlet?method=findMyMedicare,模块的页面设计如图5.20所示:
图5.20 员工医保页面
5.4.6修改密码模块
修改密码界面用于修改当前登录系统用户的密码。为防止密码被其他人修改,在修改新密码时要求输入原密码。对应的磁盘文件为servlet/EmployeeServlet?method=updatePasswordPage,模块的页面设计如图5.21所示:
图5.21 修改密码页面
import cn.lnj.project.car.data.User;
import cn.lnj.project.car.service.AdminService;
import cn.lnj.project.car.service.UserService;
import cn.lnj.project.car.util.SaveImages;
import cn.lnj.project.car.util.SendMail;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* 用户的控制层
* @author 刘乃杰
*/
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private SendMail sendMail;
@Autowired
private SaveImages saveImages;
@Autowired
private AdminService adminService;
/**
* 新建用户
* @param email 邮箱
* @param userName 用户昵称
* @param userPassword 用户密码
* @param response
*/
@RequestMapping(value = "/insert" , method = RequestMethod.POST )
@ResponseBody()
public void insert(@RequestParam String email, String userName, String userPassword, HttpServletResponse response){
if( !("".equals(email))&& !("".equals(userName)) && !("".equals(userPassword)) ){
User user = new User();
user.setUserId(UUID.randomUUID().toString());
user.setUserCount(email);
user.setUserName(userName);
user.setUserEmail(email);
user.setUserPassword(userPassword);
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
user.setUserRegistration(dateString);
user.setUserImage("default.png");
userService.insertUser(user);
sendMail.active(email,user.getUserId());
}
}
/**
* 查询全部用户
* @return 全部用户的javaBean
*/
@RequestMapping(value = "/all" , method = RequestMethod.GET)
@ResponseBody()
public List
return userService.selectAllUser();
}
/**
* 根据id查询用户
* @param userId 用户的id
* @return 一个用户的javaBean
*/
@RequestMapping(value = "/id", method = RequestMethod.GET)
@ResponseBody()
public JSONObject selectUserById(@RequestParam String userId){
return userService.selectById(userId);
}
/**
* 登录、注册检查
* 前台表单的name值不同,可据此改变查询条件,也可改变返回内容
* @param name 表单name值
* @param param 表单输入值
* @return 校验结果和显示文字
*/
@RequestMapping( value = "/check",method = RequestMethod.GET)
@ResponseBody()
public JSONObject loginRegistCheck(@RequestParam String name,String param){
return userService.check(name,param);
}
/**
* 登录时密码校验
* @param userCount 用户登录账号
* @param password 用户密码
* @return
*/
@RequestMapping( value = "/checkPassword",method = RequestMethod.GET)
@ResponseBody()
public JSONObject checkPassword(@RequestParam String userCount,String password){
return userService.checkPassword(userCount,password);
}
/**
* 用户通过邮件激活账户
* @param userId 用户id
*/
@RequestMapping(value = "/active",method = RequestMethod.GET)
@ResponseBody()
public JSONObject activeCount(@RequestParam String userId){
return userService.activeCount(userId);
}
/**
* 登录时检查用户等级,分别跳转到不同页面
* @param userCount 用户账号
* @return level 用户等级 0 用户,1 管理员,2 超级管理员
* 当为管理员时 还返还 该管理员所在商家的信息
*/
@RequestMapping(value = "/login",method = RequestMethod.POST)
@ResponseBody
public JSONObject login(@RequestParam String userCount){
return userService.checkAdmin(userCount);
}
/**
* 用户更新密码
* @param userId 用户id
* @param userPassword 新密码
*/
@RequestMapping(value = "/updatePassword",method = RequestMethod.POST)
@ResponseBody
public void updatePassword(@RequestParam String userId,String userPassword){
userService.updatePassword(userId,userPassword);
}
@RequestMapping(value = "/updateName",method = RequestMethod.GET)
@ResponseBody
public void updateUserName(@RequestParam String userId,String userName){
User user=new User();
user.setUserId(userId);
user.setUserName(userName);
userService.updateUser(user);
}
/**
* 输入框自动提示
* @param keyword 输入的关键字
* @return
*/
@RequestMapping(value = "/autoComplete",method = RequestMethod.GET)
@ResponseBody
public JSONArray autoComplete(@RequestParam String keyword){
return userService.autoComplete(keyword);
}
/**
* 设置管理员
* @param userCount 用户账号
* @param shopName 商家名称
* @return
*/
@RequestMapping(value = "/setAdmin",method = RequestMethod.GET)
@ResponseBody
public JSONObject setAdmin(@RequestParam String userCount,String shopName){
return userService.setAdmin(userCount,shopName);
}
/**
* 根据用户id查询商家名称
* @param userId 用户id
* @return
*/
@RequestMapping(value = "/selectShopNameByUserId",method = RequestMethod.GET,produces="text/html;charset=UTF-8;")
@ResponseBody
public String selectShopNameByUserId(@RequestParam String userId){
return userService.selectShopNameByUserId(userId);
}
/**
* 用户更换头像
* @param userImage 用户头像
* @param userId 用户id
* @param request
* @return
*/
@RequestMapping(value = "saveUserImage",method = RequestMethod.POST,produces="text/html;charset=UTF-8;")
@ResponseBody
public String saveUserImage(@RequestParam("userImage") MultipartFile userImage,@RequestParam("userId") String userId, HttpServletRequest request){
String imageName = UUID.randomUUID().toString();
saveImages.saveImage(userImage,imageName,request);
userService.updateImage(imageName+".png",userId);
return imageName+".png";
}
/**
* 删除管理员
* @param ids 用户id,通过“,”拼接
*/
@RequestMapping(value = "delete",method = RequestMethod.GET)
@ResponseBody
public void deleteAdmin(@RequestParam String ids){
String[] id = ids.split(",");
for (String content:id) {
userService.deleteAdmin(content);
adminService.deleteAdmin(content);
}
}
}
代码已经上传github,下载地址: https://github.com/21503882/personnel-manage