Ver Fonte

1、增加实习记录逻辑

rayson há 4 meses atrás
pai
commit
ae7082984a
17 ficheiros alterados com 161 adições e 4 exclusões
  1. 18 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/person/StudentPracticeStatusEnum.java
  2. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobCvRelReqVO.java
  3. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteReqSaveVO.java
  4. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteRespVO.java
  5. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteSaveReqVO.java
  6. 11 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/HireJobCvRelRespVO.java
  7. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelRespVO.java
  8. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSaveReqVO.java
  9. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSimpleRespVO.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordPageReqVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordRespVO.java
  12. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordSaveReqVO.java
  13. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/interview/InterviewInviteDO.java
  14. 11 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobCvRelDO.java
  15. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/person/StudentPracticeRecordDO.java
  16. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/StudentPracticeRecordMapper.java
  17. 40 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java

+ 18 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/person/StudentPracticeStatusEnum.java

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.enums.person;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 实习记录状态(0等待中 1进行中 2已结束)
+ **/
+@Getter
+@AllArgsConstructor
+public enum StudentPracticeStatusEnum {
+    WAITING("0", "等待中"),
+    IN_PROGRESS("1", "进行中"),
+    END("2", "已结束");
+
+    private final String status;
+    private final String name;
+}

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobCvRelReqVO.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
 
 @Schema(description = "menduner - 招聘职位简历投递 Request VO")
 @Data
@@ -28,4 +29,12 @@ public class AppJobCvRelReqVO {
     @NotEmpty(message = "{1_100_035_003}")
     private String url;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteReqSaveVO.java

@@ -54,4 +54,12 @@ public class AppRecruitInterviewInviteReqSaveVO {
     @Schema(description = "备注")
     private String remark;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteRespVO.java

@@ -89,4 +89,14 @@ public class InterviewInviteRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    @ExcelProperty("实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    @ExcelProperty("实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteSaveReqVO.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.system.controller.base.interview;
 
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -76,4 +77,11 @@ public class InterviewInviteSaveReqVO {
     @Schema(description = "会话状态(0邀约|1入职|2结算)")
     private String conversationStatus;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    private LocalDateTime practiceEndTime;
 }

+ 11 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/HireJobCvRelRespVO.java

@@ -60,4 +60,15 @@ public class HireJobCvRelRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    @ExcelProperty("实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    @ExcelProperty("实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelRespVO.java

@@ -68,4 +68,14 @@ public class JobCvRelRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    @ExcelProperty("实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    @ExcelProperty("实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSaveReqVO.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
 
 @Schema(description = "招聘职位简历投递新增/修改 Request VO")
 @Data
@@ -61,4 +62,11 @@ public class JobCvRelSaveReqVO {
     @NotEmpty(message = "{1_100_035_009}")
     private String status;
 
+    // ========== 学生相关 ==========
+
+    @Schema(description = "实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    private LocalDateTime practiceEndTime;
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelSimpleRespVO.java

@@ -36,4 +36,11 @@ public class JobCvRelSimpleRespVO {
     @Schema(description = "创建时间")
     private LocalDateTime createTime;
 
+
+    @Schema(description = "实习开始时间")
+    private LocalDateTime practiceStartTime;
+
+    @Schema(description = "实习结束时间")
+    private LocalDateTime practiceEndTime;
+
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordPageReqVO.java

@@ -45,7 +45,7 @@ public class StudentPracticeRecordPageReqVO extends PageParam {
     private LocalDateTime[] endTime;
 
     @Schema(description = "状态", example = "2")
-    private Integer status;
+    private String status;
 
     @Schema(description = "创建时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordRespVO.java

@@ -51,7 +51,7 @@ public class StudentPracticeRecordRespVO {
 
     @Schema(description = "状态", example = "2")
     @ExcelProperty("状态")
-    private Integer status;
+    private String status;
 
     @Schema(description = "拒绝原因")
     @ExcelProperty("拒绝原因")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/student/StudentPracticeRecordSaveReqVO.java

@@ -44,7 +44,7 @@ public class StudentPracticeRecordSaveReqVO {
     private LocalDateTime endTime;
 
     @Schema(description = "状态", example = "2")
-    private Integer status;
+    private String status;
 
     @Schema(description = "拒绝原因")
     private String refuseMsg;

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

@@ -98,4 +98,13 @@ public class InterviewInviteDO extends TenantBaseDO {
      * 备注
      */
     private String remark;
+    // ========== 学生相关 ==========
+    /**
+     * 实习开始时间
+     */
+    private LocalDateTime practiceStartTime;
+    /**
+     * 实习结束时间
+     */
+    private LocalDateTime practiceEndTime;
 }

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

@@ -7,6 +7,8 @@ import com.citu.framework.mybatis.core.dataobject.BaseDO;
 import com.citu.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
+import java.time.LocalDateTime;
+
 /**
  * 招聘职位简历投递 DO
  *
@@ -75,5 +77,14 @@ public class JobCvRelDO extends TenantBaseDO {
      * 投递的简历状态(0 新投递 1已查看)
      */
     private String status;
+    // ========== 学生相关 ==========
+    /**
+     * 实习开始时间
+     */
+    private LocalDateTime practiceStartTime;
+    /**
+     * 实习结束时间
+     */
+    private LocalDateTime practiceEndTime;
 
 }

+ 5 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/person/StudentPracticeRecordDO.java

@@ -53,6 +53,10 @@ public class StudentPracticeRecordDO extends BaseDO {
      * 招聘会id
      */
     private Long jobFairId;
+    /**
+     * 面试邀请id
+     */
+    private Long inviteId;
     /**
      * 实习开始时间
      */
@@ -64,7 +68,7 @@ public class StudentPracticeRecordDO extends BaseDO {
     /**
      * 状态
      */
-    private Integer status;
+    private String status;
     /**
      * 拒绝原因
      */

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/StudentPracticeRecordMapper.java

@@ -31,4 +31,8 @@ public interface StudentPracticeRecordMapper extends BaseMapperX<StudentPractice
                 .orderByDesc(StudentPracticeRecordDO::getId));
     }
 
+    default StudentPracticeRecordDO selectByInviteId(Long inviteId) {
+        return selectOne(StudentPracticeRecordDO::getInviteId, inviteId);
+    }
+
 }

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

@@ -24,9 +24,14 @@ import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteD
 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.person.StudentDO;
+import com.citu.module.menduner.system.dal.dataobject.person.StudentPracticeRecordDO;
 import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
+import com.citu.module.menduner.system.dal.mysql.person.StudentMapper;
+import com.citu.module.menduner.system.dal.mysql.person.StudentPracticeRecordMapper;
 import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
 import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
+import com.citu.module.menduner.system.enums.person.StudentPracticeStatusEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
@@ -92,6 +97,10 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     @Resource
     private PersonInfoService personInfoService;
     @Resource
+    private StudentMapper studentMapper;
+    @Resource
+    private StudentPracticeRecordMapper studentPracticeRecordMapper;
+    @Resource
     private AreaService areaService;
     @Resource
     private RedisUtils redisUtils;
@@ -354,6 +363,27 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
         InterviewInviteDO interviewInvite = validateInterviewInviteExists(id);
         setStatus(interviewInvite, InterviewInviteStatusEnum.COMPLETED);
         mapper.updateById(interviewInvite);
+        if (null != interviewInvite.getPracticeStartTime() && null != interviewInvite.getPracticeEndTime()) {
+            // 创建实习记录
+            StudentDO student = studentMapper.selectByUserId(interviewInvite.getUserId());
+            if (null == student) {
+                log.error("面试通过,找不到学生信息{}", interviewInvite.getUserId());
+                return;
+            }
+            StudentPracticeRecordDO practiceRecord = StudentPracticeRecordDO.builder()
+                    .userId(student.getUserId())
+                    .personId(student.getPersonId())
+                    .studentId(student.getId())
+                    .enterpriseId(interviewInvite.getEnterpriseId())
+                    .jobId(interviewInvite.getJobId())
+                    .inviteId(interviewInvite.getId())
+                    .startTime(interviewInvite.getPracticeStartTime())
+                    .endTime(interviewInvite.getPracticeEndTime())
+                    .status(StudentPracticeStatusEnum.WAITING.getStatus())
+                    .build();
+            // 创建记录
+            studentPracticeRecordMapper.insert(practiceRecord);
+        }
     }
 
     @Override
@@ -397,6 +427,16 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
         mapper.updateById(interviewInvite);
 
         //TODO 发送推送消息
+
+        if (null != interviewInvite.getPracticeStartTime() && null != interviewInvite.getPracticeEndTime()) {
+            StudentPracticeRecordDO practiceRecord = studentPracticeRecordMapper.selectByInviteId(id);
+            if (null != practiceRecord) {
+                // 标记为进行中
+                practiceRecord.setStatus(StudentPracticeStatusEnum.IN_PROGRESS.getStatus());
+                studentPracticeRecordMapper.updateById(practiceRecord);
+            }
+        }
+
     }
 
     @Override