feat(wms): 添加岗位和岗位职责管理功能

- 创建岗位实体类 WmsPost 和岗位职责实体类 WmsPostDuty
- 实现岗位和岗位职责的业务对象 BO 和视图对象 VO
- 开发岗位和岗位职责的服务接口及实现类
- 添加岗位和岗位职责的控制器提供 REST API 接口
- 配置 MyBatis Plus 的 Mapper 接口和 XML 映射文件
- 实现岗位和岗位职责的增删改查、分页查询和导出功能
- 添加数据验证、日志记录和防止重复提交功能
This commit is contained in:
2026-06-15 13:33:23 +08:00
parent a2844ec54a
commit 3db1651efd
16 changed files with 962 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsPostVo;
import com.klp.domain.bo.WmsPostBo;
import com.klp.service.IWmsPostService;
/**
* 岗位
*
* @author klp
* @date 2026-06-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/post")
public class WmsPostController extends BaseController {
private final IWmsPostService iWmsPostService;
/**
* 查询岗位列表
*/
@GetMapping("/list")
public R<List<WmsPostVo>> list(WmsPostBo bo) {
List<WmsPostVo> list = iWmsPostService.queryList(bo);
return R.ok(list);
}
/**
* 导出岗位列表
*/
@Log(title = "岗位", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsPostBo bo, HttpServletResponse response) {
List<WmsPostVo> list = iWmsPostService.queryList(bo);
ExcelUtil.exportExcel(list, "岗位", WmsPostVo.class, response);
}
/**
* 获取岗位详细信息
*
* @param postId 主键
*/
@GetMapping("/{postId}")
public R<WmsPostVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long postId) {
return R.ok(iWmsPostService.queryById(postId));
}
/**
* 新增岗位
*/
@Log(title = "岗位", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsPostBo bo) {
return toAjax(iWmsPostService.insertByBo(bo));
}
/**
* 修改岗位
*/
@Log(title = "岗位", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsPostBo bo) {
return toAjax(iWmsPostService.updateByBo(bo));
}
/**
* 删除岗位
*
* @param postIds 主键串
*/
@Log(title = "岗位", businessType = BusinessType.DELETE)
@DeleteMapping("/{postIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] postIds) {
return toAjax(iWmsPostService.deleteWithValidByIds(Arrays.asList(postIds), true));
}
}

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsPostDutyVo;
import com.klp.domain.bo.WmsPostDutyBo;
import com.klp.service.IWmsPostDutyService;
import com.klp.common.core.page.TableDataInfo;
/**
* 岗位职责
*
* @author klp
* @date 2026-06-15
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/postDuty")
public class WmsPostDutyController extends BaseController {
private final IWmsPostDutyService iWmsPostDutyService;
/**
* 查询岗位职责列表
*/
@GetMapping("/list")
public TableDataInfo<WmsPostDutyVo> list(WmsPostDutyBo bo, PageQuery pageQuery) {
return iWmsPostDutyService.queryPageList(bo, pageQuery);
}
/**
* 导出岗位职责列表
*/
@Log(title = "岗位职责", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsPostDutyBo bo, HttpServletResponse response) {
List<WmsPostDutyVo> list = iWmsPostDutyService.queryList(bo);
ExcelUtil.exportExcel(list, "岗位职责", WmsPostDutyVo.class, response);
}
/**
* 获取岗位职责详细信息
*
* @param dutyId 主键
*/
@GetMapping("/{dutyId}")
public R<WmsPostDutyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long dutyId) {
return R.ok(iWmsPostDutyService.queryById(dutyId));
}
/**
* 新增岗位职责
*/
@Log(title = "岗位职责", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsPostDutyBo bo) {
return toAjax(iWmsPostDutyService.insertByBo(bo));
}
/**
* 修改岗位职责
*/
@Log(title = "岗位职责", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsPostDutyBo bo) {
return toAjax(iWmsPostDutyService.updateByBo(bo));
}
/**
* 删除岗位职责
*
* @param dutyIds 主键串
*/
@Log(title = "岗位职责", businessType = BusinessType.DELETE)
@DeleteMapping("/{dutyIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] dutyIds) {
return toAjax(iWmsPostDutyService.deleteWithValidByIds(Arrays.asList(dutyIds), true));
}
}

View File

@@ -0,0 +1,61 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.klp.common.core.domain.TreeEntity;
/**
* 岗位对象 wms_post
*
* @author klp
* @date 2026-06-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_post")
public class WmsPost extends TreeEntity<WmsPost> {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "post_id")
private Long postId;
/**
* 岗位名称
*/
private String postName;
/**
* 岗位类型(PRODUCTION=生产岗,QUALITY=质检岗,MAINTENANCE=维修岗,TECHNICAL=技术岗,MANAGEMENT=管理岗)
*/
private String postType;
/**
* 岗位级别(JUNIOR=初级,MIDDLE=中级,SENIOR=高级,LEAD=班长,MANAGER=经理)
*/
private String postLevel;
/**
* 所属产线ID
*/
private Long lineId;
/**
* 状态(0停用 1启用)
*/
private Long status;
/**
* 显示顺序
*/
private Long postSort;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,57 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 岗位职责对象 wms_post_duty
*
* @author klp
* @date 2026-06-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_post_duty")
public class WmsPostDuty extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "duty_id")
private Long dutyId;
/**
* 岗位ID
*/
private Long postId;
/**
* 职责名称
*/
private String dutyName;
/**
* 职责内容
*/
private String dutyContent;
/**
* 职责类型(MAIN=主要职责,SECONDARY=次要职责,SAFETY=安全职责,QUALITY=质量职责)
*/
private String dutyType;
/**
* 排序
*/
private Long sortOrder;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,61 @@
package com.klp.domain.bo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import com.klp.common.core.domain.TreeEntity;
/**
* 岗位业务对象 wms_post
*
* @author klp
* @date 2026-06-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsPostBo extends TreeEntity<WmsPostBo> {
/**
*
*/
private Long postId;
/**
* 岗位名称
*/
private String postName;
/**
* 岗位类型(PRODUCTION=生产岗,QUALITY=质检岗,MAINTENANCE=维修岗,TECHNICAL=技术岗,MANAGEMENT=管理岗)
*/
private String postType;
/**
* 岗位级别(JUNIOR=初级,MIDDLE=中级,SENIOR=高级,LEAD=班长,MANAGER=经理)
*/
private String postLevel;
/**
* 所属产线ID
*/
private Long lineId;
/**
* 状态(0停用 1启用)
*/
private Long status;
/**
* 显示顺序
*/
private Long postSort;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,56 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 岗位职责业务对象 wms_post_duty
*
* @author klp
* @date 2026-06-15
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsPostDutyBo extends BaseEntity {
/**
*
*/
private Long dutyId;
/**
* 岗位ID
*/
private Long postId;
/**
* 职责名称
*/
private String dutyName;
/**
* 职责内容
*/
private String dutyContent;
/**
* 职责类型(MAIN=主要职责,SECONDARY=次要职责,SAFETY=安全职责,QUALITY=质量职责)
*/
private String dutyType;
/**
* 排序
*/
private Long sortOrder;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,65 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 岗位职责视图对象 wms_post_duty
*
* @author klp
* @date 2026-06-15
*/
@Data
@ExcelIgnoreUnannotated
public class WmsPostDutyVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long dutyId;
/**
* 岗位ID
*/
@ExcelProperty(value = "岗位ID")
private Long postId;
/**
* 职责名称
*/
@ExcelProperty(value = "职责名称")
private String dutyName;
/**
* 职责内容
*/
@ExcelProperty(value = "职责内容")
private String dutyContent;
/**
* 职责类型(MAIN=主要职责,SECONDARY=次要职责,SAFETY=安全职责,QUALITY=质量职责)
*/
@ExcelProperty(value = "职责类型(MAIN=主要职责,SECONDARY=次要职责,SAFETY=安全职责,QUALITY=质量职责)")
private String dutyType;
/**
* 排序
*/
@ExcelProperty(value = "排序")
private Long sortOrder;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,78 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 岗位视图对象 wms_post
*
* @author klp
* @date 2026-06-15
*/
@Data
@ExcelIgnoreUnannotated
public class WmsPostVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long postId;
/**
* 父岗位ID0=根节点)
*/
@ExcelProperty(value = "父岗位ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0==根节点")
private Long parentId;
/**
* 岗位名称
*/
@ExcelProperty(value = "岗位名称")
private String postName;
/**
* 岗位类型(PRODUCTION=生产岗,QUALITY=质检岗,MAINTENANCE=维修岗,TECHNICAL=技术岗,MANAGEMENT=管理岗)
*/
@ExcelProperty(value = "岗位类型(PRODUCTION=生产岗,QUALITY=质检岗,MAINTENANCE=维修岗,TECHNICAL=技术岗,MANAGEMENT=管理岗)")
private String postType;
/**
* 岗位级别(JUNIOR=初级,MIDDLE=中级,SENIOR=高级,LEAD=班长,MANAGER=经理)
*/
@ExcelProperty(value = "岗位级别(JUNIOR=初级,MIDDLE=中级,SENIOR=高级,LEAD=班长,MANAGER=经理)")
private String postLevel;
/**
* 所属产线ID
*/
@ExcelProperty(value = "所属产线ID")
private Long lineId;
/**
* 状态(0停用 1启用)
*/
@ExcelProperty(value = "状态(0停用 1启用)")
private Long status;
/**
* 显示顺序
*/
@ExcelProperty(value = "显示顺序")
private Long postSort;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsPostDuty;
import com.klp.domain.vo.WmsPostDutyVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 岗位职责Mapper接口
*
* @author klp
* @date 2026-06-15
*/
public interface WmsPostDutyMapper extends BaseMapperPlus<WmsPostDutyMapper, WmsPostDuty, WmsPostDutyVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsPost;
import com.klp.domain.vo.WmsPostVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 岗位Mapper接口
*
* @author klp
* @date 2026-06-15
*/
public interface WmsPostMapper extends BaseMapperPlus<WmsPostMapper, WmsPost, WmsPostVo> {
}

View File

@@ -0,0 +1,49 @@
package com.klp.service;
import com.klp.domain.WmsPostDuty;
import com.klp.domain.vo.WmsPostDutyVo;
import com.klp.domain.bo.WmsPostDutyBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 岗位职责Service接口
*
* @author klp
* @date 2026-06-15
*/
public interface IWmsPostDutyService {
/**
* 查询岗位职责
*/
WmsPostDutyVo queryById(Long dutyId);
/**
* 查询岗位职责列表
*/
TableDataInfo<WmsPostDutyVo> queryPageList(WmsPostDutyBo bo, PageQuery pageQuery);
/**
* 查询岗位职责列表
*/
List<WmsPostDutyVo> queryList(WmsPostDutyBo bo);
/**
* 新增岗位职责
*/
Boolean insertByBo(WmsPostDutyBo bo);
/**
* 修改岗位职责
*/
Boolean updateByBo(WmsPostDutyBo bo);
/**
* 校验并批量删除岗位职责信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,43 @@
package com.klp.service;
import com.klp.domain.WmsPost;
import com.klp.domain.vo.WmsPostVo;
import com.klp.domain.bo.WmsPostBo;
import java.util.Collection;
import java.util.List;
/**
* 岗位Service接口
*
* @author klp
* @date 2026-06-15
*/
public interface IWmsPostService {
/**
* 查询岗位
*/
WmsPostVo queryById(Long postId);
/**
* 查询岗位列表
*/
List<WmsPostVo> queryList(WmsPostBo bo);
/**
* 新增岗位
*/
Boolean insertByBo(WmsPostBo bo);
/**
* 修改岗位
*/
Boolean updateByBo(WmsPostBo bo);
/**
* 校验并批量删除岗位信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,113 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsPostDutyBo;
import com.klp.domain.vo.WmsPostDutyVo;
import com.klp.domain.WmsPostDuty;
import com.klp.mapper.WmsPostDutyMapper;
import com.klp.service.IWmsPostDutyService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 岗位职责Service业务层处理
*
* @author klp
* @date 2026-06-15
*/
@RequiredArgsConstructor
@Service
public class WmsPostDutyServiceImpl implements IWmsPostDutyService {
private final WmsPostDutyMapper baseMapper;
/**
* 查询岗位职责
*/
@Override
public WmsPostDutyVo queryById(Long dutyId){
return baseMapper.selectVoById(dutyId);
}
/**
* 查询岗位职责列表
*/
@Override
public TableDataInfo<WmsPostDutyVo> queryPageList(WmsPostDutyBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsPostDuty> lqw = buildQueryWrapper(bo);
Page<WmsPostDutyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询岗位职责列表
*/
@Override
public List<WmsPostDutyVo> queryList(WmsPostDutyBo bo) {
LambdaQueryWrapper<WmsPostDuty> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsPostDuty> buildQueryWrapper(WmsPostDutyBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsPostDuty> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPostId() != null, WmsPostDuty::getPostId, bo.getPostId());
lqw.like(StringUtils.isNotBlank(bo.getDutyName()), WmsPostDuty::getDutyName, bo.getDutyName());
lqw.eq(StringUtils.isNotBlank(bo.getDutyContent()), WmsPostDuty::getDutyContent, bo.getDutyContent());
lqw.eq(StringUtils.isNotBlank(bo.getDutyType()), WmsPostDuty::getDutyType, bo.getDutyType());
lqw.eq(bo.getSortOrder() != null, WmsPostDuty::getSortOrder, bo.getSortOrder());
return lqw;
}
/**
* 新增岗位职责
*/
@Override
public Boolean insertByBo(WmsPostDutyBo bo) {
WmsPostDuty add = BeanUtil.toBean(bo, WmsPostDuty.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDutyId(add.getDutyId());
}
return flag;
}
/**
* 修改岗位职责
*/
@Override
public Boolean updateByBo(WmsPostDutyBo bo) {
WmsPostDuty update = BeanUtil.toBean(bo, WmsPostDuty.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsPostDuty entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除岗位职责
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,103 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsPostBo;
import com.klp.domain.vo.WmsPostVo;
import com.klp.domain.WmsPost;
import com.klp.mapper.WmsPostMapper;
import com.klp.service.IWmsPostService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 岗位Service业务层处理
*
* @author klp
* @date 2026-06-15
*/
@RequiredArgsConstructor
@Service
public class WmsPostServiceImpl implements IWmsPostService {
private final WmsPostMapper baseMapper;
/**
* 查询岗位
*/
@Override
public WmsPostVo queryById(Long postId){
return baseMapper.selectVoById(postId);
}
/**
* 查询岗位列表
*/
@Override
public List<WmsPostVo> queryList(WmsPostBo bo) {
LambdaQueryWrapper<WmsPost> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsPost> buildQueryWrapper(WmsPostBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsPost> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getParentId() != null, WmsPost::getParentId, bo.getParentId());
lqw.like(StringUtils.isNotBlank(bo.getPostName()), WmsPost::getPostName, bo.getPostName());
lqw.eq(StringUtils.isNotBlank(bo.getPostType()), WmsPost::getPostType, bo.getPostType());
lqw.eq(StringUtils.isNotBlank(bo.getPostLevel()), WmsPost::getPostLevel, bo.getPostLevel());
lqw.eq(bo.getLineId() != null, WmsPost::getLineId, bo.getLineId());
lqw.eq(bo.getStatus() != null, WmsPost::getStatus, bo.getStatus());
lqw.eq(bo.getPostSort() != null, WmsPost::getPostSort, bo.getPostSort());
return lqw;
}
/**
* 新增岗位
*/
@Override
public Boolean insertByBo(WmsPostBo bo) {
WmsPost add = BeanUtil.toBean(bo, WmsPost.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPostId(add.getPostId());
}
return flag;
}
/**
* 修改岗位
*/
@Override
public Boolean updateByBo(WmsPostBo bo) {
WmsPost update = BeanUtil.toBean(bo, WmsPost.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsPost entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除岗位
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.klp.mapper.WmsPostDutyMapper">
<resultMap type="com.klp.domain.WmsPostDuty" id="WmsPostDutyResult">
<result property="dutyId" column="duty_id"/>
<result property="postId" column="post_id"/>
<result property="dutyName" column="duty_name"/>
<result property="dutyContent" column="duty_content"/>
<result property="dutyType" column="duty_type"/>
<result property="sortOrder" column="sort_order"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.klp.mapper.WmsPostMapper">
<resultMap type="com.klp.domain.WmsPost" id="WmsPostResult">
<result property="postId" column="post_id"/>
<result property="parentId" column="parent_id"/>
<result property="postName" column="post_name"/>
<result property="postType" column="post_type"/>
<result property="postLevel" column="post_level"/>
<result property="lineId" column="line_id"/>
<result property="status" column="status"/>
<result property="postSort" column="post_sort"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>