diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeReferenceCheckController.java b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeReferenceCheckController.java new file mode 100644 index 0000000..d41e1a4 --- /dev/null +++ b/vetti-admin/src/main/java/com/vetti/web/controller/hotake/HotakeReferenceCheckController.java @@ -0,0 +1,103 @@ +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.R; +import com.vetti.common.core.page.TableWebDataInfo; +import com.vetti.common.enums.BusinessType; +import com.vetti.hotake.domain.HotakeReferenceCheck; +import com.vetti.hotake.domain.dto.VcDto.VcExperienceDto; +import com.vetti.hotake.service.IHotakeReferenceCheckService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 参考检查Controller + * + * @author vetti + * @date 2026-01-29 + */ +@Api(tags = "参考检查") +@RestController +@RequestMapping("/hotake/referenceCheck") +public class HotakeReferenceCheckController extends BaseController { + @Autowired + private IHotakeReferenceCheckService hotakeReferenceCheckService; + + /** + * 查询参考检查列表 + */ + @ApiOperation("查询参考检查列表(分页)") + @GetMapping("/getPagelist") + public TableWebDataInfo list(HotakeReferenceCheck hotakeReferenceCheck) { + startPage(); + hotakeReferenceCheck.setCreateBy(getUsername()); + List list = hotakeReferenceCheckService.selectHotakeReferenceCheckList(hotakeReferenceCheck); + return getWebDataTable(list); + } + + /** + * 查询参考检查列表 + */ + @ApiOperation("查询参考检查列表(无分页)") + @GetMapping("/getList") + public R> getList(HotakeReferenceCheck hotakeReferenceCheck) { + hotakeReferenceCheck.setCreateBy(getUsername()); + List list = hotakeReferenceCheckService.selectHotakeReferenceCheckList(hotakeReferenceCheck); + return R.ok(list, ""); + } + + /** + * 获取参考检查详细信息 + */ + @ApiOperation("获取参考检查详细信息") + @GetMapping(value = "/{id}") + public R getInfo(@ApiParam("参考检查ID") @PathVariable("id") Integer id) { + return R.ok(hotakeReferenceCheckService.selectHotakeReferenceCheckById(id), ""); + } + + /** + * 新增参考检查 + */ + @ApiOperation("新增参考检查") + @Log(title = "参考检查", businessType = BusinessType.INSERT) + @PostMapping + public R add(@RequestBody HotakeReferenceCheck hotakeReferenceCheck) { + return R.ok(hotakeReferenceCheckService.insertHotakeReferenceCheck(hotakeReferenceCheck)); + } + + /** + * 修改参考检查 + */ + @ApiOperation("修改参考检查") + @Log(title = "参考检查", businessType = BusinessType.UPDATE) + @PutMapping + public R edit(@RequestBody HotakeReferenceCheck hotakeReferenceCheck) { + return R.ok(hotakeReferenceCheckService.updateHotakeReferenceCheck(hotakeReferenceCheck)); + } + + /** + * 删除参考检查 + */ + @ApiOperation("删除参考检查") + @Log(title = "参考检查", businessType = BusinessType.DELETE) + @DeleteMapping("/{id}") + public R remove(@PathVariable Integer id) { + return R.ok(hotakeReferenceCheckService.deleteHotakeReferenceCheckById(id)); + } + + /** + * 获取当前登录人的工作经验列表 + */ + @ApiOperation("获取当前登录人的工作经验列表") + @GetMapping("/getExperienceList") + public R> getExperienceList() { + return R.ok(hotakeReferenceCheckService.getCurrentUserExperienceList(), ""); + } + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeReferenceCheck.java b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeReferenceCheck.java new file mode 100644 index 0000000..249548d --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeReferenceCheck.java @@ -0,0 +1,55 @@ +package com.vetti.hotake.domain; + +import com.vetti.common.annotation.Excel; +import com.vetti.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 参考检查对象 hotake_reference_check + * + * @author vetti + * @date 2026-01-29 + */ +@Data +@Accessors(chain = true) +public class HotakeReferenceCheck extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + @ApiModelProperty("主键ID") + private Integer id; + + /** 公司名称 */ + @ApiModelProperty("公司名称") + @Excel(name = "公司名称") + private String company; + + /** 推荐人全名 */ + @ApiModelProperty("推荐人全名") + @Excel(name = "推荐人全名") + private String fullName; + + /** 推荐人职位 */ + @ApiModelProperty("推荐人职位") + @Excel(name = "推荐人职位") + private String position; + + /** 与候选人的关系 */ + @ApiModelProperty("与候选人的关系") + @Excel(name = "与候选人的关系") + private String relationship; + + /** 推荐人邮箱 */ + @ApiModelProperty("推荐人邮箱") + @Excel(name = "推荐人邮箱") + private String email; + + /** 是否为该工作经历保存此推荐人 */ + @ApiModelProperty("是否为该工作经历保存此推荐人") + @Excel(name = "是否为该工作经历保存此推荐人") + private Boolean saveJobExperience; + +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeReferenceCheckService.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeReferenceCheckService.java new file mode 100644 index 0000000..8844ec7 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeReferenceCheckService.java @@ -0,0 +1,68 @@ +package com.vetti.hotake.service; + +import java.util.List; +import com.vetti.hotake.domain.HotakeReferenceCheck; + +/** + * 参考检查Service接口 + * + * @author vetti + * @date 2026-01-29 + */ +public interface IHotakeReferenceCheckService +{ + /** + * 查询参考检查 + * + * @param id 参考检查主键 + * @return 参考检查 + */ + public HotakeReferenceCheck selectHotakeReferenceCheckById(Integer id); + + /** + * 查询参考检查列表 + * + * @param hotakeReferenceCheck 参考检查 + * @return 参考检查集合 + */ + public List selectHotakeReferenceCheckList(HotakeReferenceCheck hotakeReferenceCheck); + + /** + * 新增参考检查 + * + * @param hotakeReferenceCheck 参考检查 + * @return 结果 + */ + public HotakeReferenceCheck insertHotakeReferenceCheck(HotakeReferenceCheck hotakeReferenceCheck); + + /** + * 修改参考检查 + * + * @param hotakeReferenceCheck 参考检查 + * @return 结果 + */ + public HotakeReferenceCheck updateHotakeReferenceCheck(HotakeReferenceCheck hotakeReferenceCheck); + + /** + * 批量删除参考检查 + * + * @param ids 需要删除的参考检查主键集合 + * @return 结果 + */ + public int deleteHotakeReferenceCheckByIds(Integer[] ids); + + /** + * 删除参考检查信息 + * + * @param id 参考检查主键 + * @return 结果 + */ + public int deleteHotakeReferenceCheckById(Integer id); + + /** + * 获取当前登录人的工作经验列表 + * + * @return 工作经验列表 + */ + public List getCurrentUserExperienceList(); +} diff --git a/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeReferenceCheckServiceImpl.java b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeReferenceCheckServiceImpl.java new file mode 100644 index 0000000..9aa8439 --- /dev/null +++ b/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeReferenceCheckServiceImpl.java @@ -0,0 +1,142 @@ +package com.vetti.hotake.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.vetti.common.core.service.BaseServiceImpl; +import com.vetti.common.enums.FillTypeEnum; +import com.vetti.common.utils.SecurityUtils; +import com.vetti.hotake.domain.HotakeCvInfo; +import com.vetti.hotake.domain.HotakeReferenceCheck; +import com.vetti.hotake.domain.dto.HotakeCvInfoDto; +import com.vetti.hotake.domain.dto.VcDto.VcExperienceDto; +import com.vetti.hotake.mapper.HotakeCvInfoMapper; +import com.vetti.hotake.mapper.HotakeReferenceCheckMapper; +import com.vetti.hotake.service.IHotakeReferenceCheckService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * 参考检查Service业务层处理 + * + * @author vetti + * @date 2026-01-29 + */ +@Service +public class HotakeReferenceCheckServiceImpl extends BaseServiceImpl implements IHotakeReferenceCheckService { + + @Autowired + private HotakeReferenceCheckMapper hotakeReferenceCheckMapper; + + @Autowired + private HotakeCvInfoMapper hotakeCvInfoMapper; + + /** + * 查询参考检查 + * + * @param id 参考检查主键 + * @return 参考检查 + */ + @Transactional(readOnly = true) + @Override + public HotakeReferenceCheck selectHotakeReferenceCheckById(Integer id) { + return hotakeReferenceCheckMapper.selectHotakeReferenceCheckById(id); + } + + /** + * 查询参考检查列表 + * + * @param hotakeReferenceCheck 参考检查 + * @return 参考检查 + */ + @Transactional(readOnly = true) + @Override + public List selectHotakeReferenceCheckList(HotakeReferenceCheck hotakeReferenceCheck) { + return hotakeReferenceCheckMapper.selectHotakeReferenceCheckList(hotakeReferenceCheck); + } + + /** + * 新增参考检查 + * + * @param hotakeReferenceCheck 参考检查 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public HotakeReferenceCheck insertHotakeReferenceCheck(HotakeReferenceCheck hotakeReferenceCheck) { + fill(FillTypeEnum.INSERT.getCode(), hotakeReferenceCheck); + hotakeReferenceCheckMapper.insertHotakeReferenceCheck(hotakeReferenceCheck); + return hotakeReferenceCheck; + } + + /** + * 修改参考检查 + * + * @param hotakeReferenceCheck 参考检查 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public HotakeReferenceCheck updateHotakeReferenceCheck(HotakeReferenceCheck hotakeReferenceCheck) { + fill(FillTypeEnum.UPDATE.getCode(), hotakeReferenceCheck); + hotakeReferenceCheckMapper.updateHotakeReferenceCheck(hotakeReferenceCheck); + return hotakeReferenceCheck; + } + + /** + * 批量删除参考检查 + * + * @param ids 需要删除的参考检查主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int deleteHotakeReferenceCheckByIds(Integer[] ids) { + return hotakeReferenceCheckMapper.deleteHotakeReferenceCheckByIds(ids); + } + + /** + * 删除参考检查信息 + * + * @param id 参考检查主键 + * @return 结果 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int deleteHotakeReferenceCheckById(Integer id) { + return hotakeReferenceCheckMapper.deleteHotakeReferenceCheckById(id); + } + + /** + * 获取当前登录人的工作经验列表 + * + * @return 工作经验列表 + */ + @Transactional(readOnly = true) + @Override + public List getCurrentUserExperienceList() { + List experienceList = new ArrayList<>(); + + // 查询当前用户的简历信息 + HotakeCvInfo queryCv = new HotakeCvInfo(); + queryCv.setUserId(SecurityUtils.getUserId()); + queryCv.setCvFileType("cv"); + List cvInfoList = hotakeCvInfoMapper.selectHotakeCvInfoList(queryCv); + + if (CollectionUtil.isNotEmpty(cvInfoList)) { + HotakeCvInfo cvInfo = cvInfoList.get(0); + if (StrUtil.isNotEmpty(cvInfo.getAnalyzedCvJson())) { + HotakeCvInfoDto cvInfoDto = JSONUtil.toBean(cvInfo.getAnalyzedCvJson(), HotakeCvInfoDto.class); + if (cvInfoDto != null && CollectionUtil.isNotEmpty(cvInfoDto.getExperience())) { + experienceList = cvInfoDto.getExperience(); + } + } + } + + return experienceList; + } +} diff --git a/vetti-hotakes/src/main/resources/mapper/hotake/HotakeReferenceCheckMapper.xml b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeReferenceCheckMapper.xml new file mode 100644 index 0000000..50726d8 --- /dev/null +++ b/vetti-hotakes/src/main/resources/mapper/hotake/HotakeReferenceCheckMapper.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + select id, company, full_name, position, relationship, email, save_job_experience, + del_flag, create_by, create_time, update_by, update_time, remark + from hotake_reference_check + + + + + + + + insert into hotake_reference_check + + company, + full_name, + position, + relationship, + email, + save_job_experience, + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{company}, + #{fullName}, + #{position}, + #{relationship}, + #{email}, + #{saveJobExperience}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update hotake_reference_check + + company = #{company}, + full_name = #{fullName}, + position = #{position}, + relationship = #{relationship}, + email = #{email}, + save_job_experience = #{saveJobExperience}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from hotake_reference_check where id = #{id} + + + + delete from hotake_reference_check where id in + + #{id} + + +