跟进任务初始化
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.follow.AddFollowLogRequest;
|
||||
import com.cool.store.request.follow.AddFollowTaskRequest;
|
||||
import com.cool.store.request.follow.FollowTaskIdRequest;
|
||||
import com.cool.store.request.follow.UpdateFollowTaskRequest;
|
||||
import com.cool.store.vo.follow.FollowTaskLogVO;
|
||||
import com.cool.store.vo.follow.FollowTaskPageVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: FollowTaskService
|
||||
* @Description:
|
||||
* @date 2023-08-10 11:10
|
||||
*/
|
||||
public interface FollowTaskService {
|
||||
|
||||
/**
|
||||
* 工作台获取跟进任务
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
* @param taskStatus
|
||||
* @param queryDate
|
||||
* @param followUserId
|
||||
* @return
|
||||
*/
|
||||
PageInfo<FollowTaskPageVO> getFollowTaskPage(Integer pageNum, Integer pageSize, Integer taskStatus, String queryDate, String followUserId);
|
||||
|
||||
/**
|
||||
* 获取线索跟进日志
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
* @param partnerLineId
|
||||
* @return
|
||||
*/
|
||||
PageInfo<FollowTaskLogVO> getFollowLogPage(Integer pageNum, Integer pageSize, Long partnerLineId);
|
||||
|
||||
/**
|
||||
* 添加跟进日志
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
Integer addFollowLog(AddFollowLogRequest request, String userId);
|
||||
|
||||
/**
|
||||
* 新增跟进任务
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
Long addFollowTask(AddFollowTaskRequest request, String userId);
|
||||
|
||||
/**
|
||||
* 编辑跟进任务
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
Integer updateFollowTask(UpdateFollowTaskRequest request, String userId);
|
||||
|
||||
/**
|
||||
* 完成跟进任务
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
Integer finishFollowTask(FollowTaskIdRequest request, String userId);
|
||||
|
||||
/**
|
||||
* 作废跟进任务
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
Integer cancelFollowTask(FollowTaskIdRequest request, String userId);
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.EnterpriseUserDAO;
|
||||
import com.cool.store.dao.HyFollowTaskDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerTaskInfoLogDAO;
|
||||
import com.cool.store.dto.log.LineLogInfo;
|
||||
import com.cool.store.dto.partner.PartnerSimpleInfoDTO;
|
||||
import com.cool.store.entity.HyFollowTaskDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.follow.AddFollowLogRequest;
|
||||
import com.cool.store.request.follow.AddFollowTaskRequest;
|
||||
import com.cool.store.request.follow.FollowTaskIdRequest;
|
||||
import com.cool.store.request.follow.UpdateFollowTaskRequest;
|
||||
import com.cool.store.service.FollowTaskService;
|
||||
import com.cool.store.vo.follow.FollowTaskLogVO;
|
||||
import com.cool.store.vo.follow.FollowTaskPageVO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: FollowTaskServiceImpl
|
||||
* @Description:
|
||||
* @date 2023-08-10 11:10
|
||||
*/
|
||||
@Service
|
||||
public class FollowTaskServiceImpl implements FollowTaskService {
|
||||
|
||||
@Resource
|
||||
private HyFollowTaskDAO hyFollowTaskDAO;
|
||||
@Resource
|
||||
private HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
|
||||
@Resource
|
||||
private HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO;
|
||||
@Resource
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
|
||||
@Override
|
||||
public PageInfo<FollowTaskPageVO> getFollowTaskPage(Integer pageNum, Integer pageSize, Integer taskStatus, String queryDate, String followUserId) {
|
||||
String deadlineStartTIme = null, deadlineEndTIme = null;
|
||||
if(StringUtils.isNotBlank(queryDate) && FollowTaskStatusEnum.TODO.getCode().equals(taskStatus)){
|
||||
//只有待完成的时候需要根据截止时间查询
|
||||
deadlineStartTIme = queryDate + CommonConstants.DAY_START_TIME_SUFFIX;
|
||||
deadlineEndTIme = queryDate + CommonConstants.DAY_END_TIME_SUFFIX;
|
||||
}
|
||||
Page<HyFollowTaskDO> taskPage = hyFollowTaskDAO.getTaskPage(followUserId, taskStatus, deadlineStartTIme, deadlineEndTIme, pageNum, pageSize);
|
||||
PageInfo resultPage = new PageInfo(taskPage);
|
||||
if(CollectionUtils.isNotEmpty(taskPage)){
|
||||
List<Long> partnerLineIds = taskPage.stream().map(HyFollowTaskDO::getPartnerLineId).distinct().collect(Collectors.toList());
|
||||
Map<Long, PartnerSimpleInfoDTO> partnerSimpleInfoMap = hyPartnerLineInfoDAO.getPartnerSimpleInfoByLineIds(partnerLineIds);
|
||||
List<FollowTaskPageVO> resultList = FollowTaskPageVO.convertVO(taskPage, partnerSimpleInfoMap);
|
||||
resultPage.setList(resultList);
|
||||
}
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<FollowTaskLogVO> getFollowLogPage(Integer pageNum, Integer pageSize, Long partnerLineId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer addFollowLog(AddFollowLogRequest request, String userId) {
|
||||
HyPartnerLineInfoDO lineInfo = checkLine(request.getPartnerLineId());
|
||||
String userName = enterpriseUserDAO.getUserName(userId);
|
||||
LineLogInfo lineLogInfo = new LineLogInfo(lineInfo.getPartnerId(), request.getPartnerLineId(), userId, userName, OperateTypeEnum.ADD_FOLLOW_LOG, WorkflowStageEnum.getWorkflowStageByCode(lineInfo.getWorkflowStage()), lineInfo.getWorkflowStatus(), null);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put(OperateLogFieldValueEnum.FOLLOW_LOG.getCode(), request.getFollowLog());
|
||||
lineLogInfo.setData(jsonObject);
|
||||
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long addFollowTask(AddFollowTaskRequest request, String userId) {
|
||||
HyPartnerLineInfoDO lineInfo = checkLine(request.getPartnerLineId());
|
||||
HyFollowTaskDO task = AddFollowTaskRequest.convertDO(request);
|
||||
task.setFollowUserId(lineInfo.getInvestmentManager());
|
||||
Long followTaskId = hyFollowTaskDAO.addFollowTask(task);
|
||||
String userName = enterpriseUserDAO.getUserName(userId);
|
||||
LineLogInfo lineLogInfo = new LineLogInfo(lineInfo.getPartnerId(), request.getPartnerLineId(), userId, userName, OperateTypeEnum.ADD_FOLLOW_TASK, WorkflowStageEnum.getWorkflowStageByCode(lineInfo.getWorkflowStage()), lineInfo.getWorkflowStatus(), null);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put(OperateLogFieldValueEnum.FOLLOW_TASK_ID.getCode(), followTaskId);
|
||||
lineLogInfo.setData(jsonObject);
|
||||
hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo);
|
||||
return followTaskId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updateFollowTask(UpdateFollowTaskRequest request, String userId) {
|
||||
HyFollowTaskDO followTask = hyFollowTaskDAO.getFollowTask(request.getFollowTaskId());
|
||||
if(!FollowTaskStatusEnum.TODO.getCode().equals(followTask.getTaskStatus())){
|
||||
throw new ServiceException(ErrorCodeEnum.TASK_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
checkLine(followTask.getPartnerLineId());
|
||||
HyFollowTaskDO task = UpdateFollowTaskRequest.convertDO(request);
|
||||
return hyFollowTaskDAO.updateFollowTask(task);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer finishFollowTask(FollowTaskIdRequest request, String userId) {
|
||||
HyFollowTaskDO followTask = hyFollowTaskDAO.getFollowTask(request.getFollowTaskId());
|
||||
if(!FollowTaskStatusEnum.TODO.getCode().equals(followTask.getTaskStatus()) && !FollowTaskStatusEnum.OVERDUE.getCode().equals(followTask.getTaskStatus())){
|
||||
throw new ServiceException(ErrorCodeEnum.TASK_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
checkLine(followTask.getPartnerLineId());
|
||||
return hyFollowTaskDAO.finishFollowTask(request.getFollowTaskId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer cancelFollowTask(FollowTaskIdRequest request, String userId) {
|
||||
HyFollowTaskDO followTask = hyFollowTaskDAO.getFollowTask(request.getFollowTaskId());
|
||||
if(!FollowTaskStatusEnum.TODO.getCode().equals(followTask.getTaskStatus())){
|
||||
throw new ServiceException(ErrorCodeEnum.TASK_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
checkLine(followTask.getPartnerLineId());
|
||||
return hyFollowTaskDAO.cancelFollowTask(request.getFollowTaskId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 线索校验
|
||||
* @param partnerLineId
|
||||
* @return
|
||||
*/
|
||||
public HyPartnerLineInfoDO checkLine(Long partnerLineId){
|
||||
HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(partnerLineId);
|
||||
if(Objects.isNull(lineInfo) || lineInfo.getDeleted()){
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
if(!LineStatusEnum.PRIVATE_SEAS.getCode().equals(lineInfo.getLineStatus())){
|
||||
//线索只有私海的时候才能操作
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);
|
||||
}
|
||||
return lineInfo;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user