岗位业务逻辑初始化

This commit is contained in:
2025-12-11 22:20:00 +08:00
parent 65255bafb9
commit 356d886b2d
6 changed files with 733 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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<HotakeRolesInfo> 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<HotakeRolesInfo> hotakeRolesInfoList);
}

View File

@@ -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<HotakeRolesInfo> 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<HotakeRolesInfo> hotakeRolesInfoList);
}

View File

@@ -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<HotakeRolesInfo> 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<HotakeRolesInfo> hotakeRolesInfoList){
return hotakeRolesInfoMapper.batchInsertHotakeRolesInfo(hotakeRolesInfoList);
}
}

View File

@@ -0,0 +1,212 @@
<?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.vetti.hotake.mapper.HotakeRolesInfoMapper">
<resultMap type="HotakeRolesInfo" id="HotakeRolesInfoResult">
<result property="id" column="id" />
<result property="recruiterId" column="recruiter_id" />
<result property="roleName" column="role_name" />
<result property="locationType" column="location_type" />
<result property="locations" column="locations" />
<result property="applied" column="applied" />
<result property="jobLevel" column="job_Level" />
<result property="jobType" column="job_type" />
<result property="jobExperience" column="job_experience" />
<result property="salaryStart" column="salary_start" />
<result property="salaryEnd" column="salary_end" />
<result property="requiredSkillsJson" column="required_skills_json" />
<result property="niceToHaveSkillsJson" column="nice_to_have_skills_json" />
<result property="educationRequirementsJson" column="education_requirements_json" />
<result property="acceptEquivalentWorkFlag" column="accept_equivalent_work_flag" />
<result property="certificationsLicensesJson" column="certifications_licenses_json" />
<result property="descriptionTone" column="description_tone" />
<result property="aboutRole" column="about_role" />
<result property="responsibilities" column="responsibilities" />
<result property="roleBenefits" column="role_benefits" />
<result property="publishingChannelsJson" column="publishing_channels_json" />
<result property="publishingScheduleDate" column="publishing_schedule_date" />
<result property="publishingScheduleTime" column="publishing_schedule_time" />
<result property="applicationDeadline" column="application_deadline" />
<result property="posted" column="posted" />
<result property="dataType" column="data_type" />
<result property="operStep" column="oper_step" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectHotakeRolesInfoVo">
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
</sql>
<select id="selectHotakeRolesInfoList" parameterType="HotakeRolesInfo" resultMap="HotakeRolesInfoResult">
<include refid="selectHotakeRolesInfoVo"/>
<where>
<if test="recruiterId != null "> and recruiter_id = #{recruiterId}</if>
<if test="roleName != null and roleName != ''"> and role_name like concat('%', #{roleName}, '%')</if>
<if test="locationType != null and locationType != ''"> and location_type = #{locationType}</if>
<if test="locations != null and locations != ''"> and locations = #{locations}</if>
<if test="applied != null and applied != ''"> and applied = #{applied}</if>
<if test="jobLevel != null and jobLevel != ''"> and job_Level = #{jobLevel}</if>
<if test="jobType != null and jobType != ''"> and job_type = #{jobType}</if>
<if test="jobExperience != null and jobExperience != ''"> and job_experience = #{jobExperience}</if>
<if test="salaryStart != null "> and salary_start = #{salaryStart}</if>
<if test="salaryEnd != null "> and salary_end = #{salaryEnd}</if>
<if test="requiredSkillsJson != null and requiredSkillsJson != ''"> and required_skills_json = #{requiredSkillsJson}</if>
<if test="niceToHaveSkillsJson != null and niceToHaveSkillsJson != ''"> and nice_to_have_skills_json = #{niceToHaveSkillsJson}</if>
<if test="educationRequirementsJson != null and educationRequirementsJson != ''"> and education_requirements_json = #{educationRequirementsJson}</if>
<if test="acceptEquivalentWorkFlag != null and acceptEquivalentWorkFlag != ''"> and accept_equivalent_work_flag = #{acceptEquivalentWorkFlag}</if>
<if test="certificationsLicensesJson != null and certificationsLicensesJson != ''"> and certifications_licenses_json = #{certificationsLicensesJson}</if>
<if test="descriptionTone != null and descriptionTone != ''"> and description_tone = #{descriptionTone}</if>
<if test="aboutRole != null and aboutRole != ''"> and about_role = #{aboutRole}</if>
<if test="responsibilities != null and responsibilities != ''"> and responsibilities = #{responsibilities}</if>
<if test="roleBenefits != null and roleBenefits != ''"> and role_benefits = #{roleBenefits}</if>
<if test="publishingChannelsJson != null and publishingChannelsJson != ''"> and publishing_channels_json = #{publishingChannelsJson}</if>
<if test="publishingScheduleDate != null and publishingScheduleDate != ''"> and publishing_schedule_date = #{publishingScheduleDate}</if>
<if test="publishingScheduleTime != null and publishingScheduleTime != ''"> and publishing_schedule_time = #{publishingScheduleTime}</if>
<if test="applicationDeadline != null and applicationDeadline != ''"> and application_deadline = #{applicationDeadline}</if>
<if test="posted != null and posted != ''"> and posted = #{posted}</if>
<if test="dataType != null and dataType != ''"> and data_type = #{dataType}</if>
<if test="operStep != null and operStep != ''"> and oper_step = #{operStep}</if>
</where>
</select>
<select id="selectHotakeRolesInfoById" parameterType="Long" resultMap="HotakeRolesInfoResult">
<include refid="selectHotakeRolesInfoVo"/>
where id = #{id}
</select>
<insert id="insertHotakeRolesInfo" parameterType="HotakeRolesInfo" useGeneratedKeys="true" keyProperty="id">
insert into hotake_roles_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="recruiterId != null">recruiter_id,</if>
<if test="roleName != null">role_name,</if>
<if test="locationType != null">location_type,</if>
<if test="locations != null">locations,</if>
<if test="applied != null">applied,</if>
<if test="jobLevel != null">job_Level,</if>
<if test="jobType != null">job_type,</if>
<if test="jobExperience != null">job_experience,</if>
<if test="salaryStart != null">salary_start,</if>
<if test="salaryEnd != null">salary_end,</if>
<if test="requiredSkillsJson != null">required_skills_json,</if>
<if test="niceToHaveSkillsJson != null">nice_to_have_skills_json,</if>
<if test="educationRequirementsJson != null">education_requirements_json,</if>
<if test="acceptEquivalentWorkFlag != null">accept_equivalent_work_flag,</if>
<if test="certificationsLicensesJson != null">certifications_licenses_json,</if>
<if test="descriptionTone != null">description_tone,</if>
<if test="aboutRole != null">about_role,</if>
<if test="responsibilities != null">responsibilities,</if>
<if test="roleBenefits != null">role_benefits,</if>
<if test="publishingChannelsJson != null">publishing_channels_json,</if>
<if test="publishingScheduleDate != null">publishing_schedule_date,</if>
<if test="publishingScheduleTime != null">publishing_schedule_time,</if>
<if test="applicationDeadline != null">application_deadline,</if>
<if test="posted != null">posted,</if>
<if test="dataType != null">data_type,</if>
<if test="operStep != null">oper_step,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="recruiterId != null">#{recruiterId},</if>
<if test="roleName != null">#{roleName},</if>
<if test="locationType != null">#{locationType},</if>
<if test="locations != null">#{locations},</if>
<if test="applied != null">#{applied},</if>
<if test="jobLevel != null">#{jobLevel},</if>
<if test="jobType != null">#{jobType},</if>
<if test="jobExperience != null">#{jobExperience},</if>
<if test="salaryStart != null">#{salaryStart},</if>
<if test="salaryEnd != null">#{salaryEnd},</if>
<if test="requiredSkillsJson != null">#{requiredSkillsJson},</if>
<if test="niceToHaveSkillsJson != null">#{niceToHaveSkillsJson},</if>
<if test="educationRequirementsJson != null">#{educationRequirementsJson},</if>
<if test="acceptEquivalentWorkFlag != null">#{acceptEquivalentWorkFlag},</if>
<if test="certificationsLicensesJson != null">#{certificationsLicensesJson},</if>
<if test="descriptionTone != null">#{descriptionTone},</if>
<if test="aboutRole != null">#{aboutRole},</if>
<if test="responsibilities != null">#{responsibilities},</if>
<if test="roleBenefits != null">#{roleBenefits},</if>
<if test="publishingChannelsJson != null">#{publishingChannelsJson},</if>
<if test="publishingScheduleDate != null">#{publishingScheduleDate},</if>
<if test="publishingScheduleTime != null">#{publishingScheduleTime},</if>
<if test="applicationDeadline != null">#{applicationDeadline},</if>
<if test="posted != null">#{posted},</if>
<if test="dataType != null">#{dataType},</if>
<if test="operStep != null">#{operStep},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateHotakeRolesInfo" parameterType="HotakeRolesInfo">
update hotake_roles_info
<trim prefix="SET" suffixOverrides=",">
<if test="recruiterId != null">recruiter_id = #{recruiterId},</if>
<if test="roleName != null">role_name = #{roleName},</if>
<if test="locationType != null">location_type = #{locationType},</if>
<if test="locations != null">locations = #{locations},</if>
<if test="applied != null">applied = #{applied},</if>
<if test="jobLevel != null">job_Level = #{jobLevel},</if>
<if test="jobType != null">job_type = #{jobType},</if>
<if test="jobExperience != null">job_experience = #{jobExperience},</if>
<if test="salaryStart != null">salary_start = #{salaryStart},</if>
<if test="salaryEnd != null">salary_end = #{salaryEnd},</if>
<if test="requiredSkillsJson != null">required_skills_json = #{requiredSkillsJson},</if>
<if test="niceToHaveSkillsJson != null">nice_to_have_skills_json = #{niceToHaveSkillsJson},</if>
<if test="educationRequirementsJson != null">education_requirements_json = #{educationRequirementsJson},</if>
<if test="acceptEquivalentWorkFlag != null">accept_equivalent_work_flag = #{acceptEquivalentWorkFlag},</if>
<if test="certificationsLicensesJson != null">certifications_licenses_json = #{certificationsLicensesJson},</if>
<if test="descriptionTone != null">description_tone = #{descriptionTone},</if>
<if test="aboutRole != null">about_role = #{aboutRole},</if>
<if test="responsibilities != null">responsibilities = #{responsibilities},</if>
<if test="roleBenefits != null">role_benefits = #{roleBenefits},</if>
<if test="publishingChannelsJson != null">publishing_channels_json = #{publishingChannelsJson},</if>
<if test="publishingScheduleDate != null">publishing_schedule_date = #{publishingScheduleDate},</if>
<if test="publishingScheduleTime != null">publishing_schedule_time = #{publishingScheduleTime},</if>
<if test="applicationDeadline != null">application_deadline = #{applicationDeadline},</if>
<if test="posted != null">posted = #{posted},</if>
<if test="dataType != null">data_type = #{dataType},</if>
<if test="operStep != null">oper_step = #{operStep},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteHotakeRolesInfoById" parameterType="Long">
delete from hotake_roles_info where id = #{id}
</delete>
<delete id="deleteHotakeRolesInfoByIds" parameterType="String">
delete from hotake_roles_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<insert id="batchInsertHotakeRolesInfo">
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
<foreach item="item" index="index" collection="list" separator=",">
( #{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},)
</foreach>
</insert>
</mapper>