Commit 24e78cebf0189c658b558315e38cbfe00fae3a2e

Authored by 张志伟
2 parents 867c91de 96e03a33

Merge remote-tracking branch 'origin/dev' into test

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
... ... @@ -41,6 +41,10 @@ public class FollowPoolDTO {
41 41 */
42 42 private LocalDateTime startTime;
43 43 /**
  44 + * 任务开始时间
  45 + */
  46 + private LocalDateTime deadline;
  47 + /**
44 48 * 跟进次数
45 49 */
46 50 private Integer times;
... ...
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/enums/FeedbackTypeEnum.java
... ... @@ -19,11 +19,11 @@ public enum FeedbackTypeEnum implements IEnum<Integer> {
19 19 /**
20 20 * 微聊
21 21 */
22   - EXPENSIVE(2, "收费高"),
  22 + EXPENSIVE(2, "价格高"),
23 23 /**
24 24 * 过几天进站
25 25 */
26   - WAITING(3, "过几天进"),
  26 + WAITING(3, "过几天进"),
27 27 /**
28 28 * 微信
29 29 */
... ...
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&lt;ApproveCheckMessageDto&gt; {
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 * 上传跟进附件
... ...