FollowStrategy.java
3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
package cn.fw.valhalla.service.bus.follow.strategy;
import cn.fw.common.exception.BusinessException;
import cn.fw.common.web.auth.LoginAuthBean;
import cn.fw.valhalla.domain.db.OriginalData;
import cn.fw.valhalla.domain.db.follow.FollowRecord;
import cn.fw.valhalla.domain.db.follow.FollowTask;
import cn.fw.valhalla.domain.db.pool.CustomerCluePool;
import cn.fw.valhalla.domain.dto.FollowAttachmentDTO;
import cn.fw.valhalla.domain.enums.FollowTypeEnum;
import cn.fw.valhalla.domain.vo.follow.FollowDetailVO;
import cn.fw.valhalla.domain.vo.follow.FollowRecordVO;
import cn.fw.valhalla.domain.vo.follow.FollowTodoListVO;
import cn.fw.valhalla.domain.vo.setting.SettingVO;
import java.util.Date;
import java.util.List;
/**
* @author : kurisu
* @className : FollowStrategy
* @description : 跟进策略接口
* @date: 2020-08-14 10:10
*/
public interface FollowStrategy {
/**
* 获取类型
*
* @return
*/
FollowTypeEnum getFollowType();
/**
* 查询待办列表详情
*
* @param startIndex
* @param pageSize
* @param userId
* @return
*/
List<FollowTodoListVO> getList(Integer startIndex, Integer pageSize, Long userId);
/**
* 查询跟进待办详情
*
* @param id
* @return
*/
FollowDetailVO getDetail(Long id);
/**
* 查询跟进记录
*
* @param taskId
* @return
*/
List<FollowRecordVO> getRecordList(Long taskId);
/**
* 完成跟进
*
* @param id
* @param currentUser
*/
void completeRecord(Long id, LoginAuthBean currentUser);
/**
* 完成跟进
*
* @param record
*/
void completeRecordAndEnd(FollowRecord record);
/**
* 上传跟进附件
*
* @param dto
* @param userId
*/
void uploadAtt(FollowAttachmentDTO dto, Long userId);
/**
* 取消跟进任务
*
* @param customerId
* @param time
* @param groupId
*/
@Deprecated
void cancelFollowTask(Long customerId, Date time, Long groupId);
/**
* 更新跟进任务
*
* @param setting
* @param groupId
*/
void settingChanged(List<SettingVO> setting, Long groupId);
/**
* 元数据生成任务
*
* @param originalData
* @return
* @throws Exception
*/
boolean origin2task(OriginalData originalData) throws Exception;
/**
* 开始线索
*
* @param cluePool
*/
void startClue(CustomerCluePool cluePool);
/**
* 任务开始
*
* @param task
* @param addDay
*/
void startTask(FollowTask task, boolean addDay);
/**
* 结束任务
*
* @param task
* @throws BusinessException
*/
void closeTask(FollowTask task) throws BusinessException;
/**
* 强制结束任务
*
* @param clue
*/
void forceStopClue(CustomerCluePool clue);
/**
* 当档案作废是强制结束任务
*
* @param clue
*/
void onForbiddenStopClue(CustomerCluePool clue);
/**
* 更新跟进任务
*
* @param customerId
*/
void updateTask(Long customerId);
/**
* 逾期处理
*
* @param record
*/
void overdueProcessing(FollowRecord record);
/**
* 查询跟进池详情
*
* @param task
* @return
*/
FollowDetailVO followPoolDetail(FollowTask task);
}