|
@@ -12,6 +12,8 @@ import com.citu.module.menduner.system.controller.app.recruit.person.cv.AppRecru
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRecruitHireJobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRecruitHireJobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRecruitHireJobCvRelRespVO;
|
|
import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRecruitHireJobCvRelRespVO;
|
|
import com.citu.module.menduner.system.controller.base.CommonRespVO;
|
|
import com.citu.module.menduner.system.controller.base.CommonRespVO;
|
|
|
|
+import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisReqVO;
|
|
|
|
+import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
|
|
import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.controller.base.job.JobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
|
|
@@ -223,12 +225,17 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
|
|
/**
|
|
/**
|
|
* 投递简历的性别比例
|
|
* 投递简历的性别比例
|
|
**/
|
|
**/
|
|
- default List<CommonRespVO> getJobCvSexCount(LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
|
|
+ default List<CommonRespVO> getJobCvSexCount
|
|
|
|
+ (RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
wrapper.selectAs(PersonInfoDO::getSex, "`key`");
|
|
wrapper.selectAs(PersonInfoDO::getSex, "`key`");
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
|
|
+
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getJobId, reqVO.getJobId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
|
+ wrapper.inIfPresent(JobCvRelDO::getUserId, reqVO.getUserId());
|
|
wrapper.groupBy(PersonInfoDO::getSex);
|
|
wrapper.groupBy(PersonInfoDO::getSex);
|
|
wrapper.orderByDesc("`key`");
|
|
wrapper.orderByDesc("`key`");
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
@@ -238,7 +245,8 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
|
|
/**
|
|
/**
|
|
* 投递简历的年龄分布
|
|
* 投递简历的年龄分布
|
|
**/
|
|
**/
|
|
- default List<CommonRespVO> getJobCvAgeCount(LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
|
|
+ default List<CommonRespVO> getJobCvAgeCount
|
|
|
|
+ (RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
|
|
|
|
String sql = "CASE \n" +
|
|
String sql = "CASE \n" +
|
|
@@ -255,6 +263,10 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
|
|
|
|
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
|
|
+
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getJobId, reqVO.getJobId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
|
+ wrapper.inIfPresent(JobCvRelDO::getUserId, reqVO.getUserId());
|
|
wrapper.groupBy("`key`");
|
|
wrapper.groupBy("`key`");
|
|
wrapper.orderByDesc("`key`");
|
|
wrapper.orderByDesc("`key`");
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
@@ -263,13 +275,18 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
|
|
/**
|
|
/**
|
|
* 投递简历的工作经验分布
|
|
* 投递简历的工作经验分布
|
|
**/
|
|
**/
|
|
- default List<CommonRespVO> getJobCvExpCount(LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
|
|
+ default List<CommonRespVO> getJobCvExpCount
|
|
|
|
+ (RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
wrapper.selectAs(PersonInfoDO::getExpType, "`key`");
|
|
wrapper.selectAs(PersonInfoDO::getExpType, "`key`");
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
|
|
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
|
|
+
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getJobId, reqVO.getJobId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
|
+ wrapper.inIfPresent(JobCvRelDO::getUserId, reqVO.getUserId());
|
|
wrapper.groupBy(PersonInfoDO::getExpType);
|
|
wrapper.groupBy(PersonInfoDO::getExpType);
|
|
wrapper.orderByDesc("`key`");
|
|
wrapper.orderByDesc("`key`");
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
@@ -278,18 +295,58 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
|
|
/**
|
|
/**
|
|
* 投递简历的学历分布
|
|
* 投递简历的学历分布
|
|
**/
|
|
**/
|
|
- default List<CommonRespVO> getJobCvEduCount(LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
|
|
+ default List<CommonRespVO> getJobCvEduCount
|
|
|
|
+ (RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
wrapper.selectAs(PersonInfoDO::getEduType, "`key`");
|
|
wrapper.selectAs(PersonInfoDO::getEduType, "`key`");
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
wrapper.selectCount(JobCvRelDO::getId, CommonRespVO::getValue);
|
|
|
|
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
|
|
+
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getJobId, reqVO.getJobId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
|
+ wrapper.inIfPresent(JobCvRelDO::getUserId, reqVO.getUserId());
|
|
wrapper.groupBy(PersonInfoDO::getEduType);
|
|
wrapper.groupBy(PersonInfoDO::getEduType);
|
|
wrapper.orderByDesc("`key`");
|
|
wrapper.orderByDesc("`key`");
|
|
|
|
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
return selectJoinList(CommonRespVO.class, wrapper);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 简历明细
|
|
|
|
+ *
|
|
|
|
+ * @param reqVO 公共条件
|
|
|
|
+ * @param startTime 开始时间
|
|
|
|
+ * @param endTime 结束时间
|
|
|
|
+ * @param status 投递简历的状态
|
|
|
|
+ **/
|
|
|
|
+ default PageResult<RecruitJobCvRelAnalysisRespVO> getAnalysisDetail(
|
|
|
|
+ RecruitAnalysisReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime, String status) {
|
|
|
|
+ MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
|
|
|
|
+ wrapper.selectAsClass(JobCvRelDO.class, RecruitJobCvRelAnalysisRespVO.class);
|
|
|
|
+ wrapper.selectAssociation(JobAdvertisedDO.class, RecruitJobCvRelAnalysisRespVO::getJob);
|
|
|
|
+ wrapper.selectAssociation("person", PersonInfoDO.class, RecruitJobCvRelAnalysisRespVO::getPerson);
|
|
|
|
+ wrapper.selectAssociation("recommend", PersonInfoDO.class, RecruitJobCvRelAnalysisRespVO::getRecommendPerson);
|
|
|
|
+
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
|
|
|
|
+ wrapper.inIfPresent(JobCvRelDO::getPublishUserId, reqVO.getUserId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getJobId, reqVO.getJobId());
|
|
|
|
+ wrapper.eqIfPresent(JobCvRelDO::getStatus, status);
|
|
|
|
+ wrapper.between(JobCvRelDO::getCreateTime, startTime, endTime);
|
|
|
|
+
|
|
|
|
+ // 投递的职位 inner 招聘职位
|
|
|
|
+ wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, JobCvRelDO::getJobId);
|
|
|
|
+
|
|
|
|
+ // 投递的职位 inner 人才信息 (投递人)
|
|
|
|
+ wrapper.innerJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
|
|
|
|
+
|
|
|
|
+ // 投递的职位 inner 人才信息 (推荐人)
|
|
|
|
+ wrapper.leftJoin(PersonInfoDO.class, "recommend", PersonInfoDO::getUserId, JobCvRelDO::getRecommendUserId);
|
|
|
|
+
|
|
|
|
+ wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
|
|
|
|
+ return selectJoinPage(reqVO, RecruitJobCvRelAnalysisRespVO.class, wrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|