Pārlūkot izejas kodu

1.招聘管理-职位管理 功能开发

main
wangqiang pirms 3 dienas
vecāks
revīzija
735537050d

+ 131
- 0
ruoyi-system/src/main/java/com/ruoyi/system/controller/ZsWorkInfoController.java Parādīt failu

@@ -0,0 +1,131 @@
package com.ruoyi.system.controller;

import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.vo.ZsWorkInfoVo;
import com.ruoyi.system.domain.bo.ZsWorkInfoBo;
import com.ruoyi.system.service.IZsWorkInfoService;
import com.ruoyi.common.core.page.TableDataInfo;

/**
* 职位管理
*
* @author wq
* @date 2025-06-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/workInfo")
public class ZsWorkInfoController extends BaseController {

private final IZsWorkInfoService iZsWorkInfoService;

/**
* 查询职位管理列表
*/
@SaCheckPermission("system:workInfo:list")
@GetMapping("/list")
public TableDataInfo<ZsWorkInfoVo> list(ZsWorkInfoBo bo, PageQuery pageQuery) {
return iZsWorkInfoService.queryPageList(bo, pageQuery);
}


/**
* 查询职位管理列表 无鉴权
*/
@SaIgnore
@GetMapping("/noVerifyList")
public TableDataInfo<ZsWorkInfoVo> noVerifyList(ZsWorkInfoBo bo, PageQuery pageQuery) {
return iZsWorkInfoService.queryPageList(bo, pageQuery);
}

/**
* 导出职位管理列表
*/
@SaCheckPermission("system:workInfo:export")
@Log(title = "职位管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ZsWorkInfoBo bo, HttpServletResponse response) {
List<ZsWorkInfoVo> list = iZsWorkInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "职位管理", ZsWorkInfoVo.class, response);
}

/**
* 获取职位管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:workInfo:query")
@GetMapping("/{id}")
public R<ZsWorkInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iZsWorkInfoService.queryById(id));
}

/**
* 获取职位管理详细信息 无鉴权
*
* @param id 主键
*/
@GetMapping("/noVerify/{id}")
@SaIgnore
public R<ZsWorkInfoVo> getInfonoVerify(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iZsWorkInfoService.queryById(id));
}

/**
* 新增职位管理
*/
@SaCheckPermission("system:workInfo:add")
@Log(title = "职位管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ZsWorkInfoBo bo) {
return toAjax(iZsWorkInfoService.insertByBo(bo));
}

/**
* 修改职位管理
*/
@SaCheckPermission("system:workInfo:edit")
@Log(title = "职位管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ZsWorkInfoBo bo) {
return toAjax(iZsWorkInfoService.updateByBo(bo));
}

/**
* 删除职位管理
*
* @param ids 主键串
*/
@SaCheckPermission("system:workInfo:remove")
@Log(title = "职位管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(iZsWorkInfoService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}

+ 71
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/ZsWorkInfo.java Parādīt failu

@@ -0,0 +1,71 @@
package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import com.ruoyi.common.core.domain.BaseEntity;

/**
* 职位管理对象 zs_work_info
*
* @author wq
* @date 2025-06-24
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("zs_work_info")
public class ZsWorkInfo extends BaseEntity {

private static final long serialVersionUID=1L;

/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 职位名称
*/
private String name;
/**
* 工作地点
*/
private Long location;
/**
* 所属站点
*/
private Long webSite;
/**
* 岗位职责
*/
private String jobResponsibilities;
/**
* 任职要求
*/
private String jobRequirements;
/**
* 工作时间
*/
private String workTime;
/**
* 福利待遇
*/
private String benefits;
/**
* 邮箱投递地址
*/
private String email;
/**
* 外部平台链接或名称
*/
private String externalPlatform;
/**
* 是否启用
*/
private String isDisabled;

}

+ 87
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ZsWorkInfoBo.java Parādīt failu

@@ -0,0 +1,87 @@
package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
* 职位管理业务对象 zs_work_info
*
* @author wq
* @date 2025-06-24
*/

@Data
@EqualsAndHashCode(callSuper = true)
public class ZsWorkInfoBo extends BaseEntity {

/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;

/**
* 职位名称
*/
@NotBlank(message = "职位名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;

/**
* 工作地点
*/
@NotNull(message = "工作地点不能为空", groups = { AddGroup.class, EditGroup.class })
private Long location;

/**
* 所属站点
*/
@NotNull(message = "所属站点不能为空", groups = { AddGroup.class, EditGroup.class })
private Long webSite;

/**
* 岗位职责
*/
private String jobResponsibilities;

/**
* 任职要求
*/
private String jobRequirements;

/**
* 工作时间
*/
@NotBlank(message = "工作时间不能为空", groups = { AddGroup.class, EditGroup.class })
private String workTime;

/**
* 福利待遇
*/
@NotBlank(message = "福利待遇不能为空", groups = { AddGroup.class, EditGroup.class })
private String benefits;

/**
* 邮箱投递地址
*/
@NotBlank(message = "邮箱投递地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String email;

/**
* 外部平台链接或名称
*/
private String externalPlatform;

/**
* 是否启用
*/
private String isDisabled;


}

+ 118
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ZsWorkInfoVo.java Parādīt failu

@@ -0,0 +1,118 @@
package com.ruoyi.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;



/**
* 职位管理视图对象 zs_work_info
*
* @author wq
* @date 2025-06-24
*/
@Data
@ExcelIgnoreUnannotated
public class ZsWorkInfoVo {

private static final long serialVersionUID = 1L;

/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;

/**
* 职位名称
*/
@ExcelProperty(value = "职位名称")
private String name;

/**
* 工作地点
*/
@ExcelProperty(value = "工作地点", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "zs_operation_location")
private Long location;

/**
* 所属站点
*/
@ExcelProperty(value = "所属站点", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "zs_operation_web_site")
private Long webSite;

/**
* 岗位职责
*/
@ExcelProperty(value = "岗位职责")
private String jobResponsibilities;

/**
* 任职要求
*/
@ExcelProperty(value = "任职要求")
private String jobRequirements;

/**
* 工作时间
*/
@ExcelProperty(value = "工作时间")
private String workTime;

/**
* 福利待遇
*/
@ExcelProperty(value = "福利待遇")
private String benefits;

/**
* 邮箱投递地址
*/
@ExcelProperty(value = "邮箱投递地址")
private String email;

/**
* 外部平台链接或名称
*/
@ExcelProperty(value = "外部平台链接或名称")
private String externalPlatform;

/**
* 是否启用
*/
@ExcelProperty(value = "是否启用", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "zs_is_disabled")
private String isDisabled;

/**
* 创建时间
*/
@ExcelProperty(value = "创建时间")
private Date createTime;

/**
* 更新时间
*/
@ExcelProperty(value = "更新时间")
private Date updateTime;

/**
* 创建人
*/
@ExcelProperty(value = "创建人")
private String createBy;

/**
* 更新人
*/
@ExcelProperty(value = "更新人")
private String updateBy;


}

+ 15
- 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ZsWorkInfoMapper.java Parādīt failu

@@ -0,0 +1,15 @@
package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.ZsWorkInfo;
import com.ruoyi.system.domain.vo.ZsWorkInfoVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;

/**
* 职位管理Mapper接口
*
* @author wq
* @date 2025-06-24
*/
public interface ZsWorkInfoMapper extends BaseMapperPlus<ZsWorkInfoMapper, ZsWorkInfo, ZsWorkInfoVo> {

}

+ 49
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IZsWorkInfoService.java Parādīt failu

@@ -0,0 +1,49 @@
package com.ruoyi.system.service;

import com.ruoyi.system.domain.ZsWorkInfo;
import com.ruoyi.system.domain.vo.ZsWorkInfoVo;
import com.ruoyi.system.domain.bo.ZsWorkInfoBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
* 职位管理Service接口
*
* @author wq
* @date 2025-06-24
*/
public interface IZsWorkInfoService {

/**
* 查询职位管理
*/
ZsWorkInfoVo queryById(Long id);

/**
* 查询职位管理列表
*/
TableDataInfo<ZsWorkInfoVo> queryPageList(ZsWorkInfoBo bo, PageQuery pageQuery);

/**
* 查询职位管理列表
*/
List<ZsWorkInfoVo> queryList(ZsWorkInfoBo bo);

/**
* 新增职位管理
*/
Boolean insertByBo(ZsWorkInfoBo bo);

/**
* 修改职位管理
*/
Boolean updateByBo(ZsWorkInfoBo bo);

/**
* 校验并批量删除职位管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

+ 112
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZsWorkInfoServiceImpl.java Parādīt failu

@@ -0,0 +1,112 @@
package com.ruoyi.system.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.ruoyi.system.domain.bo.ZsWorkInfoBo;
import com.ruoyi.system.domain.vo.ZsWorkInfoVo;
import com.ruoyi.system.domain.ZsWorkInfo;
import com.ruoyi.system.mapper.ZsWorkInfoMapper;
import com.ruoyi.system.service.IZsWorkInfoService;

import java.util.List;
import java.util.Map;
import java.util.Collection;

/**
* 职位管理Service业务层处理
*
* @author wq
* @date 2025-06-24
*/
@RequiredArgsConstructor
@Service
public class ZsWorkInfoServiceImpl implements IZsWorkInfoService {

private final ZsWorkInfoMapper baseMapper;

/**
* 查询职位管理
*/
@Override
public ZsWorkInfoVo queryById(Long id){
return baseMapper.selectVoById(id);
}

/**
* 查询职位管理列表
*/
@Override
public TableDataInfo<ZsWorkInfoVo> queryPageList(ZsWorkInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<ZsWorkInfo> lqw = buildQueryWrapper(bo);
Page<ZsWorkInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}

/**
* 查询职位管理列表
*/
@Override
public List<ZsWorkInfoVo> queryList(ZsWorkInfoBo bo) {
LambdaQueryWrapper<ZsWorkInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}

private LambdaQueryWrapper<ZsWorkInfo> buildQueryWrapper(ZsWorkInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ZsWorkInfo> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), ZsWorkInfo::getName, bo.getName());
lqw.eq(bo.getLocation() != null, ZsWorkInfo::getLocation, bo.getLocation());
lqw.eq(bo.getWebSite() != null, ZsWorkInfo::getWebSite, bo.getWebSite());
lqw.eq(StringUtils.isNotBlank(bo.getIsDisabled()), ZsWorkInfo::getIsDisabled, bo.getIsDisabled());
return lqw;
}

/**
* 新增职位管理
*/
@Override
public Boolean insertByBo(ZsWorkInfoBo bo) {
ZsWorkInfo add = BeanUtil.toBean(bo, ZsWorkInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}

/**
* 修改职位管理
*/
@Override
public Boolean updateByBo(ZsWorkInfoBo bo) {
ZsWorkInfo update = BeanUtil.toBean(bo, ZsWorkInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}

/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(ZsWorkInfo entity){
//TODO 做一些数据校验,如唯一约束
}

/**
* 批量删除职位管理
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

+ 26
- 0
ruoyi-system/src/main/resources/mapper/system/ZsWorkInfoMapper.xml Parādīt failu

@@ -0,0 +1,26 @@
<?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.ruoyi.system.mapper.ZsWorkInfoMapper">

<resultMap type="com.ruoyi.system.domain.ZsWorkInfo" id="ZsWorkInfoResult">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="location" column="location"/>
<result property="webSite" column="web_site"/>
<result property="jobResponsibilities" column="job_responsibilities"/>
<result property="jobRequirements" column="job_requirements"/>
<result property="workTime" column="work_time"/>
<result property="benefits" column="benefits"/>
<result property="email" column="email"/>
<result property="externalPlatform" column="external_platform"/>
<result property="isDisabled" column="is_disabled"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
</resultMap>


</mapper>

Notiek ielāde…
Atcelt
Saglabāt