Commit 9d09427b authored by alex yao's avatar alex yao

feat:人力资源接口

parent 83f731c3
package cn.com.poc.human_resources.aggregate;
import cn.com.gsst.dify_client.exception.DifyApiException;
import cn.com.poc.human_resources.entity.BizHumanResourcePositionEntity;
import cn.com.poc.human_resources.entity.BizHumanResourceResumeEntity;
import cn.com.poc.human_resources.entity.HumanResourcePositionBaseInfo;
import cn.com.poc.human_resources.entity.position.BaseInfo;
import cn.com.poc.human_resources.entity.position.Job;
import cn.com.poc.human_resources.entity.position.Por;
import cn.com.poc.human_resources.entity.resume.Resume;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.io.IOException;
import java.util.List;
/**
* 人力资源Agent服务
*
* @author alex.yao
* @date 2025/9/28
*/
public interface HumanResourceService {
/**
* 上传简历
*
* @param fileURL 文件地址
* @param positionId 岗位ID
* @param userId 用户id
* @return
*/
Resume uploadResume(String fileURL, Long positionId, Long userId) throws Exception;
/**
* 职位配置-对话助手
*
* @param demand 需求
* @param type 对话类型 all- 一键生成 chat-对话
* @param fileInfos 职位画像字段
* @param jobInformation 职位信息
* @param question 问题
* @param dialoguesId 对话ID
* @param userId 用户id
*/
void positionAssistant(String demand,
String type,
String fileInfos,
String jobInformation,
String question,
String dialoguesId,
Long userId)
throws DifyApiException, IOException, InterruptedException;
/**
* 职位配置-保存/更新
*
* @param baseInfo 基础信息
* @param job 职位详情
* @param por 职位画像
* @param id 职位id[更新必填]
* @param memberId 用户id
*/
BizHumanResourcePositionEntity saveOrUpdatePosition(BaseInfo baseInfo, Job job, Por por, Long id, Long memberId) throws Exception;
/**
* 查询职位列表
*
* @param userId
* @param pagingInfo
*/
List<HumanResourcePositionBaseInfo> listPositions(Long userId, PagingInfo pagingInfo) throws Exception;
/**
* 查询职位详情
*
* @param positionId 职位id
*/
BizHumanResourcePositionEntity getPositionDetail(Long userId, Long positionId) throws Exception;
/**
* 删除职位[批量]
*
* @param userId 用户id
* @param positionIds 职位ID
*/
void deletePositions(Long userId, Long... positionIds) throws Exception;
// ------------------------- 简历 -------------------------- //
/**
* 保存简历信息
*
* @param userId
* @param fileURL
* @param positionId
* @param resume
* @throws Exception
*/
BizHumanResourceResumeEntity saveResume(Long userId, String fileURL, Long positionId, Resume resume) throws Exception;
/**
* 更新简历信息
*
* @param id
* @param userId
* @param fileURL
* @param positionId
* @param resume
* @return
* @throws Exception
*/
BizHumanResourceResumeEntity updateResume(Long id, Long userId, String fileURL, Long positionId, Resume resume) throws Exception;
/**
* 查询简历列表
*
* @param userId
* @param positionId
* @param pagingInfo
*/
List<BizHumanResourceResumeEntity> listResumes(Long userId, Long positionId, PagingInfo pagingInfo) throws Exception;
/**
* 查询简历详情
*
* @param userId
* @param resumeId
* @return
* @throws Exception
*/
BizHumanResourceResumeEntity getResumeDetail(Long userId, Long resumeId) throws Exception;
/**
* 删除简历[批量]
*
* @param resumeIds
* @throws Exception
*/
void deleteResumes(Long userId, Long... resumeIds) throws Exception;
}
package cn.com.poc.human_resources.aggregate.impl;
import cn.com.gsst.dify_client.DifyChatClient;
import cn.com.gsst.dify_client.DifyClientFactory;
import cn.com.gsst.dify_client.callback.ChatStreamCallback;
import cn.com.gsst.dify_client.enums.FileTransferMethod;
import cn.com.gsst.dify_client.enums.FileType;
import cn.com.gsst.dify_client.enums.ResponseMode;
import cn.com.gsst.dify_client.event.MessageEndEvent;
import cn.com.gsst.dify_client.event.MessageEvent;
import cn.com.gsst.dify_client.exception.DifyApiException;
import cn.com.gsst.dify_client.model.chat.ChatMessage;
import cn.com.gsst.dify_client.model.chat.ChatMessageResponse;
import cn.com.gsst.dify_client.model.file.FileInfo;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.SSEUtil;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.human_resources.aggregate.HumanResourceService;
import cn.com.poc.human_resources.convert.BizHumanResourceResumeConvert;
import cn.com.poc.human_resources.entity.BizHumanResourcePositionEntity;
import cn.com.poc.human_resources.entity.BizHumanResourceResumeEntity;
import cn.com.poc.human_resources.entity.HumanResourcePositionBaseInfo;
import cn.com.poc.human_resources.entity.position.BaseInfo;
import cn.com.poc.human_resources.entity.position.Job;
import cn.com.poc.human_resources.entity.position.Por;
import cn.com.poc.human_resources.entity.resume.Resume;
import cn.com.poc.human_resources.query.PositionListQueryCondition;
import cn.com.poc.human_resources.query.PositionListQueryItem;
import cn.com.poc.human_resources.service.BizHumanResourcePositionService;
import cn.com.poc.human_resources.service.BizHumanResourceResumeService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* @author alex.yao
* @date 2025/9/28
*/
@Service
public class HumanResourceServiceImpl implements HumanResourceService {
private String DIFY_BASE_URL = "https://dify.gsstcloud.com/v1";
@Resource
private BizHumanResourcePositionService bizHumanResourcePositionService;
@Resource
private BizHumanResourceResumeService bizHumanResourceResumeService;
@Override
public Resume uploadResume(String fileURL, Long positionId, Long userId) throws Exception {
BizHumanResourcePositionEntity bizHumanResourcePositionEntity = bizHumanResourcePositionService.get(positionId);
Map<String, Object> inputs = new LinkedHashMap<>();
inputs.put("position", JsonUtils.serialize(bizHumanResourcePositionEntity));
List<FileInfo> files = new ArrayList<>();
files.add(FileInfo.builder()
.type(FileType.DOCUMENT)
.transferMethod(FileTransferMethod.REMOTE_URL)
.url(fileURL)
.build());
// 创建聊天客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient(DIFY_BASE_URL, "app-1MRun3ecfLOzFS96xcWYCOOX");
// 创建聊天消息
ChatMessage message = ChatMessage.builder()
.query("run")
.user(userId.toString())
.files(files)
.inputs(inputs)
.responseMode(ResponseMode.BLOCKING)
.build();
// 发送消息并获取响应
ChatMessageResponse response = chatClient.sendChatMessage(message);
if (response == null || StringUtils.isBlank(response.getAnswer())) {
throw new BusinessException("提取简历失败");
}
Resume resume = JsonUtils.deSerialize(response.getAnswer(), Resume.class);
this.saveResume(userId, fileURL, positionId, resume);
return resume;
}
@Override
public void positionAssistant(String demand, String type, String fileInfos, String jobInformation, String question, String dialoguesId, Long userId) throws DifyApiException, IOException, InterruptedException {
// 创建聊天客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient(DIFY_BASE_URL, "app-YmVPoXmTh7ejERFbip3ADCYN");
Map<String, Object> inputs = new LinkedHashMap<>();
inputs.put("type", type);
if (StringUtils.isNotBlank(demand)) {
inputs.put("demand", demand);
}
if (StringUtils.isNotBlank(jobInformation)) {
inputs.put("jobInfomations", jobInformation);
}
if (StringUtils.isNotBlank(fileInfos)) {
inputs.put("fileinfos", fileInfos);
}
// 创建聊天消息
ChatMessage message = ChatMessage.builder()
.query(StringUtils.isBlank(question) ? "run" : question)
.user(userId.toString())
.inputs(inputs)
.conversationId(StringUtils.isNotBlank(dialoguesId) ? dialoguesId : StringUtils.EMPTY)
.responseMode(ResponseMode.STREAMING)
.build();
CountDownLatch countDownLatch = new CountDownLatch(1);
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletResponse response = servletRequestAttributes.getResponse();
// 发送消息并获取响应
chatClient.sendChatMessageStream(message, new ChatStreamCallback() {
SSEUtil sseUtil = new SSEUtil(response);
@Override
public void onMessage(MessageEvent event) {
try {
if (StringUtils.isNotEmpty(event.getAnswer())) {
LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult();
largeModelDemandResult.setCode("0");
largeModelDemandResult.setMessage(event.getAnswer());
sseUtil.send(JsonUtils.serialize(event.getAnswer()));
}
} catch (IOException e) {
sseUtil.completeByError(e.getMessage());
throw new RuntimeException(e);
}
}
@Override
public void onMessageEnd(MessageEndEvent event) {
try {
sseUtil.send("[DONE]");
} catch (IOException e) {
sseUtil.completeByError(e.getMessage());
throw new RuntimeException(e);
} finally {
sseUtil.complete();
countDownLatch.countDown();
}
}
});
countDownLatch.await(60, TimeUnit.SECONDS);
}
@Override
public BizHumanResourcePositionEntity saveOrUpdatePosition(BaseInfo baseInfo, Job job, Por por, Long id, Long memberId) throws Exception {
BizHumanResourcePositionEntity bizHumanResourcePositionEntity = new BizHumanResourcePositionEntity();
bizHumanResourcePositionEntity.setId(id);
bizHumanResourcePositionEntity.setJobTitle(baseInfo.getJobTitle());
bizHumanResourcePositionEntity.setDepartment(baseInfo.getDepartment());
bizHumanResourcePositionEntity.setWorkLocation(baseInfo.getWorkLocation());
bizHumanResourcePositionEntity.setJobNature(baseInfo.getJobNature());
bizHumanResourcePositionEntity.setNumberOfRecruits(baseInfo.getNumberOfRecruits());
bizHumanResourcePositionEntity.setWorkExperience(baseInfo.getWorkExperience());
bizHumanResourcePositionEntity.setEducationalRe(baseInfo.getEducationalRe());
bizHumanResourcePositionEntity.setSalaryRange(baseInfo.getSalaryRange());
bizHumanResourcePositionEntity.setJobRequirements(job.getJobRequirements());
bizHumanResourcePositionEntity.setJobDuties(job.getJobDuties());
bizHumanResourcePositionEntity.setEssential(CollectionUtils.isNotEmpty(por.getEssential()) ? JsonUtils.serialize(por.getEssential()) : null);
bizHumanResourcePositionEntity.setBonusPoints(CollectionUtils.isNotEmpty(por.getBonusPoints()) ? JsonUtils.serialize(por.getBonusPoints()) : null);
bizHumanResourcePositionEntity.setExclusion(CollectionUtils.isNotEmpty(por.getExclusion()) ? JsonUtils.serialize(por.getExclusion()) : null);
bizHumanResourcePositionEntity.setMemberId(memberId);
return id != null ? bizHumanResourcePositionService.update(bizHumanResourcePositionEntity) : bizHumanResourcePositionService.save(bizHumanResourcePositionEntity);
}
@Override
public List<HumanResourcePositionBaseInfo> listPositions(Long userId, PagingInfo pagingInfo) throws Exception {
PositionListQueryCondition condition = new PositionListQueryCondition();
condition.setMemberId(userId);
List<PositionListQueryItem> positionListQueryItems = bizHumanResourcePositionService.positionListQuery(condition, pagingInfo);
List<HumanResourcePositionBaseInfo> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(positionListQueryItems)) {
result = positionListQueryItems.stream().map(item -> {
HumanResourcePositionBaseInfo baseInfo = new HumanResourcePositionBaseInfo();
baseInfo.setJobTitle(item.getJobTitle());
baseInfo.setWorkLocation(item.getWorkLocation());
baseInfo.setJobNature(item.getJobNature());
baseInfo.setWorkExperience(item.getWorkExperience());
baseInfo.setResumeCount(item.getResumeCount());
return baseInfo;
}).collect(Collectors.toList());
}
return result;
}
@Override
public BizHumanResourcePositionEntity getPositionDetail(Long userId, Long positionId) throws Exception {
BizHumanResourcePositionEntity bizHumanResourcePositionEntity = new BizHumanResourcePositionEntity();
bizHumanResourcePositionEntity.setId(positionId);
bizHumanResourcePositionEntity.setMemberId(userId);
bizHumanResourcePositionEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizHumanResourcePositionEntity> entities = bizHumanResourcePositionService.findByExample(bizHumanResourcePositionEntity, null);
if (CollectionUtils.isEmpty(entities)) {
return null;
}
return entities.get(0);
}
@Override
public void deletePositions(Long userId, Long... positionIds) throws Exception {
if (userId == null) {
throw new BusinessException("用户未登录");
}
if (positionIds == null || positionIds.length == 0) {
return;
}
String lock = "deletePositions" + userId;
synchronized (lock.intern()) {
for (Long positionId : positionIds) {
bizHumanResourcePositionService.deletedById(positionId);
}
}
}
@Override
public BizHumanResourceResumeEntity saveResume(Long userId, String fileURL, Long positionId, Resume resume) throws Exception {
BizHumanResourceResumeEntity bizHumanResourceResumeEntity = BizHumanResourceResumeConvert.resumeToEntity(resume);
bizHumanResourceResumeEntity.setMemberId(userId);
bizHumanResourceResumeEntity.setPosition(positionId);
bizHumanResourceResumeEntity.setFileUrl(fileURL);
return bizHumanResourceResumeService.save(bizHumanResourceResumeEntity);
}
@Override
public BizHumanResourceResumeEntity updateResume(Long id, Long userId, String fileURL, Long positionId, Resume resume) throws Exception {
BizHumanResourceResumeEntity bizHumanResourceResumeEntity = BizHumanResourceResumeConvert.resumeToEntity(resume);
bizHumanResourceResumeEntity.setId(id);
bizHumanResourceResumeEntity.setMemberId(userId);
bizHumanResourceResumeEntity.setPosition(positionId);
bizHumanResourceResumeEntity.setFileUrl(fileURL);
return bizHumanResourceResumeService.update(bizHumanResourceResumeEntity);
}
@Override
public List<BizHumanResourceResumeEntity> listResumes(Long userId, Long positionId, PagingInfo pagingInfo) throws Exception {
BizHumanResourceResumeEntity bizHumanResourceResumeEntity = new BizHumanResourceResumeEntity();
bizHumanResourceResumeEntity.setMemberId(userId);
bizHumanResourceResumeEntity.setPosition(positionId);
bizHumanResourceResumeEntity.setIsDeleted(CommonConstant.IsDeleted.N);
return bizHumanResourceResumeService.findByExample(bizHumanResourceResumeEntity, pagingInfo).stream()
.sorted(Comparator.comparing(BizHumanResourceResumeEntity::getCreatedTime).reversed())
.collect(Collectors.toList());
}
@Override
public BizHumanResourceResumeEntity getResumeDetail(Long userId, Long resumeId) throws Exception {
BizHumanResourceResumeEntity bizHumanResourceResumeEntity = new BizHumanResourceResumeEntity();
bizHumanResourceResumeEntity.setId(resumeId);
bizHumanResourceResumeEntity.setMemberId(userId);
bizHumanResourceResumeEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizHumanResourceResumeEntity> entities = bizHumanResourceResumeService.findByExample(bizHumanResourceResumeEntity, null);
if (CollectionUtils.isEmpty(entities)) {
return null;
}
return entities.get(0);
}
@Override
public void deleteResumes(Long userId, Long... resumeIds) throws Exception {
if (userId == null) {
throw new BusinessException("用户未登录");
}
if (resumeIds == null || resumeIds.length == 0) {
return;
}
String lock = "deleteResumeLock" + userId;
synchronized (lock.intern()) {
for (Long resumeId : resumeIds) {
bizHumanResourceResumeService.deletedById(resumeId);
}
}
}
}
package cn.com.poc.human_resources.convert;
import cn.com.poc.human_resources.model.BizHumanResourcePositionModel;
import cn.com.poc.human_resources.entity.BizHumanResourcePositionEntity;
import cn.com.poc.human_resources.dto.BizHumanResourcePositionDto;
public class BizHumanResourcePositionConvert {
public static BizHumanResourcePositionEntity modelToEntity(BizHumanResourcePositionModel model){
BizHumanResourcePositionEntity entity = new BizHumanResourcePositionEntity();
entity.setId(model.getId());
entity.setJobTitle(model.getJobTitle());
entity.setDepartment(model.getDepartment());
entity.setWorkLocation(model.getWorkLocation());
entity.setJobNature(model.getJobNature());
entity.setNumberOfRecruits(model.getNumberOfRecruits());
entity.setWorkExperience(model.getWorkExperience());
entity.setEducationalRe(model.getEducationalRe());
entity.setSalaryRange(model.getSalaryRange());
entity.setJobRequirements(model.getJobRequirements());
entity.setJobDuties(model.getJobDuties());
entity.setEssential(model.getEssential());
entity.setBonusPoints(model.getBonusPoints());
entity.setExclusion(model.getExclusion());
entity.setMemberId(model.getMemberId());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizHumanResourcePositionModel entityToModel(BizHumanResourcePositionEntity entity){
BizHumanResourcePositionModel model = new BizHumanResourcePositionModel();
model.setId(entity.getId());
model.setJobTitle(entity.getJobTitle());
model.setDepartment(entity.getDepartment());
model.setWorkLocation(entity.getWorkLocation());
model.setJobNature(entity.getJobNature());
model.setNumberOfRecruits(entity.getNumberOfRecruits());
model.setWorkExperience(entity.getWorkExperience());
model.setEducationalRe(entity.getEducationalRe());
model.setSalaryRange(entity.getSalaryRange());
model.setJobRequirements(entity.getJobRequirements());
model.setJobDuties(entity.getJobDuties());
model.setEssential(entity.getEssential());
model.setBonusPoints(entity.getBonusPoints());
model.setExclusion(entity.getExclusion());
model.setMemberId(entity.getMemberId());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizHumanResourcePositionDto entityToDto(BizHumanResourcePositionEntity entity){
BizHumanResourcePositionDto dto = new BizHumanResourcePositionDto();
dto.setId(entity.getId());
dto.setJobTitle(entity.getJobTitle());
dto.setDepartment(entity.getDepartment());
dto.setWorkLocation(entity.getWorkLocation());
dto.setJobNature(entity.getJobNature());
dto.setNumberOfRecruits(entity.getNumberOfRecruits());
dto.setWorkExperience(entity.getWorkExperience());
dto.setEducationalRe(entity.getEducationalRe());
dto.setSalaryRange(entity.getSalaryRange());
dto.setJobRequirements(entity.getJobRequirements());
dto.setJobDuties(entity.getJobDuties());
dto.setEssential(entity.getEssential());
dto.setBonusPoints(entity.getBonusPoints());
dto.setExclusion(entity.getExclusion());
dto.setMemberId(entity.getMemberId());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizHumanResourcePositionEntity dtoToEntity(BizHumanResourcePositionDto dto){
BizHumanResourcePositionEntity entity = new BizHumanResourcePositionEntity();
entity.setId(dto.getId());
entity.setJobTitle(dto.getJobTitle());
entity.setDepartment(dto.getDepartment());
entity.setWorkLocation(dto.getWorkLocation());
entity.setJobNature(dto.getJobNature());
entity.setNumberOfRecruits(dto.getNumberOfRecruits());
entity.setWorkExperience(dto.getWorkExperience());
entity.setEducationalRe(dto.getEducationalRe());
entity.setSalaryRange(dto.getSalaryRange());
entity.setJobRequirements(dto.getJobRequirements());
entity.setJobDuties(dto.getJobDuties());
entity.setEssential(dto.getEssential());
entity.setBonusPoints(dto.getBonusPoints());
entity.setExclusion(dto.getExclusion());
entity.setMemberId(dto.getMemberId());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.convert;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.human_resources.dto.ResumeDto;
import cn.com.poc.human_resources.entity.resume.Info;
import cn.com.poc.human_resources.entity.resume.Resume;
import cn.com.poc.human_resources.entity.resume.Tag;
import cn.com.poc.human_resources.model.BizHumanResourceResumeModel;
import cn.com.poc.human_resources.entity.BizHumanResourceResumeEntity;
import cn.com.poc.human_resources.dto.BizHumanResourceResumeDto;
import com.fasterxml.jackson.core.type.TypeReference;
import org.apache.avro.data.Json;
import java.util.List;
public class BizHumanResourceResumeConvert {
public static BizHumanResourceResumeEntity modelToEntity(BizHumanResourceResumeModel model) {
BizHumanResourceResumeEntity entity = new BizHumanResourceResumeEntity();
entity.setId(model.getId());
entity.setPosition(model.getPosition());
entity.setFileUrl(model.getFileUrl());
entity.setCoreSkills(model.getCoreSkills());
entity.setEducationBackground(model.getEducationBackground());
entity.setEducationExperience(model.getEducationExperience());
entity.setGenderAndAge(model.getGenderAndAge());
entity.setOccupationalHistory(model.getOccupationalHistory());
entity.setOther(model.getOther());
entity.setWorkExperience(model.getWorkExperience());
entity.setWorkLocation(model.getWorkLocation());
entity.setLabel(model.getLabel());
entity.setEvaluate(model.getEvaluate());
entity.setMatchedDegree(model.getMatchedDegree());
entity.setMemberId(model.getMemberId());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizHumanResourceResumeModel entityToModel(BizHumanResourceResumeEntity entity) {
BizHumanResourceResumeModel model = new BizHumanResourceResumeModel();
model.setId(entity.getId());
model.setPosition(entity.getPosition());
model.setFileUrl(entity.getFileUrl());
model.setCoreSkills(entity.getCoreSkills());
model.setEducationBackground(entity.getEducationBackground());
model.setEducationExperience(entity.getEducationExperience());
model.setGenderAndAge(entity.getGenderAndAge());
model.setOccupationalHistory(entity.getOccupationalHistory());
model.setOther(entity.getOther());
model.setWorkExperience(entity.getWorkExperience());
model.setWorkLocation(entity.getWorkLocation());
model.setLabel(entity.getLabel());
model.setEvaluate(entity.getEvaluate());
model.setMatchedDegree(entity.getMatchedDegree());
model.setMemberId(entity.getMemberId());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizHumanResourceResumeDto entityToDto(BizHumanResourceResumeEntity entity) {
BizHumanResourceResumeDto dto = new BizHumanResourceResumeDto();
dto.setId(entity.getId());
dto.setPosition(entity.getPosition());
dto.setFileUrl(entity.getFileUrl());
dto.setCoreSkills(entity.getCoreSkills());
dto.setEducationBackground(entity.getEducationBackground());
dto.setEducationExperience(entity.getEducationExperience());
dto.setGenderAndAge(entity.getGenderAndAge());
dto.setOccupationalHistory(entity.getOccupationalHistory());
dto.setOther(entity.getOther());
dto.setWorkExperience(entity.getWorkExperience());
dto.setWorkLocation(entity.getWorkLocation());
dto.setLabel(entity.getLabel());
dto.setEvaluate(entity.getEvaluate());
dto.setMatchedDegree(entity.getMatchedDegree());
dto.setMemberId(entity.getMemberId());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizHumanResourceResumeEntity dtoToEntity(BizHumanResourceResumeDto dto) {
BizHumanResourceResumeEntity entity = new BizHumanResourceResumeEntity();
entity.setId(dto.getId());
entity.setPosition(dto.getPosition());
entity.setFileUrl(dto.getFileUrl());
entity.setCoreSkills(dto.getCoreSkills());
entity.setEducationBackground(dto.getEducationBackground());
entity.setEducationExperience(dto.getEducationExperience());
entity.setGenderAndAge(dto.getGenderAndAge());
entity.setOccupationalHistory(dto.getOccupationalHistory());
entity.setOther(dto.getOther());
entity.setWorkExperience(dto.getWorkExperience());
entity.setWorkLocation(dto.getWorkLocation());
entity.setLabel(dto.getLabel());
entity.setEvaluate(dto.getEvaluate());
entity.setMatchedDegree(dto.getMatchedDegree());
entity.setMemberId(dto.getMemberId());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
public static ResumeDto entityToResumeDto(BizHumanResourceResumeEntity entity) {
ResumeDto dto = new ResumeDto();
dto.setId(entity.getId());
dto.setPositionId(entity.getPosition());
Info info = new Info();
info.setCoreSkills(JsonUtils.deSerialize(entity.getCoreSkills(), new TypeReference<List<String>>() {
}.getType()));
info.setEducationBackground(JsonUtils.deSerialize(entity.getEducationBackground(), String.class));
info.setEducationExperience(JsonUtils.deSerialize(entity.getEducationExperience(), new TypeReference<List<String>>() {
}.getType()));
info.setGenderAndAge(JsonUtils.deSerialize(entity.getGenderAndAge(), String.class));
info.setOccupationalHistory(JsonUtils.deSerialize(entity.getOccupationalHistory(), new TypeReference<List<String>>() {
}.getType()));
info.setOther(JsonUtils.deSerialize(entity.getOther(), new TypeReference<List<String>>() {
}.getType()));
info.setWorkExperience(JsonUtils.deSerialize(entity.getWorkExperience(), String.class));
info.setWorkLocation(JsonUtils.deSerialize(entity.getWorkLocation(), String.class));
dto.setInfo(info);
Tag tag = new Tag();
tag.setEvaluate(JsonUtils.deSerialize(entity.getEvaluate(), String.class));
tag.setLabel(JsonUtils.deSerialize(entity.getLabel(), new TypeReference<List<String>>() {
}.getType()));
tag.setMatchedDegree(entity.getMatchedDegree());
dto.setTag(tag);
return dto;
}
public static BizHumanResourceResumeEntity resumeToEntity(Resume resume) {
BizHumanResourceResumeEntity bizHumanResourceResumeEntity = new BizHumanResourceResumeEntity();
//info
bizHumanResourceResumeEntity.setCoreSkills(JsonUtils.serialize(resume.getInfo().getCoreSkills()));
bizHumanResourceResumeEntity.setEducationBackground(JsonUtils.serialize(resume.getInfo().getEducationBackground()));
bizHumanResourceResumeEntity.setEducationExperience(JsonUtils.serialize(resume.getInfo().getEducationExperience()));
bizHumanResourceResumeEntity.setGenderAndAge(JsonUtils.serialize(resume.getInfo().getGenderAndAge()));
bizHumanResourceResumeEntity.setOccupationalHistory(JsonUtils.serialize(resume.getInfo().getOccupationalHistory()));
bizHumanResourceResumeEntity.setOther(JsonUtils.serialize(resume.getInfo().getOther()));
bizHumanResourceResumeEntity.setWorkExperience(JsonUtils.serialize(resume.getInfo().getWorkExperience()));
bizHumanResourceResumeEntity.setWorkLocation(JsonUtils.serialize(resume.getInfo().getWorkLocation()));
// tag
bizHumanResourceResumeEntity.setLabel(JsonUtils.serialize(resume.getTag().getLabel()));
bizHumanResourceResumeEntity.setEvaluate(JsonUtils.serialize(resume.getTag().getEvaluate()));
bizHumanResourceResumeEntity.setMatchedDegree(Long.valueOf(resume.getTag().getMatchedDegree()));
return bizHumanResourceResumeEntity;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.dto;
public class BizHumanResourcePositionDto {
private static final long serialVersionUID = 1L;
/**
* id
* 主键
*/
private java.lang.Long id;
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
}
/**
* job_title
* 职位名称
*/
private java.lang.String jobTitle;
public java.lang.String getJobTitle() {
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle) {
this.jobTitle = jobTitle;
}
/**
* department
* 所属部门
*/
private java.lang.String department;
public java.lang.String getDepartment() {
return this.department;
}
public void setDepartment(java.lang.String department) {
this.department = department;
}
/**
* work_location
* 工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation() {
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation) {
this.workLocation = workLocation;
}
/**
* job_nature
* 工作性质
*/
private java.lang.String jobNature;
public java.lang.String getJobNature() {
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature) {
this.jobNature = jobNature;
}
/**
* number_recruits
* 招聘人数
*/
private java.lang.Integer numberOfRecruits;
public java.lang.Integer getNumberOfRecruits() {
return this.numberOfRecruits;
}
public void setNumberOfRecruits(java.lang.Integer numberOfRecruits) {
this.numberOfRecruits = numberOfRecruits;
}
/**
* work_experience
* 工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience() {
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience) {
this.workExperience = workExperience;
}
/**
* educational_re
* 学历要求
*/
private java.lang.String educationalRe;
public java.lang.String getEducationalRe() {
return this.educationalRe;
}
public void setEducationalRe(java.lang.String educationalRe) {
this.educationalRe = educationalRe;
}
/**
* salary_range
* 薪资要求
*/
private java.lang.String salaryRange;
public java.lang.String getSalaryRange() {
return this.salaryRange;
}
public void setSalaryRange(java.lang.String salaryRange) {
this.salaryRange = salaryRange;
}
/**
* job_requirements
* 任职资格
*/
private java.lang.String jobRequirements;
public java.lang.String getJobRequirements() {
return this.jobRequirements;
}
public void setJobRequirements(java.lang.String jobRequirements) {
this.jobRequirements = jobRequirements;
}
/**
* job_duties
* 职位描述
*/
private java.lang.String jobDuties;
public java.lang.String getJobDuties() {
return this.jobDuties;
}
public void setJobDuties(java.lang.String jobDuties) {
this.jobDuties = jobDuties;
}
/**
* essential
* 职位画像-必备项
*/
private java.lang.String essential;
public java.lang.String getEssential() {
return this.essential;
}
public void setEssential(java.lang.String essential) {
this.essential = essential;
}
/**
* bonusPoints
* 职位画像-加分项
*/
private java.lang.String bonusPoints;
public java.lang.String getBonusPoints() {
return this.bonusPoints;
}
public void setBonusPoints(java.lang.String bonusPoints) {
this.bonusPoints = bonusPoints;
}
/**
* exclusion
* 职位画像-排除项
*/
private java.lang.String exclusion;
public java.lang.String getExclusion() {
return this.exclusion;
}
public void setExclusion(java.lang.String exclusion) {
this.exclusion = exclusion;
}
/**
* member_id
* 创建人ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId() {
return this.memberId;
}
public void setMemberId(java.lang.Long memberId) {
this.memberId = memberId;
}
/**
* is_deleted
* 是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion) {
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.dto;
public class BizHumanResourceResumeDto {
private static final long serialVersionUID = 1L;
/**
* id
* 主键id
*/
private java.lang.Long id;
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
}
/**
* position
* 职位ID
*/
private java.lang.Long position;
public java.lang.Long getPosition() {
return this.position;
}
public void setPosition(java.lang.Long position) {
this.position = position;
}
/**
* 简历文件地址
*/
private String fileUrl;
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
/**
* core_skills
* 核心技能
*/
private java.lang.String coreSkills;
public java.lang.String getCoreSkills() {
return this.coreSkills;
}
public void setCoreSkills(java.lang.String coreSkills) {
this.coreSkills = coreSkills;
}
/**
* education_background
* 教育背景
*/
private java.lang.String educationBackground;
public java.lang.String getEducationBackground() {
return this.educationBackground;
}
public void setEducationBackground(java.lang.String educationBackground) {
this.educationBackground = educationBackground;
}
/**
* education_experience
* 教育经历
*/
private java.lang.String educationExperience;
public java.lang.String getEducationExperience() {
return this.educationExperience;
}
public void setEducationExperience(java.lang.String educationExperience) {
this.educationExperience = educationExperience;
}
/**
* gender_and_age
* 性别-年龄
*/
private java.lang.String genderAndAge;
public java.lang.String getGenderAndAge() {
return this.genderAndAge;
}
public void setGenderAndAge(java.lang.String genderAndAge) {
this.genderAndAge = genderAndAge;
}
/**
* occupational_history
* 工作经历
*/
private java.lang.String occupationalHistory;
public java.lang.String getOccupationalHistory() {
return this.occupationalHistory;
}
public void setOccupationalHistory(java.lang.String occupationalHistory) {
this.occupationalHistory = occupationalHistory;
}
/**
* other
* 技能证书、项目经验等补充内容
*/
private java.lang.String other;
public java.lang.String getOther() {
return this.other;
}
public void setOther(java.lang.String other) {
this.other = other;
}
/**
* work_experience
* 工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience() {
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience) {
this.workExperience = workExperience;
}
/**
* work_location
* 工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation() {
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation) {
this.workLocation = workLocation;
}
/**
* label
* 标签
*/
private java.lang.String label;
public java.lang.String getLabel() {
return this.label;
}
public void setLabel(java.lang.String label) {
this.label = label;
}
/**
* evaluate
* AI综合评价
*/
private java.lang.String evaluate;
public java.lang.String getEvaluate() {
return this.evaluate;
}
public void setEvaluate(java.lang.String evaluate) {
this.evaluate = evaluate;
}
/**
* matched_degree
* 匹配分
*/
private java.lang.Long matchedDegree;
public java.lang.Long getMatchedDegree() {
return this.matchedDegree;
}
public void setMatchedDegree(java.lang.Long matchedDegree) {
this.matchedDegree = matchedDegree;
}
/**
* member_id
* 上传人ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId() {
return this.memberId;
}
public void setMemberId(java.lang.Long memberId) {
this.memberId = memberId;
}
/**
* is_deleted
* 是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion) {
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.dto;
import cn.com.poc.human_resources.entity.HumanResourcePositionBaseInfo;
/**
* @author alex.yao
* @date 2025/10/10
*/
public class HumanResourcePositionBaseInfoDto extends HumanResourcePositionBaseInfo {
}
package cn.com.poc.human_resources.dto;
import cn.com.poc.human_resources.entity.position.BaseInfo;
import cn.com.poc.human_resources.entity.position.Job;
import cn.com.poc.human_resources.entity.position.Por;
/**
* @author alex.yao
* @date 2025/9/30
*/
public class HumanResourcePositionDto {
private Long id;
private BaseInfo baseInfo;
private Job job;
private Por por;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public BaseInfo getBaseInfo() {
return baseInfo;
}
public void setBaseInfo(BaseInfo baseInfo) {
this.baseInfo = baseInfo;
}
public Job getJob() {
return job;
}
public void setJob(Job job) {
this.job = job;
}
public Por getPor() {
return por;
}
public void setPor(Por por) {
this.por = por;
}
}
package cn.com.poc.human_resources.dto;
/**
* @author alex.yao
* @date 2025/9/29
*/
public class PositionAssistantDto {
private String demand;
private String type;
private String fileInfos;
private String jobInformation;
private String question;
private String dialoguesId;
public String getDemand() {
return demand;
}
public void setDemand(String demand) {
this.demand = demand;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getFileInfos() {
return fileInfos;
}
public void setFileInfos(String fileInfos) {
this.fileInfos = fileInfos;
}
public String getJobInformation() {
return jobInformation;
}
public void setJobInformation(String jobInformation) {
this.jobInformation = jobInformation;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getDialoguesId() {
return dialoguesId;
}
public void setDialoguesId(String dialoguesId) {
this.dialoguesId = dialoguesId;
}
}
package cn.com.poc.human_resources.dto;
import cn.com.poc.human_resources.entity.resume.Resume;
/**
* @author alex.yao
* @date 2025/10/9
*/
public class ResumeDto extends Resume {
private Long id;
private Long positionId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getPositionId() {
return positionId;
}
public void setPositionId(Long positionId) {
this.positionId = positionId;
}
}
package cn.com.poc.human_resources.dto;
import cn.com.poc.human_resources.entity.resume.Resume;
/**
* @author alex.yao
* @date 2025/10/9
*/
public class SaveResumeDto {
private Long id;
private String fileURL;
private Resume resume;
private Long positionId;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getPositionId() {
return positionId;
}
public void setPositionId(Long positionId) {
this.positionId = positionId;
}
public String getFileURL() {
return fileURL;
}
public void setFileURL(String fileURL) {
this.fileURL = fileURL;
}
public Resume getResume() {
return resume;
}
public void setResume(Resume resume) {
this.resume = resume;
}
}
package cn.com.poc.human_resources.dto;
/**
* @author alex.yao
* @date 2025/9/28
*/
public class UploadResumeDto {
private String fileURL;
private Long positionId;
public String getFileURL() {
return fileURL;
}
public void setFileURL(String fileURL) {
this.fileURL = fileURL;
}
public Long getPositionId() {
return positionId;
}
public void setPositionId(Long positionId) {
this.positionId = positionId;
}
}
package cn.com.poc.human_resources.entity;
import javax.persistence.Column;
public class BizHumanResourcePositionEntity {
private static final long serialVersionUID = 1L;
/** id
*主键
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** job_title
*职位名称
*/
private java.lang.String jobTitle;
public java.lang.String getJobTitle(){
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle){
this.jobTitle = jobTitle;
}
/** department
*所属部门
*/
private java.lang.String department;
public java.lang.String getDepartment(){
return this.department;
}
public void setDepartment(java.lang.String department){
this.department = department;
}
/** work_location
*工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation(){
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation){
this.workLocation = workLocation;
}
/** job_nature
*工作性质
*/
private java.lang.String jobNature;
public java.lang.String getJobNature(){
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature){
this.jobNature = jobNature;
}
/** number_recruits
*招聘人数
*/
private java.lang.Integer numberOfRecruits;
public java.lang.Integer getNumberOfRecruits(){
return this.numberOfRecruits;
}
public void setNumberOfRecruits(java.lang.Integer numberOfRecruits){
this.numberOfRecruits = numberOfRecruits;
}
/** work_experience
*工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience(){
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience){
this.workExperience = workExperience;
}
/** educational_re
*学历要求
*/
private java.lang.String educationalRe;
public java.lang.String getEducationalRe(){
return this.educationalRe;
}
public void setEducationalRe(java.lang.String educationalRe){
this.educationalRe = educationalRe;
}
/** salary_range
*薪资要求
*/
private java.lang.String salaryRange;
public java.lang.String getSalaryRange(){
return this.salaryRange;
}
public void setSalaryRange(java.lang.String salaryRange){
this.salaryRange = salaryRange;
}
/** job_requirements
*任职资格
*/
private java.lang.String jobRequirements;
public java.lang.String getJobRequirements(){
return this.jobRequirements;
}
public void setJobRequirements(java.lang.String jobRequirements){
this.jobRequirements = jobRequirements;
}
/** job_duties
*职位描述
*/
private java.lang.String jobDuties;
public java.lang.String getJobDuties(){
return this.jobDuties;
}
public void setJobDuties(java.lang.String jobDuties){
this.jobDuties = jobDuties;
}
/** essential
*职位画像-必备项
*/
private java.lang.String essential;
public java.lang.String getEssential(){
return this.essential;
}
public void setEssential(java.lang.String essential){
this.essential = essential;
}
/** bonusPoints
*职位画像-加分项
*/
private java.lang.String bonusPoints;
public java.lang.String getBonusPoints(){
return this.bonusPoints;
}
public void setBonusPoints(java.lang.String bonusPoints){
this.bonusPoints = bonusPoints;
}
/** exclusion
*职位画像-排除项
*/
private java.lang.String exclusion;
public java.lang.String getExclusion(){
return this.exclusion;
}
public void setExclusion(java.lang.String exclusion){
this.exclusion = exclusion;
}
/** member_id
*创建人ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.entity;
import javax.persistence.Column;
public class BizHumanResourceResumeEntity {
private static final long serialVersionUID = 1L;
/** id
*主键id
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** position
*职位ID
*/
private java.lang.Long position;
public java.lang.Long getPosition(){
return this.position;
}
public void setPosition(java.lang.Long position){
this.position = position;
}
/**
* 简历文件地址
*/
private String fileUrl;
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
/** core_skills
*核心技能
*/
private java.lang.String coreSkills;
public java.lang.String getCoreSkills(){
return this.coreSkills;
}
public void setCoreSkills(java.lang.String coreSkills){
this.coreSkills = coreSkills;
}
/** education_background
*教育背景
*/
private java.lang.String educationBackground;
public java.lang.String getEducationBackground(){
return this.educationBackground;
}
public void setEducationBackground(java.lang.String educationBackground){
this.educationBackground = educationBackground;
}
/** education_experience
*教育经历
*/
private java.lang.String educationExperience;
public java.lang.String getEducationExperience(){
return this.educationExperience;
}
public void setEducationExperience(java.lang.String educationExperience){
this.educationExperience = educationExperience;
}
/** gender_and_age
*性别-年龄
*/
private java.lang.String genderAndAge;
public java.lang.String getGenderAndAge(){
return this.genderAndAge;
}
public void setGenderAndAge(java.lang.String genderAndAge){
this.genderAndAge = genderAndAge;
}
/** occupational_history
*工作经历
*/
private java.lang.String occupationalHistory;
public java.lang.String getOccupationalHistory(){
return this.occupationalHistory;
}
public void setOccupationalHistory(java.lang.String occupationalHistory){
this.occupationalHistory = occupationalHistory;
}
/** other
*技能证书、项目经验等补充内容
*/
private java.lang.String other;
public java.lang.String getOther(){
return this.other;
}
public void setOther(java.lang.String other){
this.other = other;
}
/** work_experience
*工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience(){
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience){
this.workExperience = workExperience;
}
/** work_location
*工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation(){
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation){
this.workLocation = workLocation;
}
/** label
*标签
*/
private java.lang.String label;
public java.lang.String getLabel(){
return this.label;
}
public void setLabel(java.lang.String label){
this.label = label;
}
/** evaluate
*AI综合评价
*/
private java.lang.String evaluate;
public java.lang.String getEvaluate(){
return this.evaluate;
}
public void setEvaluate(java.lang.String evaluate){
this.evaluate = evaluate;
}
/** matched_degree
*匹配分
*/
private java.lang.Long matchedDegree;
public java.lang.Long getMatchedDegree(){
return this.matchedDegree;
}
public void setMatchedDegree(java.lang.Long matchedDegree){
this.matchedDegree = matchedDegree;
}
/** member_id
*上传人ID
*/
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.entity;
/**
* @author alex.yao
* @date 2025/10/10
*/
public class HumanResourcePositionBaseInfo {
/**
* job_title
* 职位名称
*/
private java.lang.String jobTitle;
public java.lang.String getJobTitle() {
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle) {
this.jobTitle = jobTitle;
}
/**
* work_location
* 工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation() {
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation) {
this.workLocation = workLocation;
}
/**
* job_nature
* 工作性质
*/
private java.lang.String jobNature;
public java.lang.String getJobNature() {
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature) {
this.jobNature = jobNature;
}
/**
* work_experience
* 工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience() {
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience) {
this.workExperience = workExperience;
}
/**
* 简历数量
*/
private Long resumeCount;
public Long getResumeCount() {
return resumeCount;
}
public void setResumeCount(Long resumeCount) {
this.resumeCount = resumeCount;
}
}
package cn.com.poc.human_resources.entity.position;
/**
* @author alex.yao
* @date 2025/9/30
*/
public class BaseInfo {
/** job_title
*职位名称
*/
private java.lang.String jobTitle;
public java.lang.String getJobTitle(){
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle){
this.jobTitle = jobTitle;
}
/** department
*所属部门
*/
private java.lang.String department;
public java.lang.String getDepartment(){
return this.department;
}
public void setDepartment(java.lang.String department){
this.department = department;
}
/** work_location
*工作地址
*/
private java.lang.String workLocation;
public java.lang.String getWorkLocation(){
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation){
this.workLocation = workLocation;
}
/** job_nature
*工作性质
*/
private java.lang.String jobNature;
public java.lang.String getJobNature(){
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature){
this.jobNature = jobNature;
}
/** number_recruits
*招聘人数
*/
private java.lang.Integer numberOfRecruits;
public java.lang.Integer getNumberOfRecruits(){
return this.numberOfRecruits;
}
public void setNumberOfRecruits(java.lang.Integer numberOfRecruits){
this.numberOfRecruits = numberOfRecruits;
}
/** work_experience
*工作经验
*/
private java.lang.String workExperience;
public java.lang.String getWorkExperience(){
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience){
this.workExperience = workExperience;
}
/** educational_re
*学历要求
*/
private java.lang.String educationalRe;
public java.lang.String getEducationalRe(){
return this.educationalRe;
}
public void setEducationalRe(java.lang.String educationalRe){
this.educationalRe = educationalRe;
}
/** salary_range
*薪资要求
*/
private java.lang.String salaryRange;
public java.lang.String getSalaryRange(){
return this.salaryRange;
}
public void setSalaryRange(java.lang.String salaryRange){
this.salaryRange = salaryRange;
}
}
package cn.com.poc.human_resources.entity.position;
/**
* @author alex.yao
* @date 2025/9/30
*/
public class Job {
/**
* 职位描述
*/
private String jobDuties;
/**
* 任职资格
*/
private String jobRequirements;
public String getJobDuties() {
return jobDuties;
}
public void setJobDuties(String jobDuties) {
this.jobDuties = jobDuties;
}
public String getJobRequirements() {
return jobRequirements;
}
public void setJobRequirements(String jobRequirements) {
this.jobRequirements = jobRequirements;
}
}
package cn.com.poc.human_resources.entity.position;
import java.util.List;
import java.util.Map;
/**
* @author alex.yao
* @date 2025/9/30
*/
public class Por {
/**
* 必备项
*/
private List<Map<String, String>> essential;
/**
* 加分项
*/
private List<Map<String, String>> bonusPoints;
/**
* 排除项
*/
private List<Map<String, String>> exclusion;
public List<Map<String, String>> getEssential() {
return essential;
}
public void setEssential(List<Map<String, String>> essential) {
this.essential = essential;
}
public List<Map<String, String>> getBonusPoints() {
return bonusPoints;
}
public void setBonusPoints(List<Map<String, String>> bonusPoints) {
this.bonusPoints = bonusPoints;
}
public List<Map<String, String>> getExclusion() {
return exclusion;
}
public void setExclusion(List<Map<String, String>> exclusion) {
this.exclusion = exclusion;
}
}
package cn.com.poc.human_resources.entity.resume;
import java.util.List;
public class Info {
private List<String> coreSkills;
private String educationBackground;
private List<String> educationExperience;
private String genderAndAge;
private List<String> occupationalHistory;
private List<String> other;
private String workExperience;
private String workLocation;
public List<String> getCoreSkills() {
return coreSkills;
}
public void setCoreSkills(List<String> coreSkills) {
this.coreSkills = coreSkills;
}
public String getEducationBackground() {
return educationBackground;
}
public void setEducationBackground(String educationBackground) {
this.educationBackground = educationBackground;
}
public List<String> getEducationExperience() {
return educationExperience;
}
public void setEducationExperience(List<String> educationExperience) {
this.educationExperience = educationExperience;
}
public String getGenderAndAge() {
return genderAndAge;
}
public void setGenderAndAge(String genderAndAge) {
this.genderAndAge = genderAndAge;
}
public List<String> getOccupationalHistory() {
return occupationalHistory;
}
public void setOccupationalHistory(List<String> occupationalHistory) {
this.occupationalHistory = occupationalHistory;
}
public List<String> getOther() {
return other;
}
public void setOther(List<String> other) {
this.other = other;
}
public String getWorkExperience() {
return workExperience;
}
public void setWorkExperience(String workExperience) {
this.workExperience = workExperience;
}
public String getWorkLocation() {
return workLocation;
}
public void setWorkLocation(String workLocation) {
this.workLocation = workLocation;
}
}
package cn.com.poc.human_resources.entity.resume;
public class Resume {
private Info info;
private Tag tag;
public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}
public Tag getTag() {
return tag;
}
public void setTag(Tag tag) {
this.tag = tag;
}
}
package cn.com.poc.human_resources.entity.resume;
import java.util.List;
public class Tag {
private String evaluate;
private List<String> label;
private Long matchedDegree;
public String getEvaluate() {
return evaluate;
}
public void setEvaluate(String evaluate) {
this.evaluate = evaluate;
}
public List<String> getLabel() {
return label;
}
public void setLabel(List<String> label) {
this.label = label;
}
public Long getMatchedDegree() {
return matchedDegree;
}
public void setMatchedDegree(Long matchedDegree) {
this.matchedDegree = matchedDegree;
}
}
package cn.com.poc.human_resources.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_human_resource_position
* 人力资源职位信息表
*/
@Entity
@Table(name = "biz_human_resource_position")
@DynamicInsert
@DynamicUpdate
public class BizHumanResourcePositionModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** id
*主键
*/
private java.lang.Long id;
@Column(name = "id",length = 19)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
super.addValidField("id");
}
/** job_title
*职位名称
*/
private java.lang.String jobTitle;
@Column(name = "job_title",length = 100)
public java.lang.String getJobTitle(){
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle){
this.jobTitle = jobTitle;
super.addValidField("jobTitle");
}
/** department
*所属部门
*/
private java.lang.String department;
@Column(name = "department",length = 100)
public java.lang.String getDepartment(){
return this.department;
}
public void setDepartment(java.lang.String department){
this.department = department;
super.addValidField("department");
}
/** work_location
*工作地址
*/
private java.lang.String workLocation;
@Column(name = "work_location",length = 100)
public java.lang.String getWorkLocation(){
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation){
this.workLocation = workLocation;
super.addValidField("workLocation");
}
/** job_nature
*工作性质
*/
private java.lang.String jobNature;
@Column(name = "job_nature",length = 100)
public java.lang.String getJobNature(){
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature){
this.jobNature = jobNature;
super.addValidField("jobNature");
}
/** number_of_recruits
*招聘人数
*/
private java.lang.Integer numberOfRecruits;
@Column(name = "number_of_recruits",length = 10)
public java.lang.Integer getNumberOfRecruits(){
return this.numberOfRecruits;
}
public void setNumberOfRecruits(java.lang.Integer numberOfRecruits){
this.numberOfRecruits = numberOfRecruits;
super.addValidField("numberOfRecruits");
}
/** work_experience
*工作经验
*/
private java.lang.String workExperience;
@Column(name = "work_experience",length = 100)
public java.lang.String getWorkExperience(){
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience){
this.workExperience = workExperience;
super.addValidField("workExperience");
}
/** educational_re
*学历要求
*/
private java.lang.String educationalRe;
@Column(name = "educational_re",length = 100)
public java.lang.String getEducationalRe(){
return this.educationalRe;
}
public void setEducationalRe(java.lang.String educationalRe){
this.educationalRe = educationalRe;
super.addValidField("educationalRe");
}
/** salary_range
*薪资要求
*/
private java.lang.String salaryRange;
@Column(name = "salary_range",length = 100)
public java.lang.String getSalaryRange(){
return this.salaryRange;
}
public void setSalaryRange(java.lang.String salaryRange){
this.salaryRange = salaryRange;
super.addValidField("salaryRange");
}
/** job_requirements
*任职资格
*/
private java.lang.String jobRequirements;
@Column(name = "job_requirements",length = 2147483647)
public java.lang.String getJobRequirements(){
return this.jobRequirements;
}
public void setJobRequirements(java.lang.String jobRequirements){
this.jobRequirements = jobRequirements;
super.addValidField("jobRequirements");
}
/** job_duties
*职位描述
*/
private java.lang.String jobDuties;
@Column(name = "job_duties",length = 2147483647)
public java.lang.String getJobDuties(){
return this.jobDuties;
}
public void setJobDuties(java.lang.String jobDuties){
this.jobDuties = jobDuties;
super.addValidField("jobDuties");
}
/** essential
*职位画像-必备项
*/
private java.lang.String essential;
@Column(name = "essential",length = 1073741824)
public java.lang.String getEssential(){
return this.essential;
}
public void setEssential(java.lang.String essential){
this.essential = essential;
super.addValidField("essential");
}
/** bonusPoints
*职位画像-加分项
*/
private java.lang.String bonusPoints;
@Column(name = "bonusPoints",length = 1073741824)
public java.lang.String getBonusPoints(){
return this.bonusPoints;
}
public void setBonusPoints(java.lang.String bonusPoints){
this.bonusPoints = bonusPoints;
super.addValidField("bonusPoints");
}
/** exclusion
*职位画像-排除项
*/
private java.lang.String exclusion;
@Column(name = "exclusion",length = 1073741824)
public java.lang.String getExclusion(){
return this.exclusion;
}
public void setExclusion(java.lang.String exclusion){
this.exclusion = exclusion;
super.addValidField("exclusion");
}
/** member_id
*创建人ID
*/
private java.lang.Long memberId;
@Column(name = "member_id",length = 19)
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
super.addValidField("memberId");
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted",length = 1)
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR",length = 225)
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
super.addValidField("creator");
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19)
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER",length = 225)
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
super.addValidField("modifier");
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19)
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
package cn.com.poc.human_resources.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_human_resource_resume
* 人力资源-简历信息
*/
@Entity
@Table(name = "biz_human_resource_resume")
@DynamicInsert
@DynamicUpdate
public class BizHumanResourceResumeModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
* 主键id
*/
private java.lang.Long id;
@Column(name = "id", length = 19)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
super.addValidField("id");
}
/**
* position
* 职位ID
*/
private java.lang.Long position;
@Column(name = "position", length = 19)
public java.lang.Long getPosition() {
return this.position;
}
public void setPosition(java.lang.Long position) {
this.position = position;
super.addValidField("position");
}
/**
* 简历文件地址
*/
private String fileUrl;
@Column(name = "file_url", length = 200)
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
super.addValidField("fileUrl");
}
/**
* core_skills
* 核心技能
*/
private java.lang.String coreSkills;
@Column(name = "core_skills", length = 1073741824)
public java.lang.String getCoreSkills() {
return this.coreSkills;
}
public void setCoreSkills(java.lang.String coreSkills) {
this.coreSkills = coreSkills;
super.addValidField("coreSkills");
}
/**
* education_background
* 教育背景
*/
private java.lang.String educationBackground;
@Column(name = "education_background", length = 100)
public java.lang.String getEducationBackground() {
return this.educationBackground;
}
public void setEducationBackground(java.lang.String educationBackground) {
this.educationBackground = educationBackground;
super.addValidField("educationBackground");
}
/**
* education_experience
* 教育经历
*/
private java.lang.String educationExperience;
@Column(name = "education_experience", length = 1073741824)
public java.lang.String getEducationExperience() {
return this.educationExperience;
}
public void setEducationExperience(java.lang.String educationExperience) {
this.educationExperience = educationExperience;
super.addValidField("educationExperience");
}
/**
* gender_and_age
* 性别-年龄
*/
private java.lang.String genderAndAge;
@Column(name = "gender_and_age", length = 100)
public java.lang.String getGenderAndAge() {
return this.genderAndAge;
}
public void setGenderAndAge(java.lang.String genderAndAge) {
this.genderAndAge = genderAndAge;
super.addValidField("genderAndAge");
}
/**
* occupational_history
* 工作经历
*/
private java.lang.String occupationalHistory;
@Column(name = "occupational_history", length = 1073741824)
public java.lang.String getOccupationalHistory() {
return this.occupationalHistory;
}
public void setOccupationalHistory(java.lang.String occupationalHistory) {
this.occupationalHistory = occupationalHistory;
super.addValidField("occupationalHistory");
}
/**
* other
* 技能证书、项目经验等补充内容
*/
private java.lang.String other;
@Column(name = "other", length = 1073741824)
public java.lang.String getOther() {
return this.other;
}
public void setOther(java.lang.String other) {
this.other = other;
super.addValidField("other");
}
/**
* work_experience
* 工作经验
*/
private java.lang.String workExperience;
@Column(name = "work_experience", length = 100)
public java.lang.String getWorkExperience() {
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience) {
this.workExperience = workExperience;
super.addValidField("workExperience");
}
/**
* work_location
* 工作地址
*/
private java.lang.String workLocation;
@Column(name = "work_location", length = 100)
public java.lang.String getWorkLocation() {
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation) {
this.workLocation = workLocation;
super.addValidField("workLocation");
}
/**
* label
* 标签
*/
private java.lang.String label;
@Column(name = "label", length = 1073741824)
public java.lang.String getLabel() {
return this.label;
}
public void setLabel(java.lang.String label) {
this.label = label;
super.addValidField("label");
}
/**
* evaluate
* AI综合评价
*/
private java.lang.String evaluate;
@Column(name = "evaluate", length = 2147483647)
public java.lang.String getEvaluate() {
return this.evaluate;
}
public void setEvaluate(java.lang.String evaluate) {
this.evaluate = evaluate;
super.addValidField("evaluate");
}
/**
* matched_degree
* 匹配分
*/
private java.lang.Long matchedDegree;
@Column(name = "matched_degree", length = 22)
public java.lang.Long getMatchedDegree() {
return this.matchedDegree;
}
public void setMatchedDegree(java.lang.Long matchedDegree) {
this.matchedDegree = matchedDegree;
super.addValidField("matchedDegree");
}
/**
* member_id
* 上传人ID
*/
private java.lang.Long memberId;
@Column(name = "member_id", length = 19)
public java.lang.Long getMemberId() {
return this.memberId;
}
public void setMemberId(java.lang.Long memberId) {
this.memberId = memberId;
super.addValidField("memberId");
}
/**
* is_deleted
* 是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted", length = 1)
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR", length = 225)
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
super.addValidField("creator");
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER", length = 225)
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
super.addValidField("modifier");
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION", length = 10)
@Version
public java.lang.Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion) {
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
select
bhrp.id,
bhrp.job_title,
bhrp.work_location,
bhrp.job_nature,
bhrp.work_experience,
bhrp.member_id,
count(bhrr.id) as resume_count
from
biz_human_resource_position bhrp
left join biz_human_resource_resume bhrr on bhrr.`position` = bhrp.id and bhrr.is_deleted ='N'
where
bhrp.is_deleted = 'N'
<< and bhrp.member_id = :memberId >>
order by bhrp.CREATED_TIME
\ No newline at end of file
package cn.com.poc.human_resources.query;
import java.io.Serializable;
/**
* Query Condition class for PositionListQuery
*/
public class PositionListQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for PositionListQuery
*/
@Entity
public class PositionListQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** id
*id
*/
private java.lang.Long id;
@Column(name = "id")
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** job_title
*job_title
*/
private java.lang.String jobTitle;
@Column(name = "job_title")
public java.lang.String getJobTitle(){
return this.jobTitle;
}
public void setJobTitle(java.lang.String jobTitle){
this.jobTitle = jobTitle;
}
/** work_location
*work_location
*/
private java.lang.String workLocation;
@Column(name = "work_location")
public java.lang.String getWorkLocation(){
return this.workLocation;
}
public void setWorkLocation(java.lang.String workLocation){
this.workLocation = workLocation;
}
/** job_nature
*job_nature
*/
private java.lang.String jobNature;
@Column(name = "job_nature")
public java.lang.String getJobNature(){
return this.jobNature;
}
public void setJobNature(java.lang.String jobNature){
this.jobNature = jobNature;
}
/** work_experience
*work_experience
*/
private java.lang.String workExperience;
@Column(name = "work_experience")
public java.lang.String getWorkExperience(){
return this.workExperience;
}
public void setWorkExperience(java.lang.String workExperience){
this.workExperience = workExperience;
}
/** member_id
*member_id
*/
private java.lang.Long memberId;
@Column(name = "member_id")
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
/** resume_count
*resume_count
*/
private java.lang.Long resumeCount;
@Column(name = "resume_count")
public java.lang.Long getResumeCount(){
return this.resumeCount;
}
public void setResumeCount(java.lang.Long resumeCount){
this.resumeCount = resumeCount;
}
}
\ No newline at end of file
package cn.com.poc.human_resources.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.human_resources.model.BizHumanResourcePositionModel;
public interface BizHumanResourcePositionRepository extends Repository<BizHumanResourcePositionModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.human_resources.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.human_resources.model.BizHumanResourceResumeModel;
public interface BizHumanResourceResumeRepository extends Repository<BizHumanResourceResumeModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.human_resources.rest;
import cn.com.poc.human_resources.dto.*;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 人力资源Agent服务接口
*
* @author alex.yao
* @date 2025/9/28
*/
@Permission(Access.Safety)
public interface HumanResourceRest extends BaseRest {
/**
* 上传简历
*/
Object uploadResume(@RequestBody UploadResumeDto uploadResumeDto) throws Exception;
/**
* 职位助手-对话/内容生成
*
* @param positionAssistantDto
* @throws Exception
*/
void positionAssistant(@RequestBody PositionAssistantDto positionAssistantDto) throws Exception;
// ------------------------- 职位 -------------------------- //
/**
* 保存职位信息
*
* @param humanResourcePositionDto
* @throws Exception
*/
void savePosition(@RequestBody HumanResourcePositionDto humanResourcePositionDto) throws Exception;
/**
* 查询职位列表
*/
List<HumanResourcePositionBaseInfoDto> listPositions(PagingInfo pagingInfo) throws Exception;
/**
* 查询职位详情
*
* @param positionId 职位id
*/
BizHumanResourcePositionDto getPositionDetail(@RequestParam Long positionId) throws Exception;
/**
* 删除职位[批量]
*
* @param positionIds 职位ID
*/
void deletePositions(@RequestParam Long... positionIds) throws Exception;
// ------------------------- 简历 -------------------------- //
/**
* 保存简历信息
*
* @param saveResumeDto
* @throws Exception
*/
void saveResume(@RequestBody SaveResumeDto saveResumeDto) throws Exception;
/**
* 查询简历列表
*
* @param positionId 岗位ID
*/
List<ResumeDto> listResumes(@RequestParam Long positionId, PagingInfo pagingInfo) throws Exception;
/**
* 查询简历详情
*
* @param resumeId
* @return
* @throws Exception
*/
ResumeDto getResumeDetail(@RequestParam Long resumeId) throws Exception;
/**
* 删除简历[批量]
*
* @param resumeIds
* @throws Exception
*/
void deleteResumes(@RequestParam Long... resumeIds) throws Exception;
}
\ No newline at end of file
package cn.com.poc.human_resources.rest.impl;
import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.human_resources.aggregate.HumanResourceService;
import cn.com.poc.human_resources.convert.BizHumanResourcePositionConvert;
import cn.com.poc.human_resources.convert.BizHumanResourceResumeConvert;
import cn.com.poc.human_resources.dto.*;
import cn.com.poc.human_resources.entity.HumanResourcePositionBaseInfo;
import cn.com.poc.human_resources.rest.HumanResourceRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author alex.yao
* @date 2025/9/28
*/
@Component
public class HumanResourceRestImpl implements HumanResourceRest {
@Resource
private HumanResourceService humanResourceService;
@Override
public Object uploadResume(UploadResumeDto uploadResumeDto) throws Exception {
Assert.notBlank(uploadResumeDto.getFileURL(), "文件不能为空");
Assert.notNull(uploadResumeDto.getPositionId(), "岗位ID不能为空");
return humanResourceService.uploadResume(
uploadResumeDto.getFileURL(),
uploadResumeDto.getPositionId(),
BlContext.getCurrentUser().getUserId()
);
}
@Override
public void positionAssistant(PositionAssistantDto positionAssistantDto) throws Exception {
Assert.notBlank(positionAssistantDto.getType(), "类型不能为空");
humanResourceService.positionAssistant(
positionAssistantDto.getDemand(),
positionAssistantDto.getType(),
positionAssistantDto.getFileInfos(),
positionAssistantDto.getJobInformation(),
positionAssistantDto.getQuestion(),
positionAssistantDto.getDialoguesId(),
BlContext.getCurrentUser().getUserId()
);
}
@Override
public void savePosition(HumanResourcePositionDto humanResourcePositionDto) throws Exception {
Assert.notNull(humanResourcePositionDto.getBaseInfo(), "基础信息不能为空");
Assert.notNull(humanResourcePositionDto.getJob(), "职位详情不能为空");
//基础信息
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getJobTitle(), "职位名称不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getDepartment(), "所属部门不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getWorkLocation(), "工作地址不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getJobNature(), "工作性质不能为空");
Assert.notNull(humanResourcePositionDto.getBaseInfo().getNumberOfRecruits(), "招聘人数不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getWorkExperience(), "工作经验不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getEducationalRe(), "学历要求不能为空");
Assert.notBlank(humanResourcePositionDto.getBaseInfo().getSalaryRange(), "薪资要求不能为空");
//职位详情
Assert.notBlank(humanResourcePositionDto.getJob().getJobDuties(), "职位描述不能为空");
Assert.notBlank(humanResourcePositionDto.getJob().getJobRequirements(), "任职资格不能为空");
humanResourceService.saveOrUpdatePosition(
humanResourcePositionDto.getBaseInfo(),
humanResourcePositionDto.getJob(),
humanResourcePositionDto.getPor(),
humanResourcePositionDto.getId(),
BlContext.getCurrentUser().getUserId()
);
}
@Override
public List<HumanResourcePositionBaseInfoDto> listPositions(PagingInfo pagingInfo) throws Exception {
List<HumanResourcePositionBaseInfo> humanResourcePositionBaseInfos = humanResourceService.listPositions(BlContext.getCurrentUser().getUserId(), pagingInfo);
return humanResourcePositionBaseInfos.stream()
.map(info -> {
HumanResourcePositionBaseInfoDto dto = new HumanResourcePositionBaseInfoDto();
dto.setJobTitle(info.getJobTitle());
dto.setWorkLocation(info.getWorkLocation());
dto.setJobNature(info.getJobNature());
dto.setWorkExperience(info.getWorkExperience());
dto.setResumeCount(info.getResumeCount());
return dto;
})
.collect(Collectors.toList());
}
@Override
public BizHumanResourcePositionDto getPositionDetail(Long positionId) throws Exception {
return BizHumanResourcePositionConvert.entityToDto(humanResourceService.getPositionDetail(BlContext.getCurrentUser().getUserId(), positionId));
}
@Override
public void deletePositions(Long... positionIds) throws Exception {
Assert.notEmpty(positionIds, "请选择要删除的岗位");
humanResourceService.deletePositions(BlContext.getCurrentUser().getUserId(), positionIds);
}
@Override
public void saveResume(SaveResumeDto saveResumeDto) throws Exception {
Assert.notBlank(saveResumeDto.getFileURL(), "文件不能为空");
Assert.notNull(saveResumeDto.getPositionId(), "岗位id不能为空");
Assert.notNull(saveResumeDto.getResume());
Assert.notNull(saveResumeDto.getResume().getInfo(), "简历基础信息不能为空");
Assert.notNull(saveResumeDto.getResume().getTag(), "简历标签信息不能为空");
if (saveResumeDto.getId() != null) {
humanResourceService.updateResume(saveResumeDto.getId(), BlContext.getCurrentUser().getUserId(), saveResumeDto.getFileURL(), saveResumeDto.getPositionId(), saveResumeDto.getResume());
} else {
humanResourceService.saveResume(BlContext.getCurrentUser().getUserId(), saveResumeDto.getFileURL(), saveResumeDto.getPositionId(), saveResumeDto.getResume());
}
}
@Override
public List<ResumeDto> listResumes(Long positionId, PagingInfo pagingInfo) throws Exception {
return humanResourceService.listResumes(BlContext.getCurrentUser().getUserId(), positionId, pagingInfo)
.stream()
.map(BizHumanResourceResumeConvert::entityToResumeDto)
.collect(Collectors.toList());
}
@Override
public ResumeDto getResumeDetail(Long resumeId) throws Exception {
return BizHumanResourceResumeConvert.entityToResumeDto(humanResourceService.getResumeDetail(BlContext.getCurrentUser().getUserId(), resumeId));
}
@Override
public void deleteResumes(Long... resumeIds) throws Exception {
Assert.notEmpty(resumeIds, "请选择要删除的简历");
humanResourceService.deleteResumes(BlContext.getCurrentUser().getUserId(), resumeIds);
}
}
package cn.com.poc.human_resources.service;
import cn.com.poc.human_resources.query.PositionListQueryCondition;
import cn.com.poc.human_resources.query.PositionListQueryItem;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.human_resources.entity.BizHumanResourcePositionEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizHumanResourcePositionService extends BaseService {
BizHumanResourcePositionEntity get(java.lang.Long id) throws Exception;
List<BizHumanResourcePositionEntity> findByExample(BizHumanResourcePositionEntity example, PagingInfo pagingInfo) throws Exception;
BizHumanResourcePositionEntity save(BizHumanResourcePositionEntity entity) throws Exception;
BizHumanResourcePositionEntity update(BizHumanResourcePositionEntity entity) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
List<PositionListQueryItem> positionListQuery(PositionListQueryCondition condition, PagingInfo pagingInfo);
}
\ No newline at end of file
package cn.com.poc.human_resources.service;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.human_resources.entity.BizHumanResourceResumeEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizHumanResourceResumeService extends BaseService {
BizHumanResourceResumeEntity get(java.lang.Long id) throws Exception;
List<BizHumanResourceResumeEntity> findByExample(BizHumanResourceResumeEntity example,PagingInfo pagingInfo) throws Exception;
BizHumanResourceResumeEntity save(BizHumanResourceResumeEntity entity) throws Exception;
BizHumanResourceResumeEntity update(BizHumanResourceResumeEntity entity) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.human_resources.service.impl;
import cn.com.poc.human_resources.query.PositionListQueryCondition;
import cn.com.poc.human_resources.query.PositionListQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.human_resources.service.BizHumanResourcePositionService;
import cn.com.poc.human_resources.model.BizHumanResourcePositionModel;
import cn.com.poc.human_resources.entity.BizHumanResourcePositionEntity;
import cn.com.poc.human_resources.convert.BizHumanResourcePositionConvert;
import cn.com.poc.human_resources.repository.BizHumanResourcePositionRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizHumanResourcePositionServiceImpl extends BaseServiceImpl
implements BizHumanResourcePositionService {
@Resource
private BizHumanResourcePositionRepository repository;
public BizHumanResourcePositionEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizHumanResourcePositionModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizHumanResourcePositionConvert.modelToEntity(model);
}
public List<BizHumanResourcePositionEntity> findByExample(BizHumanResourcePositionEntity example, PagingInfo pagingInfo) throws Exception {
List<BizHumanResourcePositionEntity> result = new ArrayList<BizHumanResourcePositionEntity>();
BizHumanResourcePositionModel model = new BizHumanResourcePositionModel();
if (example != null) {
model = BizHumanResourcePositionConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizHumanResourcePositionModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizHumanResourcePositionConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizHumanResourcePositionEntity save(BizHumanResourcePositionEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizHumanResourcePositionModel model = BizHumanResourcePositionConvert.entityToModel(entity);
BizHumanResourcePositionModel saveModel = this.repository.save(model);
return BizHumanResourcePositionConvert.modelToEntity(saveModel);
}
public BizHumanResourcePositionEntity update(BizHumanResourcePositionEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizHumanResourcePositionModel model = this.repository.get(entity.getId());
if (entity.getJobTitle() != null) {
model.setJobTitle(entity.getJobTitle());
}
if (entity.getDepartment() != null) {
model.setDepartment(entity.getDepartment());
}
if (entity.getWorkLocation() != null) {
model.setWorkLocation(entity.getWorkLocation());
}
if (entity.getJobNature() != null) {
model.setJobNature(entity.getJobNature());
}
if (entity.getNumberOfRecruits() != null) {
model.setNumberOfRecruits(entity.getNumberOfRecruits());
}
if (entity.getWorkExperience() != null) {
model.setWorkExperience(entity.getWorkExperience());
}
if (entity.getEducationalRe() != null) {
model.setEducationalRe(entity.getEducationalRe());
}
if (entity.getSalaryRange() != null) {
model.setSalaryRange(entity.getSalaryRange());
}
if (entity.getJobRequirements() != null) {
model.setJobRequirements(entity.getJobRequirements());
}
if (entity.getJobDuties() != null) {
model.setJobDuties(entity.getJobDuties());
}
if (entity.getEssential() != null) {
model.setEssential(entity.getEssential());
}
if (entity.getBonusPoints() != null) {
model.setBonusPoints(entity.getBonusPoints());
}
if (entity.getExclusion() != null) {
model.setExclusion(entity.getExclusion());
}
if (entity.getMemberId() != null) {
model.setMemberId(entity.getMemberId());
}
if (entity.getIsDeleted() != null) {
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null) {
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null) {
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null) {
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null) {
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null) {
model.setSysVersion(entity.getSysVersion());
}
BizHumanResourcePositionModel saveModel = this.repository.save(model);
return BizHumanResourcePositionConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizHumanResourcePositionModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
@Override
public List<PositionListQueryItem> positionListQuery(PositionListQueryCondition condition, PagingInfo pagingInfo) {
return this.sqlDao.query(condition, PositionListQueryItem.class, pagingInfo);
}
}
\ No newline at end of file
package cn.com.poc.human_resources.service.impl;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.human_resources.service.BizHumanResourceResumeService;
import cn.com.poc.human_resources.model.BizHumanResourceResumeModel;
import cn.com.poc.human_resources.entity.BizHumanResourceResumeEntity;
import cn.com.poc.human_resources.convert.BizHumanResourceResumeConvert;
import cn.com.poc.human_resources.repository.BizHumanResourceResumeRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizHumanResourceResumeServiceImpl extends BaseServiceImpl
implements BizHumanResourceResumeService {
@Resource
private BizHumanResourceResumeRepository repository;
public BizHumanResourceResumeEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizHumanResourceResumeModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizHumanResourceResumeConvert.modelToEntity(model);
}
public List<BizHumanResourceResumeEntity> findByExample(BizHumanResourceResumeEntity example, PagingInfo pagingInfo) throws Exception {
List<BizHumanResourceResumeEntity> result = new ArrayList<BizHumanResourceResumeEntity>();
BizHumanResourceResumeModel model = new BizHumanResourceResumeModel();
if (example != null) {
model = BizHumanResourceResumeConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizHumanResourceResumeModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizHumanResourceResumeConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizHumanResourceResumeEntity save(BizHumanResourceResumeEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizHumanResourceResumeModel model = BizHumanResourceResumeConvert.entityToModel(entity);
BizHumanResourceResumeModel saveModel = this.repository.save(model);
return BizHumanResourceResumeConvert.modelToEntity(saveModel);
}
public BizHumanResourceResumeEntity update(BizHumanResourceResumeEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizHumanResourceResumeModel model = this.repository.get(entity.getId());
if (entity.getPosition() != null) {
model.setPosition(entity.getPosition());
}
if (entity.getFileUrl() != null) {
model.setFileUrl(entity.getFileUrl());
}
if (entity.getCoreSkills() != null) {
model.setCoreSkills(entity.getCoreSkills());
}
if (entity.getEducationBackground() != null) {
model.setEducationBackground(entity.getEducationBackground());
}
if (entity.getEducationExperience() != null) {
model.setEducationExperience(entity.getEducationExperience());
}
if (entity.getGenderAndAge() != null) {
model.setGenderAndAge(entity.getGenderAndAge());
}
if (entity.getOccupationalHistory() != null) {
model.setOccupationalHistory(entity.getOccupationalHistory());
}
if (entity.getOther() != null) {
model.setOther(entity.getOther());
}
if (entity.getWorkExperience() != null) {
model.setWorkExperience(entity.getWorkExperience());
}
if (entity.getWorkLocation() != null) {
model.setWorkLocation(entity.getWorkLocation());
}
if (entity.getLabel() != null) {
model.setLabel(entity.getLabel());
}
if (entity.getEvaluate() != null) {
model.setEvaluate(entity.getEvaluate());
}
if (entity.getMatchedDegree() != null) {
model.setMatchedDegree(entity.getMatchedDegree());
}
if (entity.getMemberId() != null) {
model.setMemberId(entity.getMemberId());
}
if (entity.getIsDeleted() != null) {
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null) {
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null) {
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null) {
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null) {
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null) {
model.setSysVersion(entity.getSysVersion());
}
BizHumanResourceResumeModel saveModel = this.repository.save(model);
return BizHumanResourceResumeConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizHumanResourceResumeModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ import org.springframework.test.context.web.WebAppConfiguration;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
/**
......@@ -52,13 +53,18 @@ public class DifyTest {
@Test
public void test_chatStream() throws DifyApiException, IOException, InterruptedException {
// 创建聊天客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient("http://192.168.21.174:6060/v1", "app-pv9FlrZCMfYogqzmbSxwg16s");
DifyChatClient chatClient = DifyClientFactory.createChatClient("https://dify.gsstcloud.com/v1", "app-YmVPoXmTh7ejERFbip3ADCYN");
Map<String,Object> inputs = new LinkedHashMap<>();
inputs.put("demand","Java实习");
inputs.put("type","chat");
inputs.put("jobInfomations","chat");
inputs.put("fileinfos","{\"baseInfo\":{\"department\":\"技术部\",\"educationalRe\":\"本科及以上\",\"jobNature\":\"全职\",\"jobTitle\":\"AI应用工程师\",\"numberOfRecruits\":5,\"salaryRange\":\"15k-20k\",\"workExperience\":\"3-5年\",\"workLocation\":\"北京\"}}");
// 创建聊天消息
ChatMessage message = ChatMessage.builder()
.query("你好,请介绍一下自己")
.query("帮我优化 职业画像")
.user("user-123")
.inputs(new LinkedHashMap<>())
.inputs(inputs)
.responseMode(ResponseMode.STREAMING)
.build();
CountDownLatch countDownLatch = new CountDownLatch(1);
......@@ -75,6 +81,7 @@ public class DifyTest {
public void onMessageEnd(MessageEndEvent event) {
ChatStreamCallback.super.onMessageEnd(event);
countDownLatch.countDown();
System.out.println("answer:" + "[DONE]");
}
});
countDownLatch.await();
......
package cn.com.poc.humanResource;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.human_resources.aggregate.HumanResourceService;
import cn.com.yict.framemax.core.spring.SingleContextInitializer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource;
/**
* @author alex.yao
* @date 2025/9/28
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(initializers = SingleContextInitializer.class)
@WebAppConfiguration
public class HumanResourceTest {
@Resource
private HumanResourceService humanResourceService;
@Test
public void test_uploadResume() throws Exception {
String fileURL = "https://gsst-modellink-prod.gz.bcebos.com/data/20250928/1759049361707.pdf";
String postion = "java实习生";
Long userId = 0L;
System.out.println(humanResourceService.uploadResume(fileURL, 1L, userId));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment