Commit 24e78cebf0189c658b558315e38cbfe00fae3a2e
Merge remote-tracking branch 'origin/dev' into test
Showing
9 changed files
with
67 additions
and
12 deletions
fw-shirasawa-dao/src/main/resources/mapper/FollowTaskMapper.xml
... | ... | @@ -16,7 +16,8 @@ |
16 | 16 | t1.finish_shop finish_shop, |
17 | 17 | t1.finish_user_name finish_user_name, |
18 | 18 | t1.create_time start_time, |
19 | - t1.times times, | |
19 | + t1.deadline deadline, | |
20 | + ifnull(t1.times, 0) times, | |
20 | 21 | t1.feedback feedback, |
21 | 22 | TIMESTAMPDIFF(HOUR, now(), t1.deadline) remaining, |
22 | 23 | t1.redistribution redistribution, | ... | ... |
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/dto/FollowPoolDTO.java
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/enums/FeedbackTypeEnum.java
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/vo/pool/FollowPoolListVO.java
... | ... | @@ -2,7 +2,7 @@ package cn.fw.shirasawa.domain.vo.pool; |
2 | 2 | |
3 | 3 | import lombok.Data; |
4 | 4 | |
5 | -import java.util.Date; | |
5 | +import java.time.LocalDateTime; | |
6 | 6 | import java.util.Objects; |
7 | 7 | |
8 | 8 | /** |
... | ... | @@ -37,7 +37,11 @@ public class FollowPoolListVO { |
37 | 37 | /** |
38 | 38 | * 任务开始时间 |
39 | 39 | */ |
40 | - private Date startTime; | |
40 | + private LocalDateTime startTime; | |
41 | + /** | |
42 | + * 任务开始时间 | |
43 | + */ | |
44 | + private LocalDateTime deadline; | |
41 | 45 | /** |
42 | 46 | * 剩余天数 |
43 | 47 | */ |
... | ... | @@ -65,7 +69,7 @@ public class FollowPoolListVO { |
65 | 69 | /** |
66 | 70 | * 关单时间 |
67 | 71 | */ |
68 | - private Date closeTime; | |
72 | + private LocalDateTime closeTime; | |
69 | 73 | /** |
70 | 74 | * 战败类型 |
71 | 75 | */ |
... | ... | @@ -74,6 +78,10 @@ public class FollowPoolListVO { |
74 | 78 | * 集团id |
75 | 79 | */ |
76 | 80 | private Long groupId; |
81 | + /** | |
82 | + * 跟进次数 | |
83 | + */ | |
84 | + private Integer times; | |
77 | 85 | |
78 | 86 | public String getRemaining() { |
79 | 87 | if (Objects.isNull(remaining) || state != 1) { | ... | ... |
fw-shirasawa-server/src/main/java/cn/fw/shirasawa/server/controller/app/PoolController.java
... | ... | @@ -13,6 +13,7 @@ import cn.fw.shirasawa.domain.query.FollowPoolQueryVO; |
13 | 13 | import cn.fw.shirasawa.domain.query.SecretReportHistoryQuery; |
14 | 14 | import cn.fw.shirasawa.domain.vo.SecretReportHistoryVO; |
15 | 15 | import cn.fw.shirasawa.domain.vo.follow.FollowDetailVO; |
16 | +import cn.fw.shirasawa.domain.vo.follow.FollowRecordHistoryVO; | |
16 | 17 | import cn.fw.shirasawa.domain.vo.pool.CluePoolVO; |
17 | 18 | import cn.fw.shirasawa.domain.vo.pool.FollowPoolListVO; |
18 | 19 | import cn.fw.shirasawa.service.bus.follow.FollowBizService; |
... | ... | @@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping; |
25 | 26 | import org.springframework.web.bind.annotation.RestController; |
26 | 27 | |
27 | 28 | import javax.validation.constraints.NotNull; |
29 | +import java.util.List; | |
28 | 30 | |
29 | 31 | import static cn.fw.common.web.util.ResultBuilder.success; |
30 | 32 | |
... | ... | @@ -68,6 +70,13 @@ public class PoolController { |
68 | 70 | return success(followBizService.followPoolDetail(taskId)); |
69 | 71 | } |
70 | 72 | |
73 | + @GetMapping("/follow/record/history") | |
74 | + @IgnoreAuth | |
75 | + @ControllerMethod("查询跟进待办历史记录") | |
76 | + public Message<List<FollowRecordHistoryVO>> todoRecordHistory(@NotNull(message = "跟进池id不能为空") final Long taskId) { | |
77 | + return success(followBizService.todoHistoryTask(taskId)); | |
78 | + } | |
79 | + | |
71 | 80 | |
72 | 81 | @GetMapping("/clue/list") |
73 | 82 | @IgnoreAuth | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/component/FlowConsumer.java
... | ... | @@ -5,6 +5,7 @@ import cn.fw.flow.result.ApproveCheckMessageDto; |
5 | 5 | import cn.fw.shirasawa.domain.db.ApproveRecord; |
6 | 6 | import cn.fw.shirasawa.domain.db.follow.FollowTask; |
7 | 7 | import cn.fw.shirasawa.domain.enums.ApproveStateEnum; |
8 | +import cn.fw.shirasawa.domain.enums.TaskDefeatTypeEnum; | |
8 | 9 | import cn.fw.shirasawa.domain.enums.TaskStateEnum; |
9 | 10 | import cn.fw.shirasawa.service.data.ApproveRecordService; |
10 | 11 | import cn.fw.shirasawa.service.data.FollowTaskService; |
... | ... | @@ -18,6 +19,7 @@ import org.springframework.context.ApplicationEventPublisher; |
18 | 19 | import org.springframework.stereotype.Service; |
19 | 20 | import org.springframework.transaction.annotation.Transactional; |
20 | 21 | |
22 | +import java.time.LocalDateTime; | |
21 | 23 | import java.util.Objects; |
22 | 24 | |
23 | 25 | /** |
... | ... | @@ -72,6 +74,8 @@ public class FlowConsumer implements RocketMQListener<ApproveCheckMessageDto> { |
72 | 74 | if (Objects.isNull(task) || !TaskStateEnum.ONGOING.equals(task.getState())) { |
73 | 75 | return; |
74 | 76 | } |
77 | + task.setCloseTime(LocalDateTime.now()); | |
78 | + task.setReason(TaskDefeatTypeEnum.A); | |
75 | 79 | StopTaskEvent stopTaskEvent = new StopTaskEvent(task); |
76 | 80 | eventPublisher.publishEvent(stopTaskEvent); |
77 | 81 | } | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/FollowBizService.java
... | ... | @@ -349,11 +349,27 @@ public class FollowBizService { |
349 | 349 | * @return 跟进详情 |
350 | 350 | */ |
351 | 351 | public List<FollowRecordHistoryVO> todoRecordHistory(Long recordId) { |
352 | + BV.notNull(recordId, () -> "跟进记录id不能为空"); | |
352 | 353 | FollowRecord followRecord = followRecordService.getById(recordId); |
353 | 354 | BV.notNull(followRecord, () -> "跟进待办不存在"); |
354 | 355 | FollowTypeEnum type = followRecord.getType(); |
355 | 356 | FollowStrategy strategy = followMap.get(type); |
356 | - return strategy.queryRecordHistory(followRecord); | |
357 | + return strategy.queryHistoryByRecord(followRecord); | |
358 | + } | |
359 | + | |
360 | + /** | |
361 | + * 查询跟进详情 | |
362 | + * | |
363 | + * @param taskId 跟进任务id | |
364 | + * @return 跟进详情 | |
365 | + */ | |
366 | + public List<FollowRecordHistoryVO> todoHistoryTask(Long taskId) { | |
367 | + BV.notNull(taskId, () -> "跟进任务id不能为空"); | |
368 | + FollowTask task = followTaskService.getById(taskId); | |
369 | + BV.notNull(task, () -> "跟进任务不存在"); | |
370 | + FollowTypeEnum type = task.getType(); | |
371 | + FollowStrategy strategy = followMap.get(type); | |
372 | + return strategy.queryHistoryByTask(task); | |
357 | 373 | } |
358 | 374 | |
359 | 375 | /** | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/AbstractFollowStrategy.java
... | ... | @@ -226,14 +226,19 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { |
226 | 226 | } |
227 | 227 | |
228 | 228 | @Override |
229 | - public List<FollowRecordHistoryVO> queryRecordHistory(FollowRecord record) { | |
230 | - List<FollowRecord> followRecordList = new ArrayList<>(); | |
229 | + public List<FollowRecordHistoryVO> queryHistoryByRecord(FollowRecord record) { | |
231 | 230 | FollowTask task = followTaskService.getById(record.getTaskId()); |
231 | + return queryHistoryByTask(task); | |
232 | + } | |
233 | + | |
234 | + @Override | |
235 | + public List<FollowRecordHistoryVO> queryHistoryByTask(FollowTask task) { | |
236 | + List<FollowRecord> followRecordList = new ArrayList<>(); | |
232 | 237 | if (Objects.nonNull(task)) { |
233 | 238 | Long clueId = task.getClueId(); |
234 | 239 | List<FollowTask> taskList = followTaskService.list(Wrappers.<FollowTask>lambdaQuery() |
235 | 240 | .eq(FollowTask::getClueId, clueId) |
236 | - .ne(FollowTask::getId, record.getTaskId()) | |
241 | + .ne(FollowTask::getId, task.getId()) | |
237 | 242 | ); |
238 | 243 | if (!CollectionUtils.isEmpty(taskList)) { |
239 | 244 | for (FollowTask followTask : taskList) { |
... | ... | @@ -244,7 +249,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { |
244 | 249 | } |
245 | 250 | } |
246 | 251 | } |
247 | - List<FollowRecord> recordList = followRecordService.getRecordList(record.getTaskId()); | |
252 | + List<FollowRecord> recordList = followRecordService.getRecordList(task.getId()); | |
248 | 253 | if (!CollectionUtils.isEmpty(recordList)) { |
249 | 254 | followRecordList.addAll(recordList); |
250 | 255 | } | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/FollowStrategy.java
... | ... | @@ -128,7 +128,15 @@ public interface FollowStrategy { |
128 | 128 | * @param record |
129 | 129 | * @return |
130 | 130 | */ |
131 | - List<FollowRecordHistoryVO> queryRecordHistory(FollowRecord record); | |
131 | + List<FollowRecordHistoryVO> queryHistoryByRecord(FollowRecord record); | |
132 | + | |
133 | + /** | |
134 | + * 查询跟进记录 | |
135 | + * | |
136 | + * @param task | |
137 | + * @return | |
138 | + */ | |
139 | + List<FollowRecordHistoryVO> queryHistoryByTask(FollowTask task); | |
132 | 140 | |
133 | 141 | /** |
134 | 142 | * 上传跟进附件 | ... | ... |