面试/面谈
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.enums.UserRoleEnum;
|
||||
import com.cool.store.enums.WorkflowSubStageEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: CommonService
|
||||
@@ -16,9 +20,22 @@ public class CommonService {
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext applicationContext;
|
||||
@Resource
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
|
||||
public LineFlowService getLineFlowService(Integer workflowSubStage){
|
||||
WorkflowSubStageEnum workflowSubStageEnum = WorkflowSubStageEnum.getWorkflowSubStageEnum(workflowSubStage);
|
||||
return (LineFlowService)applicationContext.getBean(workflowSubStageEnum.getClazz());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户id
|
||||
* @param areaId 城市id
|
||||
* @param userRole
|
||||
* @return
|
||||
*/
|
||||
public String getUserIdByAreaAndUserRole(Long areaId, UserRoleEnum userRole){
|
||||
//随机一个
|
||||
return enterpriseUserDAO.getUserInfoByUserIds(null).stream().findAny().get().getUserId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||
@Resource
|
||||
private LineAuditInfoDAO lineAuditInfoDAO;
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
|
||||
@Override
|
||||
public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) {
|
||||
@@ -99,18 +101,22 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
InterviewTypeEnum interviewType = WorkflowSubStageEnum.getInterviewType(lineInfo.getWorkflowSubStage());
|
||||
String interviewer = InterviewTypeEnum.MEET.equals(interviewType) ? lineInfo.getInvestmentManager() : InterviewTypeEnum.INTERVIEW.equals(interviewType) ? lineInfo.getFirstInterviewer() : lineInfo.getSecondInterviewer();
|
||||
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewer, request.getStartTime(), request.getEndTime());
|
||||
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;
|
||||
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewerUserId, request.getStartTime(), request.getEndTime(), null);
|
||||
if(occupied){
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
|
||||
}
|
||||
Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
LineCalendarsEventDO calendarsEvent = LineCalendarsEventDO.convertDO(lineInfo, interviewType.getCode(), startTime, endTime, interviewer);
|
||||
LineCalendarsEventDO calendarsEvent = LineCalendarsEventDO.convertDO(lineInfo, interviewType.getCode(), startTime, endTime, interviewerUserId);
|
||||
Long eventId = lineCalendarsEventDAO.addCalendarsEvent(calendarsEvent);
|
||||
WorkflowSubStageStatusEnum workflowSubStageStatus = InterviewTypeEnum.getWorkflowSubStageStatus(interviewType);
|
||||
//跟新线索状态为已预约
|
||||
lineInfoDAO.updateWorkflowStage(lineInfo.getId(), null, workflowSubStageStatus);
|
||||
lineInfoDAO.updateWorkflowStageAndInterviewer(lineInfo.getId(), workflowSubStageStatus, firstInterviewer, secondInterviewer);
|
||||
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType);
|
||||
if(Objects.nonNull(interviewInfo)){
|
||||
if(!WorkflowSubStageStatusEnum.isReappointmentStatus(lineInfo.getWorkflowSubStageStatus())){
|
||||
@@ -120,7 +126,7 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
//删除该面试记录
|
||||
lineInterviewDAO.deleteInterviewInfo(interviewInfo.getId());
|
||||
}
|
||||
LineInterviewDO addInterview = LineInterviewDO.convertDO(lineInfo, startTime, endTime, UUIDUtils.get8UUID(), interviewer, interviewType.getCode(), eventId);
|
||||
LineInterviewDO addInterview = LineInterviewDO.convertDO(lineInfo, startTime, endTime, UUIDUtils.get8UUID(), interviewerUserId, interviewType.getCode(), eventId);
|
||||
lineInterviewDAO.addInterviewInfo(addInterview);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
@@ -148,6 +154,10 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
}
|
||||
Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
Boolean occupied = lineCalendarsEventDAO.isOccupied(interviewType.getCode(), lineInfo.getRegionId(), interviewInfo.getInterviewerUserId(), request.getStartTime(), request.getEndTime(), interviewInfo.getId());
|
||||
if(occupied){
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
|
||||
}
|
||||
interviewInfo.setInterviewDate(startTime);
|
||||
interviewInfo.setStartTime(startTime);
|
||||
interviewInfo.setEndTime(endTime);
|
||||
|
||||
Reference in New Issue
Block a user