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

人事管理系统7

部门管理

删:

修改 DepartmentMapper.java 中已自动生成方法的返回类型:
boolean deleteByPrimaryKey(Integer id);
DepartmentService.java
Result deleteById(Integer id);
DepartmentServiceImpl.java
@Override
public Result deleteById(Integer id) {
Result result = new Result();
if(departmentMapper.deleteByPrimaryKey(id)){
result.setCode(0);
result.setMsg("删除成功!");
}else{
result.setCode(1);
result.setMsg("删除失败!");
}
return result;
}
DepartmentController.java
@PostMapping("/department/delete")
@ResponseBody
public Result deleteDepartment(@RequestParam("id") Integer id) {
return departmentService.deleteById(id);
}

改:

1)显示被改部门信息:

DepartmentController.java

@GetMapping("/department/edit")
public String editDepartment(@RequestParam(value = "id", required = false)
Integer id, Model model) {
//前端不传参数id的时候,会将参数置为null
if (id != null) {
Department department = departmentService.getDepartmentById(id);
model.addAttribute("departmentInfo", department);
}
return "admin/department-edit";
}
/*Model是一个接口,通过使用Model,可以在控制器方法中添加数据,这些数据会自动传递到视图中,并在
视图中通过模型属性的名字进行访问*/

DepartmentService.java

Department getDepartmentById(Integer id);
DepartmentServiceImpl.java
@Override
public Department getDepartmentById(Integer id) {
return departmentMapper.selectByPrimaryKey(id);
}
2 )输入修改信息后提交:
修改 DepartmentMapper.java 中已自动生成方法的返回类型:
boolean updateByPrimaryKeySelective(Department record);
DepartmentService.java
Result saveDepartment(Department department);
DepartmentServiceImpl.java
@Override
public Result saveDepartment(Department department) {
Result result = new Result();
if(departmentMapper.updateByPrimaryKeySelective(department)){
result.setCode(0);
result.setMsg("修改成功!");
}else{
result.setCode(1);
result.setMsg("修改失败!");
}
return result;
}
DepartmentController.java
@PostMapping("/department/edit")
@ResponseBody
public Result editDepartment(@RequestParam Map<String, Object> map) {
Department department =
departmentService.getDepartmentById(Integer.parseInt(map.get("id").toString()));
department.setDname(map.get("dname").toString());
department.setDtel(map.get("dtel").toString());
department.setDescription(map.get("description").toString());
return departmentService.saveDepartment(department);
}

岗位管理:

导入或新建数据库表 post (岗位表):
重新配置 Mybatis-generator 后自动生成数据库表 post (岗位表)对应的 pojo dao mapper.xml
1. 分页查询
加入前端页面 post-list.html ,设置 PostController.java
@GetMapping("/post")
public String list() {
return "admin/post-list";
}
PostController.java
@GetMapping("/post/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 postService.getPostsList(start, limit);
}
PostMapper.java
List<Post> findPostList(int start, int limit);
int getTotalPosts();
PostMapper.xml
<select id="findPostList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from post
order by id desc
<if test="start!=null and limit!=null">
limit #{start},#{limit}
</if>
</select>
<select id="getTotalPosts" resultType="int">
select count(*) from post
</select>
PostService.java:
Result getPostsList(int start, int limit);
PostServiceImpl.java
public Result getPostsList(int start, int limit) {
Result result = new Result();
result.setCode(0);
result.setMsg("查询成功!");
result.setCount(postMapper.getTotalPosts());
result.setData(postMapper.findPostList(start, limit));
return result;
}
2. 模糊查询
PostMapper.xml
<select id="findPostListByName" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from post
where pname like '%${pname}%'
order by id desc
<if test="start!=null and limit!=null">
limit #{start},#{limit}
</if>
</select>
<select id="getTotalPostsByName" resultType="int">
select count(*) from post
where pname like '%${pname}%'
</select>
PostMapper.java
List<Post> findPostListByName(String pname, int start, int limit);
int getTotalPostsByName(String pname);
PostService.java
Result getPostsListByName(String pname, int start, int limit);
PostServiceImpl.java:
public Result getPostsListByName(String pname, int start, int limit) {
Result result = new Result();
result.setCode(0);
result.setMsg("查询成功!");
result.setCount(postMapper.getTotalPostsByName(pname));
result.setData(postMapper.findPostListByName(pname, start, limit));
return result;
}
PostController.java
@GetMapping("/post/listbyname")
@ResponseBody
public Result listbyname(@RequestParam Map<String, String> map) {
int page = Integer.parseInt(map.get("page").toString());
int limit = Integer.parseInt(map.get("limit").toString());
String pname = map.get("pname").toString();
int start = (page-1) * limit;
return postService.getPostsListByName(pname, start, limit);
}
3.
修改 PostMapper.java 中已自动生成方法的返回类型:
boolean deleteByPrimaryKey(Integer id);
PostService.java
Result deleteById(Integer id);
PostServiceImpl.java
@Override
public Result deleteById(Integer id) {
Result result = new Result();
if(postMapper.deleteByPrimaryKey(id)){
result.setMsg("删除成功!");
}else{
result.setMsg("删除失败!");
}
return result;
}
PostController.java
@PostMapping("/post/delete")
@ResponseBody
public Result deletePost(@RequestParam("id") Integer id) {
return postService.deleteById(id);
}
4.
为保证岗位名称不重复,对 pname 字段设置唯一性约束:

PostController.java
@GetMapping("/post/add")
public String gotoPostAdd() {
return "admin/post-add";
}
修改 PostMapper.java 中已自动生成方法的返回类型:
boolean insertSelective(Post record);
PostService.java
Result addPost(Post post);
PostServiceImpl.java
@Override
public Result addPost(Post post) {
Result result = new Result();
if (postMapper.insertSelective(post)) {
result.setCode(0);
result.setMsg("新建成功!");
} else {
result.setCode(1);
result.setMsg("新建失败!");
}
return result;
}
PostController.java
@PostMapping("/post/add")
@ResponseBody
public Result addPost(@RequestParam("pname") String pname,
@RequestParam("ptype") String ptype) {
Post post = new Post();
post.setPname(pname);
post.setPtype(ptype);
return postService.addPost(post);
}
5.
1 )显示被改岗位信息:
PostController.java
@GetMapping("/post/edit")
public String gotoPostEdit(@RequestParam(required = false) Integer id, Model
model) {
if (id != null) {
Post post = postService.getPostById(id);
model.addAttribute("postInfo", post);
String ptype[] = {"管理", "技术", "营销", "市场"};
model.addAttribute("ptype", ptype);
}
return "admin/post-edit";
}
PostService.java
Post getPostById(Integer id);
PostServiceImpl.java
@Override
public Post getPostById(Integer id) {
return postMapper.selectByPrimaryKey(id);
}
2 )输入修改信息后提交:
修改 PostMapper.java 中已自动生成方法的返回类型:
boolean updateByPrimaryKeySelective(Post record);
PostService.java
Result savePost(Post post);
PostServiceImpl.java
@Override
public Result savePost(Post post) {
Result result = new Result();
if(postMapper.updateByPrimaryKeySelective(post)){
result.setCode(0);
result.setMsg("修改成功!");
}else{
result.setCode(1);
result.setMsg("修改失败!");
}
return result;
}
PostController.java
@PostMapping("/post/edit")
@ResponseBody
public Result savePost(@RequestParam Map<String, Object> map) {
Post post =
postService.getPostById(Integer.parseInt(map.get("id").toString()));
post.setPname(map.get("pname").toString());
post.setPtype(map.get("ptype").toString());
return postService.savePost(post);
}

创建员工表staff之后的岗位查询

岗位表 post 中的 organization 编制人数字段默认值为 0 ,需查询员工表 post_id 字段,重新赋值后列表显示。
创建或导入员工表 staff ,并设置两个外键索引:
PS :外键用来关联两个表,索引用来加速表查询; MySQL 会自动为所有表的主键进行索引,而外键字段则必须由用户进行明确的索引。)

重新配置 Mybatis-generator 后自动生成数据库表 staff (员工表)对应的 pojo dao mapper.xml
修改 PostServiceImpl.java
public Result getPostsList(int start, int limit) {
Result result = new Result();
result.setCode(0);
result.setMsg("查询成功!");
result.setCount(postMapper.getTotalPosts());
List<Post> postList = postMapper.findPostList(start, limit);
for (Post post : postList) { //依次取查询到的每个岗位
int postTotal = staffMapper.getSamePostTotal(post.getId());
//把岗位号拿到员工表staff去查询该岗位号的总记录数
post.setOrganization(postTotal); // 把该岗位的总记录数存入“编制人数”属性
postMapper.updateByPrimaryKeySelective(post); //把该岗位信息在数据库中
更新
}
result.setData(postList);
return result;
}
StaffMapper.java
int getSamePostTotal(Integer postId);
StaffMapper.xml
<select id="getSamePostTotal" resultType="int">
select count(*) from staff where post_id = #{postId}
</select>
修改 PostMapper.java 中已自动生成方法的返回类型:
boolean updateByPrimaryKeySelective(Post record);

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

相关文章:

  • 【Python 文件I/O】
  • 【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】
  • 【AI】Ubuntu 22.04 evalscope 模型评测 Qwen3-4B-FP8
  • 上传下载接口
  • Android第六次面试总结之Java设计模式(二)
  • vue3+ts+自定义指令,生产页面水印
  • 云计算训练营笔记day02(Linux、计算机网络、进制)
  • 论文速读《Embodied-R: 基于强化学习激活预训练模型具身空间推理能力》
  • STL之stackqueue
  • 【Vue.js】 插槽通信——具名插槽通信
  • 大模型在宫颈癌诊疗全流程预测与应用研究报告
  • 免费视频压缩软件
  • Paramiko 性能优化详解
  • 神经网络之互动练习详解:从基础到拟合非线性数据
  • 【回眸】QAC使用指南——导出 Dashboard Report个性化定制Report
  • NLP中词嵌入的几个方法介绍快速入门视频推荐
  • Adobe卸载清理工具Creative Cloud Cleaner Tool下载
  • C# Winforms 本地化 多语言支持 字符串资源
  • 【商城系统中的多商户和单商户模式差异】
  • 第22节:深度学习基础-损失函数介绍
  • 神经网络:节点、隐藏层与非线性学习
  • 【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题
  • Suno v4.5:AI 音乐创作的新突破
  • PHP分页显示数据,在phpMyadmin中添加数据
  • window 显示驱动开发-线程同步和 TDR
  • 【Docker系列】使用格式化输出与排序技巧
  • 如何对 Redis 进行水平扩展和垂直扩展以应对微服务流量的增长?
  • 【ARM】DS-试用授权离线激活
  • 动手学深度学习12.1. 编译器和解释器-笔记练习(PyTorch)
  • Kubernetes环境部署OwnCloud网盘服务