Переглянути джерело

1、增加企业基本信息字段(开业时间、筹备)
2、优化面试模块
3、增加不合适的业务

rayson 1 рік тому
батько
коміт
e4b6d24b92
29 змінених файлів з 383 додано та 90 видалено
  1. 7 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 22 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/ConversationStatusEnum.java
  3. 2 6
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/JobCvRelStatusEnum.java
  4. 16 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/unfit/UnfitTypeEnum.java
  5. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseRespVO.java
  6. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseSaveReqVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/AppAdminInterviewInviteController.java
  8. 3 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteReqPageVO.java
  9. 4 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteRespVO.java
  10. 14 18
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java
  11. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/cv/AppAdminJobCvRelRespVO.java
  12. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/unfit/AppAdminUnfitCandidateSaveReqVO.java
  13. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseRespVO.java
  14. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseSaveReqVO.java
  15. 24 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateSaveReqVO.java
  16. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java
  17. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobCvRelDO.java
  18. 51 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/unfit/UnfitCandidateDO.java
  19. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java
  20. 11 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java
  21. 22 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobCvRelMapper.java
  22. 27 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/unfit/UnfitCandidateMapper.java
  23. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteService.java
  24. 21 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java
  25. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationServiceImpl.java
  26. 0 21
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java
  27. 0 33
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java
  28. 26 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateService.java
  29. 66 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateServiceImpl.java

+ 7 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -383,4 +383,11 @@ public interface ErrorCodeConstants {
 
     ErrorCode ENTERPRISE_INVITE_RECORD_EXIST_ENTERPRISE =
             new ErrorCode(1_100_041_012, "无法加入相同的企业");
+
+    // ========== 不合适的候选人 1_100_042_000 ==========
+    ErrorCode UNFIT_CANDIDATE_NOT_EXISTS = new ErrorCode(1_100_042_001, "不合适的候选人不存在");
+    ErrorCode UNFIT_CANDIDATE_ALREADY_UNFIT = new ErrorCode(1_100_042_002, "已经是不合适,不可重复操作");
+    ErrorCode UNFIT_CANDIDATE_JOB_ID_NOT_NULL = new ErrorCode(1_100_042_003, "发布的职位id不能为空");
+    ErrorCode UNFIT_CANDIDATE_TYPE_NOT_NULL = new ErrorCode(1_100_042_004, "类型不能为空");
+    ErrorCode UNFIT_CANDIDATE_BUSINESS_ID_NOT_NULL = new ErrorCode(1_100_042_005, "业务id不能为空");
 }

+ 22 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/ConversationStatusEnum.java

@@ -0,0 +1,22 @@
+package com.citu.module.menduner.system.enums.cv;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 会话状态(0 已邀约 | 1 已发offer 2 已入职 | 3 已结算 )
+ **/
+@Getter
+@AllArgsConstructor
+public enum ConversationStatusEnum {
+
+    INVITE("0", "已邀约"),
+    OFFER("1", "已发offer"),
+    ENTRY("2", "已入职"),
+    SETTLEMENT("3", "已结算"),
+    ;
+
+    private final String status;
+
+    private final String name;
+}

+ 2 - 6
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/cv/JobCvRelStatusEnum.java

@@ -10,12 +10,8 @@ import lombok.Getter;
 @AllArgsConstructor
 public enum JobCvRelStatusEnum {
     NEW("0", "新投递"),
-    LOOK("1", "已查看"),
-    INVITE("2", "已邀约"),
-    OFFER("3", "已发offer"),
-    ENTRY("4", "已入职"),
-    SETTLEMENT("5", "已结算"),
-    ELIMINATE("99", "不合适");
+    LOOK("1", "已查看")
+    ;
 
     private final String status;
 

+ 16 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/unfit/UnfitTypeEnum.java

@@ -0,0 +1,16 @@
+package com.citu.module.menduner.system.enums.unfit;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 不合适业务类型 0 简历投递 | 1 面试邀约
+ **/
+@Getter
+@AllArgsConstructor
+public enum UnfitTypeEnum {
+    JOB_CV_REL("0", "简历投递"),
+    INTERVIEW("1", "面试邀约");
+    private String status;
+    private String desc;
+}

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseRespVO.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.controller.appadmin.enterprise.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Schema(description = "menduner - 企业信息 Response VO")
@@ -57,5 +58,11 @@ public class AppAdminEnterpriseRespVO {
     @Schema(description = "获得荣誉")
     private String receivedHonors;
 
+    @Schema(description = "开业时间")
+    private LocalDateTime openTime;
+
+    @Schema(description = "是否筹备")
+    private Boolean prepare;
+
 
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/enterprise/vo/AppAdminEnterpriseSaveReqVO.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Schema(description = "menduner - 企业信息新增/修改 Request VO")
@@ -57,4 +58,10 @@ public class AppAdminEnterpriseSaveReqVO {
     @Schema(description = "获得荣誉")
     private String receivedHonors;
 
+    @Schema(description = "开业时间")
+    private LocalDateTime openTime;
+
+    @Schema(description = "是否筹备")
+    private Boolean prepare;
+
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/AppAdminInterviewInviteController.java

@@ -46,7 +46,7 @@ public class AppAdminInterviewInviteController {
 
     @PreAuthenticated
     @PostMapping("/save")
-    @Operation(summary = "保存(修改|重新邀约)")
+    @Operation(summary = "保存(新增|修改|重新邀约)")
     public CommonResult<Boolean> save
             (@RequestBody @Valid AppAdminInterviewInviteReqSaveVO reqVO) {
         service.save(reqVO);

+ 3 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteReqPageVO.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.controller.appadmin.interview.vo;
 
 
 import com.citu.framework.common.pojo.PageParam;
+import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonPageReqVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -17,7 +18,7 @@ import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DA
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
-public class AppAdminInterviewInviteReqPageVO extends PageParam {
+public class AppAdminInterviewInviteReqPageVO extends AppAdminPersonPageReqVO {
 
     @Schema(description = "面试岗位", example = "7193")
     private Long jobId;
@@ -35,4 +36,5 @@ public class AppAdminInterviewInviteReqPageVO extends PageParam {
     @Schema(description = "状态(0待接受|1待面试|2即将面试|3已完成|4待反馈|5已反馈|98拒绝|99已取消)", example = "2")
     private String status;
 
+
 }

+ 4 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteRespVO.java

@@ -2,6 +2,8 @@ package com.citu.module.menduner.system.controller.appadmin.interview.vo;
 
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobSimpleRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonSimpleRespVO;
@@ -19,9 +21,9 @@ public class AppAdminInterviewInviteRespVO extends InterviewInviteRespVO {
     private LocalDateTime updateTime;
 
     @Schema(description = "人才简易信息")
-    private PersonSimpleRespVO person;
+    private AppAdminPersonSimpleRespVO person;
 
     @Schema(description = "招聘职位信息")
-    private JobAdvertisedSimpleRespVO job;
+    private AppAdminJobSimpleRespVO job;
 
 }

+ 14 - 18
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java

@@ -2,19 +2,19 @@ package com.citu.module.menduner.system.controller.appadmin.person;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelInviteReqVO;
-import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
-import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.person.cv.AppAdminJobCvRelRespVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
+import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
+import com.citu.module.menduner.system.controller.appadmin.unfit.AppAdminUnfitCandidateSaveReqVO;
 import com.citu.module.menduner.system.service.job.HireJobIntegrationService;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import com.citu.module.menduner.system.service.person.PersonIntegrationService;
+import com.citu.module.menduner.system.service.unfit.UnfitCandidateService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -22,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-
 import java.util.List;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
@@ -45,6 +44,9 @@ public class AppAdminPersonCvController {
     @Resource
     private JobCvRelService jobCvRelService;
 
+    @Resource
+    private UnfitCandidateService unfitCandidateService;
+
 
     @PreAuthenticated
     @GetMapping("/page")
@@ -83,25 +85,19 @@ public class AppAdminPersonCvController {
     }
 
     @PreAuthenticated
-    @PostMapping("/eliminate")
+    @PostMapping("/unfit/eliminate")
     @Operation(summary = "淘汰,不合适")
-    public CommonResult<Boolean> eliminate(@RequestParam("ids") String ids) {
-        return success(jobCvRelService.eliminate(StrUtils.splitToLong(ids)));
+    public CommonResult<Boolean> eliminate(@RequestBody @Valid AppAdminUnfitCandidateSaveReqVO reqVO) {
+        return success(unfitCandidateService.eliminate(reqVO));
     }
 
     @PreAuthenticated
-    @PostMapping("/entry")
-    @Operation(summary = "入职")
-    public CommonResult<Boolean> entry(@RequestParam("ids") String ids) {
-        return success(jobCvRelService.entry(StrUtils.splitToLong(ids)));
+    @PostMapping("/unfit/cancellation")
+    @Operation(summary = "取消淘汰,不合适")
+    public CommonResult<Boolean> cancellation(@RequestBody @Valid AppAdminUnfitCandidateSaveReqVO reqVO) {
+        return success(unfitCandidateService.cancellation(reqVO));
     }
 
-    @PreAuthenticated
-    @PostMapping("/invite")
-    @Operation(summary = "邀请面试")
-    public CommonResult<Boolean> invite(@RequestBody @Valid AppAdminJobCvRelInviteReqVO reqVO) {
-        return success(jobCvRelService.invite(reqVO));
-    }
 
     @PreAuthenticated
     @PostMapping("/settlement")

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/cv/AppAdminJobCvRelRespVO.java

@@ -24,6 +24,9 @@ public class AppAdminJobCvRelRespVO {
     @Schema(description = "投递用户id")
     private Long userId;
 
+    @Schema(description = "简历状态")
+    private String status;
+
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
 

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/unfit/AppAdminUnfitCandidateSaveReqVO.java

@@ -0,0 +1,10 @@
+package com.citu.module.menduner.system.controller.appadmin.unfit;
+
+import com.citu.module.menduner.system.controller.base.unfit.UnfitCandidateSaveReqVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "menduner - 不合适的候选人新增/修改 Request VO")
+@Data
+public class AppAdminUnfitCandidateSaveReqVO extends UnfitCandidateSaveReqVO {
+}

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseRespVO.java

@@ -88,6 +88,14 @@ public class EnterpriseRespVO {
     @ExcelProperty("获得荣誉")
     private String receivedHonors;
 
+    @Schema(description = "开业时间")
+    @ExcelProperty("开业时间")
+    private LocalDateTime openTime;
+
+    @Schema(description = "是否筹备")
+    @ExcelProperty("是否筹备")
+    private Boolean prepare;
+
     @Schema(description = "状态(0正常 1停用)")
     @ExcelProperty("状态")
     private String status;

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/vo/EnterpriseSaveReqVO.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.controller.base.enterprise.vo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Schema(description = "企业信息新增/修改 Request VO")
@@ -60,6 +61,12 @@ public class EnterpriseSaveReqVO {
     @Schema(description = "获得荣誉")
     private String receivedHonors;
 
+    @Schema(description = "开业时间")
+    private LocalDateTime openTime;
+
+    @Schema(description = "是否筹备")
+    private Boolean prepare;
+
     @Schema(description = "帐号状态(0正常 1停用)")
     private String status;
 

+ 24 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateSaveReqVO.java

@@ -0,0 +1,24 @@
+package com.citu.module.menduner.system.controller.base.unfit;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 不合适的候选人新增/修改 Request VO")
+@Data
+public class UnfitCandidateSaveReqVO {
+
+    @Schema(description = "发布的职位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10541")
+    @NotNull(message = "{1_100_042_003}")
+    private Long jobId;
+
+    @Schema(description = "类型(0简历投递表 | 1面试邀约表)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @NotEmpty(message = "{1_100_042_004}")
+    private String type;
+
+    @Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9016")
+    @NotNull(message = "{1_100_042_005}")
+    private Long bizId;
+
+}

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseDO.java

@@ -9,6 +9,7 @@ import com.citu.framework.mybatis.core.dataobject.BaseDO;
 import com.citu.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -101,6 +102,14 @@ public class EnterpriseDO extends TenantBaseDO {
      * 获得荣誉
      */
     private String receivedHonors;
+    /**
+     * 开业时间
+     */
+    private LocalDateTime openTime;
+    /**
+     * 是否筹备
+     */
+    private Boolean prepare;
     /**
      * 帐号状态(0正常 1停用)
      **/

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobCvRelDO.java

@@ -67,7 +67,7 @@ public class JobCvRelDO extends BaseDO {
      */
     private String type;
     /**
-     * 投递的简历状态
+     * 投递的简历状态(0 新投递 1已查看)
      */
     private String status;
 

+ 51 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/unfit/UnfitCandidateDO.java

@@ -0,0 +1,51 @@
+package com.citu.module.menduner.system.dal.dataobject.unfit;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.citu.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+/**
+ * 门墩儿-不合适的候选人 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_unfit_candidate")
+@KeySequence("mde_unfit_candidate_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UnfitCandidateDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 发布的职位id
+     */
+    private Long jobId;
+    /**
+     * 发布职位的用户id
+     */
+    private Long publishUserId;
+    /**
+     * 类型(0简历投递表 | 1面试邀约表)
+     */
+    private String type;
+    /**
+     * 业务id
+     */
+    private Long bizId;
+
+}

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java

@@ -226,5 +226,13 @@ public class ESJobAdvertisedMergeDO extends ESBaseDO {
      */
     @Field(analyzer = FieldAnalyzer.IK_MAX_WORD, type = FieldType.Text)
     private String receivedHonors;
+    /**
+     * 开业时间
+     */
+    private LocalDateTime openTime;
+    /**
+     * 是否筹备
+     */
+    private Boolean prepare;
 
 }

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

@@ -11,8 +11,8 @@ import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 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.service.job.JobAdvertisedService;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -45,7 +45,15 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
         query.selectAll(InterviewInviteDO.class);
         query.selectAssociation(PersonInfoDO.class, AppAdminInterviewInviteRespVO::getPerson);
         query.selectAssociation(JobAdvertisedDO.class, AppAdminInterviewInviteRespVO::getJob);
+
         query.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, InterviewInviteDO::getUserId);
+        // 人才相关的条件
+        query.eqIfExists(PersonInfoDO::getJobStatus, reqVO.getJobStatus());
+        query.eqIfExists(PersonInfoDO::getEduType, reqVO.getEduType());
+        query.eqIfExists(PersonInfoDO::getExpType, reqVO.getExpType());
+        query.likeIfExists(PersonInfoDO::getName, reqVO.getName());
+        query.likeIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
+
         query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, InterviewInviteDO::getJobId);
         query.eq(InterviewInviteDO::getEnterpriseId, enterpriseId);
         query.eq(InterviewInviteDO::getUserId, userId);
@@ -55,12 +63,13 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
                 .betweenIfPresent(InterviewInviteDO::getTime, reqVO.getTime())
                 .eqIfPresent(InterviewInviteDO::getPhone, reqVO.getPhone())
                 .eqIfPresent(InterviewInviteDO::getStatus, reqVO.getStatus());
+
         return selectJoinPage(reqVO, AppAdminInterviewInviteRespVO.class, query);
     }
 
     default List<CommonRespVO> getCountByTime(Long enterpriseId, Long userId) {
         MPJLambdaWrapperX<InterviewInviteDO> query = new MPJLambdaWrapperX<>();
-        query.selectFunc( "DATE(%s)",arg->arg.accept(InterviewInviteDO::getTime), "`key`");
+        query.selectFunc("DATE(%s)", arg -> arg.accept(InterviewInviteDO::getTime), "`key`");
         query.selectCount(InterviewInviteDO::getId, CommonRespVO::getValue);
         query.eq(InterviewInviteDO::getEnterpriseId, enterpriseId);
         query.eq(InterviewInviteDO::getUserId, userId);

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

@@ -17,8 +17,10 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 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;
 
 import java.time.LocalDateTime;
@@ -67,6 +69,8 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         wrapper.likeIfExists(PersonInfoDO::getName, reqVO.getName());
         wrapper.likeIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
 
+        setUnfitCandidate(wrapper);
+
         wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
         return selectJoinPage(reqVO, AppAdminJobCvRelRespVO.class, wrapper);
     }
@@ -88,10 +92,26 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         wrapper.eq(JobCvRelDO::getRecommendUserId, userId);
         wrapper.eq(JobCvRelDO::getStatus, reqVO.getStatus());
 
+        setUnfitCandidate(wrapper);
+
+
         wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
         return selectJoinPage(reqVO, AppHireJobCvRelRespVO.class, wrapper);
     }
 
+    /**
+     * 过滤不合适的候选人
+     **/
+    default void setUnfitCandidate(MPJLambdaWrapperX<JobCvRelDO> wrapper) {
+        // 不合适的候选人表 过滤不合适的数据
+        wrapper.leftJoin(UnfitCandidateDO.class, on ->
+                on.eq(UnfitCandidateDO::getType, UnfitTypeEnum.JOB_CV_REL.getStatus())
+                        .eq(UnfitCandidateDO::getBizId, JobCvRelDO::getId)
+        );
+
+        wrapper.isNull(UnfitCandidateDO::getId);
+    }
+
     default PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
         // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
         MPJLambdaWrapperX<JobCvRelDO> wrapper = new MPJLambdaWrapperX<>();
@@ -116,6 +136,8 @@ public interface JobCvRelMapper extends BaseMapperX<JobCvRelDO> {
         // 人才相关的条件
         wrapper.likeIfExists("recommend.name", reqVO.getName());
 
+        setUnfitCandidate(wrapper);
+
         wrapper.orderByDesc(JobCvRelDO::getUpdateTime);
         return selectJoinPage(reqVO, AppAdminHireJobCvRelRespVO.class, wrapper);
     }

+ 27 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/unfit/UnfitCandidateMapper.java

@@ -0,0 +1,27 @@
+package com.citu.module.menduner.system.dal.mysql.unfit;
+
+
+import com.citu.framework.mybatis.core.mapper.BaseMapperX;
+import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.citu.module.menduner.system.dal.dataobject.unfit.UnfitCandidateDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 门墩儿-不合适的候选人 Mapper
+ *
+ * @author menduner
+ */
+@Mapper
+public interface UnfitCandidateMapper extends BaseMapperX<UnfitCandidateDO> {
+
+    default UnfitCandidateDO get(Long enterpriseId, Long userId, Long jobId, Long bizId, String type) {
+        return selectOne(new LambdaQueryWrapperX<UnfitCandidateDO>()
+                .eq(UnfitCandidateDO::getJobId, jobId)
+                .eq(UnfitCandidateDO::getBizId, bizId)
+                .eq(UnfitCandidateDO::getType, type)
+                .eq(UnfitCandidateDO::getPublishUserId, userId)
+                .eq(UnfitCandidateDO::getEnterpriseId, enterpriseId)
+        );
+    }
+
+}

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteService.java

@@ -97,4 +97,5 @@ public interface InterviewInviteService {
      * @param reqVO 面试取消
      **/
     void cancellation(AppAdminInterviewInviteReqCancellationVO reqVO);
+
 }

+ 21 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java

@@ -12,7 +12,11 @@ import com.citu.module.menduner.system.controller.base.interview.InterviewInvite
 import com.citu.module.menduner.system.controller.base.interview.InterviewInviteSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
+import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
+import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
+import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
+import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -34,6 +38,18 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     @Resource
     private InterviewInviteMapper mapper;
 
+    @Resource
+    private HireCommissionRatioService ratioService;
+
+    @Resource
+    private UserAccountRecordService userAccountRecordService;
+
+    @Resource
+    private EnterpriseAccountRecordService enterpriseAccountRecordService;
+
+    @Resource
+    private JobAdvertisedMapper jobAdvertisedMapper;
+
     @Override
     public Long createInterviewInvite(InterviewInviteSaveReqVO createReqVO) {
         // 插入
@@ -84,7 +100,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     public void consent(AppAdminInterviewInviteReqConsentVO reqVO) {
         InterviewInviteDO interviewInvite = validateInterviewInviteExists(reqVO.getId());
         // 设置状态
-        setStatus(interviewInvite,InterviewInviteStatusEnum.PENDING_INTERVIEW);
+        setStatus(interviewInvite, InterviewInviteStatusEnum.PENDING_INTERVIEW);
         interviewInvite.setPhone(reqVO.getPhone());
         mapper.updateById(interviewInvite);
     }
@@ -93,7 +109,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     public void reject(Long id) {
         InterviewInviteDO interviewInvite = validateInterviewInviteExists(id);
         // 设置状态
-        setStatus(interviewInvite,InterviewInviteStatusEnum.REJECTED);
+        setStatus(interviewInvite, InterviewInviteStatusEnum.REJECTED);
         mapper.updateById(interviewInvite);
     }
 
@@ -128,7 +144,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
         Long userId = LoginUserContext.getUserId(loginUser);
         InterviewInviteDO interviewInvite = BeanUtils.toBean(reqVO, InterviewInviteDO.class);
         // 默认
-        setStatus(interviewInvite,InterviewInviteStatusEnum.PENDING_ACCEPTANCE);
+        setStatus(interviewInvite, InterviewInviteStatusEnum.PENDING_ACCEPTANCE);
         interviewInvite.setEnterpriseId(enterpriseId);
         interviewInvite.setInviteUserId(userId);
         if (null == reqVO.getId()) {
@@ -143,8 +159,9 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     @DSTransactional
     public void cancellation(AppAdminInterviewInviteReqCancellationVO reqVO) {
         InterviewInviteDO interviewInvite = validateInterviewInviteExists(reqVO.getId());
-        setStatus(interviewInvite,InterviewInviteStatusEnum.CANCELLED);
+        setStatus(interviewInvite, InterviewInviteStatusEnum.CANCELLED);
         interviewInvite.setReason(reqVO.getReason());
         mapper.updateById(interviewInvite);
     }
+
 }

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/HireJobIntegrationServiceImpl.java

@@ -9,13 +9,16 @@ import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPer
 import com.citu.module.menduner.system.dal.dataobject.hire.HireCommissionRatioDO;
 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.mysql.interview.InterviewInviteMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
 import com.citu.module.menduner.system.enums.MathOperationEnum;
 import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
 import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
+import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
 import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
+import com.citu.module.menduner.system.service.interview.InterviewInviteService;
 import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import lombok.extern.slf4j.Slf4j;
@@ -40,6 +43,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
     @Resource
     private JobCvRelMapper jobCvRelMapper;
 
+
     @Resource
     private JobAdvertisedMapper jobAdvertisedMapper;
 
@@ -74,7 +78,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
         if (null == cv) {
             throw exception(HIRE_JOB_CV_REL_NOT_EXISTS);
         }
-        cv.setStatus(JobCvRelStatusEnum.SETTLEMENT.getStatus());
+        cv.setStatus(ConversationStatusEnum.SETTLEMENT.getStatus());
         jobCvRelMapper.updateById(cv);
 
         // 猎头、 推荐人、投递人

+ 0 - 21
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelService.java

@@ -102,25 +102,4 @@ public interface JobCvRelService {
      * @param id 投递简历id
      */
     boolean look(Long id);
-
-    /**
-     * 淘汰 不合适
-     *
-     * @param ids 投递简历ids
-     */
-    boolean eliminate(List<Long> ids);
-
-    /**
-     * 入职
-     *
-     * @param ids 投递简历ids
-     */
-    boolean entry(List<Long> ids);
-
-    /**
-     * 邀请面试
-     *
-     * @param reqVO 邀请信息
-     */
-    boolean invite(AppAdminJobCvRelInviteReqVO reqVO);
 }

+ 0 - 33
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java

@@ -195,37 +195,4 @@ public class JobCvRelServiceImpl implements JobCvRelService {
         jobCvRel.setStatus(JobCvRelStatusEnum.LOOK.getStatus());
         return jobCvRelMapper.updateById(jobCvRel) == 1;
     }
-
-    @Override
-    @DSTransactional
-    public boolean eliminate(List<Long> ids) {
-        for (Long id : ids) {
-            JobCvRelDO jobCvRel = validateJobCvRelExists(id);
-            jobCvRel.setStatus(JobCvRelStatusEnum.ELIMINATE.getStatus());
-            jobCvRelMapper.updateById(jobCvRel);
-        }
-        return true;
-    }
-
-    @Override
-    @DSTransactional
-    public boolean entry(List<Long> ids) {
-        for (Long id : ids) {
-            JobCvRelDO jobCvRel = validateJobCvRelExists(id);
-            jobCvRel.setStatus(JobCvRelStatusEnum.ENTRY.getStatus());
-            jobCvRelMapper.updateById(jobCvRel);
-        }
-        return true;
-    }
-
-    @Override
-    @DSTransactional
-    public boolean invite(AppAdminJobCvRelInviteReqVO reqVO) {
-        JobCvRelDO jobCvRel = validateJobCvRelExists(reqVO.getId());
-        jobCvRel.setStatus(JobCvRelStatusEnum.INVITE.getStatus());
-        jobCvRelMapper.updateById(jobCvRel);
-        // 增加邀约
-        interviewInviteService.save(reqVO.getInvite());
-        return false;
-    }
 }

+ 26 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateService.java

@@ -0,0 +1,26 @@
+package com.citu.module.menduner.system.service.unfit;
+
+import com.citu.module.menduner.system.controller.appadmin.unfit.AppAdminUnfitCandidateSaveReqVO;
+import com.citu.module.menduner.system.controller.base.unfit.UnfitCandidateSaveReqVO;
+
+/**
+ * 不合适的候选人 Service 接口
+ *
+ * @author Rayson
+ */
+public interface UnfitCandidateService {
+
+    /**
+     * 淘汰 不合适
+     * @param reqVO 不合适
+     * @return boolean
+     **/
+    boolean eliminate(AppAdminUnfitCandidateSaveReqVO reqVO);
+
+    /**
+     * 取消 淘汰 不合适
+     * @param reqVO 不合适
+     * @return boolean
+     **/
+    boolean cancellation(AppAdminUnfitCandidateSaveReqVO reqVO);
+}

+ 66 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateServiceImpl.java

@@ -0,0 +1,66 @@
+package com.citu.module.menduner.system.service.unfit;
+
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.security.core.LoginUser;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.appadmin.unfit.AppAdminUnfitCandidateSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.unfit.UnfitCandidateDO;
+import com.citu.module.menduner.system.dal.mysql.unfit.UnfitCandidateMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.UNFIT_CANDIDATE_ALREADY_UNFIT;
+
+/**
+ * 不合适的候选人 Service 接口 实现
+ *
+ * @author Rayson
+ */
+@Service
+@Validated
+public class UnfitCandidateServiceImpl implements UnfitCandidateService {
+
+    @Resource
+    private UnfitCandidateMapper mapper;
+
+    @Override
+    @DSTransactional
+    public boolean eliminate(AppAdminUnfitCandidateSaveReqVO reqVO) {
+        LoginUser loginUser = LoginUserContext.get();
+        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+        Long userId = LoginUserContext.getUserId(loginUser);
+        UnfitCandidateDO exist =
+                mapper.get(enterpriseId, userId, reqVO.getJobId(), reqVO.getBizId(), reqVO.getType());
+        if (null != exist) {
+            throw exception(UNFIT_CANDIDATE_ALREADY_UNFIT);
+        }
+
+        mapper.insert(UnfitCandidateDO.builder()
+                .jobId(reqVO.getJobId())
+                .type(reqVO.getType())
+                .bizId(reqVO.getBizId())
+                .enterpriseId(enterpriseId)
+                .publishUserId(userId)
+                .build());
+
+        return true;
+    }
+
+    @Override
+    @DSTransactional
+    public boolean cancellation(AppAdminUnfitCandidateSaveReqVO reqVO) {
+        LoginUser loginUser = LoginUserContext.get();
+        Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
+        Long userId = LoginUserContext.getUserId(loginUser);
+        UnfitCandidateDO exist =
+                mapper.get(enterpriseId, userId, reqVO.getJobId(), reqVO.getBizId(), reqVO.getType());
+        if (null != exist) {
+            mapper.deleteById(exist.getId());
+        }
+        return true;
+
+    }
+}