重新预约面试BUG修复
This commit is contained in:
@@ -69,7 +69,7 @@ public enum ErrorCodeEnum {
|
||||
FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面试安排失败!", null),
|
||||
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面试安排失败!", null),
|
||||
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
|
||||
INTERVIEW_STATUS_ERROR(1021111, "当前面试状态不允许修改面试时间!", null),
|
||||
INTERVIEW_STATUS_ERROR(1021111, "当前面试状态不允许该操作!", null),
|
||||
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面试计划已存在,请勿重复申请!", null),
|
||||
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
|
||||
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
|
||||
@@ -24,6 +25,6 @@ public interface WorkFlowService {
|
||||
* @param workflowStage
|
||||
* @param request
|
||||
*/
|
||||
void transferInvestmentManager(WorkflowStageEnum workflowStage,TransferInvestmentManagerRequest request);
|
||||
void transferInvestmentManager(WorkflowStageEnum workflowStage,TransferInvestmentManagerRequest request) throws ApiException;
|
||||
|
||||
}
|
||||
|
||||
@@ -210,27 +210,32 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
|
||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||
}
|
||||
//1.原面试官日程删除
|
||||
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||
if(userCalendarsEventDTO == null ){
|
||||
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||
}
|
||||
//2.新面试官日程新增
|
||||
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
|
||||
createCalendarEventDTO.setStartTime(DateUtil.parse(request.getNewStartBookingTime()).getTime());
|
||||
createCalendarEventDTO.setEndTime(DateUtil.parse(request.getNewEndBookingTime()).getTime());
|
||||
createCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
createCalendarEventDTO.setJoinUserIds(Arrays.asList(interviewInfo.getInterviewerId()));
|
||||
createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
|
||||
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||
if(userCalendarEvent == null ){
|
||||
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
|
||||
}
|
||||
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||
if(StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())&&StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())) {
|
||||
//1.原面试官日程删除
|
||||
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||
if (userCalendarsEventDTO == null) {
|
||||
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||
}
|
||||
//2.新面试官日程新增
|
||||
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
|
||||
createCalendarEventDTO.setStartTime(DateUtil.parse(request.getNewStartBookingTime()).getTime());
|
||||
createCalendarEventDTO.setEndTime(DateUtil.parse(request.getNewEndBookingTime()).getTime());
|
||||
createCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||
createCalendarEventDTO.setJoinUserIds(Arrays.asList(interviewInfo.getInterviewerId()));
|
||||
createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
|
||||
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||
if (userCalendarEvent == null) {
|
||||
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
|
||||
}
|
||||
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||
record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||
}
|
||||
|
||||
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
||||
record.setEndTime(Convert.toDate(request.getNewEndBookingTime()));
|
||||
@@ -240,8 +245,6 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
//更新面试信息
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
|
||||
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||
record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||
hyPartnerInterviewDO.setInterviewer(interviewInfo.getInterviewerId());
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
import com.cool.store.service.WorkFlowService;
|
||||
@@ -39,7 +40,7 @@ public class WorkFlowServiceImpl implements WorkFlowService{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInvestmentManager(WorkflowStageEnum workflowStage, TransferInvestmentManagerRequest request) {
|
||||
public void transferInvestmentManager(WorkflowStageEnum workflowStage, TransferInvestmentManagerRequest request) throws ApiException {
|
||||
getWorkflowService(workflowStage).transferInvestmentManager(request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,31 @@
|
||||
package com.cool.store.service.impl.workflow;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.dto.calendar.CreateCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
|
||||
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
|
||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.RoomStatus;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.EntrustOthersReq;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -26,27 +41,59 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private InterviewService interviewService;
|
||||
|
||||
@Autowired
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
@Override
|
||||
public WorkflowStageEnum getWorkFlowStage() {
|
||||
return WorkflowStageEnum.RESERVATION;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endProcess(CloseFollowRequest request) {
|
||||
public void endProcess(CloseFollowRequest request) throws ServiceException{
|
||||
Long lineId = request.getLineId();
|
||||
//根据线索id查询面试信息
|
||||
List<HyPartnerInterviewDO> interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
|
||||
if (interviewBaseInfos == null || interviewBaseInfos.size() == 0) {
|
||||
return;
|
||||
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||
interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
|
||||
log.info("转让招商经理~");
|
||||
public void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ServiceException, ApiException {
|
||||
Long lineId = request.getLineId();
|
||||
//根据线索id查询面试信息
|
||||
List<HyPartnerInterviewDO> interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
|
||||
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(String.valueOf(interviewBaseInfo.getInterviewPlanId()));
|
||||
if(null == interviewInfo){
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||
}
|
||||
Integer status = interviewInfo.getStatus();
|
||||
Date now = new Date();
|
||||
if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()) ||
|
||||
(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.OPEN.getCode()).equals(interviewInfo.getRoomStatus())) ||
|
||||
(DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) <= 0
|
||||
&& DateUtil.compare(DateUtil.parse(interviewInfo.getEndTime()), now) >= 0)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR);
|
||||
} else if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode())
|
||||
&&(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.WAIT_FOR_OPEN.getCode()).equals(interviewInfo.getRoomStatus()))
|
||||
&& DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) < 0) {
|
||||
EntrustOthersReq entrustOthersReq = new EntrustOthersReq();
|
||||
entrustOthersReq.setInterviewPlanId(interviewInfo.getInterviewPlanId());
|
||||
entrustOthersReq.setNewInterviewerId(interviewInfo.getInterviewerId());
|
||||
entrustOthersReq.setPartnerLineId(interviewInfo.getPartnerLineId());
|
||||
interviewService.entrustOthers(entrustOthersReq);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.service.impl.workflow;
|
||||
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||
|
||||
@@ -28,5 +29,5 @@ public abstract class WorkFlowBaseService {
|
||||
* 转让招商经理
|
||||
* @param request
|
||||
*/
|
||||
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request);
|
||||
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ApiException;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user