Browse Source

1、优化统计分析以及导出

rayson 8 months ago
parent
commit
12aba1d6c6
11 changed files with 51 additions and 14 deletions
  1. 11 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/analysis/AnalysisController.java
  2. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitInterviewInviteAnalysisRespVO.java
  3. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobAnalysisRespVO.java
  4. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobCvRelAnalysisRespVO.java
  5. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitInterviewInviteAnalysisExcelRespVO.java
  6. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobAnalysisExcelRespVO.java
  7. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobCvRelAnalysisExcelRespVO.java
  8. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java
  9. 4 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java
  10. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  11. 4 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java

+ 11 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/analysis/AnalysisController.java

@@ -146,6 +146,17 @@ public class AnalysisController {
                        HttpServletResponse response) throws IOException {
         reqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<ExcelWriteDTO> writeDTOList = new ArrayList<>();
+
+        packExcelData(writeDTOList,
+                RecruitJobAnalysisExcelRespVO.class,
+                JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getJobNum(reqVO).getList()),
+                "已发布职位明细");
+
+        packExcelData(writeDTOList,
+                RecruitJobAnalysisExcelRespVO.class,
+                JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getBrowseNum(reqVO).getList()),
+                "职位浏览量明细");
+
         packExcelData(writeDTOList,
                 RecruitJobCvRelAnalysisExcelRespVO.class,
                 JobCvRelConvert.INSTANCE.convertList(jobCvcRelService.getNewCvRel(reqVO).getList()),
@@ -166,15 +177,6 @@ public class AnalysisController {
                 InterviewInviteConvert.INSTANCE.convertList(interviewInviteService.getCompleteInterview(reqVO).getList()),
                 "完成面试明细");
 
-        packExcelData(writeDTOList,
-                RecruitJobAnalysisExcelRespVO.class,
-                JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getBrowseNum(reqVO).getList()),
-                "职位浏览量明细");
-
-        packExcelData(writeDTOList,
-                RecruitJobAnalysisExcelRespVO.class,
-                JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getJobNum(reqVO).getList()),
-                "已发布职位明细");
 
         // 导出 Excel
         ExcelUtils.write(response, "统计分析明细.xls",writeDTOList);

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitInterviewInviteAnalysisRespVO.java

@@ -22,4 +22,7 @@ public class RecruitInterviewInviteAnalysisRespVO extends InterviewInviteRespVO
     @Schema(description = "招聘职位信息")
     private AppRecruitJobSimpleRespVO job;
 
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String enterpriseName;
+
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobAnalysisRespVO.java

@@ -9,6 +9,9 @@ import lombok.Data;
 @Data
 public class RecruitJobAnalysisRespVO extends JobAdvertisedSimpleRespVO {
 
+    @Schema(description = "企业名称")
+    private String enterpriseName;
+
     @Schema(description = "数量")
     private Long num;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/RecruitJobCvRelAnalysisRespVO.java

@@ -20,4 +20,7 @@ public class RecruitJobCvRelAnalysisRespVO extends JobCvRelSimpleRespVO {
     @Schema(description = "招聘信息")
     private AppRecruitJobSimpleRespVO job;
 
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String enterpriseName;
+
 }

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitInterviewInviteAnalysisExcelRespVO.java

@@ -32,7 +32,7 @@ public class RecruitInterviewInviteAnalysisExcelRespVO {
     private LocalDateTime birthday;
 
     @ExcelProperty(value = "求职状态", converter = DictConvert.class)
-    @DictFormat(MENDUNER_JOB_STATUS)
+    @DictFormat(MENDUNER_JOB_SEEK_STATUS)
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "1")
     private String jobStatus;
 
@@ -46,6 +46,10 @@ public class RecruitInterviewInviteAnalysisExcelRespVO {
     @Schema(description = "学历", example = "2")
     private String eduType;
 
+    @ExcelProperty("企业名称")
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String enterpriseName;
+
     // ========== 招聘职位信息 ==========
 
     @ExcelProperty("招聘职位标题")

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobAnalysisExcelRespVO.java

@@ -17,6 +17,10 @@ import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 @ExcelIgnoreUnannotated
 public class RecruitJobAnalysisExcelRespVO {
 
+    @ExcelProperty("企业名称")
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String enterpriseName;
+
     @Schema(description = "职位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
     @ExcelProperty("职位名称")
     private String name;

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobCvRelAnalysisExcelRespVO.java

@@ -17,6 +17,10 @@ import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
 @ExcelIgnoreUnannotated
 public class RecruitJobCvRelAnalysisExcelRespVO {
 
+    @ExcelProperty("企业名称")
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
+    private String enterpriseName;
+
     // ========== 招聘职位信息 ==========
 
     @ExcelProperty("招聘职位标题")
@@ -56,7 +60,7 @@ public class RecruitJobCvRelAnalysisExcelRespVO {
     private LocalDateTime birthday;
 
     @ExcelProperty(value = "求职状态", converter = DictConvert.class)
-    @DictFormat(MENDUNER_JOB_STATUS)
+    @DictFormat(MENDUNER_JOB_SEEK_STATUS)
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "1")
     private String jobStatus;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java

@@ -56,6 +56,9 @@ public class JobAdvertisedSimpleRespVO {
     @Schema(description = "状态", example = "1")
     private String status;
 
+    @Schema(description = "创建时间")
+    private LocalDateTime createTime;
+
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 

+ 4 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java

@@ -12,6 +12,7 @@ import com.citu.module.menduner.system.controller.app.recruit.interview.vo.AppRe
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitInterviewInviteAnalysisRespVO;
+import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
@@ -231,9 +232,11 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
         query.selectAll(InterviewInviteDO.class);
         query.selectAssociation(PersonInfoDO.class, AppRecruitInterviewInviteRespVO::getPerson);
         query.selectAssociation(JobAdvertisedDO.class, AppRecruitInterviewInviteRespVO::getJob);
+        query.selectAs(EnterpriseDO::getName, RecruitInterviewInviteAnalysisRespVO::getEnterpriseName);
 
-        query.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, InterviewInviteDO::getUserId);
+        query.leftJoin(PersonInfoDO.class, PersonInfoDO::getUserId, InterviewInviteDO::getUserId);
         query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, InterviewInviteDO::getJobId);
+        query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, InterviewInviteDO::getEnterpriseId);
 
         query.eqIfPresent(InterviewInviteDO::getEnterpriseId, reqVO.getEnterpriseId());
         query.inIfPresent(InterviewInviteDO::getInviteUserId, reqVO.getUserId());

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -316,11 +316,14 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(JobAdvertisedDO.class);
         query.selectSum(MdeVisitsDO::getCount, RecruitJobAnalysisRespVO::getNum);
+        query.selectAs(EnterpriseDO::getName, RecruitJobAnalysisRespVO::getEnterpriseName);
 
         query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
         query.inIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId());
         query.eqIfPresent(JobAdvertisedDO::getId, reqVO.getJobId());
 
+        query.innerJoin(EnterpriseDO.class, on -> on.eq(EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId));
+
         query.innerJoin(MdeVisitsDO.class, on ->
                 on.eq(MdeVisitsDO::getBizId, JobAdvertisedDO::getId)
                         .eq(MdeVisitsDO::getType, MdeVisitsEnum.POSITION_PUBLISH_CLICK.getType())
@@ -375,6 +378,9 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
             RecruitAnalysisPageReqVO reqVO, LocalDateTime startTime, LocalDateTime endTime) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAll(JobAdvertisedDO.class);
+        query.selectAs(EnterpriseDO::getName, RecruitJobAnalysisRespVO::getEnterpriseName);
+
+        query.innerJoin(EnterpriseDO.class, on -> on.eq(EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId));
 
         query.eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
         query.inIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId());

+ 4 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java

@@ -13,6 +13,7 @@ import com.citu.module.menduner.system.controller.app.recruit.person.hire.AppRec
 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.analysis.RecruitAnalysisPageReqVO;
+import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobCvRelAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
@@ -21,7 +22,6 @@ import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.unfit.UnfitCandidateDO;
-import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import com.citu.module.menduner.system.enums.unfit.UnfitTypeEnum;
 import org.apache.ibatis.annotations.Mapper;
@@ -326,6 +326,7 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         wrapper.selectAssociation(JobAdvertisedDO.class, RecruitJobCvRelAnalysisRespVO::getJob);
         wrapper.selectAssociation("person", PersonInfoDO.class, RecruitJobCvRelAnalysisRespVO::getPerson);
         wrapper.selectAssociation("recommend", PersonInfoDO.class, RecruitJobCvRelAnalysisRespVO::getRecommendPerson);
+        wrapper.selectAs(EnterpriseDO::getName, RecruitJobAnalysisRespVO::getEnterpriseName);
 
         wrapper.eqIfPresent(JobCvRelDO::getEnterpriseId, reqVO.getEnterpriseId());
         wrapper.inIfPresent(JobCvRelDO::getPublishUserId, reqVO.getUserId());
@@ -333,11 +334,12 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         wrapper.eqIfPresent(JobCvRelDO::getStatus, status);
         wrapper.betweenIfPresent(JobCvRelDO::getCreateTime, startTime, endTime);
 
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobCvRelDO::getEnterpriseId);
         // 投递的职位 inner 招聘职位
         wrapper.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, JobCvRelDO::getJobId);
 
         // 投递的职位 inner 人才信息 (投递人)
-        wrapper.innerJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
+        wrapper.leftJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
 
         // 投递的职位 inner 人才信息 (推荐人)
         wrapper.leftJoin(PersonInfoDO.class, "recommend", PersonInfoDO::getUserId, JobCvRelDO::getRecommendUserId);