package org.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.excel.utils.ExcelUtil; import org.ruoyi.common.log.annotation.Log; import org.ruoyi.common.log.enums.BusinessType; import org.ruoyi.common.web.core.BaseController; import org.ruoyi.core.page.PageQuery; import org.ruoyi.core.page.TableDataInfo; import org.ruoyi.system.domain.bo.SysPostBo; import org.ruoyi.system.domain.vo.SysPostVo; import org.ruoyi.system.service.ISysPostService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 岗位信息操作处理 * * @author Lion Li */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/system/post") public class SysPostController extends BaseController { private final ISysPostService postService; /** * 获取岗位列表 */ @SaCheckPermission("system:post:list") @GetMapping("/list") public TableDataInfo list(SysPostBo post, PageQuery pageQuery) { return postService.selectPagePostList(post, pageQuery); } /** * 导出岗位列表 */ @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:post:export") @PostMapping("/export") public void export(SysPostBo post, HttpServletResponse response) { List list = postService.selectPostList(post); ExcelUtil.exportExcel(list, "岗位数据", SysPostVo.class, response); } /** * 根据岗位编号获取详细信息 * * @param postId 岗位ID */ @SaCheckPermission("system:post:query") @GetMapping(value = "/{postId}") public R getInfo(@PathVariable Long postId) { return R.ok(postService.selectPostById(postId)); } /** * 新增岗位 */ @SaCheckPermission("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysPostBo post) { if (!postService.checkPostNameUnique(post)) { return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (!postService.checkPostCodeUnique(post)) { return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.insertPost(post)); } /** * 修改岗位 */ @SaCheckPermission("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody SysPostBo post) { if (!postService.checkPostNameUnique(post)) { return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); } else if (!postService.checkPostCodeUnique(post)) { return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); } return toAjax(postService.updatePost(post)); } /** * 删除岗位 * * @param postIds 岗位ID串 */ @SaCheckPermission("system:post:remove") @Log(title = "岗位管理", businessType = BusinessType.DELETE) @DeleteMapping("/{postIds}") public R remove(@PathVariable Long[] postIds) { return toAjax(postService.deletePostByIds(postIds)); } /** * 获取岗位选择框列表 */ @GetMapping("/optionselect") public R> optionselect() { List posts = postService.selectPostAll(); return R.ok(posts); } }