From 356d886b2d66db49891ca7373332e83187eb6156 Mon Sep 17 00:00:00 2001 From: wangxiangshun Date: Thu, 11 Dec 2025 22:20:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E4=B8=9A=E5=8A=A1=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hotake/HotakeRolesInfoController.java | 106 +++++++++ .../vetti/hotake/domain/HotakeRolesInfo.java | 158 +++++++++++++ .../hotake/mapper/HotakeRolesInfoMapper.java | 69 ++++++ .../service/IHotakeRolesInfoService.java | 70 ++++++ .../impl/HotakeRolesInfoServiceImpl.java | 118 ++++++++++ .../mapper/hotake/HotakeRolesInfoMapper.xml | 212 ++++++++++++++++++ 6 files changed, 733 insertions(+) create mode 100644 vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesInfoController.java create mode 100644 vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeRolesInfo.java create mode 100644 vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesInfoMapper.java create mode 100644 vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesInfoService.java create mode 100644 vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesInfoServiceImpl.java create mode 100644 vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesInfoMapper.xml diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesInfoController.java b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesInfoController.java new file mode 100644 index 0000000..b1f5d6f --- /dev/null +++ b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeRolesInfoController.java @@ -0,0 +1,106 @@ +package com.vetti.web.controller.hotake; + +import com.vetti.common.annotation.Log; +import com.vetti.common.core.controller.BaseController; +import com.vetti.common.core.domain.AjaxResult; +import com.vetti.common.core.page.TableDataInfo; +import com.vetti.common.enums.BusinessType; +import com.vetti.common.utils.poi.ExcelUtil; +import com.vetti.hotake.domain.HotakeRolesInfo; +import com.vetti.hotake.service.IHotakeRolesInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 岗位信息Controller + * + * @author wangxiangshun + * @date 2025-12-11 + */ +@Api(tags ="岗位信息") +@RestController +@RequestMapping("/hotake/rolesInfo") +public class HotakeRolesInfoController extends BaseController +{ + @Autowired + private IHotakeRolesInfoService hotakeRolesInfoService; + + /** + * 查询岗位信息列表 + */ + @ApiOperation("查询岗位信息列表") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:list')") + @GetMapping("/list") + public TableDataInfo list(HotakeRolesInfo hotakeRolesInfo) + { + startPage(); + List list = hotakeRolesInfoService.selectHotakeRolesInfoList(hotakeRolesInfo); + return getDataTable(list); + } + + /** + * 导出岗位信息列表 + */ + @ApiOperation("导出岗位信息列表") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:export')") + @Log(title = "岗位信息", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(HotakeRolesInfo hotakeRolesInfo) + { + List list = hotakeRolesInfoService.selectHotakeRolesInfoList(hotakeRolesInfo); + ExcelUtil util = new ExcelUtil(HotakeRolesInfo.class); + return util.exportExcel(list, "岗位信息数据"); + } + + /** + * 获取岗位信息详细信息 + */ + @ApiOperation("获取岗位信息详细信息") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return AjaxResult.success(hotakeRolesInfoService.selectHotakeRolesInfoById(id)); + } + + /** + * 新增岗位信息 + */ + @ApiOperation("新增岗位信息") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:add')") + @Log(title = "岗位信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody HotakeRolesInfo hotakeRolesInfo) + { + return toAjax(hotakeRolesInfoService.insertHotakeRolesInfo(hotakeRolesInfo)); + } + + /** + * 修改岗位信息 + */ + @ApiOperation("修改岗位信息") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:edit')") + @Log(title = "岗位信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody HotakeRolesInfo hotakeRolesInfo) + { + return toAjax(hotakeRolesInfoService.updateHotakeRolesInfo(hotakeRolesInfo)); + } + + /** + * 删除岗位信息 + */ + @ApiOperation("删除岗位信息") + @PreAuthorize("@ss.hasPermi('hotake:rolesInfo:remove')") + @Log(title = "岗位信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(hotakeRolesInfoService.deleteHotakeRolesInfoByIds(ids)); + } +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeRolesInfo.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeRolesInfo.java new file mode 100644 index 0000000..9f3dd15 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeRolesInfo.java @@ -0,0 +1,158 @@ +package com.vetti.hotake.domain; + +import java.math.BigDecimal; +import lombok.Data; +import lombok.experimental.Accessors; +import io.swagger.annotations.ApiModelProperty; +import com.vetti.common.annotation.Excel; +import com.vetti.common.core.domain.BaseEntity; + +/** + * 岗位信息对象 hotake_roles_info + * + * @author wangxiangshun + * @date 2025-12-11 + */ +@Data +@Accessors(chain = true) +public class HotakeRolesInfo extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + @ApiModelProperty("主键ID") + private Long id; + + /** 招聘人ID */ + @ApiModelProperty("招聘人ID") + @Excel(name = "招聘人ID") + private Long recruiterId; + + /** 岗位名称 */ + @ApiModelProperty("岗位名称") + @Excel(name = "岗位名称") + private String roleName; + + /** 工作地点类型 */ + @ApiModelProperty("工作地点类型") + @Excel(name = "工作地点类型") + private String locationType; + + /** 工作详细地点 */ + @ApiModelProperty("工作详细地点") + @Excel(name = "工作详细地点") + private String locations; + + /** 申请人数 */ + @ApiModelProperty("申请人数") + @Excel(name = "申请人数") + private String applied; + + /** 工作级别 */ + @ApiModelProperty("工作级别") + @Excel(name = "工作级别") + private String jobLevel; + + /** 工作类型 */ + @ApiModelProperty("工作类型") + @Excel(name = "工作类型") + private String jobType; + + /** 工作经验 */ + @ApiModelProperty("工作经验") + @Excel(name = "工作经验") + private String jobExperience; + + /** 起始薪资 */ + @ApiModelProperty("起始薪资") + @Excel(name = "起始薪资") + private BigDecimal salaryStart; + + /** 最高薪资 */ + @ApiModelProperty("最高薪资") + @Excel(name = "最高薪资") + private BigDecimal salaryEnd; + + /** 所需技能 */ + @ApiModelProperty("所需技能") + @Excel(name = "所需技能") + private String requiredSkillsJson; + + /** 加分技能 */ + @ApiModelProperty("加分技能") + @Excel(name = "加分技能") + private String niceToHaveSkillsJson; + + /** 教育要求 */ + @ApiModelProperty("教育要求") + @Excel(name = "教育要求") + private String educationRequirementsJson; + + /** 是否接受以同等工作经验作为学位的替代 */ + @ApiModelProperty("是否接受以同等工作经验作为学位的替代") + @Excel(name = "是否接受以同等工作经验作为学位的替代") + private String acceptEquivalentWorkFlag; + + /** 证书与执照 */ + @ApiModelProperty("证书与执照") + @Excel(name = "证书与执照") + private String certificationsLicensesJson; + + /** 描述语气 */ + @ApiModelProperty("描述语气") + @Excel(name = "描述语气") + private String descriptionTone; + + /** 关于职位 */ + @ApiModelProperty("关于职位") + @Excel(name = "关于职位") + private String aboutRole; + + /** 职责 */ + @ApiModelProperty("职责") + @Excel(name = "职责") + private String responsibilities; + + /** 角色福利 */ + @ApiModelProperty("角色福利") + @Excel(name = "角色福利") + private String roleBenefits; + + /** 发布渠道 */ + @ApiModelProperty("发布渠道") + @Excel(name = "发布渠道") + private String publishingChannelsJson; + + /** 发布日历-日期 */ + @ApiModelProperty("发布日历-日期") + @Excel(name = "发布日历-日期") + private String publishingScheduleDate; + + /** 发布渠道-具体时间 */ + @ApiModelProperty("发布渠道-具体时间") + @Excel(name = "发布渠道-具体时间") + private String publishingScheduleTime; + + /** 申请截止日期 */ + @ApiModelProperty("申请截止日期") + @Excel(name = "申请截止日期") + private String applicationDeadline; + + /** 发布日期 */ + @ApiModelProperty("发布日期") + @Excel(name = "发布日期") + private String posted; + + /** 数据类型(normal:正常,draft:草稿) */ + @ApiModelProperty("数据类型(normal:正常,draft:草稿)") + @Excel(name = "数据类型", readConverterExp = "n=ormal:正常,draft:草稿") + private String dataType; + + /** 当前操作步骤 */ + @ApiModelProperty("当前操作步骤") + @Excel(name = "当前操作步骤") + private String operStep; + + + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesInfoMapper.java b/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesInfoMapper.java new file mode 100644 index 0000000..6ce40f3 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeRolesInfoMapper.java @@ -0,0 +1,69 @@ +package com.vetti.hotake.mapper; + +import java.util.List; +import com.vetti.hotake.domain.HotakeRolesInfo; + +/** + * 岗位信息Mapper接口 + * + * @author wangxiangshun + * @date 2025-12-11 + */ +public interface HotakeRolesInfoMapper +{ + /** + * 查询岗位信息 + * + * @param id 岗位信息主键 + * @return 岗位信息 + */ + public HotakeRolesInfo selectHotakeRolesInfoById(Long id); + + /** + * 查询岗位信息列表 + * + * @param hotakeRolesInfo 岗位信息 + * @return 岗位信息集合 + */ + public List selectHotakeRolesInfoList(HotakeRolesInfo hotakeRolesInfo); + + /** + * 新增岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + public int insertHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo); + + /** + * 修改岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + public int updateHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo); + + /** + * 删除岗位信息 + * + * @param id 岗位信息主键 + * @return 结果 + */ + public int deleteHotakeRolesInfoById(Long id); + + /** + * 批量删除岗位信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteHotakeRolesInfoByIds(Long[] ids); + /** + * 批量新增岗位信息 + * + * @param hotakeRolesInfoList 岗位信息列表 + * @return 结果 + */ + public int batchInsertHotakeRolesInfo(List hotakeRolesInfoList); + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesInfoService.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesInfoService.java new file mode 100644 index 0000000..9669732 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeRolesInfoService.java @@ -0,0 +1,70 @@ +package com.vetti.hotake.service; + +import java.util.List; +import com.vetti.hotake.domain.HotakeRolesInfo; + +/** + * 岗位信息Service接口 + * + * @author wangxiangshun + * @date 2025-12-11 + */ +public interface IHotakeRolesInfoService +{ + /** + * 查询岗位信息 + * + * @param id 岗位信息主键 + * @return 岗位信息 + */ + public HotakeRolesInfo selectHotakeRolesInfoById(Long id); + + /** + * 查询岗位信息列表 + * + * @param hotakeRolesInfo 岗位信息 + * @return 岗位信息集合 + */ + public List selectHotakeRolesInfoList(HotakeRolesInfo hotakeRolesInfo); + + /** + * 新增岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + public int insertHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo); + + /** + * 修改岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + public int updateHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo); + + /** + * 批量删除岗位信息 + * + * @param ids 需要删除的岗位信息主键集合 + * @return 结果 + */ + public int deleteHotakeRolesInfoByIds(Long[] ids); + + /** + * 删除岗位信息信息 + * + * @param id 岗位信息主键 + * @return 结果 + */ + public int deleteHotakeRolesInfoById(Long id); + + /** + * 批量新增岗位信息 + * + * @param hotakeRolesInfoList 岗位信息列表 + * @return 结果 + */ + public int batchInsertHotakeRolesInfo(List hotakeRolesInfoList); + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesInfoServiceImpl.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesInfoServiceImpl.java new file mode 100644 index 0000000..a0d05c5 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesInfoServiceImpl.java @@ -0,0 +1,118 @@ +package com.vetti.hotake.service.impl; + +import java.util.List; + +import com.vetti.common.core.service.BaseServiceImpl; +import com.vetti.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.vetti.hotake.mapper.HotakeRolesInfoMapper; +import com.vetti.hotake.domain.HotakeRolesInfo; +import com.vetti.hotake.service.IHotakeRolesInfoService; + +/** + * 岗位信息Service业务层处理 + * + * @author wangxiangshun + * @date 2025-12-11 + */ +@SuppressWarnings("all") +@Service +public class HotakeRolesInfoServiceImpl extends BaseServiceImpl implements IHotakeRolesInfoService +{ + @Autowired + private HotakeRolesInfoMapper hotakeRolesInfoMapper; + + /** + * 查询岗位信息 + * + * @param id 岗位信息主键 + * @return 岗位信息 + */ + @Transactional(readOnly = true) + @Override + public HotakeRolesInfo selectHotakeRolesInfoById(Long id) + { + return hotakeRolesInfoMapper.selectHotakeRolesInfoById(id); + } + + /** + * 查询岗位信息列表 + * + * @param hotakeRolesInfo 岗位信息 + * @return 岗位信息 + */ + @Transactional(readOnly = true) + @Override + public List selectHotakeRolesInfoList(HotakeRolesInfo hotakeRolesInfo) + { + return hotakeRolesInfoMapper.selectHotakeRolesInfoList(hotakeRolesInfo); + } + + /** + * 新增岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + @Transactional(rollbackFor=Exception.class) + @Override + public int insertHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo) + { + hotakeRolesInfo.setCreateTime(DateUtils.getNowDate()); + return hotakeRolesInfoMapper.insertHotakeRolesInfo(hotakeRolesInfo); + } + + /** + * 修改岗位信息 + * + * @param hotakeRolesInfo 岗位信息 + * @return 结果 + */ + @Transactional(rollbackFor=Exception.class) + @Override + public int updateHotakeRolesInfo(HotakeRolesInfo hotakeRolesInfo) + { + hotakeRolesInfo.setUpdateTime(DateUtils.getNowDate()); + return hotakeRolesInfoMapper.updateHotakeRolesInfo(hotakeRolesInfo); + } + + /** + * 批量删除岗位信息 + * + * @param ids 需要删除的岗位信息主键 + * @return 结果 + */ + @Transactional(rollbackFor=Exception.class) + @Override + public int deleteHotakeRolesInfoByIds(Long[] ids) + { + return hotakeRolesInfoMapper.deleteHotakeRolesInfoByIds(ids); + } + + /** + * 删除岗位信息信息 + * + * @param id 岗位信息主键 + * @return 结果 + */ + @Transactional(rollbackFor=Exception.class) + @Override + public int deleteHotakeRolesInfoById(Long id) + { + return hotakeRolesInfoMapper.deleteHotakeRolesInfoById(id); + } + /** + * 批量新增岗位信息 + * + * @param hotakeRolesInfoList 岗位信息列表 + * @return 结果 + */ + @Transactional(rollbackFor=Exception.class) + @Override + public int batchInsertHotakeRolesInfo(List hotakeRolesInfoList){ + return hotakeRolesInfoMapper.batchInsertHotakeRolesInfo(hotakeRolesInfoList); + } +} diff --git a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesInfoMapper.xml b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesInfoMapper.xml new file mode 100644 index 0000000..2091077 --- /dev/null +++ b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeRolesInfoMapper.xml @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, recruiter_id, role_name, location_type, locations, applied, job_Level, job_type, job_experience, salary_start, salary_end, required_skills_json, nice_to_have_skills_json, education_requirements_json, accept_equivalent_work_flag, certifications_licenses_json, description_tone, about_role, responsibilities, role_benefits, publishing_channels_json, publishing_schedule_date, publishing_schedule_time, application_deadline, posted, data_type, oper_step, del_flag, create_by, create_time, update_by, update_time, remark from hotake_roles_info + + + + + + + + insert into hotake_roles_info + + recruiter_id, + role_name, + location_type, + locations, + applied, + job_Level, + job_type, + job_experience, + salary_start, + salary_end, + required_skills_json, + nice_to_have_skills_json, + education_requirements_json, + accept_equivalent_work_flag, + certifications_licenses_json, + description_tone, + about_role, + responsibilities, + role_benefits, + publishing_channels_json, + publishing_schedule_date, + publishing_schedule_time, + application_deadline, + posted, + data_type, + oper_step, + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{recruiterId}, + #{roleName}, + #{locationType}, + #{locations}, + #{applied}, + #{jobLevel}, + #{jobType}, + #{jobExperience}, + #{salaryStart}, + #{salaryEnd}, + #{requiredSkillsJson}, + #{niceToHaveSkillsJson}, + #{educationRequirementsJson}, + #{acceptEquivalentWorkFlag}, + #{certificationsLicensesJson}, + #{descriptionTone}, + #{aboutRole}, + #{responsibilities}, + #{roleBenefits}, + #{publishingChannelsJson}, + #{publishingScheduleDate}, + #{publishingScheduleTime}, + #{applicationDeadline}, + #{posted}, + #{dataType}, + #{operStep}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update hotake_roles_info + + recruiter_id = #{recruiterId}, + role_name = #{roleName}, + location_type = #{locationType}, + locations = #{locations}, + applied = #{applied}, + job_Level = #{jobLevel}, + job_type = #{jobType}, + job_experience = #{jobExperience}, + salary_start = #{salaryStart}, + salary_end = #{salaryEnd}, + required_skills_json = #{requiredSkillsJson}, + nice_to_have_skills_json = #{niceToHaveSkillsJson}, + education_requirements_json = #{educationRequirementsJson}, + accept_equivalent_work_flag = #{acceptEquivalentWorkFlag}, + certifications_licenses_json = #{certificationsLicensesJson}, + description_tone = #{descriptionTone}, + about_role = #{aboutRole}, + responsibilities = #{responsibilities}, + role_benefits = #{roleBenefits}, + publishing_channels_json = #{publishingChannelsJson}, + publishing_schedule_date = #{publishingScheduleDate}, + publishing_schedule_time = #{publishingScheduleTime}, + application_deadline = #{applicationDeadline}, + posted = #{posted}, + data_type = #{dataType}, + oper_step = #{operStep}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from hotake_roles_info where id = #{id} + + + + delete from hotake_roles_info where id in + + #{id} + + + + + insert into hotake_roles_info( id, recruiter_id, role_name, location_type, locations, applied, job_Level, job_type, job_experience, salary_start, salary_end, required_skills_json, nice_to_have_skills_json, education_requirements_json, accept_equivalent_work_flag, certifications_licenses_json, description_tone, about_role, responsibilities, role_benefits, publishing_channels_json, publishing_schedule_date, publishing_schedule_time, application_deadline, posted, data_type, oper_step, del_flag, create_by, create_time, update_by, update_time, remark,) values + + ( #{item.id}, #{item.recruiterId}, #{item.roleName}, #{item.locationType}, #{item.locations}, #{item.applied}, #{item.jobLevel}, #{item.jobType}, #{item.jobExperience}, #{item.salaryStart}, #{item.salaryEnd}, #{item.requiredSkillsJson}, #{item.niceToHaveSkillsJson}, #{item.educationRequirementsJson}, #{item.acceptEquivalentWorkFlag}, #{item.certificationsLicensesJson}, #{item.descriptionTone}, #{item.aboutRole}, #{item.responsibilities}, #{item.roleBenefits}, #{item.publishingChannelsJson}, #{item.publishingScheduleDate}, #{item.publishingScheduleTime}, #{item.applicationDeadline}, #{item.posted}, #{item.dataType}, #{item.operStep}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark},) + + + \ No newline at end of file