面试/面谈
This commit is contained in:
@@ -88,7 +88,7 @@ public enum ErrorCodeEnum {
|
||||
INTERVIEW_PLAN_NOT_EXIST(1021107, "面审计划不存在!", null),
|
||||
FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面审安排失败!", null),
|
||||
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面审安排失败!", null),
|
||||
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面审安排失败!", null),
|
||||
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "开始前10分钟不允许修改时间!", null),
|
||||
INTERVIEW_STATUS_ERROR(1021111, "当前面审状态不允许该操作!", null),
|
||||
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面审计划已存在,请勿重复申请!", null),
|
||||
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
@@ -32,6 +33,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -101,11 +104,18 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
|
||||
UserRoleEnum userRole = InterviewTypeEnum.MEET.equals(interviewType) ? UserRoleEnum.INVESTMENT_MANAGER : UserRoleEnum.REGION_MANAGER;
|
||||
//获取面试官
|
||||
String interviewerUserId = InterviewTypeEnum.MEET.equals(interviewType) ? lineInfo.getInvestmentManager() : commonService.getUserIdByAreaAndUserRole(lineInfo.getWantShopAreaId(), userRole);
|
||||
String firstInterviewer = InterviewTypeEnum.INTERVIEW.equals(interviewType) ? interviewerUserId : null;
|
||||
String secondInterviewer = InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType) ? interviewerUserId : null;
|
||||
String interviewerUserId, firstInterviewer = null, secondInterviewer = null;
|
||||
if(!WorkflowSubStageStatusEnum.isReappointmentStatus(lineInfo.getWorkflowSubStageStatus())){
|
||||
interviewerUserId = lineInfo.getInvestmentManager();
|
||||
if(!InterviewTypeEnum.MEET.equals(interviewType)){
|
||||
interviewerUserId = commonService.getUserIdByAreaAndUserRole(lineInfo.getWantShopAreaId(), UserRoleEnum.REGION_MANAGER);
|
||||
}
|
||||
firstInterviewer = InterviewTypeEnum.INTERVIEW.equals(interviewType) ? interviewerUserId : null;
|
||||
secondInterviewer = InterviewTypeEnum.SECOND_INTERVIEW.equals(interviewType) ? interviewerUserId : null;
|
||||
}else{
|
||||
//重新预约直接拿线索对应的面试官
|
||||
interviewerUserId = InterviewTypeEnum.INTERVIEW.equals(interviewType) ? lineInfo.getFirstInterviewer() : lineInfo.getSecondInterviewer();
|
||||
}
|
||||
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewerUserId, request.getStartTime(), request.getEndTime(), null);
|
||||
if(occupied){
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
|
||||
@@ -158,16 +168,23 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
if(occupied){
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
|
||||
}
|
||||
interviewInfo.setInterviewDate(startTime);
|
||||
interviewInfo.setStartTime(startTime);
|
||||
interviewInfo.setEndTime(endTime);
|
||||
lineInterviewDAO.updateInterviewInfo(interviewInfo);
|
||||
LineCalendarsEventDO update = new LineCalendarsEventDO();
|
||||
update.setId(interviewInfo.getCalendarsEventId());
|
||||
update.setStartTime(startTime);
|
||||
update.setEndTime(endTime);
|
||||
update.setInterviewDate(startTime);
|
||||
lineCalendarsEventDAO.updateCalendarsEvent(update);
|
||||
LocalDateTime startDateTime = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault()).minusMinutes(10);
|
||||
LocalDateTime now = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
|
||||
if(startDateTime.isBefore(now)){
|
||||
throw new ServiceException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
|
||||
}
|
||||
LineInterviewDO updateInterview = new LineInterviewDO();
|
||||
updateInterview.setId(interviewInfo.getId());
|
||||
updateInterview.setInterviewDate(startTime);
|
||||
updateInterview.setStartTime(startTime);
|
||||
updateInterview.setEndTime(endTime);
|
||||
lineInterviewDAO.updateInterviewInfo(updateInterview);
|
||||
LineCalendarsEventDO updateEvent = new LineCalendarsEventDO();
|
||||
updateEvent.setId(interviewInfo.getCalendarsEventId());
|
||||
updateEvent.setStartTime(startTime);
|
||||
updateEvent.setEndTime(endTime);
|
||||
updateEvent.setInterviewDate(startTime);
|
||||
lineCalendarsEventDAO.updateCalendarsEvent(updateEvent);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user