需求:
一、用户管理
1、用户列表
列表字段:姓名、登录名、性别、手机号、薪资、岗位、角色
列表按钮:编辑、启用、停用、重置密码
搜索条件:用户名、状态(启用停用)
顶部按钮:新增用户
导入、导出
二、考勤管理
1、考勤打卡
按钮:上班打卡(8点-8点半)、下班打卡(18点-18点30)
迟到扣50,早退扣100,旷工200
2、考勤列表
列表字段:姓名、打卡时间、打卡状态(正常、迟到、早退)
搜索条件:姓名、打卡状态
三:流程管理
1、流程管理
列表字段:姓名、类型、意见、审核状态
按钮:查看详情
2、新建流程
字段:类型(请假、辞职、报销)开始时候(请假)、结束时间(请假)、理由、天数(请假时显示)、金额(报销时显示)
3、审核流程
列表字段:姓名、类型、意见、审核状态
按钮:审核(是否通过、意见)
4、我的流程
同流程列表
四、薪资管理
1、我的工资
列表字段:姓名、迟到扣费、旷工扣费、早退扣费、奖金、基本工资、月份
2、工资详细
生成本月工资,字段同上,多一个审批按钮,可以输入奖金
3、岗位薪资
列表字段:岗位、薪资
按钮:新增、编辑、删除
五、个人信息管理
姓名、地址、电话、密码可以修改
权限相关
2个角色,管理员和员工
员工权限:考勤管理-考勤打卡、考勤列表
流程管理-我的流程、新建流程
薪资管理-我的工资
个人信息管理
部分逻辑和类展示
接口展示
代码展示
public R findPageStaffByStatus(Integer status, Long current, Long size){QueryWrapper<Staff> queryWrapper = new QueryWrapper<>();queryWrapper.eq("status", status);List<Staff> staff = staffMapper.selectList(queryWrapper);Long Assize = Math.min(staff.size(), size);if (current <= (staff.size() / size)+1){currents = current;}Page<PageStaff> page = pageStaffMapper.selectPageAndSalaryByStatus(new Page<>(currents, Assize), status);if (size > staff.size()){return R.ok(page, "输入的大小太大,显示所有信息");}if (current > (staff.size() / size)+1){return R.failed("输入的页码太大,重新输入");}return page.getTotal() == 0 ? R.failed("无信息") : R.ok(page, "返回信息");}@Overridepublic R findPageStaffByName(String name, Long current, Long size){QueryWrapper<Staff> queryWrapper = new QueryWrapper<>();queryWrapper.eq("name", name);List<Staff> staff = staffMapper.selectList(queryWrapper);Long Assize = Math.min(staff.size(), size);if (current <= (staff.size() / size)+1){currents = current;}Page<PageStaff> page = pageStaffMapper.selectPageAndSalaryByName(new Page<>(currents, Assize),name);if (size > staff.size()){return R.ok(page, "输入的大小太大,显示所有信息");}if (current > (staff.size() / size)+1){return R.failed("输入的页码太大,重新输入");}return page.getTotal() == 0 ? R.failed("无信息") : R.ok(page, "返回信息");}@Overridepublic Integer updateStaffStatus(Staff staff){return staffMapper.updateById(staff);}@Overridepublic R editStaff(Staff staff1, Integer salary){if (staff1.getJobId() == null){return R.failed("员工工号不能为空!");}// 修改salaryQueryWrapper<Salary>queryWrapper=new QueryWrapper<>();queryWrapper.eq("userid",staff1.getJobId());Salary salary1 = salaryMapper.selectOne(queryWrapper);if (salary1==null){return R.failed("此员工不存在");}salary1.setBascimoney(salary);salary1.setName(staff1.getName());salary1.setPost(staff1.getPost());salaryMapper.updateById(salary1);// 修改员工信息if (staffMapper.selectById(staff1.getJobId()) == null){return R.failed("员工表此员工不存在");}staffMapper.updateById(staff1);return R.ok("修改成功");}@Overridepublic Integer updateStaff2(Staff staff) {return staffMapper.updateById(staff);}
功能展示
有需要的可以来私信我