当前位置: 首页 > ops >正文

人事管理系统8

员工管理(分页查询、查看详情页、修改):

1. 分页查询
Staff.java 中加入部门名和岗位名两个属性以及对应的 get set 方法。这两个属性没有数据库字段对应, 仅供前端显示用:
private String departname; //部门名属性没有数据库字段对应,仅供前端显示用
private String postname; //岗位名属性没有数据库字段对应,仅供前端显示用
加入前端页面 staff-list.html ,设置 StaffController.java
@GetMapping("/staff")
public String list() {
return "admin/staff-list";
}
StaffController.java
@GetMapping("/staff/listall")
@ResponseBody
public Result listAll(@RequestParam Map<String, Object> params) {
int page = Integer.parseInt(params.get("page").toString());
int limit = Integer.parseInt(params.get("limit").toString());
int start = (page - 1) * limit;
return staffService.getStaffsList(start, limit);
}
StaffMapper.java
List<Staff> findStaffList(@Param("start") int start, @Param("limit") int
limit);
int getTotalStaffs();
StaffMapper.xml
<select id="findStaffList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from staff
order by id desc
<if test="start!=null and limit!=null">
limit #{start},#{limit}
</if>
</select>
<select id="getTotalStaffs" resultType="int">
select count(*) from staff
</select>
StaffService.java
Result getStaffsList(int start, int limit);
StaffServiceImpl.java
public Result getStaffsList(int start, int limit) {
List<Staff> staffList = staffMapper.findStaffList(start, limit); //分页
查询到对应页的员工信息列表
for (Staff s : staffList) { //依次遍历员工列表
Department department =
departmentMapper.selectByPrimaryKey(s.getDepartId());
//根据每个员工的部门号确定对应的部门
s.setDepartname(department.getDname());
//把该部门的部门名设置到该员工的部门名属性
Post post = postMapper.selectByPrimaryKey(s.getPostId());
//根据每个员工的岗位号确定对应的岗位
s.setPostname(post.getPname());
//把该岗位的岗位名设置到该员工的岗位名属性
if (s.getEnddate().before(new Date())) { //如果试用期结束日期在当前日期
之前
s.setStatus("转正");
} else {
s.setStatus("试用期");
}
staffMapper.updateByPrimaryKeySelective(s);
}
Result result = new Result();
result.setCode(0);
result.setMsg("查询成功!");
result.setCount(staffMapper.getTotalStaffs());
result.setData(staffList);
return result;
}
2. 查看详情页
修改 Staff.java 中所有时间属性的格式:
import java.sql.Date; //时间类的包
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date birthday;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date entrydate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startdate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date enddate;
StaffService.java
Staff getStaffById(Integer id);
StaffServiceImpl.java
@Override
public Staff getStaffById(Integer id) {
return staffMapper.selectByPrimaryKey(id);
}
StaffController.java
@GetMapping("/staff/view")
public String staffView(@RequestParam Integer id, Model model) {
Staff staff = staffService.getStaffById(id); //查找对应id号的员工信息
Department department =
departmentService.getDepartmentById(staff.getDepartId());
//根据该员工的部门号确定对应的部门
staff.setDepartname(department.getDname());
//把该部门的部门名设置到该员工的部门名属性
Post post = postService.getPostById(staff.getPostId());
//根据该员工的岗位号确定对应的岗位
staff.setPostname(post.getPname());
//把该岗位的岗位名设置到该员工的岗位名属性
model.addAttribute("staffInfo", staff);
return "admin/staff-view";
}
3.
DepartmentService.java
List<Department> getDepartmentList();
DepartmentServiceImpl.java
@Override
public List<Department> getDepartmentList() {
return
departmentMapper.findDepartmentList(0,departmentMapper.getTotalDepartments());
}
PostService.java
List<Post> getPostsList();
PostServiceImpl.java
@Override
public List<Post> getPostsList() {
return postMapper.findPostList(0, postMapper.getTotalPosts());
}
StaffController.java 中显示被改员工信息(后端往前端送数据):
@GetMapping("/staff/edit")
public String gotostaffEdit(@RequestParam Integer id, Model model) {
Staff staff = staffService.getStaffById(id);
Department department =
departmentService.getDepartmentById(staff.getDepartId());
staff.setDepartname(department.getDname()); //部门名
Post post = postService.getPostById(staff.getPostId());
staff.setPostname(post.getPname()); //岗位名
model.addAttribute("staffInfo", staff);
String sex[] = {"男", "女"};
String nation[] = {"汉族", "蒙古族", "回族", "藏族", "维吾尔族", "苗族", "彝
族", "壮族", "布依族", "朝鲜族", "满族", "侗族", "瑶族", "白族", "土家族",
"哈尼族", "哈萨克族", "傣族", "黎族", "傈僳族", "佤族", "畲族", "高山
族", "拉祜族", "水族", "东乡族", "纳西族", "景颇族", "柯尔克孜族",
"土族", "达斡尔族", "仫佬族", "羌族", "布朗族", "撒拉族", "毛南族", "仡
佬族", "锡伯族", "阿昌族", "普米族", "塔吉克族", "怒族", "乌孜别克族",
"俄罗斯族", "鄂温克族", "德昂族", "保安族", "裕固族", "京族", "塔塔尔
族", "独龙族", "鄂伦春族", "赫哲族", "门巴族", "珞巴族", "基诺族"};
String education[] = {"高中及以下", "大专", "本科", "研究生"};
String degree[] = {"无学位", "学士", "双学士", "硕士", "博士"};
model.addAttribute("sex", sex); //性别列表
model.addAttribute("nation", nation); //民族列表
model.addAttribute("education", education); //学历列表
model.addAttribute("degree", degree); //学位列表
model.addAttribute("departs", departmentService.getDepartmentList());
//部门列表
model.addAttribute("posts", postService.getPostsList()); //岗位列表
return "admin/staff-edit";
}
StaffService.java
Result saveStaff(Staff staff);
StaffServiceImpl.java
@Override
public Result saveStaff(Staff staff) {
Result result = new Result();
if (staffMapper.updateByPrimaryKeySelective(staff)) {
result.setCode(0);
result.setMsg("修改成功!");
} else {
result.setCode(1);
result.setMsg("修改失败!");
}
return result;
}
StaffController.java 输入修改信息后提交(前端往后端送数据):
@PostMapping("/staff/edit")
@ResponseBody
public Result saveStaff(@RequestBody Map<String, Object> map) throws
ParseException {
Staff staff =
staffService.getStaffById(Integer.parseInt(map.get("id").toString()));
staff.setSname(map.get("sname").toString());
staff.setSex(map.get("sex").toString());
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = fmt.parse(map.get("birthday").toString());
java.sql.Date dayDateSql = new java.sql.Date(date.getTime());
staff.setBirthday(dayDateSql);
staff.setSid(map.get("sid").toString());
staff.setDepartId(Integer.parseInt(map.get("depart_id").toString()));
staff.setPostId(Integer.parseInt(map.get("post_id").toString()));
date = fmt.parse(map.get("entrydate").toString());
dayDateSql = new java.sql.Date(date.getTime());
staff.setEntrydate(dayDateSql);
staff.setNation(map.get("nation").toString());
staff.setNativeplace(map.get("nativeplace").toString());
staff.setStel(map.get("stel").toString());
staff.setSemail(map.get("semail").toString());
staff.setEducation(map.get("education").toString());
staff.setDegree(map.get("degree").toString());
staff.setUniversity(map.get("university").toString());
staff.setMajor(map.get("major").toString());
date = fmt.parse(map.get("startdate").toString());
dayDateSql = new java.sql.Date(date.getTime());
staff.setStartdate(dayDateSql);
date = fmt.parse(map.get("enddate").toString());
dayDateSql = new java.sql.Date(date.getTime());
staff.setEnddate(dayDateSql);
if (staff.getEnddate().before(new Date())) {
staff.setStatus("转正");
} else {
staff.setStatus("试用期");
}
return staffService.saveStaff(staff);
}

http://www.xdnf.cn/news/5858.html

相关文章:

  • Redis 主从复制的实现原理是什么?
  • 【Qt】pro工程文件转CMakeLists文件
  • 自动化测试基础知识详解
  • 无人机避障——如何利用MinumSnap进行对速度、加速度进行优化的轨迹生成(附C++python代码)
  • 如何通过 Windows 图形界面找到 WSL 主目录
  • 【Ansys Icepak】带翅片的散热器
  • C++23 views::zip 和 views::zip_transform (P2321R2) 深入解析
  • 嵌入式开发中 C++ 跨平台开发经验与解决方案
  • DAY 24 元组和OS模块
  • 思极地图使用
  • 《算法导论(第4版)》阅读笔记:p39-p48
  • 基于STM32、HAL库的ADAU1701JSTZ音频接口芯片驱动程序设计
  • 【23种设计模式】模式背后运用的技术对照
  • 【Android】下拉刷新组件Swiperefreshlayout
  • 将 swagger 接口导入 apifox 查看及调试
  • android 权限配置
  • ThingsBoard(TODO)
  • 无人机失联保护模块技术解析!
  • 汽车工厂数字孪生实时监控技术从数据采集到三维驱动实现
  • 【神经网络与深度学习】通俗易懂的介绍非凸优化问题、梯度消失、梯度爆炸、模型的收敛、模型的发散
  • 【AI News | 20250513】每日AI进展
  • 贝叶斯优化Transformer融合支持向量机多变量时间序列预测,Matlab实现
  • 遨游卫星电话与普通手机有什么区别?
  • 【学习笔记】计算机操作系统(三)—— 处理机调度与死锁
  • 深入探讨 Java 性能术语与优化实践
  • TDengine 做为 Spark 数据源
  • 鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能
  • 【redis】CacheAside的数据不一致性问题
  • 【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区
  • MES管理系统构建智能制造时代下的全面质量管理体系