diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarDetailController.java b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarDetailController.java index a1bdb36..c6427fd 100644 --- a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarDetailController.java +++ b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarDetailController.java @@ -4,6 +4,7 @@ import com.vetti.common.annotation.Log; import com.vetti.common.core.controller.BaseController; import com.vetti.common.core.domain.R; import com.vetti.common.core.page.TableDataInfo; +import com.vetti.common.core.page.TableWebDataInfo; import com.vetti.common.enums.BusinessType; import com.vetti.hotake.domain.HotakeMeetingCalendarDetail; import com.vetti.hotake.service.IHotakeMeetingCalendarDetailService; @@ -33,13 +34,12 @@ public class HotakeMeetingCalendarDetailController extends BaseController * 查询会议日历记录明细列表 */ @ApiOperation("查询会议日历记录明细列表") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarDetail:list')") @GetMapping("/list") - public TableDataInfo list(HotakeMeetingCalendarDetail hotakeMeetingCalendarDetail) + public TableWebDataInfo list(HotakeMeetingCalendarDetail hotakeMeetingCalendarDetail) { startPage(); List list = hotakeMeetingCalendarDetailService.selectHotakeMeetingCalendarDetailList(hotakeMeetingCalendarDetail); - return getDataTable(list); + return getWebDataTable(list); } @@ -47,7 +47,6 @@ public class HotakeMeetingCalendarDetailController extends BaseController * 获取会议日历记录明细详细信息 */ @ApiOperation("获取会议日历记录明细详细信息") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarDetail:query')") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { @@ -58,7 +57,6 @@ public class HotakeMeetingCalendarDetailController extends BaseController * 新增会议日历记录明细 */ @ApiOperation("新增会议日历记录明细") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarDetail:add')") @Log(title = "会议日历记录明细", businessType = BusinessType.INSERT) @PostMapping public R add(@RequestBody HotakeMeetingCalendarDetail hotakeMeetingCalendarDetail) @@ -70,7 +68,6 @@ public class HotakeMeetingCalendarDetailController extends BaseController * 修改会议日历记录明细 */ @ApiOperation("修改会议日历记录明细") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarDetail:edit')") @Log(title = "会议日历记录明细", businessType = BusinessType.UPDATE) @PutMapping public R edit(@RequestBody HotakeMeetingCalendarDetail hotakeMeetingCalendarDetail) @@ -82,7 +79,6 @@ public class HotakeMeetingCalendarDetailController extends BaseController * 删除会议日历记录明细 */ @ApiOperation("删除会议日历记录明细") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarDetail:remove')") @Log(title = "会议日历记录明细", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@PathVariable Long[] ids) diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarInfoController.java b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarInfoController.java index 4624b68..52dd9a9 100644 --- a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarInfoController.java +++ b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeMeetingCalendarInfoController.java @@ -4,8 +4,10 @@ import com.vetti.common.annotation.Log; import com.vetti.common.core.controller.BaseController; import com.vetti.common.core.domain.R; import com.vetti.common.core.page.TableDataInfo; +import com.vetti.common.core.page.TableWebDataInfo; import com.vetti.common.enums.BusinessType; import com.vetti.hotake.domain.HotakeMeetingCalendarInfo; +import com.vetti.hotake.domain.vo.HotakeMeetingCalendarVo; import com.vetti.hotake.service.IHotakeMeetingCalendarInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -21,7 +23,7 @@ import java.util.List; * @author wangxiangshun * @date 2025-11-09 */ -@Api(tags ="会议日历记录主") +@Api(tags ="会议日历记录") @RestController @RequestMapping("/hotake/meetingCalendarInfo") public class HotakeMeetingCalendarInfoController extends BaseController @@ -32,21 +34,31 @@ public class HotakeMeetingCalendarInfoController extends BaseController /** * 查询会议日历记录主列表 */ - @ApiOperation("查询会议日历记录主列表") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarInfo:list')") - @GetMapping("/list") - public TableDataInfo list(HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) + @ApiOperation("查询会议日历记录列表") + @GetMapping("/getPageList") + public TableWebDataInfo pageList(HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) { startPage(); List list = hotakeMeetingCalendarInfoService.selectHotakeMeetingCalendarInfoList(hotakeMeetingCalendarInfo); - return getDataTable(list); + return getWebDataTable(list); + } + + + /** + * 查询会议日历记录主列表(无分页) + */ + @ApiOperation("查询会议日历记录列表(无分页)") + @GetMapping("/getList") + public R> list(HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) + { + List list = hotakeMeetingCalendarInfoService.selectHotakeMeetingCalendarInfoList(hotakeMeetingCalendarInfo); + return R.ok(list); } /** * 获取会议日历记录主详细信息 */ - @ApiOperation("获取会议日历记录主详细信息") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarInfo:query')") + @ApiOperation("获取会议日历记录详细信息") @GetMapping(value = "/{id}") public R getInfo(@PathVariable("id") Long id) { @@ -56,8 +68,7 @@ public class HotakeMeetingCalendarInfoController extends BaseController /** * 新增会议日历记录主 */ - @ApiOperation("新增会议日历记录主") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarInfo:add')") + @ApiOperation("新增会议日历记录") @Log(title = "会议日历记录主", businessType = BusinessType.INSERT) @PostMapping public R add(@RequestBody HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) @@ -68,8 +79,7 @@ public class HotakeMeetingCalendarInfoController extends BaseController /** * 修改会议日历记录主 */ - @ApiOperation("修改会议日历记录主") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarInfo:edit')") + @ApiOperation("修改会议日历记录") @Log(title = "会议日历记录主", businessType = BusinessType.UPDATE) @PutMapping public R edit(@RequestBody HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) @@ -80,12 +90,24 @@ public class HotakeMeetingCalendarInfoController extends BaseController /** * 删除会议日历记录主 */ - @ApiOperation("删除会议日历记录主") - @PreAuthorize("@ss.hasPermi('hotake:meetingCalendarInfo:remove')") + @ApiOperation("删除会议日历记录") @Log(title = "会议日历记录主", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@PathVariable Long[] ids) { return R.ok(hotakeMeetingCalendarInfoService.deleteHotakeMeetingCalendarInfoByIds(ids)); } + + + /** + * 保存会议日历记录主 + */ + @ApiOperation("保存会议日历记录") + @Log(title = "保存会议日历记录", businessType = BusinessType.INSERT) + @PostMapping + public R save(@RequestBody HotakeMeetingCalendarVo calendarVo) + { + hotakeMeetingCalendarInfoService.saveHotakeMeetingCalendarInfo(calendarVo); + return R.ok(); + } } diff --git a/vetti-common/src/main/java/com/vetti/common/enums/MeetingCalendarStatus.java b/vetti-common/src/main/java/com/vetti/common/enums/MeetingCalendarStatus.java new file mode 100644 index 0000000..ccecfa8 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/enums/MeetingCalendarStatus.java @@ -0,0 +1,28 @@ +package com.vetti.common.enums; + +public enum MeetingCalendarStatus { + + NORMAL("1", "正常"), + CANCEL("0", "取消"), + ; + + private final String code; + private final String info; + + MeetingCalendarStatus(String code, String info) + { + this.code = code; + this.info = info; + } + + public String getCode() + { + return code; + } + + public String getInfo() + { + return info; + } + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarDetail.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarDetail.java index 3acc352..77ec049 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarDetail.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarDetail.java @@ -28,13 +28,13 @@ public class HotakeMeetingCalendarDetail extends BaseEntity @Excel(name = "会议ID") private Long meetingId; - /** 参会人员ID */ - @ApiModelProperty("参会人员ID") - @Excel(name = "参会人员ID") - private Long userId; + /** 候选人ID */ + @ApiModelProperty("候选人ID") + @Excel(name = "候选人ID") + private Long candidateId; - @ApiModelProperty("参会人员详细信息") - private SysUser user; + @ApiModelProperty("候选人详细信息") + private SysUser candidateUser; } diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarInfo.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarInfo.java index b2f4c59..4447ebc 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarInfo.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarInfo.java @@ -25,10 +25,13 @@ public class HotakeMeetingCalendarInfo extends BaseEntity @ApiModelProperty("主键ID") private Long id; - /** 用户ID */ - @ApiModelProperty("用户ID") - @Excel(name = "用户ID") - private Long userId; + /** 招聘人ID */ + @ApiModelProperty("招聘人ID") + @Excel(name = "招聘人ID") + private Long recruiterId; + + @ApiModelProperty("岗位申请ID") + private Long roleApplyId; /** 公司名称 */ @ApiModelProperty("公司名称") @@ -50,11 +53,18 @@ public class HotakeMeetingCalendarInfo extends BaseEntity @Excel(name = "会议时间") private String times; + /** 发送消息方式(逗号分隔) */ + @ApiModelProperty("发送消息方式(逗号分隔)") + @Excel(name = "发送消息方式(逗号分隔)") + private String messageVia; + /** 状态(0 取消,1 正常) */ @ApiModelProperty("状态(0 取消,1 正常)") - @Excel(name = "状态", readConverterExp = "0=,取=消,1,正=常") private String status; + @ApiModelProperty("岗位基本信息") + private HotakeRolesInfo rolesInfo; + @ApiModelProperty("参会人员") private List calendarDetails; diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarInfoVo.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarInfoVo.java new file mode 100644 index 0000000..f508380 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarInfoVo.java @@ -0,0 +1,39 @@ +package com.vetti.hotake.domain.vo; + +import com.vetti.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 面试邀请会议记录 + * + * @author wangxiangshun + * @date 2025-12-14 + */ +@Data +@Accessors(chain = true) +public class HotakeMeetingCalendarInfoVo { + + /** 候选人ID */ + @ApiModelProperty("候选人ID") + @Excel(name = "候选人ID") + private Long candidateId; + + /** 会议日期 */ + @ApiModelProperty("会议日期(年月日)") + @Excel(name = "会议日期") + private String meetingDate; + + /** 会议时间 */ + @ApiModelProperty("会议时间") + @Excel(name = "会议时间") + private String times; + + /** 发送消息方式(逗号分隔) */ + @ApiModelProperty("发送消息方式(逗号分隔)") + @Excel(name = "发送消息方式(逗号分隔)") + private String messageVia; + + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarVo.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarVo.java new file mode 100644 index 0000000..f973e7e --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeMeetingCalendarVo.java @@ -0,0 +1,34 @@ +package com.vetti.hotake.domain.vo; + +import com.vetti.common.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * 面试邀请会议 + * + * @author wangxiangshun + * @date 2025-12-14 + */ +@Data +@Accessors(chain = true) +public class HotakeMeetingCalendarVo { + + /** 招聘人ID */ + @ApiModelProperty("招聘人ID") + @Excel(name = "招聘人ID") + private Long recruiterId; + + /** 岗位申请ID */ + @ApiModelProperty("岗位申请ID") + @Excel(name = "岗位申请ID") + private Long roleApplyId; + + /** 面试邀请数据集合 */ + @ApiModelProperty("面试邀请数据集合") + @Excel(name = "面试邀请数据集合") + private List calendarInfoVoList; +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarInfoService.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarInfoService.java index 20cf738..5b8b620 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarInfoService.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarInfoService.java @@ -2,6 +2,7 @@ package com.vetti.hotake.service; import java.util.List; import com.vetti.hotake.domain.HotakeMeetingCalendarInfo; +import com.vetti.hotake.domain.vo.HotakeMeetingCalendarVo; /** * 会议日历记录主Service接口 @@ -67,4 +68,14 @@ public interface IHotakeMeetingCalendarInfoService */ public int batchInsertHotakeMeetingCalendarInfo(List hotakeMeetingCalendarInfoList); + + /** + * 保存会议日历记录 + * + * @param calendarVo 面试邀请信息 + * @return 结果 + */ + public void saveHotakeMeetingCalendarInfo(HotakeMeetingCalendarVo calendarVo); + + } diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarInfoServiceImpl.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarInfoServiceImpl.java index c6b459d..dc2895f 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarInfoServiceImpl.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarInfoServiceImpl.java @@ -8,7 +8,16 @@ import cn.hutool.core.collection.CollectionUtil; import com.vetti.common.core.domain.entity.SysUser; import com.vetti.common.core.service.BaseServiceImpl; import com.vetti.common.enums.FillTypeEnum; +import com.vetti.common.enums.MeetingCalendarStatus; +import com.vetti.common.enums.StageEnum; import com.vetti.hotake.domain.HotakeMeetingCalendarDetail; +import com.vetti.hotake.domain.HotakeRolesApplyInfo; +import com.vetti.hotake.domain.HotakeRolesInfo; +import com.vetti.hotake.domain.vo.HotakeMeetingCalendarInfoVo; +import com.vetti.hotake.domain.vo.HotakeMeetingCalendarVo; +import com.vetti.hotake.mapper.HotakeMeetingCalendarDetailMapper; +import com.vetti.hotake.mapper.HotakeRolesApplyInfoMapper; +import com.vetti.hotake.mapper.HotakeRolesInfoMapper; import com.vetti.hotake.service.IHotakeMeetingCalendarDetailService; import com.vetti.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,12 +37,26 @@ import com.vetti.hotake.service.IHotakeMeetingCalendarInfoService; @SuppressWarnings("all") @Service public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implements IHotakeMeetingCalendarInfoService { + + private final String meetingName = "Interview Invitation"; + + @Autowired private HotakeMeetingCalendarInfoMapper hotakeMeetingCalendarInfoMapper; + @Autowired + private HotakeMeetingCalendarDetailMapper hotakeMeetingCalendarDetailMapper; + @Autowired private IHotakeMeetingCalendarDetailService calendarDetailService; + @Autowired + private HotakeRolesInfoMapper hotakeRolesInfoMapper; + + @Autowired + private HotakeRolesApplyInfoMapper hotakeRolesApplyInfoMapper; + + @Autowired private ISysUserService userService; @@ -47,21 +70,42 @@ public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implem @Override public HotakeMeetingCalendarInfo selectHotakeMeetingCalendarInfoById(Long id) { HotakeMeetingCalendarInfo calendarInfo = hotakeMeetingCalendarInfoMapper.selectHotakeMeetingCalendarInfoById(id); + + //查询岗位数据 + HotakeRolesInfo query = new HotakeRolesInfo(); + List rolesInfoList = hotakeRolesInfoMapper.selectHotakeRolesInfoList(query); + + //查询岗位数据 + HotakeRolesApplyInfo queryApply = new HotakeRolesApplyInfo(); + List applyInfoList = hotakeRolesApplyInfoMapper.selectHotakeRolesApplyInfoList(queryApply); + //获取对应的参会人员数据 HotakeMeetingCalendarDetail queryDetail = new HotakeMeetingCalendarDetail(); List detailList = calendarDetailService.selectHotakeMeetingCalendarDetailList(queryDetail); if (CollectionUtil.isNotEmpty(detailList)) { + Map> mapDetailList = detailList.stream().collect(Collectors.groupingBy(HotakeMeetingCalendarDetail::getMeetingId)); SysUser queryUser = new SysUser(); List userList = userService.selectUserList(queryUser); List calendarDetails = mapDetailList.get(calendarInfo.getId()); for (HotakeMeetingCalendarDetail detail : calendarDetails) { - List users = userList.stream().filter(e -> e.getUserId() == detail.getUserId()).collect(Collectors.toList()); + List users = userList.stream().filter(e -> e.getUserId() == detail.getCandidateId()).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(users)) { - detail.setUser(users.get(0)); + detail.setCandidateUser(users.get(0)); } } calendarInfo.setCalendarDetails(calendarDetails); + //返回岗位数据信息 + //返回岗位数据信息 + List applyInfos = applyInfoList.stream().filter(e->e.getId().longValue() == calendarInfo.getRoleApplyId().longValue()).toList(); + if(CollectionUtil.isNotEmpty(applyInfos)) { + HotakeRolesApplyInfo applyInfo = applyInfos.get(0); + List rolesInfos = rolesInfoList.stream().filter(e->e.getId().longValue() == applyInfo.getRoleId().longValue()).toList(); + if(CollectionUtil.isNotEmpty(rolesInfos)) { + HotakeRolesInfo rolesInfo = rolesInfos.get(0); + calendarInfo.setRolesInfo(rolesInfo); + } + } } return calendarInfo; } @@ -77,6 +121,13 @@ public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implem public List selectHotakeMeetingCalendarInfoList(HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) { List calendarInfos = hotakeMeetingCalendarInfoMapper.selectHotakeMeetingCalendarInfoList(hotakeMeetingCalendarInfo); if (CollectionUtil.isNotEmpty(calendarInfos)) { + //查询岗位数据 + HotakeRolesInfo query = new HotakeRolesInfo(); + List rolesInfoList = hotakeRolesInfoMapper.selectHotakeRolesInfoList(query); + + //查询岗位数据 + HotakeRolesApplyInfo queryApply = new HotakeRolesApplyInfo(); + List applyInfoList = hotakeRolesApplyInfoMapper.selectHotakeRolesApplyInfoList(queryApply); //获取对应的参会人员数据 HotakeMeetingCalendarDetail queryDetail = new HotakeMeetingCalendarDetail(); List detailList = calendarDetailService.selectHotakeMeetingCalendarDetailList(queryDetail); @@ -87,12 +138,22 @@ public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implem for (HotakeMeetingCalendarInfo calendarInfo : calendarInfos) { List calendarDetails = mapDetailList.get(calendarInfo.getId()); for (HotakeMeetingCalendarDetail detail : calendarDetails) { - List users = userList.stream().filter(e -> e.getUserId() == detail.getUserId()).collect(Collectors.toList()); + List users = userList.stream().filter(e -> e.getUserId() == detail.getCandidateId()).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(users)) { - detail.setUser(users.get(0)); + detail.setCandidateUser(users.get(0)); } } calendarInfo.setCalendarDetails(calendarDetails); + //返回岗位数据信息 + List applyInfos = applyInfoList.stream().filter(e->e.getId().longValue() == calendarInfo.getRoleApplyId().longValue()).toList(); + if(CollectionUtil.isNotEmpty(applyInfos)) { + HotakeRolesApplyInfo applyInfo = applyInfos.get(0); + List rolesInfos = rolesInfoList.stream().filter(e->e.getId().longValue() == applyInfo.getRoleId().longValue()).toList(); + if(CollectionUtil.isNotEmpty(rolesInfos)) { + HotakeRolesInfo rolesInfo = rolesInfos.get(0); + calendarInfo.setRolesInfo(rolesInfo); + } + } } } } @@ -110,7 +171,6 @@ public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implem public HotakeMeetingCalendarInfo insertHotakeMeetingCalendarInfo(HotakeMeetingCalendarInfo hotakeMeetingCalendarInfo) { fill(FillTypeEnum.INSERT.getCode(), hotakeMeetingCalendarInfo); hotakeMeetingCalendarInfoMapper.insertHotakeMeetingCalendarInfo(hotakeMeetingCalendarInfo); - //保存参会人员 //1.1 先删除对应的参会人员 calendarDetailService.deleteHotakeMeetingCalendarDetailByInfoId(hotakeMeetingCalendarInfo.getId()); @@ -182,4 +242,41 @@ public class HotakeMeetingCalendarInfoServiceImpl extends BaseServiceImpl implem public int batchInsertHotakeMeetingCalendarInfo(List hotakeMeetingCalendarInfoList) { return hotakeMeetingCalendarInfoMapper.batchInsertHotakeMeetingCalendarInfo(hotakeMeetingCalendarInfoList); } + + /** + * 保存会议日历记录 + * @param calendarVo 面试邀请信息 + */ + @Override + public void saveHotakeMeetingCalendarInfo(HotakeMeetingCalendarVo calendarVo) { + //保存面试邀请数据 + if(CollectionUtil.isNotEmpty(calendarVo.getCalendarInfoVoList())){ + for(HotakeMeetingCalendarInfoVo calendarInfoVo : calendarVo.getCalendarInfoVoList()){ + HotakeMeetingCalendarInfo calendarInfo = new HotakeMeetingCalendarInfo(); + calendarInfo.setRoleApplyId(calendarVo.getRoleApplyId()); + calendarInfo.setRecruiterId(calendarVo.getRecruiterId()); + calendarInfo.setMeetingDate(calendarInfoVo.getMeetingDate()); + calendarInfo.setTimes(calendarInfoVo.getTimes()); + calendarInfo.setMessageVia(calendarInfoVo.getMessageVia()); + calendarInfo.setStatus(MeetingCalendarStatus.NORMAL.getCode()); + calendarInfo.setMeetingName(meetingName); + //保存主表数据 + fill(FillTypeEnum.INSERT.getCode(), calendarInfo); + insertHotakeMeetingCalendarInfo(calendarInfo); + //保存明细数据 + HotakeMeetingCalendarDetail hotakeMeetingCalendarDetail = new HotakeMeetingCalendarDetail(); + hotakeMeetingCalendarDetail.setMeetingId(calendarInfo.getId()); + hotakeMeetingCalendarDetail.setCandidateId(calendarInfoVo.getCandidateId()); + fill(FillTypeEnum.INSERT.getCode(), hotakeMeetingCalendarDetail); + hotakeMeetingCalendarDetailMapper.insertHotakeMeetingCalendarDetail(hotakeMeetingCalendarDetail); + + //更新申请岗位状态 + HotakeRolesApplyInfo applyInfo = new HotakeRolesApplyInfo(); + applyInfo.setId(calendarVo.getRoleApplyId()); + applyInfo.setStage(StageEnum.INTERVIEW.getCode()); + hotakeRolesApplyInfoMapper.updateHotakeRolesApplyInfo(applyInfo); + + } + } + } } diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java index df4c316..f5744c8 100644 --- a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeRolesApplyInfoServiceImpl.java @@ -77,6 +77,11 @@ public class HotakeRolesApplyInfoServiceImpl extends BaseServiceImpl implements applyInfo.setRolesInfo(rolesInfo); } } + if(StrUtil.isNotEmpty(applyInfo.getCvTemplateJson())){ + HotakeCvInfoDto cvInfoDto = handleAnalysisCvInfo(applyInfo.getCvTemplateJson()); + applyInfo.setCvInfoDto(cvInfoDto); + } + } } return applyInfoList; diff --git a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarDetailMapper.xml b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarDetailMapper.xml index 5bf4550..4a56881 100644 --- a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarDetailMapper.xml +++ b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarDetailMapper.xml @@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -17,14 +17,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, meeting_id, user_id, del_flag, create_by, create_time, update_by, update_time, remark from hotake_meeting_calendar_detail + select id, meeting_id, candidate_id, del_flag, create_by, create_time, update_by, update_time, remark from hotake_meeting_calendar_detail @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into hotake_meeting_calendar_detail meeting_id, - user_id, + candidate_id, del_flag, create_by, create_time, @@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{meetingId}, - #{userId}, + #{candidateId}, #{delFlag}, #{createBy}, #{createTime}, @@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update hotake_meeting_calendar_detail meeting_id = #{meetingId}, - user_id = #{userId}, + candidate_id = #{candidateId}, del_flag = #{delFlag}, create_by = #{createBy}, create_time = #{createTime}, @@ -88,9 +88,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into hotake_meeting_calendar_detail( id, meeting_id, user_id, del_flag, create_by, create_time, update_by, update_time, remark) values + insert into hotake_meeting_calendar_detail( id, meeting_id, candidate_id, del_flag, create_by, create_time, update_by, update_time, remark) values - ( #{item.id}, #{item.meetingId}, #{item.userId}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark}) + ( #{item.id}, #{item.meetingId}, #{item.candidateId}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark}) \ No newline at end of file diff --git a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarInfoMapper.xml b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarInfoMapper.xml index 5c58b0f..21bbe51 100644 --- a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarInfoMapper.xml +++ b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeMeetingCalendarInfoMapper.xml @@ -6,12 +6,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + @@ -21,13 +23,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, user_id, comp_name, meeting_name, meeting_date, times, status, del_flag, create_by, create_time, update_by, update_time, remark from hotake_meeting_calendar_info + select id, recruiter_id,role_apply_id, comp_name, meeting_name, meeting_date, times, status,message_via, + del_flag, create_by, create_time, update_by, update_time, remark from hotake_meeting_calendar_info