mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	完成岗位的迁移
This commit is contained in:
		| @ -1,130 +0,0 @@ | |||||||
| package com.ruoyi.web.controller.system; |  | ||||||
|  |  | ||||||
| import java.util.List; |  | ||||||
| import org.springframework.beans.factory.annotation.Autowired; |  | ||||||
| import org.springframework.security.access.prepost.PreAuthorize; |  | ||||||
| import org.springframework.validation.annotation.Validated; |  | ||||||
| import org.springframework.web.bind.annotation.DeleteMapping; |  | ||||||
| import org.springframework.web.bind.annotation.GetMapping; |  | ||||||
| import org.springframework.web.bind.annotation.PathVariable; |  | ||||||
| import org.springframework.web.bind.annotation.PostMapping; |  | ||||||
| import org.springframework.web.bind.annotation.PutMapping; |  | ||||||
| import org.springframework.web.bind.annotation.RequestBody; |  | ||||||
| import org.springframework.web.bind.annotation.RequestMapping; |  | ||||||
| import org.springframework.web.bind.annotation.RestController; |  | ||||||
| import com.ruoyi.common.annotation.Log; |  | ||||||
| import com.ruoyi.common.constant.UserConstants; |  | ||||||
| import com.ruoyi.common.core.controller.BaseController; |  | ||||||
| import com.ruoyi.common.core.domain.AjaxResult; |  | ||||||
| import com.ruoyi.common.core.page.TableDataInfo; |  | ||||||
| import com.ruoyi.common.enums.BusinessType; |  | ||||||
| import com.ruoyi.common.utils.SecurityUtils; |  | ||||||
| import com.ruoyi.common.utils.poi.ExcelUtil; |  | ||||||
| import com.ruoyi.system.domain.SysPost; |  | ||||||
| import com.ruoyi.system.service.ISysPostService; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * 岗位信息操作处理 |  | ||||||
|  *  |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
| @RestController |  | ||||||
| @RequestMapping("/system/post") |  | ||||||
| public class SysPostController extends BaseController |  | ||||||
| { |  | ||||||
|     @Autowired |  | ||||||
|     private ISysPostService postService; |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 获取岗位列表 |  | ||||||
|      */ |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:list')") |  | ||||||
|     @GetMapping("/list") |  | ||||||
|     public TableDataInfo list(SysPost post) |  | ||||||
|     { |  | ||||||
|         startPage(); |  | ||||||
|         List<SysPost> list = postService.selectPostList(post); |  | ||||||
|         return getDataTable(list); |  | ||||||
|     } |  | ||||||
|      |  | ||||||
|     @Log(title = "岗位管理", businessType = BusinessType.EXPORT) |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:export')") |  | ||||||
|     @GetMapping("/export") |  | ||||||
|     public AjaxResult export(SysPost post) |  | ||||||
|     { |  | ||||||
|         List<SysPost> list = postService.selectPostList(post); |  | ||||||
|         ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class); |  | ||||||
|         return util.exportExcel(list, "岗位数据"); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 根据岗位编号获取详细信息 |  | ||||||
|      */ |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:query')") |  | ||||||
|     @GetMapping(value = "/{postId}") |  | ||||||
|     public AjaxResult getInfo(@PathVariable Long postId) |  | ||||||
|     { |  | ||||||
|         return AjaxResult.success(postService.selectPostById(postId)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 新增岗位 |  | ||||||
|      */ |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:add')") |  | ||||||
|     @Log(title = "岗位管理", businessType = BusinessType.INSERT) |  | ||||||
|     @PostMapping |  | ||||||
|     public AjaxResult add(@Validated @RequestBody SysPost post) |  | ||||||
|     { |  | ||||||
|         if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) |  | ||||||
|         { |  | ||||||
|             return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); |  | ||||||
|         } |  | ||||||
|         else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) |  | ||||||
|         { |  | ||||||
|             return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); |  | ||||||
|         } |  | ||||||
|         post.setCreateBy(SecurityUtils.getUsername()); |  | ||||||
|         return toAjax(postService.insertPost(post)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 修改岗位 |  | ||||||
|      */ |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:edit')") |  | ||||||
|     @Log(title = "岗位管理", businessType = BusinessType.UPDATE) |  | ||||||
|     @PutMapping |  | ||||||
|     public AjaxResult edit(@Validated @RequestBody SysPost post) |  | ||||||
|     { |  | ||||||
|         if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) |  | ||||||
|         { |  | ||||||
|             return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); |  | ||||||
|         } |  | ||||||
|         else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post))) |  | ||||||
|         { |  | ||||||
|             return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); |  | ||||||
|         } |  | ||||||
|         post.setUpdateBy(SecurityUtils.getUsername()); |  | ||||||
|         return toAjax(postService.updatePost(post)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 删除岗位 |  | ||||||
|      */ |  | ||||||
|     @PreAuthorize("@ss.hasPermi('system:post:remove')") |  | ||||||
|     @Log(title = "岗位管理", businessType = BusinessType.DELETE) |  | ||||||
|     @DeleteMapping("/{postIds}") |  | ||||||
|     public AjaxResult remove(@PathVariable Long[] postIds) |  | ||||||
|     { |  | ||||||
|         return toAjax(postService.deletePostByIds(postIds)); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 获取岗位选择框列表 |  | ||||||
|      */ |  | ||||||
|     @GetMapping("/optionselect") |  | ||||||
|     public AjaxResult optionselect() |  | ||||||
|     { |  | ||||||
|         List<SysPost> posts = postService.selectPostAll(); |  | ||||||
|         return AjaxResult.success(posts); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @ -1,54 +0,0 @@ | |||||||
| package com.ruoyi.common.constant; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * 用户常量信息 |  | ||||||
|  * |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
| public class UserConstants |  | ||||||
| { |  | ||||||
|     /** |  | ||||||
|      * 平台内系统用户的唯一标志 |  | ||||||
|      */ |  | ||||||
|     public static final String SYS_USER = "SYS_USER"; |  | ||||||
|  |  | ||||||
|     /** 正常状态 */ |  | ||||||
|     public static final String NORMAL = "0"; |  | ||||||
|  |  | ||||||
|     /** 异常状态 */ |  | ||||||
|     public static final String EXCEPTION = "1"; |  | ||||||
|  |  | ||||||
|     /** 用户封禁状态 */ |  | ||||||
|     public static final String USER_DISABLE = "1"; |  | ||||||
|  |  | ||||||
|     /** 角色封禁状态 */ |  | ||||||
|     public static final String ROLE_DISABLE = "1"; |  | ||||||
|  |  | ||||||
|     /** 部门正常状态 */ |  | ||||||
|     public static final String DEPT_NORMAL = "0"; |  | ||||||
|  |  | ||||||
|     /** 部门停用状态 */ |  | ||||||
|     public static final String DEPT_DISABLE = "1"; |  | ||||||
|  |  | ||||||
|     /** 字典正常状态 */ |  | ||||||
|     public static final String DICT_NORMAL = "0"; |  | ||||||
|  |  | ||||||
|     /** 是否为系统默认(是) */ |  | ||||||
|     public static final String YES = "Y"; |  | ||||||
|  |  | ||||||
|     /** 是否菜单外链(是) */ |  | ||||||
|     public static final String YES_FRAME = "0"; |  | ||||||
|  |  | ||||||
|     /** 是否菜单外链(否) */ |  | ||||||
|     public static final String NO_FRAME = "1"; |  | ||||||
|  |  | ||||||
|     /** Layout组件标识 */ |  | ||||||
|     public final static String LAYOUT = "Layout"; |  | ||||||
|  |  | ||||||
|     /** ParentView组件标识 */ |  | ||||||
|     public final static String PARENT_VIEW = "ParentView"; |  | ||||||
|  |  | ||||||
|     /** 校验返回结果码 */ |  | ||||||
|     public final static String UNIQUE = "0"; |  | ||||||
|     public final static String NOT_UNIQUE = "1"; |  | ||||||
| } |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| package com.ruoyi.common.core.controller; |  | ||||||
|  |  | ||||||
| import java.beans.PropertyEditorSupport; |  | ||||||
| import java.util.Date; |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| import org.slf4j.Logger; |  | ||||||
| import org.slf4j.LoggerFactory; |  | ||||||
| import org.springframework.web.bind.WebDataBinder; |  | ||||||
| import org.springframework.web.bind.annotation.InitBinder; |  | ||||||
| import com.github.pagehelper.PageHelper; |  | ||||||
| import com.github.pagehelper.PageInfo; |  | ||||||
| import com.ruoyi.common.constant.HttpStatus; |  | ||||||
| import com.ruoyi.common.core.domain.AjaxResult; |  | ||||||
| import com.ruoyi.common.core.page.PageDomain; |  | ||||||
| import com.ruoyi.common.core.page.TableDataInfo; |  | ||||||
| import com.ruoyi.common.core.page.TableSupport; |  | ||||||
| import com.ruoyi.common.utils.DateUtils; |  | ||||||
| import com.ruoyi.common.utils.StringUtils; |  | ||||||
| import com.ruoyi.common.utils.sql.SqlUtil; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * web层通用数据处理 |  | ||||||
|  * |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
| public class BaseController { |  | ||||||
|     protected final Logger logger = LoggerFactory.getLogger(BaseController.class); |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * 将前台传递过来的日期格式的字符串,自动转化为Date类型 |  | ||||||
|      */ |  | ||||||
|     @InitBinder |  | ||||||
|     public void initBinder(WebDataBinder binder) { |  | ||||||
|         // Date 类型转换 |  | ||||||
|         binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { |  | ||||||
|             @Override |  | ||||||
|             public void setAsText(String text) { |  | ||||||
|                 setValue(DateUtils.parseDate(text)); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } |  | ||||||
| @ -1,36 +0,0 @@ | |||||||
| package com.ruoyi.common.enums; |  | ||||||
|  |  | ||||||
| import java.util.HashMap; |  | ||||||
| import java.util.Map; |  | ||||||
| import org.springframework.lang.Nullable; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * 请求方式 |  | ||||||
|  * |  | ||||||
|  * @author ruoyi |  | ||||||
|  */ |  | ||||||
| public enum HttpMethod |  | ||||||
| { |  | ||||||
|     GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE; |  | ||||||
|  |  | ||||||
|     private static final Map<String, HttpMethod> mappings = new HashMap<>(16); |  | ||||||
|  |  | ||||||
|     static |  | ||||||
|     { |  | ||||||
|         for (HttpMethod httpMethod : values()) |  | ||||||
|         { |  | ||||||
|             mappings.put(httpMethod.name(), httpMethod); |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Nullable |  | ||||||
|     public static HttpMethod resolve(@Nullable String method) |  | ||||||
|     { |  | ||||||
|         return (method != null ? mappings.get(method) : null); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     public boolean matches(String method) |  | ||||||
|     { |  | ||||||
|         return (this == resolve(method)); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @ -3,7 +3,7 @@ import request from '@/utils/request' | |||||||
| // 查询岗位列表 | // 查询岗位列表 | ||||||
| export function listPost(query) { | export function listPost(query) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/system/post/list', |     url: '/system/post/page', | ||||||
|     method: 'get', |     method: 'get', | ||||||
|     params: query |     params: query | ||||||
|   }) |   }) | ||||||
| @ -20,7 +20,7 @@ export function listSimplePosts() { | |||||||
| // 查询岗位详细 | // 查询岗位详细 | ||||||
| export function getPost(postId) { | export function getPost(postId) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/system/post/' + postId, |     url: '/system/post/get?id=' + postId, | ||||||
|     method: 'get' |     method: 'get' | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
| @ -28,7 +28,7 @@ export function getPost(postId) { | |||||||
| // 新增岗位 | // 新增岗位 | ||||||
| export function addPost(data) { | export function addPost(data) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/system/post', |     url: '/system/post/create', | ||||||
|     method: 'post', |     method: 'post', | ||||||
|     data: data |     data: data | ||||||
|   }) |   }) | ||||||
| @ -37,8 +37,8 @@ export function addPost(data) { | |||||||
| // 修改岗位 | // 修改岗位 | ||||||
| export function updatePost(data) { | export function updatePost(data) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/system/post', |     url: '/system/post/update', | ||||||
|     method: 'put', |     method: 'post', | ||||||
|     data: data |     data: data | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
| @ -46,8 +46,8 @@ export function updatePost(data) { | |||||||
| // 删除岗位 | // 删除岗位 | ||||||
| export function delPost(postId) { | export function delPost(postId) { | ||||||
|   return request({ |   return request({ | ||||||
|     url: '/system/post/' + postId, |     url: '/system/post/delete?id=' + postId, | ||||||
|     method: 'delete' |     method: 'post' | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -142,7 +142,7 @@ import { listDept, getDept, delDept, addDept, updateDept } from "@/api/system/de | |||||||
| import Treeselect from "@riophae/vue-treeselect"; | import Treeselect from "@riophae/vue-treeselect"; | ||||||
| import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | ||||||
|  |  | ||||||
| import {SysCommonStatusEnum, SysMenuTypeEnum} from '@/utils/constants' | import {SysCommonStatusEnum} from '@/utils/constants' | ||||||
| import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
| @ -249,7 +249,7 @@ export default { | |||||||
|         leader: undefined, |         leader: undefined, | ||||||
|         phone: undefined, |         phone: undefined, | ||||||
|         email: undefined, |         email: undefined, | ||||||
|         status: "0" |         status: SysCommonStatusEnum.ENABLE, | ||||||
|       }; |       }; | ||||||
|       this.resetForm("form"); |       this.resetForm("form"); | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -1,18 +1,18 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="app-container"> |   <div class="app-container"> | ||||||
|     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> | ||||||
|       <el-form-item label="岗位编码" prop="postCode"> |       <el-form-item label="岗位编码" prop="code"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="queryParams.postCode" |           v-model="queryParams.code" | ||||||
|           placeholder="请输入岗位编码" |           placeholder="请输入岗位编码" | ||||||
|           clearable |           clearable | ||||||
|           size="small" |           size="small" | ||||||
|           @keyup.enter.native="handleQuery" |           @keyup.enter.native="handleQuery" | ||||||
|         /> |         /> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
|       <el-form-item label="岗位名称" prop="postName"> |       <el-form-item label="岗位名称" prop="name"> | ||||||
|         <el-input |         <el-input | ||||||
|           v-model="queryParams.postName" |           v-model="queryParams.name" | ||||||
|           placeholder="请输入岗位名称" |           placeholder="请输入岗位名称" | ||||||
|           clearable |           clearable | ||||||
|           size="small" |           size="small" | ||||||
| @ -22,10 +22,10 @@ | |||||||
|       <el-form-item label="状态" prop="status"> |       <el-form-item label="状态" prop="status"> | ||||||
|         <el-select v-model="queryParams.status" placeholder="岗位状态" clearable size="small"> |         <el-select v-model="queryParams.status" placeholder="岗位状态" clearable size="small"> | ||||||
|           <el-option |           <el-option | ||||||
|             v-for="dict in statusOptions" |               v-for="dict in statusDictDatas" | ||||||
|             :key="dict.dictValue" |               :key="parseInt(dict.value)" | ||||||
|             :label="dict.dictLabel" |               :label="dict.label" | ||||||
|             :value="dict.dictValue" |               :value="parseInt(dict.value)" | ||||||
|           /> |           /> | ||||||
|         </el-select> |         </el-select> | ||||||
|       </el-form-item> |       </el-form-item> | ||||||
| @ -45,26 +45,6 @@ | |||||||
|           v-hasPermi="['system:post:add']" |           v-hasPermi="['system:post:add']" | ||||||
|         >新增</el-button> |         >新增</el-button> | ||||||
|       </el-col> |       </el-col> | ||||||
|       <el-col :span="1.5"> |  | ||||||
|         <el-button |  | ||||||
|           type="success" |  | ||||||
|           icon="el-icon-edit" |  | ||||||
|           size="mini" |  | ||||||
|           :disabled="single" |  | ||||||
|           @click="handleUpdate" |  | ||||||
|           v-hasPermi="['system:post:edit']" |  | ||||||
|         >修改</el-button> |  | ||||||
|       </el-col> |  | ||||||
|       <el-col :span="1.5"> |  | ||||||
|         <el-button |  | ||||||
|           type="danger" |  | ||||||
|           icon="el-icon-delete" |  | ||||||
|           size="mini" |  | ||||||
|           :disabled="multiple" |  | ||||||
|           @click="handleDelete" |  | ||||||
|           v-hasPermi="['system:post:remove']" |  | ||||||
|         >删除</el-button> |  | ||||||
|       </el-col> |  | ||||||
|       <el-col :span="1.5"> |       <el-col :span="1.5"> | ||||||
|         <el-button |         <el-button | ||||||
|           type="warning" |           type="warning" | ||||||
| @ -77,12 +57,11 @@ | |||||||
|       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | ||||||
|     </el-row> |     </el-row> | ||||||
|  |  | ||||||
|     <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"> |     <el-table v-loading="loading" :data="postList"> | ||||||
|       <el-table-column type="selection" width="55" align="center" /> |       <el-table-column label="岗位编号" align="center" prop="id" /> | ||||||
|       <el-table-column label="岗位编号" align="center" prop="postId" /> |       <el-table-column label="岗位编码" align="center" prop="code" /> | ||||||
|       <el-table-column label="岗位编码" align="center" prop="postCode" /> |       <el-table-column label="岗位名称" align="center" prop="name" /> | ||||||
|       <el-table-column label="岗位名称" align="center" prop="postName" /> |       <el-table-column label="岗位排序" align="center" prop="sort" /> | ||||||
|       <el-table-column label="岗位排序" align="center" prop="postSort" /> |  | ||||||
|       <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> |       <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" /> | ||||||
|       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | ||||||
|         <template slot-scope="scope"> |         <template slot-scope="scope"> | ||||||
| @ -112,7 +91,7 @@ | |||||||
|     <pagination |     <pagination | ||||||
|       v-show="total>0" |       v-show="total>0" | ||||||
|       :total="total" |       :total="total" | ||||||
|       :page.sync="queryParams.pageNum" |       :page.sync="queryParams.pageNo" | ||||||
|       :limit.sync="queryParams.pageSize" |       :limit.sync="queryParams.pageSize" | ||||||
|       @pagination="getList" |       @pagination="getList" | ||||||
|     /> |     /> | ||||||
| @ -120,22 +99,22 @@ | |||||||
|     <!-- 添加或修改岗位对话框 --> |     <!-- 添加或修改岗位对话框 --> | ||||||
|     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | ||||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |       <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||||
|         <el-form-item label="岗位名称" prop="postName"> |         <el-form-item label="岗位名称" prop="name"> | ||||||
|           <el-input v-model="form.postName" placeholder="请输入岗位名称" /> |           <el-input v-model="form.name" placeholder="请输入岗位名称" /> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="岗位编码" prop="postCode"> |         <el-form-item label="岗位编码" prop="code"> | ||||||
|           <el-input v-model="form.postCode" placeholder="请输入编码名称" /> |           <el-input v-model="form.code" placeholder="请输入编码名称" /> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="岗位顺序" prop="postSort"> |         <el-form-item label="岗位顺序" prop="sort"> | ||||||
|           <el-input-number v-model="form.postSort" controls-position="right" :min="0" /> |           <el-input-number v-model="form.sort" controls-position="right" :min="0" /> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="岗位状态" prop="status"> |         <el-form-item label="岗位状态" prop="status"> | ||||||
|           <el-radio-group v-model="form.status"> |           <el-radio-group v-model="form.status"> | ||||||
|             <el-radio |             <el-radio | ||||||
|               v-for="dict in statusOptions" |                 v-for="dict in statusDictDatas" | ||||||
|               :key="dict.dictValue" |                 :key="parseInt(dict.value)" | ||||||
|               :label="dict.dictValue" |                 :label="parseInt(dict.value)" | ||||||
|             >{{dict.dictLabel}}</el-radio> |             >{{dict.label}}</el-radio> | ||||||
|           </el-radio-group> |           </el-radio-group> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="备注" prop="remark"> |         <el-form-item label="备注" prop="remark"> | ||||||
| @ -153,6 +132,9 @@ | |||||||
| <script> | <script> | ||||||
| import { listPost, getPost, delPost, addPost, updatePost, exportPost } from "@/api/system/post"; | import { listPost, getPost, delPost, addPost, updatePost, exportPost } from "@/api/system/post"; | ||||||
|  |  | ||||||
|  | import {SysCommonStatusEnum} from '@/utils/constants' | ||||||
|  | import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict' | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   name: "Post", |   name: "Post", | ||||||
|   data() { |   data() { | ||||||
| @ -179,47 +161,49 @@ export default { | |||||||
|       statusOptions: [], |       statusOptions: [], | ||||||
|       // 查询参数 |       // 查询参数 | ||||||
|       queryParams: { |       queryParams: { | ||||||
|         pageNum: 1, |         pageNo: 1, | ||||||
|         pageSize: 10, |         pageSize: 10, | ||||||
|         postCode: undefined, |         code: undefined, | ||||||
|         postName: undefined, |         name: undefined, | ||||||
|         status: undefined |         status: undefined | ||||||
|       }, |       }, | ||||||
|       // 表单参数 |       // 表单参数 | ||||||
|       form: {}, |       form: {}, | ||||||
|       // 表单校验 |       // 表单校验 | ||||||
|       rules: { |       rules: { | ||||||
|         postName: [ |         name: [ | ||||||
|           { required: true, message: "岗位名称不能为空", trigger: "blur" } |           { required: true, message: "岗位名称不能为空", trigger: "blur" } | ||||||
|         ], |         ], | ||||||
|         postCode: [ |         code: [ | ||||||
|           { required: true, message: "岗位编码不能为空", trigger: "blur" } |           { required: true, message: "岗位编码不能为空", trigger: "blur" } | ||||||
|         ], |         ], | ||||||
|         postSort: [ |         sort: [ | ||||||
|           { required: true, message: "岗位顺序不能为空", trigger: "blur" } |           { required: true, message: "岗位顺序不能为空", trigger: "blur" } | ||||||
|         ] |         ] | ||||||
|       } |       }, | ||||||
|  |  | ||||||
|  |       // 枚举 | ||||||
|  |       CommonStatusEnum: SysCommonStatusEnum, | ||||||
|  |       // 数据字典 | ||||||
|  |       statusDictDatas: getDictDatas(DICT_TYPE.SYS_COMMON_STATUS) | ||||||
|     }; |     }; | ||||||
|   }, |   }, | ||||||
|   created() { |   created() { | ||||||
|     this.getList(); |     this.getList(); | ||||||
|     this.getDicts("sys_normal_disable").then(response => { |  | ||||||
|       this.statusOptions = response.data; |  | ||||||
|     }); |  | ||||||
|   }, |   }, | ||||||
|   methods: { |   methods: { | ||||||
|     /** 查询岗位列表 */ |     /** 查询岗位列表 */ | ||||||
|     getList() { |     getList() { | ||||||
|       this.loading = true; |       this.loading = true; | ||||||
|       listPost(this.queryParams).then(response => { |       listPost(this.queryParams).then(response => { | ||||||
|         this.postList = response.rows; |         this.postList = response.data.list; | ||||||
|         this.total = response.total; |         this.total = response.data.total; | ||||||
|         this.loading = false; |         this.loading = false; | ||||||
|       }); |       }); | ||||||
|     }, |     }, | ||||||
|     // 岗位状态字典翻译 |     // 岗位状态字典翻译 | ||||||
|     statusFormat(row, column) { |     statusFormat(row, column) { | ||||||
|       return this.selectDictLabel(this.statusOptions, row.status); |       return getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, row.status) | ||||||
|     }, |     }, | ||||||
|     // 取消按钮 |     // 取消按钮 | ||||||
|     cancel() { |     cancel() { | ||||||
| @ -229,18 +213,18 @@ export default { | |||||||
|     // 表单重置 |     // 表单重置 | ||||||
|     reset() { |     reset() { | ||||||
|       this.form = { |       this.form = { | ||||||
|         postId: undefined, |         id: undefined, | ||||||
|         postCode: undefined, |         code: undefined, | ||||||
|         postName: undefined, |         name: undefined, | ||||||
|         postSort: 0, |         sort: 0, | ||||||
|         status: "0", |         status: SysCommonStatusEnum.ENABLE, | ||||||
|         remark: undefined |         remark: undefined | ||||||
|       }; |       }; | ||||||
|       this.resetForm("form"); |       this.resetForm("form"); | ||||||
|     }, |     }, | ||||||
|     /** 搜索按钮操作 */ |     /** 搜索按钮操作 */ | ||||||
|     handleQuery() { |     handleQuery() { | ||||||
|       this.queryParams.pageNum = 1; |       this.queryParams.pageNo = 1; | ||||||
|       this.getList(); |       this.getList(); | ||||||
|     }, |     }, | ||||||
|     /** 重置按钮操作 */ |     /** 重置按钮操作 */ | ||||||
| @ -248,12 +232,6 @@ export default { | |||||||
|       this.resetForm("queryForm"); |       this.resetForm("queryForm"); | ||||||
|       this.handleQuery(); |       this.handleQuery(); | ||||||
|     }, |     }, | ||||||
|     // 多选框选中数据 |  | ||||||
|     handleSelectionChange(selection) { |  | ||||||
|       this.ids = selection.map(item => item.postId) |  | ||||||
|       this.single = selection.length!=1 |  | ||||||
|       this.multiple = !selection.length |  | ||||||
|     }, |  | ||||||
|     /** 新增按钮操作 */ |     /** 新增按钮操作 */ | ||||||
|     handleAdd() { |     handleAdd() { | ||||||
|       this.reset(); |       this.reset(); | ||||||
| @ -263,8 +241,8 @@ export default { | |||||||
|     /** 修改按钮操作 */ |     /** 修改按钮操作 */ | ||||||
|     handleUpdate(row) { |     handleUpdate(row) { | ||||||
|       this.reset(); |       this.reset(); | ||||||
|       const postId = row.postId || this.ids |       const id = row.id | ||||||
|       getPost(postId).then(response => { |       getPost(id).then(response => { | ||||||
|         this.form = response.data; |         this.form = response.data; | ||||||
|         this.open = true; |         this.open = true; | ||||||
|         this.title = "修改岗位"; |         this.title = "修改岗位"; | ||||||
| @ -274,7 +252,7 @@ export default { | |||||||
|     submitForm: function() { |     submitForm: function() { | ||||||
|       this.$refs["form"].validate(valid => { |       this.$refs["form"].validate(valid => { | ||||||
|         if (valid) { |         if (valid) { | ||||||
|           if (this.form.postId != undefined) { |           if (this.form.id !== undefined) { | ||||||
|             updatePost(this.form).then(response => { |             updatePost(this.form).then(response => { | ||||||
|               this.msgSuccess("修改成功"); |               this.msgSuccess("修改成功"); | ||||||
|               this.open = false; |               this.open = false; | ||||||
| @ -292,13 +270,13 @@ export default { | |||||||
|     }, |     }, | ||||||
|     /** 删除按钮操作 */ |     /** 删除按钮操作 */ | ||||||
|     handleDelete(row) { |     handleDelete(row) { | ||||||
|       const postIds = row.postId || this.ids; |       const ids = row.id; | ||||||
|       this.$confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?', "警告", { |       this.$confirm('是否确认删除岗位编号为"' + ids + '"的数据项?', "警告", { | ||||||
|           confirmButtonText: "确定", |           confirmButtonText: "确定", | ||||||
|           cancelButtonText: "取消", |           cancelButtonText: "取消", | ||||||
|           type: "warning" |           type: "warning" | ||||||
|         }).then(function() { |         }).then(function() { | ||||||
|           return delPost(postIds); |           return delPost(ids); | ||||||
|         }).then(() => { |         }).then(() => { | ||||||
|           this.getList(); |           this.getList(); | ||||||
|           this.msgSuccess("删除成功"); |           this.msgSuccess("删除成功"); | ||||||
|  | |||||||
| @ -2,15 +2,16 @@ package cn.iocoder.dashboard.modules.system.controller.dept; | |||||||
|  |  | ||||||
| import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | ||||||
| import cn.iocoder.dashboard.common.pojo.CommonResult; | import cn.iocoder.dashboard.common.pojo.CommonResult; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostSimpleRespVO; | import cn.iocoder.dashboard.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.*; | ||||||
| import cn.iocoder.dashboard.modules.system.convert.dept.SysPostConvert; | import cn.iocoder.dashboard.modules.system.convert.dept.SysPostConvert; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | ||||||
| import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; | import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
|  | import io.swagger.annotations.ApiImplicitParam; | ||||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||||
| import org.springframework.web.bind.annotation.GetMapping; | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.*; | ||||||
| import org.springframework.web.bind.annotation.RestController; |  | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| @ -37,4 +38,54 @@ public class SysPostController { | |||||||
|         return success(SysPostConvert.INSTANCE.convertList02(list)); |         return success(SysPostConvert.INSTANCE.convertList02(list)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @ApiOperation("获得岗位分页列表") | ||||||
|  |     @GetMapping("/page") | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:list')") | ||||||
|  |     public CommonResult<PageResult<SysPostRespVO>> pagePosts(@Validated SysPostPageReqVO reqVO) { | ||||||
|  |         return success(SysPostConvert.INSTANCE.convertPage(postService.pagePosts(reqVO))); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @ApiOperation("新增岗位") | ||||||
|  |     @PostMapping("/create") | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:add')") | ||||||
|  | //    @Log(title = "岗位管理", businessType = BusinessType.INSERT) | ||||||
|  |     public CommonResult<Long> createPost(@Validated @RequestBody SysPostCreateReqVO reqVO) { | ||||||
|  |         Long postId = postService.createPost(reqVO); | ||||||
|  |         return success(postId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @ApiOperation("修改岗位") | ||||||
|  |     @PostMapping("/update") | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:edit')") | ||||||
|  | //    @Log(title = "岗位管理", businessType = BusinessType.UPDATE) | ||||||
|  |     public CommonResult<Boolean> updatePost(@Validated @RequestBody SysPostUpdateReqVO reqVO) { | ||||||
|  |         postService.updatePost(reqVO); | ||||||
|  |         return success(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @ApiOperation("删除岗位") | ||||||
|  |     @PostMapping("/delete") | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:remove')") | ||||||
|  | //    @Log(title = "岗位管理", businessType = BusinessType.DELETE) | ||||||
|  |     public CommonResult<Boolean> deletePost(@RequestParam("id") Long id) { | ||||||
|  |         postService.deletePost(id); | ||||||
|  |         return success(true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @ApiOperation("获得岗位信息") | ||||||
|  |     @ApiImplicitParam(name = "id", value = "岗位编号", readOnly = true, example = "1024") | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:query')") | ||||||
|  |     @GetMapping(value = "/get") | ||||||
|  |     public CommonResult<SysPostRespVO> getPost(@RequestParam("id") Long id) { | ||||||
|  |         return success(SysPostConvert.INSTANCE.convert(postService.getPost(id))); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | //    @Log(title = "岗位管理", businessType = BusinessType.EXPORT) | ||||||
|  | //    @PreAuthorize("@ss.hasPermi('system:post:export')") | ||||||
|  | //    @GetMapping("/export") | ||||||
|  | //    public AjaxResult export(SysPost post) { | ||||||
|  | //        List<SysPost> list = postService.selectPostList(post); | ||||||
|  | //        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class); | ||||||
|  | //        return util.exportExcel(list, "岗位数据"); | ||||||
|  | //    } | ||||||
| } | } | ||||||
|  | |||||||
| @ -27,6 +27,9 @@ public class SysPostBaseVO { | |||||||
|     @NotBlank(message = "显示顺序不能为空") |     @NotBlank(message = "显示顺序不能为空") | ||||||
|     private String sort; |     private String sort; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "备注", example = "快乐的备注") |     @ApiModelProperty(value = "备注", example = "快乐的备注") | ||||||
|     private String remark; |     private String remark; | ||||||
|  |  | ||||||
|  | |||||||
| @ -0,0 +1,20 @@ | |||||||
|  | package cn.iocoder.dashboard.modules.system.controller.dept.vo.post; | ||||||
|  |  | ||||||
|  | import cn.iocoder.dashboard.common.pojo.PageParam; | ||||||
|  | import io.swagger.annotations.ApiModel; | ||||||
|  | import io.swagger.annotations.ApiModelProperty; | ||||||
|  | import lombok.Data; | ||||||
|  | import lombok.EqualsAndHashCode; | ||||||
|  |  | ||||||
|  | @ApiModel("岗位分页 Request VO") | ||||||
|  | @Data | ||||||
|  | @EqualsAndHashCode(callSuper = true) | ||||||
|  | public class SysPostPageReqVO extends PageParam { | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "岗位名称", example = "芋道", notes = "模糊匹配") | ||||||
|  |     private String name; | ||||||
|  |  | ||||||
|  |     @ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | ||||||
|  |     private Integer status; | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -15,9 +15,6 @@ public class SysPostRespVO extends SysPostBaseVO { | |||||||
|     @ApiModelProperty(value = "岗位序号", required = true, example = "1024") |     @ApiModelProperty(value = "岗位序号", required = true, example = "1024") | ||||||
|     private Integer id; |     private Integer id; | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") |  | ||||||
|     private Integer status; |  | ||||||
|  |  | ||||||
|     @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") |     @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") | ||||||
|     private Date createTime; |     private Date createTime; | ||||||
|  |  | ||||||
|  | |||||||
| @ -14,6 +14,6 @@ public class SysPostUpdateReqVO extends SysPostBaseVO { | |||||||
|  |  | ||||||
|     @ApiModelProperty(value = "岗位编号", required = true, example = "1024") |     @ApiModelProperty(value = "岗位编号", required = true, example = "1024") | ||||||
|     @NotNull(message = "岗位编号不能为空") |     @NotNull(message = "岗位编号不能为空") | ||||||
|     private Integer id; |     private Long id; | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,8 +1,14 @@ | |||||||
| package cn.iocoder.dashboard.modules.system.convert.dept; | package cn.iocoder.dashboard.modules.system.convert.dept; | ||||||
|  |  | ||||||
|  | import cn.iocoder.dashboard.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostRespVO; | ||||||
| import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostSimpleRespVO; | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostSimpleRespVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
|  | import org.mapstruct.Mapping; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
|  |  | ||||||
| import java.util.List; | import java.util.List; | ||||||
| @ -14,4 +20,15 @@ public interface SysPostConvert { | |||||||
|  |  | ||||||
|     List<SysPostSimpleRespVO> convertList02(List<SysPostDO> list); |     List<SysPostSimpleRespVO> convertList02(List<SysPostDO> list); | ||||||
|  |  | ||||||
|  |     PageResult<SysPostRespVO> convertPage(PageResult<SysPostDO> page); | ||||||
|  |  | ||||||
|  |     SysPostRespVO convert(SysPostDO id); | ||||||
|  |  | ||||||
|  |     @Mapping(source = "records", target = "list") | ||||||
|  |     PageResult<SysPostDO> convertPage02(IPage<SysPostDO> page); | ||||||
|  |  | ||||||
|  |     SysPostDO convert(SysPostCreateReqVO bean); | ||||||
|  |  | ||||||
|  |     SysPostDO convert(SysPostUpdateReqVO reqVO); | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,8 +1,12 @@ | |||||||
| package cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept; | package cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept; | ||||||
|  |  | ||||||
| import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | ||||||
|  | import cn.iocoder.dashboard.framework.mybatis.core.util.MyBatisUtils; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | ||||||
|  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||||
|  | import com.baomidou.mybatisplus.core.metadata.IPage; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  |  | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| @ -16,4 +20,18 @@ public interface SysPostMapper extends BaseMapper<SysPostDO> { | |||||||
|                 .inIfPresent("status", statuses)); |                 .inIfPresent("status", statuses)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     default IPage<SysPostDO> selectList(SysPostPageReqVO reqVO) { | ||||||
|  |         return selectPage(MyBatisUtils.buildPage(reqVO), | ||||||
|  |                 new QueryWrapperX<SysPostDO>().likeIfPresent("name", reqVO.getName()) | ||||||
|  |                         .eqIfPresent("status", reqVO.getStatus())); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     default SysPostDO selectByName(String name) { | ||||||
|  |         return selectOne(new QueryWrapper<SysPostDO>().eq("name", name)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     default SysPostDO selectByCode(String code) { | ||||||
|  |         return selectOne(new QueryWrapper<SysPostDO>().eq("code", code)); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -51,5 +51,7 @@ public interface SysErrorCodeConstants { | |||||||
|     // ========== 岗位模块 1002005000 ========== |     // ========== 岗位模块 1002005000 ========== | ||||||
|     ErrorCode POST_NOT_FOUND = new ErrorCode(1002005001, "当前岗位不存在"); |     ErrorCode POST_NOT_FOUND = new ErrorCode(1002005001, "当前岗位不存在"); | ||||||
|     ErrorCode POST_NOT_ENABLE = new ErrorCode(1002005002, "岗位({}) 不处于开启状态,不允许选择"); |     ErrorCode POST_NOT_ENABLE = new ErrorCode(1002005002, "岗位({}) 不处于开启状态,不允许选择"); | ||||||
|  |     ErrorCode POST_NAME_DUPLICATE = new ErrorCode(1002004001, "已经存在该名字的岗位"); | ||||||
|  |     ErrorCode POST_CODE_DUPLICATE = new ErrorCode(1002004001, "已经存在该标识的岗位"); | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,5 +1,9 @@ | |||||||
| package cn.iocoder.dashboard.modules.system.service.dept; | package cn.iocoder.dashboard.modules.system.service.dept; | ||||||
|  |  | ||||||
|  | import cn.iocoder.dashboard.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | ||||||
|  |  | ||||||
| import javax.annotation.Nullable; | import javax.annotation.Nullable; | ||||||
| @ -22,4 +26,42 @@ public interface SysPostService { | |||||||
|      */ |      */ | ||||||
|     List<SysPostDO> listPosts(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses); |     List<SysPostDO> listPosts(@Nullable Collection<Long> ids, @Nullable Collection<Integer> statuses); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获得岗位分页列表 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 分页条件 | ||||||
|  |      * @return 部门分页列表 | ||||||
|  |      */ | ||||||
|  |     PageResult<SysPostDO> pagePosts(SysPostPageReqVO reqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获得岗位信息 | ||||||
|  |      * | ||||||
|  |      * @param id 岗位编号 | ||||||
|  |      * @return 岗位信息 | ||||||
|  |      */ | ||||||
|  |     SysPostDO getPost(Long id); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 创建岗位 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 岗位信息 | ||||||
|  |      * @return 岗位编号 | ||||||
|  |      */ | ||||||
|  |     Long createPost(SysPostCreateReqVO reqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 更新岗位 | ||||||
|  |      * | ||||||
|  |      * @param reqVO 岗位信息 | ||||||
|  |      */ | ||||||
|  |     void updatePost(SysPostUpdateReqVO reqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 删除岗位信息 | ||||||
|  |      * | ||||||
|  |      * @param id 岗位编号 | ||||||
|  |      */ | ||||||
|  |     void deletePost(Long id); | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -175,7 +175,7 @@ public class SysDeptServiceImpl implements SysDeptService { | |||||||
|         if (parentId.equals(id)) { |         if (parentId.equals(id)) { | ||||||
|             throw ServiceExceptionUtil.exception(DEPT_PARENT_ERROR); |             throw ServiceExceptionUtil.exception(DEPT_PARENT_ERROR); | ||||||
|         } |         } | ||||||
|         // 父菜单不存在 |         // 父岗位不存在 | ||||||
|         SysDeptDO dept = deptMapper.selectById(parentId); |         SysDeptDO dept = deptMapper.selectById(parentId); | ||||||
|         if (dept == null) { |         if (dept == null) { | ||||||
|             throw ServiceExceptionUtil.exception(DEPT_PARENT_NOT_EXITS); |             throw ServiceExceptionUtil.exception(DEPT_PARENT_NOT_EXITS); | ||||||
| @ -206,7 +206,7 @@ public class SysDeptServiceImpl implements SysDeptService { | |||||||
|         if (menu == null) { |         if (menu == null) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         // 如果 id 为空,说明不用比较是否为相同 id 的菜单 |         // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | ||||||
|         if (id == null) { |         if (id == null) { | ||||||
|             throw ServiceExceptionUtil.exception(DEPT_NAME_DUPLICATE); |             throw ServiceExceptionUtil.exception(DEPT_NAME_DUPLICATE); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -1,5 +1,11 @@ | |||||||
| package cn.iocoder.dashboard.modules.system.service.dept.impl; | package cn.iocoder.dashboard.modules.system.service.dept.impl; | ||||||
|  |  | ||||||
|  | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | ||||||
|  | import cn.iocoder.dashboard.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostCreateReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostPageReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.controller.dept.vo.post.SysPostUpdateReqVO; | ||||||
|  | import cn.iocoder.dashboard.modules.system.convert.dept.SysPostConvert; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept.SysPostMapper; | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.dept.SysPostMapper; | ||||||
| import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysPostDO; | ||||||
| import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; | import cn.iocoder.dashboard.modules.system.service.dept.SysPostService; | ||||||
| @ -9,6 +15,8 @@ import javax.annotation.Resource; | |||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 岗位 Service 实现类 |  * 岗位 Service 实现类 | ||||||
|  * |  * | ||||||
| @ -25,4 +33,88 @@ public class SysPostServiceImpl implements SysPostService { | |||||||
|         return postMapper.selectList(ids, statuses); |         return postMapper.selectList(ids, statuses); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public PageResult<SysPostDO> pagePosts(SysPostPageReqVO reqVO) { | ||||||
|  |         return SysPostConvert.INSTANCE.convertPage02(postMapper.selectList(reqVO)); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public SysPostDO getPost(Long id) { | ||||||
|  |         return postMapper.selectById(id); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public Long createPost(SysPostCreateReqVO reqVO) { | ||||||
|  |         // 校验正确性 | ||||||
|  |         this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getCode()); | ||||||
|  |         // 插入岗位 | ||||||
|  |         SysPostDO post = SysPostConvert.INSTANCE.convert(reqVO); | ||||||
|  |         postMapper.insert(post); | ||||||
|  |         return post.getId(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void updatePost(SysPostUpdateReqVO reqVO) { | ||||||
|  |         // 校验正确性 | ||||||
|  |         this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), reqVO.getCode()); | ||||||
|  |         // 更新岗位 | ||||||
|  |         SysPostDO updateObj = SysPostConvert.INSTANCE.convert(reqVO); | ||||||
|  |         postMapper.updateById(updateObj); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private void checkCreateOrUpdate(Long id, String name, String code) { | ||||||
|  |         // 校验自己存在 | ||||||
|  |         checkPostExists(id); | ||||||
|  |         // 校验岗位名的唯一性 | ||||||
|  |         checkPostNameUnique(id, name); | ||||||
|  |         // 校验岗位编码的唯一性 | ||||||
|  |         checkPostCodeUnique(id, code); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private void checkPostNameUnique(Long id, String name) { | ||||||
|  |         SysPostDO post = postMapper.selectByName(name); | ||||||
|  |         if (post == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | ||||||
|  |         if (id == null) { | ||||||
|  |             throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE); | ||||||
|  |         } | ||||||
|  |         if (!post.getId().equals(id)) { | ||||||
|  |             throw ServiceExceptionUtil.exception(POST_NAME_DUPLICATE); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private void checkPostCodeUnique(Long id, String code) { | ||||||
|  |         SysPostDO post = postMapper.selectByCode(code); | ||||||
|  |         if (post == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         // 如果 id 为空,说明不用比较是否为相同 id 的岗位 | ||||||
|  |         if (id == null) { | ||||||
|  |             throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE); | ||||||
|  |         } | ||||||
|  |         if (!post.getId().equals(id)) { | ||||||
|  |             throw ServiceExceptionUtil.exception(POST_CODE_DUPLICATE); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void deletePost(Long id) { | ||||||
|  |         // 校验是否存在 | ||||||
|  |         this.checkPostExists(id); | ||||||
|  |         // 删除部门 | ||||||
|  |         postMapper.deleteById(id); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private void checkPostExists(Long id) { | ||||||
|  |         if (id == null) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         SysPostDO post = postMapper.selectById(id); | ||||||
|  |         if (post == null) { | ||||||
|  |             throw ServiceExceptionUtil.exception(POST_NOT_FOUND); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV