Explorar o código

面试简历列表

change %!s(int64=4) %!d(string=hai) anos
pai
achega
ddd23223c5
Modificáronse 29 ficheiros con 958 adicións e 131 borrados
  1. 33 4
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/recruit/RecruitInterviewController.java
  2. 0 100
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/recruit/RecruitResumeController.java
  3. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewAddBo.java
  4. 19 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewEditBo.java
  5. 39 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogAddBo.java
  6. 44 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogEditBo.java
  7. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogQueryBo.java
  8. 68 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewQueryBo.java
  9. 11 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeAddBo.java
  10. 14 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeEditBo.java
  11. 14 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeQueryBo.java
  12. 12 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitInterview.java
  13. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitInterviewLog.java
  14. 12 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitResume.java
  15. 19 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/mapper/RecruitInterviewLogMapper.java
  16. 9 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/mapper/RecruitInterviewMapper.java
  17. 54 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/IRecruitInterviewLogService.java
  18. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/IRecruitInterviewService.java
  19. 103 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitInterviewLogServiceImpl.java
  20. 70 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitInterviewServiceImpl.java
  21. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitResumeServiceImpl.java
  22. 0 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/QuantumVo.java
  23. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewLogVo.java
  24. 35 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewUserVo.java
  25. 40 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewVo.java
  26. 14 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitResumeVo.java
  27. 28 0
      zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitInterviewLogMapper.xml
  28. 137 0
      zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitInterviewMapper.xml
  29. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitResumeMapper.xml

+ 33 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/recruit/RecruitInterviewController.java

@@ -3,8 +3,12 @@ package com.zhongzheng.controller.recruit;
 import java.util.List;
 import java.util.Arrays;
 
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TokenService;
 import com.zhongzheng.modules.recruit.vo.CalendarInterviewVo;
 import com.zhongzheng.modules.recruit.vo.RecruitInterviewExcel;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewUserVo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +40,7 @@ import io.swagger.annotations.ApiOperation;
  * @author ruoyi
  * @date 2021-08-18
  */
-@Api(value = "招聘面试关联控制器", tags = {"招聘面试联管理"})
+@Api(value = "招聘面试控制器", tags = {"招聘面试联管理"})
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 @RestController
 @RequestMapping("/recruit/interview")
@@ -44,6 +48,9 @@ public class RecruitInterviewController extends BaseController {
 
     private final IRecruitInterviewService iRecruitInterviewService;
 
+    @Autowired
+    private TokenService tokenService;
+
     /**
      * 查询招聘面试关联列表
      */
@@ -69,15 +76,15 @@ public class RecruitInterviewController extends BaseController {
         return util.exportExcel(list, "招聘面试安排");
     }
 
-    /**
+ /*   *//**
      * 获取招聘面试关联详细信息
-     */
+     *//*
     @ApiOperation("获取招聘面试关联详细信息")
     @PreAuthorize("@ss.hasPermi('modules.recruit:interview:query')")
     @GetMapping("/{interviewId}")
     public AjaxResult<RecruitInterviewVo> getInfo(@PathVariable("interviewId" ) Long interviewId) {
         return AjaxResult.success(iRecruitInterviewService.queryById(interviewId));
-    }
+    }*/
 
 
 
@@ -92,5 +99,27 @@ public class RecruitInterviewController extends BaseController {
         return toAjax(iRecruitInterviewService.updateByEditBo(bo) ? 1 : 0);
     }
 
+    /**
+     * 查询招聘面试简历列表
+     */
+    @ApiOperation("查询招聘面试简历列表")
+    @PreAuthorize("@ss.hasPermi('modules.recruit:interview:list')")
+    @GetMapping("/listAll")
+    public AjaxResult<List<RecruitInterviewVo>> listAll(RecruitInterviewQueryBo bo) {
+        startPage();
+        List<RecruitInterviewVo> list = iRecruitInterviewService.queryListAll(bo);
+        return  AjaxResult.success(list);
+    }
+
+    /**
+     * 查询招聘面试简历列表
+     */
+    @ApiOperation("查询详情招聘面试简历")
+    @PreAuthorize("@ss.hasPermi('modules.recruit:interview:query')")
+    @GetMapping("/{interviewId}")
+    public AjaxResult<RecruitInterviewUserVo> interviewUserId(@PathVariable("interviewId" ) Long interviewUserId) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        return AjaxResult.success(iRecruitInterviewService.interviewUserId(interviewUserId,loginUser));
+    }
 
 }

+ 0 - 100
zhongzheng-admin/src/main/java/com/zhongzheng/controller/recruit/RecruitResumeController.java

@@ -1,100 +0,0 @@
-package com.zhongzheng.controller.recruit;
-
-import java.util.List;
-import java.util.Arrays;
-
-import cn.hutool.poi.word.Word07Writer;
-import com.zhongzheng.common.utils.ServletUtils;
-import com.zhongzheng.framework.web.service.WxTokenService;
-import com.zhongzheng.modules.recruit.bo.RecruitResumeAddBo;
-import com.zhongzheng.modules.recruit.bo.RecruitResumeEditBo;
-import com.zhongzheng.modules.recruit.bo.RecruitResumeQueryBo;
-import com.zhongzheng.modules.recruit.service.IRecruitResumeService;
-import com.zhongzheng.modules.recruit.vo.RecruitResumeVo;
-import com.zhongzheng.modules.user.entity.ClientLoginUser;
-import lombok.RequiredArgsConstructor;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.zhongzheng.common.annotation.Log;
-import com.zhongzheng.common.core.controller.BaseController;
-import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.common.enums.BusinessType;
-import com.zhongzheng.common.utils.poi.ExcelUtil;
-import com.zhongzheng.common.core.page.TableDataInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * 招聘用户简历Controller
- *
- * @author change
- * @date 2021-08-24
- */
-@Api(value = "招聘用户简历控制器", tags = {"招聘用户简历管理"})
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
-@RestController
-@RequestMapping("/recruit/resume")
-public class RecruitResumeController extends BaseController {
-
-    private final IRecruitResumeService iRecruitResumeService;
-
-    private final WxTokenService wxTokenService;
-
-    /**
-     * 查询招聘用户简历列表
-     */
-    @ApiOperation("查询招聘用户简历列表")
-    @PreAuthorize("@ss.hasPermi('recruit:resume:list')")
-    @GetMapping("/list")
-    public TableDataInfo<RecruitResumeVo> list(RecruitResumeQueryBo bo) {
-        startPage();
-        List<RecruitResumeVo> list = iRecruitResumeService.queryList(bo);
-        return getDataTable(list);
-    }
-
-
-
-    /**
-     * 获取招聘用户简历详细信息
-     */
-    @ApiOperation("获取招聘用户简历详细信息")
-    @PreAuthorize("@ss.hasPermi('recruit:resume:query')")
-    @GetMapping("/{resumeId}")
-    public AjaxResult<RecruitResumeVo> getInfo(@PathVariable("resumeId" ) Long resumeId) {
-        return AjaxResult.success(iRecruitResumeService.queryById(resumeId));
-    }
-
-    /**
-     * 新增招聘用户简历
-     */
-    @ApiOperation("新增招聘用户简历")
-    @Log(title = "招聘用户简历", businessType = BusinessType.INSERT)
-    @PreAuthorize("@ss.hasPermi('recruit:template:add')")
-    @PostMapping()
-    public AjaxResult<Void> add(@RequestBody RecruitResumeAddBo bo) {
-        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
-        bo.setUserId(loginUser.getUser().getUserId());
-        return toAjax(iRecruitResumeService.insertByAddBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改招聘用户简历
-     */
-    @ApiOperation("修改招聘用户简历")
-    @Log(title = "招聘用户简历", businessType = BusinessType.UPDATE)
-    @PreAuthorize("@ss.hasPermi('system:template:edit')")
-    @PostMapping("/edit")
-    public AjaxResult<Void> edit(@RequestBody RecruitResumeEditBo bo) {
-        return toAjax(iRecruitResumeService.updateByEditBo(bo) ? 1 : 0);
-    }
-
-
-}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewAddBo.java

@@ -7,6 +7,8 @@ import lombok.Data;
 import java.util.Date;
 
 
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 招聘面试关联添加对象 recruit_interview
@@ -79,4 +81,17 @@ public class RecruitInterviewAddBo {
     /** 转发邮箱 */
     @ApiModelProperty("转发邮箱")
     private String emall;
+    /** 开始工作年  例如 2019 */
+    @ApiModelProperty("开始工作年  例如 2019")
+    private Long startYear;
+    /** 出生年月 */
+    @ApiModelProperty("出生年月")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date userBirth;
+    /** 教育层次 */
+    @ApiModelProperty("教育层次")
+    private String eduLevel;
+    /** 简历完成度 */
+    @ApiModelProperty("简历完成度")
+    private Integer completeness;
 }

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewEditBo.java

@@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
 
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 招聘面试关联编辑对象 recruit_interview
@@ -93,4 +95,21 @@ public class RecruitInterviewEditBo {
     /** 转发邮箱 */
     @ApiModelProperty("转发邮箱")
     private String emall;
+
+    /** 开始工作年  例如 2019 */
+    @ApiModelProperty("开始工作年  例如 2019")
+    private Long startYear;
+
+    /** 出生年月 */
+    @ApiModelProperty("出生年月")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date userBirth;
+
+    /** 教育层次 */
+    @ApiModelProperty("教育层次")
+    private String eduLevel;
+
+    /** 简历完成度 */
+    @ApiModelProperty("简历完成度")
+    private Integer completeness;
 }

+ 39 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogAddBo.java

@@ -0,0 +1,39 @@
+package com.zhongzheng.modules.recruit.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】添加对象 recruit_interview_log
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Data
+@ApiModel("【请填写功能名称】添加对象")
+public class RecruitInterviewLogAddBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long interviewId;
+    /** 1邀请面试 2查看简历 3投递简历 */
+    @ApiModelProperty("1邀请面试 2查看简历 3投递简历")
+    private Integer status;
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long createTime;
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long updateTime;
+    /** 后台用户ID */
+    @ApiModelProperty("后台用户ID")
+    private Long sysUserId;
+    /** 小程序用户id */
+    @ApiModelProperty("小程序用户id")
+    private Long userId;
+}

+ 44 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogEditBo.java

@@ -0,0 +1,44 @@
+package com.zhongzheng.modules.recruit.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 【请填写功能名称】编辑对象 recruit_interview_log
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Data
+@ApiModel("【请填写功能名称】编辑对象")
+public class RecruitInterviewLogEditBo {
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long interviewId;
+
+    /** 1邀请面试 2查看简历 3投递简历 */
+    @ApiModelProperty("1邀请面试 2查看简历 3投递简历")
+    private Integer status;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long updateTime;
+
+    /** 后台用户ID */
+    @ApiModelProperty("后台用户ID")
+    private Long sysUserId;
+
+    /** 小程序用户id */
+    @ApiModelProperty("小程序用户id")
+    private Long userId;
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewLogQueryBo.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.recruit.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 【请填写功能名称】分页查询对象 recruit_interview_log
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("【请填写功能名称】分页查询对象")
+public class RecruitInterviewLogQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long interviewId;
+	/** 1邀请面试 2查看简历 3投递简历 */
+	@ApiModelProperty("1邀请面试 2查看简历 3投递简历")
+	private Integer status;
+	/** 后台用户ID */
+	@ApiModelProperty("后台用户ID")
+	private Long sysUserId;
+	/** 小程序用户id */
+	@ApiModelProperty("小程序用户id")
+	private Long userId;
+
+}

+ 68 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitInterviewQueryBo.java

@@ -5,11 +5,10 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
+import java.util.*;
 
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.zhongzheng.common.core.domain.BaseEntity;
 
 /**
@@ -37,6 +36,22 @@ public class RecruitInterviewQueryBo extends BaseEntity {
 	private String isAsc;
 
 
+
+	/** 岗位 */
+	@ApiModelProperty("岗位")
+	private String job;
+
+	/** 政治面貌 */
+	@ApiModelProperty("政治面貌")
+	private String politic;
+
+	/** 结婚状态 */
+	@ApiModelProperty("结婚状态")
+	private String marry;
+
+	/** 性别 */
+	@ApiModelProperty(" 性别 1男 2女")
+	private Long sex;
 	/** 年 */
 	@ApiModelProperty("年")
 	private Integer year;
@@ -88,9 +103,58 @@ public class RecruitInterviewQueryBo extends BaseEntity {
 	/** 转发邮箱 */
 	@ApiModelProperty("转发邮箱")
 	private String emall;
+	/** 开始工作年  例如 2019 */
+	@ApiModelProperty("开始工作年  例如 2019")
+	private Long startYear;
 
+	/** 工作年限开始 */
+	@ApiModelProperty("工作年限开始")
+	private Long workStart;
+
+	/** 工作年限结束 */
+	@ApiModelProperty("工作年限结束")
+	private Long workEnd;
+	/** 出生年月 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ApiModelProperty("出生年月")
+	private Date userBirth;
+
+	/** 开始工作年  例如 2019 */
+	@ApiModelProperty("年龄开始")
+	private Long ageStart;
+
+	/** 开始工作年  例如 2019 */
+	@ApiModelProperty("年龄结束")
+	private Long ageEnd;
+	/** 教育层次 */
+	@ApiModelProperty("教育层次")
+	private String eduLevel;
+	/** 简历完成度 */
+	@ApiModelProperty("简历完成度")
+	private Integer completeness;
 	/** 0已投递  1 已发邀请  2已确定 3 已谢绝 4初试通过 5初试不通过 6复试通过 7复试不通过 8已发offer 9爽约 10 淘汰  11放弃  12 转正 */
 	@ApiModelProperty("0已投递  1 已发邀请  2已确定 3 已谢绝 4初试通过 5初试不通过 6复试通过 7复试不通过 8已发offer 9爽约 10 淘汰  11放弃  12 转正")
 	private List<Integer> statusIds;
 
+	/** 区 */
+	@ApiModelProperty("区")
+	private String district;
+	/** 省份 */
+	@ApiModelProperty("省份")
+	private String province;
+	/** 城市 */
+	@ApiModelProperty("城市")
+	private String city;
+
+	/** 户籍省份 */
+	@ApiModelProperty("户籍省份")
+	private String houseProvince;
+
+	/** 户籍城市 */
+	@ApiModelProperty("户籍城市")
+	private String houseCity;
+
+	/** 户籍区 */
+	@ApiModelProperty("户籍区")
+	private String houseDistrict;
 }

+ 11 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeAddBo.java

@@ -13,7 +13,7 @@ import java.math.BigDecimal;
  * 招聘用户简历添加对象 recruit_resume
  *
  * @author hjl
- * @date 2021-08-23
+ * @date 2021-08-24
  */
 @Data
 @ApiModel("招聘用户简历添加对象")
@@ -27,7 +27,7 @@ public class RecruitResumeAddBo {
     private String realname;
     /** 出生年月 */
     @ApiModelProperty("出生年月")
-    private String userBirth;
+    private Date userBirth;
     /** 教育层次 */
     @ApiModelProperty("教育层次")
     private String eduLevel;
@@ -61,6 +61,9 @@ public class RecruitResumeAddBo {
     /** 1正常 */
     @ApiModelProperty("1正常")
     private Integer status;
+    /** 商户ID */
+    @ApiModelProperty("商户ID")
+    private Long tenantId;
     /** 建筑证书列表 */
     @ApiModelProperty("建筑证书列表")
     private String buildingCertificateJson;
@@ -91,4 +94,10 @@ public class RecruitResumeAddBo {
     /** 项目经历 */
     @ApiModelProperty("项目经历")
     private String projectExperienceJson;
+    /** 简历完成度 */
+    @ApiModelProperty("简历完成度")
+    private Integer completeness;
+    /** 开始工作年  例如 2019 */
+    @ApiModelProperty("开始工作年  例如 2019")
+    private Long startYear;
 }

+ 14 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeEditBo.java

@@ -12,7 +12,7 @@ import java.math.BigDecimal;
  * 招聘用户简历编辑对象 recruit_resume
  *
  * @author hjl
- * @date 2021-08-23
+ * @date 2021-08-24
  */
 @Data
 @ApiModel("招聘用户简历编辑对象")
@@ -33,7 +33,7 @@ public class RecruitResumeEditBo {
 
     /** 出生年月 */
     @ApiModelProperty("出生年月")
-    private String userBirth;
+    private Date userBirth;
 
     /** 教育层次 */
     @ApiModelProperty("教育层次")
@@ -75,6 +75,10 @@ public class RecruitResumeEditBo {
     @ApiModelProperty("1正常")
     private Integer status;
 
+    /** 商户ID */
+    @ApiModelProperty("商户ID")
+    private Long tenantId;
+
     /** 建筑证书列表 */
     @ApiModelProperty("建筑证书列表")
     private String buildingCertificateJson;
@@ -114,4 +118,12 @@ public class RecruitResumeEditBo {
     /** 项目经历 */
     @ApiModelProperty("项目经历")
     private String projectExperienceJson;
+
+    /** 简历完成度 */
+    @ApiModelProperty("简历完成度")
+    private Integer completeness;
+
+    /** 开始工作年  例如 2019 */
+    @ApiModelProperty("开始工作年  例如 2019")
+    private Long startYear;
 }

+ 14 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/bo/RecruitResumeQueryBo.java

@@ -16,7 +16,7 @@ import com.zhongzheng.common.core.domain.BaseEntity;
  * 招聘用户简历分页查询对象 recruit_resume
  *
  * @author hjl
- * @date 2021-08-23
+ * @date 2021-08-24
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -45,7 +45,7 @@ public class RecruitResumeQueryBo extends BaseEntity {
 	private String realname;
 	/** 出生年月 */
 	@ApiModelProperty("出生年月")
-	private String userBirth;
+	private Date userBirth;
 	/** 教育层次 */
 	@ApiModelProperty("教育层次")
 	private String eduLevel;
@@ -73,6 +73,9 @@ public class RecruitResumeQueryBo extends BaseEntity {
 	/** 1正常 */
 	@ApiModelProperty("1正常")
 	private Integer status;
+	/** 商户ID */
+	@ApiModelProperty("商户ID")
+	private Long tenantId;
 	/** 建筑证书列表 */
 	@ApiModelProperty("建筑证书列表")
 	private String buildingCertificateJson;
@@ -100,5 +103,14 @@ public class RecruitResumeQueryBo extends BaseEntity {
 	/** 到岗时间 */
 	@ApiModelProperty("到岗时间")
 	private String comeWorkTime;
+	/** 项目经历 */
+	@ApiModelProperty("项目经历")
+	private String projectExperienceJson;
+	/** 简历完成度 */
+	@ApiModelProperty("简历完成度")
+	private Integer completeness;
+	/** 开始工作年  例如 2019 */
+	@ApiModelProperty("开始工作年  例如 2019")
+	private Long startYear;
 
 }

+ 12 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitInterview.java

@@ -87,4 +87,16 @@ private static final long serialVersionUID=1L;
     /** 转发邮箱 */
     private String emall;
 
+    /** 开始工作年  例如 2019 */
+    private Long startYear;
+
+    /** 出生年月 */
+    private Date userBirth;
+
+    /** 教育层次 */
+    private String eduLevel;
+
+    /** 简历完成度 */
+    private Integer completeness;
+
 }

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitInterviewLog.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.recruit.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 【请填写功能名称】对象 recruit_interview_log
+ * 
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("recruit_interview_log")
+public class RecruitInterviewLog implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+
+    /** $column.columnComment */
+    private Long interviewId;
+
+    /** 1邀请面试 2查看简历 3投递简历 */
+    private Integer status;
+
+    /** $column.columnComment */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+
+    /** $column.columnComment */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+
+    /** 后台用户ID */
+    private Long sysUserId;
+
+    /** 小程序用户id */
+    private Long userId;
+
+}

+ 12 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/domain/RecruitResume.java

@@ -11,9 +11,9 @@ import com.zhongzheng.common.annotation.Excel;
 
 /**
  * 招聘用户简历对象 recruit_resume
- *
+ * 
  * @author hjl
- * @date 2021-08-23
+ * @date 2021-08-24
  */
 @Data
 @NoArgsConstructor
@@ -35,7 +35,7 @@ private static final long serialVersionUID=1L;
     private String realname;
 
     /** 出生年月 */
-    private String userBirth;
+    private Date userBirth;
 
     /** 教育层次 */
     private String eduLevel;
@@ -72,6 +72,9 @@ private static final long serialVersionUID=1L;
     /** 1正常 */
     private Integer status;
 
+    /** 商户ID */
+    private Long tenantId;
+
     /** 建筑证书列表 */
     private String buildingCertificateJson;
 
@@ -102,4 +105,10 @@ private static final long serialVersionUID=1L;
     /** 项目经历 */
     private String projectExperienceJson;
 
+    /** 简历完成度 */
+    private Integer completeness;
+
+    /** 开始工作年  例如 2019 */
+    private Long startYear;
+
 }

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/mapper/RecruitInterviewLogMapper.java

@@ -0,0 +1,19 @@
+package com.zhongzheng.modules.recruit.mapper;
+
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogQueryBo;
+import com.zhongzheng.modules.recruit.domain.RecruitInterviewLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewLogVo;
+
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+public interface RecruitInterviewLogMapper extends BaseMapper<RecruitInterviewLog> {
+
+
+}

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/mapper/RecruitInterviewMapper.java

@@ -4,6 +4,7 @@ import com.zhongzheng.modules.recruit.bo.RecruitInterviewQueryBo;
 import com.zhongzheng.modules.recruit.domain.RecruitInterview;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.recruit.vo.RecruitInterviewExcel;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewUserVo;
 import com.zhongzheng.modules.recruit.vo.RecruitInterviewVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,4 +22,12 @@ public interface RecruitInterviewMapper extends BaseMapper<RecruitInterview> {
                                          @Param("timingStart")Long quantumStart,@Param("timingEnd")Long quantumEnd,@Param("status") List<Integer> status);
 
     List<RecruitInterviewExcel> selectQueryExcel(RecruitInterviewQueryBo bo);
+
+    List<RecruitInterviewVo> selectByListAll(RecruitInterviewQueryBo bo);
+
+    RecruitInterviewUserVo interviewUserId(Long interviewUserId);
+
+    String selectSysUserName(Long sysUserId);
+
+    String selectUserName(Long userId);
 }

+ 54 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/IRecruitInterviewLogService.java

@@ -0,0 +1,54 @@
+package com.zhongzheng.modules.recruit.service;
+
+import com.zhongzheng.modules.recruit.domain.RecruitInterviewLog;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewLogVo;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogQueryBo;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogAddBo;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogEditBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 【请填写功能名称】Service接口
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+public interface IRecruitInterviewLogService extends IService<RecruitInterviewLog> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	RecruitInterviewLogVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<RecruitInterviewLogVo> queryList(RecruitInterviewLogQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入【请填写功能名称】
+	 * @param bo 【请填写功能名称】新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(RecruitInterviewLogAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改【请填写功能名称】
+	 * @param bo 【请填写功能名称】编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(RecruitInterviewLogEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+
+}

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/IRecruitInterviewService.java

@@ -1,8 +1,10 @@
 package com.zhongzheng.modules.recruit.service;
 
+import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.modules.recruit.domain.RecruitInterview;
 import com.zhongzheng.modules.recruit.vo.CalendarInterviewVo;
 import com.zhongzheng.modules.recruit.vo.RecruitInterviewExcel;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewUserVo;
 import com.zhongzheng.modules.recruit.vo.RecruitInterviewVo;
 import com.zhongzheng.modules.recruit.bo.RecruitInterviewQueryBo;
 import com.zhongzheng.modules.recruit.bo.RecruitInterviewAddBo;
@@ -64,4 +66,8 @@ public interface IRecruitInterviewService extends IService<RecruitInterview> {
 	 * @return
 	 */
 	CalendarInterviewVo queryListCalendar(RecruitInterviewQueryBo bo);
+
+	List<RecruitInterviewVo> queryListAll(RecruitInterviewQueryBo bo);
+
+	RecruitInterviewUserVo interviewUserId(Long interviewUserId, LoginUser loginUser);
 }

+ 103 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitInterviewLogServiceImpl.java

@@ -0,0 +1,103 @@
+package com.zhongzheng.modules.recruit.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogAddBo;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogQueryBo;
+import com.zhongzheng.modules.recruit.bo.RecruitInterviewLogEditBo;
+import com.zhongzheng.modules.recruit.domain.RecruitInterviewLog;
+import com.zhongzheng.modules.recruit.mapper.RecruitInterviewLogMapper;
+import com.zhongzheng.modules.recruit.vo.RecruitInterviewLogVo;
+import com.zhongzheng.modules.recruit.service.IRecruitInterviewLogService;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 【请填写功能名称】Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Service
+public class RecruitInterviewLogServiceImpl extends ServiceImpl<RecruitInterviewLogMapper, RecruitInterviewLog> implements IRecruitInterviewLogService {
+
+    @Override
+    public RecruitInterviewLogVo queryById(Long id){
+        RecruitInterviewLog db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, RecruitInterviewLogVo.class);
+    }
+
+    @Override
+    public List<RecruitInterviewLogVo> queryList(RecruitInterviewLogQueryBo bo) {
+        LambdaQueryWrapper<RecruitInterviewLog> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getInterviewId() != null, RecruitInterviewLog::getInterviewId, bo.getInterviewId());
+        lqw.eq(bo.getStatus() != null, RecruitInterviewLog::getStatus, bo.getStatus());
+        lqw.eq(bo.getSysUserId() != null, RecruitInterviewLog::getSysUserId, bo.getSysUserId());
+        lqw.eq(bo.getUserId() != null, RecruitInterviewLog::getUserId, bo.getUserId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<RecruitInterviewLogVo> entity2Vo(Collection<RecruitInterviewLog> collection) {
+        List<RecruitInterviewLogVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, RecruitInterviewLogVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<RecruitInterviewLog> page = (Page<RecruitInterviewLog>)collection;
+            Page<RecruitInterviewLogVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(RecruitInterviewLogAddBo bo) {
+        RecruitInterviewLog add = BeanUtil.toBean(bo, RecruitInterviewLog.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(RecruitInterviewLogEditBo bo) {
+        RecruitInterviewLog update = BeanUtil.toBean(bo, RecruitInterviewLog.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(RecruitInterviewLog entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+}

+ 70 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitInterviewServiceImpl.java

@@ -8,23 +8,25 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.modules.course.domain.MajorCategory;
+import com.zhongzheng.modules.recruit.bo.*;
 import com.zhongzheng.modules.recruit.domain.RecruitResume;
+import com.zhongzheng.modules.recruit.service.IRecruitInterviewLogService;
 import com.zhongzheng.modules.recruit.service.IRecruitNeedsService;
 import com.zhongzheng.modules.recruit.service.IRecruitResumeService;
 import com.zhongzheng.modules.recruit.vo.*;
 import org.apache.commons.lang3.StringUtils;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.recruit.bo.RecruitInterviewAddBo;
-import com.zhongzheng.modules.recruit.bo.RecruitInterviewQueryBo;
-import com.zhongzheng.modules.recruit.bo.RecruitInterviewEditBo;
 import com.zhongzheng.modules.recruit.domain.RecruitInterview;
 import com.zhongzheng.modules.recruit.mapper.RecruitInterviewMapper;
 import com.zhongzheng.modules.recruit.service.IRecruitInterviewService;
@@ -47,6 +49,11 @@ public class RecruitInterviewServiceImpl extends ServiceImpl<RecruitInterviewMap
     @Autowired
     private IRecruitResumeService iRecruitResumeService;
 
+    @Autowired
+    private IRecruitInterviewLogService recruitInterviewLogService;
+
+
+
     @Override
     public RecruitInterviewVo queryById(Long interviewId){
         RecruitInterview db = this.baseMapper.selectById(interviewId);
@@ -74,6 +81,10 @@ public class RecruitInterviewServiceImpl extends ServiceImpl<RecruitInterviewMap
         lqw.eq(StrUtil.isNotBlank(bo.getLinkTel()), RecruitInterview::getLinkTel, bo.getLinkTel());
         lqw.like(StrUtil.isNotBlank(bo.getCompanyName()), RecruitInterview::getCompanyName, bo.getCompanyName());
         lqw.eq(StrUtil.isNotBlank(bo.getEmall()), RecruitInterview::getEmall, bo.getEmall());
+        lqw.eq(bo.getStartYear() != null, RecruitInterview::getStartYear, bo.getStartYear());
+        lqw.eq(bo.getUserBirth() != null, RecruitInterview::getUserBirth, bo.getUserBirth());
+        lqw.eq(StrUtil.isNotBlank(bo.getEduLevel()), RecruitInterview::getEduLevel, bo.getEduLevel());
+        lqw.eq(bo.getCompleteness() != null, RecruitInterview::getCompleteness, bo.getCompleteness());
         return entity2Vo(this.list(lqw));
     }
 
@@ -119,9 +130,21 @@ public class RecruitInterviewServiceImpl extends ServiceImpl<RecruitInterviewMap
         }
         add.setStatus(1);
         add.setResumeJson(JSONObject.toJSONString(recruitResumeVo));
+        add.setStartYear(recruitResumeVo.getStartYear());
+        add.setUserBirth(recruitResumeVo.getUserBirth());
+        add.setEduLevel(recruitResumeVo.getEduLevel());
+        add.setCompleteness(recruitResumeVo.getCompleteness());
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        return this.save(add);
+        boolean save = this.save(add);
+        RecruitInterviewLogAddBo recruitInterviewLogAddBo = new RecruitInterviewLogAddBo();
+        recruitInterviewLogAddBo.setInterviewId(add.getInterviewId());
+        recruitInterviewLogAddBo.setStatus(3);
+        recruitInterviewLogAddBo.setCreateTime(DateUtils.getNowTime());
+        recruitInterviewLogAddBo.setUpdateTime(DateUtils.getNowTime());
+        recruitInterviewLogAddBo.setUserId(bo.getUserId());
+        Boolean aBoolean = recruitInterviewLogService.insertByAddBo(recruitInterviewLogAddBo);
+        return save;
     }
 
     @Override
@@ -190,7 +213,6 @@ public class RecruitInterviewServiceImpl extends ServiceImpl<RecruitInterviewMap
                         RecruitResumeVo recruitResumeVo = JSON.parseObject(recruitInterviewVo.getResumeJson(), new TypeReference<RecruitResumeVo>() {
                         });
                         recruitInterviewVo.setRecruitResumeVo(recruitResumeVo);
-
                 }
                 quantumVo.setRecruitInterviewList(recruitInterviewVos);
             }
@@ -201,7 +223,50 @@ public class RecruitInterviewServiceImpl extends ServiceImpl<RecruitInterviewMap
         return calendarInterviewVo;
     }
 
+    @Override
+    public List<RecruitInterviewVo> queryListAll(RecruitInterviewQueryBo bo) {
+        List<RecruitInterviewVo> recruitInterviewVos = baseMapper.selectByListAll(bo);
+        for (RecruitInterviewVo recruitInterviewVo : recruitInterviewVos) {
+            RecruitResumeVo recruitResumeVo = JSON.parseObject(recruitInterviewVo.getResumeJson(), new TypeReference<RecruitResumeVo>() {
+            });
+            recruitInterviewVo.setRecruitResumeVo(recruitResumeVo);
+        }
+        return recruitInterviewVos;
+    }
 
+    @Override
+    public RecruitInterviewUserVo interviewUserId(Long interviewUserId, LoginUser loginUser) {
+
+
+        RecruitInterviewUserVo recruitInterviewUserVo = baseMapper.interviewUserId(interviewUserId);
+        RecruitResumeVo recruitResumeVo = JSON.parseObject(recruitInterviewUserVo.getResumeJson(), new TypeReference<RecruitResumeVo>() {
+        });
+        recruitInterviewUserVo.setRecruitResumeVo(recruitResumeVo);
+
+        RecruitInterviewLogQueryBo recruitInterviewLogQueryBo = new RecruitInterviewLogQueryBo();
+        recruitInterviewLogQueryBo.setInterviewId(interviewUserId);
+        List<RecruitInterviewLogVo> recruitInterviewLogVos = recruitInterviewLogService.queryList(recruitInterviewLogQueryBo);
+        for (RecruitInterviewLogVo recruitInterviewLogVo : recruitInterviewLogVos) {
+            if (recruitInterviewLogVo.getStatus() == 1 || recruitInterviewLogVo.getStatus() == 2){
+                recruitInterviewLogVo.setUserName(baseMapper.selectSysUserName(recruitInterviewLogVo.getSysUserId()));
+            }else {
+                recruitInterviewLogVo.setUserName(baseMapper.selectUserName(recruitInterviewLogVo.getUserId()));
+            }
+        }
+        if (!CollectionUtils.isEmpty(recruitInterviewLogVos)){
+            recruitInterviewUserVo.setRecruitInterviewLogVoList(recruitInterviewLogVos);
+        }
+
+        RecruitInterviewLogAddBo recruitInterviewLogAddBo = new RecruitInterviewLogAddBo();
+        recruitInterviewLogAddBo.setInterviewId(interviewUserId);
+        recruitInterviewLogAddBo.setStatus(2);
+        recruitInterviewLogAddBo.setCreateTime(DateUtils.getNowTime());
+        recruitInterviewLogAddBo.setUpdateTime(DateUtils.getNowTime());
+        recruitInterviewLogAddBo.setSysUserId(loginUser.getUser().getUserId());
+        Boolean aBoolean = recruitInterviewLogService.insertByAddBo(recruitInterviewLogAddBo);
+
+        return recruitInterviewUserVo;
+    }
 
 
     private static List<DayInterviewVo> getDays(int year, int month,int day) throws ParseException {

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/service/impl/RecruitResumeServiceImpl.java

@@ -41,7 +41,7 @@ public class RecruitResumeServiceImpl extends ServiceImpl<RecruitResumeMapper, R
         LambdaQueryWrapper<RecruitResume> lqw = Wrappers.lambdaQuery();
         lqw.eq(bo.getUserId() != null, RecruitResume::getUserId, bo.getUserId());
         lqw.like(StrUtil.isNotBlank(bo.getRealname()), RecruitResume::getRealname, bo.getRealname());
-        lqw.eq(StrUtil.isNotBlank(bo.getUserBirth()), RecruitResume::getUserBirth, bo.getUserBirth());
+        lqw.eq(bo.getUserBirth() != null, RecruitResume::getUserBirth, bo.getUserBirth());
         lqw.eq(StrUtil.isNotBlank(bo.getEduLevel()), RecruitResume::getEduLevel, bo.getEduLevel());
         lqw.eq(StrUtil.isNotBlank(bo.getTelphone()), RecruitResume::getTelphone, bo.getTelphone());
         lqw.eq(StrUtil.isNotBlank(bo.getJob()), RecruitResume::getJob, bo.getJob());

+ 0 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/QuantumVo.java

@@ -28,8 +28,4 @@ public class QuantumVo {
     @ApiModelProperty("面试人信息")
     private List<RecruitInterviewVo> recruitInterviewList;
 
-    /** 面试人信息 */
-    @ApiModelProperty("面试人信息(附件简历)")
-    private List<RecruitAttachResumeVo> recruitAttachResumeVos;
-
 }

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewLogVo.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.recruit.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-08-25
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class RecruitInterviewLogVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** $column.columnComment */
+	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+	@ApiModelProperty("$column.columnComment")
+	private Long interviewId;
+	/** 1邀请面试 2查看简历 3投递简历 */
+	@Excel(name = "1邀请面试 2查看简历 3投递简历")
+	@ApiModelProperty("1邀请面试 2查看简历 3投递简历")
+	private Integer status;
+	/** 后台用户ID */
+	@Excel(name = "后台用户ID")
+	@ApiModelProperty("后台用户ID")
+	private Long sysUserId;
+
+	@Excel(name = "创建时间")
+	@ApiModelProperty("创建时间")
+	private Long createTime;
+	/** 小程序用户id */
+	@Excel(name = "小程序用户id")
+	@ApiModelProperty("小程序用户id")
+	private Long userId;
+
+	@Excel(name = "用户名字")
+	@ApiModelProperty("用户名字")
+	private String userName;
+
+
+
+
+}

+ 35 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewUserVo.java

@@ -0,0 +1,35 @@
+package com.zhongzheng.modules.recruit.vo;
+
+import com.zhongzheng.modules.recruit.domain.RecruitInterviewLog;
+import com.zhongzheng.modules.recruit.domain.RecruitResume;
+import com.zhongzheng.modules.user.vo.UserVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author change
+ * @date 2021年08月25日 9:12
+ */
+@Data
+@ApiModel("招聘面试关联视图详细对象")
+public class RecruitInterviewUserVo {
+
+    /** 面试人信息 */
+    @ApiModelProperty("面试人信息")
+    private RecruitResumeVo recruitResumeVo;
+
+    /** 面试人信息 */
+    @ApiModelProperty("面试人信息")
+    private String resumeJson;
+
+    /** 面试人信息 */
+    @ApiModelProperty("面试人信息")
+    private UserVo userVo;
+
+    /** 面试人信息 */
+    @ApiModelProperty("面试人信息")
+    private List<RecruitInterviewLogVo> recruitInterviewLogVoList;
+}

+ 40 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitInterviewVo.java

@@ -2,6 +2,8 @@ package com.zhongzheng.modules.recruit.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -106,8 +108,44 @@ public class RecruitInterviewVo {
 	@ApiModelProperty("公司")
 	private String companyName;
 	/** 转发邮箱 */
-	@Excel(name = "转发邮箱")
-	@ApiModelProperty("转发邮箱")
+	@Excel(name = "公司转发邮箱")
+	@ApiModelProperty("公司转发邮箱")
 	private String emall;
+	/** 开始工作年  例如 2019 */
+	@Excel(name = "开始工作年  例如 2019")
+	@ApiModelProperty("开始工作年  例如 2019")
+	private Long startYear;
+	/** 出生年月 */
+	@Excel(name = "出生年月" , width = 30, dateFormat = "yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ApiModelProperty("出生年月")
+	private Date userBirth;
+	/** 教育层次 */
+	@Excel(name = "教育层次")
+	@ApiModelProperty("教育层次")
+	private String eduLevel;
+	/** 简历完成度 */
+	@Excel(name = "简历完成度")
+	@ApiModelProperty("简历完成度")
+	private Integer completeness;
+
+	/** 性别 1男 2女 */
+	@Excel(name = "性别 1男 2女")
+	@ApiModelProperty("性别 1男 2女")
+	private Long sex;
+
+	/** 区 */
+	@Excel(name = "区")
+	@ApiModelProperty("区")
+	private String district;
+	/** 区 */
+	@Excel(name = "城市")
+	@ApiModelProperty("城市")
+	private String city;
+
+	/** 区 */
+	@Excel(name = "用户emall")
+	@ApiModelProperty("用户emall")
+	private String userEMall;
 
 }

+ 14 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/recruit/vo/RecruitResumeVo.java

@@ -14,7 +14,7 @@ import java.util.Date;
  * 招聘用户简历视图对象 mall_package
  *
  * @author hjl
- * @date 2021-08-23
+ * @date 2021-08-24
  */
 @Data
 @ApiModel("招聘用户简历视图对象")
@@ -36,7 +36,7 @@ public class RecruitResumeVo {
 	/** 出生年月 */
 	@Excel(name = "出生年月")
 	@ApiModelProperty("出生年月")
-	private String userBirth;
+	private Date  userBirth;
 	/** 教育层次 */
 	@Excel(name = "教育层次")
 	@ApiModelProperty("教育层次")
@@ -73,6 +73,10 @@ public class RecruitResumeVo {
 	@Excel(name = "1正常")
 	@ApiModelProperty("1正常")
 	private Integer status;
+	/** 商户ID */
+	@Excel(name = "商户ID")
+	@ApiModelProperty("商户ID")
+	private Long tenantId;
 	/** 建筑证书列表 */
 	@Excel(name = "建筑证书列表")
 	@ApiModelProperty("建筑证书列表")
@@ -113,5 +117,13 @@ public class RecruitResumeVo {
 	@Excel(name = "项目经历")
 	@ApiModelProperty("项目经历")
 	private String projectExperienceJson;
+	/** 简历完成度 */
+	@Excel(name = "简历完成度")
+	@ApiModelProperty("简历完成度")
+	private Integer completeness;
+	/** 开始工作年  例如 2019 */
+	@Excel(name = "开始工作年  例如 2019")
+	@ApiModelProperty("开始工作年  例如 2019")
+	private Long startYear;
 
 }

+ 28 - 0
zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitInterviewLogMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.recruit.mapper.RecruitInterviewLogMapper">
+
+    <resultMap type="com.zhongzheng.modules.recruit.domain.RecruitInterviewLog" id="RecruitInterviewLogResult">
+        <result property="id" column="id"/>
+        <result property="interviewId" column="interview_id"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="sysUserId" column="sys_user_id"/>
+        <result property="userId" column="user_id"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.recruit.vo.RecruitInterviewLogVo" id="RecruitInterviewLogVoResult">
+        <result property="id" column="id"/>
+        <result property="interviewId" column="interview_id"/>
+        <result property="status" column="status"/>
+        <result property="sysUserId" column="sys_user_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="sysUserName" column="sysUserName"/>
+        <result property="userName" column="userName"/>
+    </resultMap>
+
+
+</mapper>

+ 137 - 0
zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitInterviewMapper.xml

@@ -25,6 +25,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="linkTel" column="link_tel"/>
         <result property="companyName" column="company_name"/>
         <result property="emall" column="emall"/>
+        <result property="startYear" column="start_year"/>
+        <result property="userBirth" column="user_birth"/>
+        <result property="eduLevel" column="edu_level"/>
+        <result property="completeness" column="completeness"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.recruit.vo.RecruitInterviewVo" id="RecruitInterviewVoResult">
@@ -46,6 +50,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="linkTel" column="link_tel"/>
         <result property="companyName" column="company_name"/>
         <result property="emall" column="emall"/>
+        <result property="startYear" column="start_year"/>
+        <result property="userBirth" column="user_birth"/>
+        <result property="eduLevel" column="edu_level"/>
+        <result property="completeness" column="completeness"/>
+        <result property="sex" column="sex"/>
+        <result property="district" column="district"/>
+        <result property="city" column="city"/>
+        <result property="userEMall" column="userEMall"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.recruit.vo.RecruitInterviewExcel" id="RecruitInterviewExcelResult">
@@ -57,6 +69,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="timing" column="timing"/>
     </resultMap>
 
+    <resultMap type="com.zhongzheng.modules.recruit.vo.RecruitInterviewUserVo" id="RecruitInterviewUserVoResult">
+        <result property="resumeJson" column="resume_json"/>
+        <association property="userVo" javaType="com.zhongzheng.modules.user.vo.UserVo" resultMap="UserVoResult"/>
+    </resultMap>
+
+    <resultMap type="com.zhongzheng.modules.user.vo.UserVo" id="UserVoResult">
+        <result property="userId" column="user_id"/>
+        <result property="nickname" column="nickname"/>
+        <result property="realname" column="realname"/>
+        <result property="sex" column="sex"/>
+        <result property="idCard" column="id_card"/>
+        <result property="telphone" column="telphone"/>
+        <result property="userLevel" column="user_level"/>
+        <result property="userBirth" column="user_birth"/>
+        <result property="eduLevel" column="edu_level"/>
+        <result property="schoolId" column="school_id"/>
+        <result property="major" column="major"/>
+        <result property="entranceTime" column="entrance_time"/>
+        <result property="openId" column="open_id"/>
+        <result property="idCardImg1" column="id_card_img1"/>
+        <result property="idCardImg2" column="id_card_img2"/>
+        <result property="country" column="country"/>
+        <result property="province" column="province"/>
+        <result property="city" column="city"/>
+        <result property="integral" column="integral"/>
+        <result property="createTime" column="create_time"/>
+        <result property="status" column="status"/>
+        <result property="certified" column="certified"/>
+        <result property="certifiedTime" column="certified_time"/>
+        <result property="district" column="district"/>
+        <result property="marry" column="marry"/>
+        <result property="houseProvince" column="house_province"/>
+        <result property="houseCity" column="house_city"/>
+        <result property="houseDistrict" column="house_district"/>
+        <result property="oneInchPhotos" column="one_inch_photos"/>
+        <result property="politic" column="politic"/>
+        <result property="email" column="email"/>
+        <result property="avatar" column="avatar"/>
+        <result property="courseNum" column="course_num"/>
+        <result property="studyTime" column="study_time"/>
+    </resultMap>
+
     <select id="selectByDay" parameterType="map" resultMap="RecruitInterviewVoResult">
         select r.*,u.realname,n.job from recruit_interview r
             LEFT JOIN `user` u on r.user_id = u.user_id
@@ -134,4 +188,87 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
         </if>
     </select>
+
+    <select id="selectByListAll" parameterType="com.zhongzheng.modules.recruit.bo.RecruitInterviewQueryBo" resultMap="RecruitInterviewVoResult">
+        SELECT
+        u.realname,
+        n.job,
+        u.sex,
+        u.email as userEMall,
+        u.city,
+        u.district,
+        r.*
+        FROM
+            recruit_interview r
+                LEFT JOIN recruit_needs n ON r.needs_id = n.id
+                LEFT JOIN USER u ON u.user_id = r.user_id
+        where 1=1
+        <if test="job !=null">
+          and n.job = #{job}
+        </if>
+        <if test="workStart !=null and workEnd !=null and workEnd != '' and workStart!=''">
+            and (SELECT DATE_FORMAT(NOW(), '%Y') as `year`)-r.start_year BETWEEN #{workStart} and #{workEnd}
+        </if>
+        <if test="ageStart !=null and ageEnd !=null and ageEnd != '' and ageStart!=''">
+            and TIMESTAMPDIFF(YEAR,r.user_birth,CURDATE())  BETWEEN #{ageStart} and #{ageEnd}
+        </if>
+        <if test="eduLevel !=null and eduLevel!=''">
+            and r.edu_level = #{eduLevel}
+        </if>
+        <if test="completeness !=null and completeness!=''">
+            and r.completeness > #{completeness}
+        </if>
+        <if test="district !=null and district!=''">
+            and u.district = #{district}
+        </if>
+        <if test="province !=null and completeness!=''">
+            and u.province = #{province}
+        </if>
+        <if test="city !=null and city!=''">
+            and u.city = #{city}
+        </if>
+        <if test="houseProvince !=null and houseProvince!=''">
+            and u.house_province = #{houseProvince}
+        </if>
+        <if test="houseCity !=null and houseCity!=''">
+            and u.house_city = #{houseCity}
+        </if>
+        <if test="sex !=null and sex != ''">
+            and u.sex = #{sex}
+        </if>
+        <if test="marry !=null and marry !=''">
+            and u.marry = #{marry}
+        </if>
+        <if test="politic !=null and politic !=''">
+            and u.politic = #{politic}
+        </if>
+    </select>
+
+    <select id="interviewUserId" parameterType="map" resultMap="RecruitInterviewUserVoResult">
+        SELECT
+            *
+        FROM
+            recruit_interview r
+                LEFT JOIN `user` u ON u.user_id = r.user_id
+        WHERE
+            r.interview_id =#{interviewUserId}
+    </select>
+
+    <select id="selectSysUserName" parameterType="map" resultType="String">
+        SELECT
+            user_name
+        FROM
+            sys_user
+        WHERE
+            user_id =#{sysUserId}
+    </select>
+
+    <select id="selectUserName" parameterType="map" resultType="String">
+        SELECT
+            realname
+        FROM
+            user
+        WHERE
+            user_id =#{userId}
+    </select>
 </mapper>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/recruit/RecruitResumeMapper.xml

@@ -20,6 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
         <result property="status" column="status"/>
+        <result property="tenantId" column="tenant_id"/>
         <result property="buildingCertificateJson" column="building_certificate_json"/>
         <result property="wantIncomeStart" column="want_income_start"/>
         <result property="wantIncomeEnd" column="want_income_end"/>
@@ -30,6 +31,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="jobType" column="job_type"/>
         <result property="comeWorkTime" column="come_work_time"/>
         <result property="projectExperienceJson" column="project_experience_json"/>
+        <result property="completeness" column="completeness"/>
+        <result property="startYear" column="start_year"/>
     </resultMap>