Commit 6b1e138dcfce9b7bcd88d55e85e089d23a2bc905
1 parent
844f64a3
feature(*): 升级依赖
- 升级依赖引入kotlin支持 - 新增补贴跟进类型
Showing
11 changed files
with
103 additions
and
3 deletions
fw-shirasawa-domain/src/main/java/cn/fw/shirasawa/domain/enums/FollowTypeEnum.java
fw-shirasawa-sdk/pom.xml
fw-shirasawa-sdk/src/main/java/cn/fw/shirasawa/sdk/enums/DataTypeEnum.java
fw-shirasawa-sdk/src/main/java/cn/fw/shirasawa/sdk/param/FollowGenerateDTO.java
... | ... | @@ -4,6 +4,7 @@ import cn.fw.shirasawa.sdk.enums.BusinessTypeEnum; |
4 | 4 | import cn.fw.shirasawa.sdk.enums.DataTypeEnum; |
5 | 5 | import lombok.*; |
6 | 6 | |
7 | +import javax.validation.constraints.Future; | |
7 | 8 | import javax.validation.constraints.NotBlank; |
8 | 9 | import javax.validation.constraints.NotEmpty; |
9 | 10 | import javax.validation.constraints.NotNull; |
... | ... | @@ -76,6 +77,7 @@ public class FollowGenerateDTO { |
76 | 77 | /** |
77 | 78 | * 截止时间 |
78 | 79 | */ |
80 | + @Future(message = "截止时间必须是未来时间") | |
79 | 81 | private Date deadline; |
80 | 82 | /** |
81 | 83 | * 首次跟进待办截止时间 | ... | ... |
fw-shirasawa-server/src/main/resources/application-gray.yml
fw-shirasawa-server/src/main/resources/application-prd.yml
fw-shirasawa-server/src/main/resources/application-test.yml
fw-shirasawa-server/src/main/resources/application.yml
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/AbstractFollowStrategy.java
... | ... | @@ -695,7 +695,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy { |
695 | 695 | */ |
696 | 696 | protected boolean dealRepeatClue(CluePool cluePool, FollowStrategy strategy) { |
697 | 697 | //判断是否可以去重 |
698 | - if (null == cluePool.getCoverFlag() || Boolean.FALSE.equals(cluePool.getCoverFlag())) { | |
698 | + if (!Boolean.TRUE.equals(cluePool.getCoverFlag())) { | |
699 | 699 | return false; |
700 | 700 | } |
701 | 701 | boolean isContainAF = false; | ... | ... |
fw-shirasawa-service/src/main/java/cn/fw/shirasawa/service/bus/follow/strategy/impl/SFFollowStrategy.java
0 → 100644
1 | +package cn.fw.shirasawa.service.bus.follow.strategy.impl; | |
2 | + | |
3 | +import cn.fw.shirasawa.domain.db.OriginalData; | |
4 | +import cn.fw.shirasawa.domain.db.follow.FollowRecord; | |
5 | +import cn.fw.shirasawa.domain.db.follow.FollowTask; | |
6 | +import cn.fw.shirasawa.domain.db.pool.CluePool; | |
7 | +import cn.fw.shirasawa.domain.enums.ClueStatusEnum; | |
8 | +import cn.fw.shirasawa.domain.enums.FollowTypeEnum; | |
9 | +import cn.fw.shirasawa.service.bus.follow.strategy.AbstractFollowStrategy; | |
10 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
11 | +import lombok.Getter; | |
12 | +import lombok.extern.slf4j.Slf4j; | |
13 | +import org.springframework.beans.factory.annotation.Value; | |
14 | +import org.springframework.stereotype.Component; | |
15 | +import org.springframework.transaction.annotation.Transactional; | |
16 | +import org.springframework.util.CollectionUtils; | |
17 | + | |
18 | +import java.time.LocalDate; | |
19 | +import java.time.LocalDateTime; | |
20 | +import java.util.List; | |
21 | +import java.util.Objects; | |
22 | +import java.util.Optional; | |
23 | + | |
24 | +import static cn.fw.common.businessvalidator.Validator.BV; | |
25 | + | |
26 | +/** | |
27 | + * 补贴跟进 | |
28 | + * | |
29 | + * @author : kurisu | |
30 | + * @version : 1.0 | |
31 | + * @className : SFFollowStrategy | |
32 | + * @description : 补贴跟进 | |
33 | + * @date : 2023-03-13 15:16 | |
34 | + */ | |
35 | +@Slf4j | |
36 | +@Component | |
37 | +@SuppressWarnings("Duplicates") | |
38 | +public class SFFollowStrategy extends AbstractFollowStrategy { | |
39 | + @Value("${follow.todo.SFCode}") | |
40 | + @Getter | |
41 | + private String SFCode; | |
42 | + | |
43 | + @Override | |
44 | + public FollowTypeEnum getFollowType() { | |
45 | + return FollowTypeEnum.SF; | |
46 | + } | |
47 | + | |
48 | + @Override | |
49 | + public String getTodoCode() { | |
50 | + return getSFCode(); | |
51 | + } | |
52 | + | |
53 | + @Override | |
54 | + @Transactional(rollbackFor = Exception.class) | |
55 | + public boolean origin2task(OriginalData originalData) throws Exception { | |
56 | + List<CluePool> list = cluePoolService.list(Wrappers.<CluePool>lambdaQuery() | |
57 | + .eq(CluePool::getClueType, getFollowType()) | |
58 | + .eq(CluePool::getCustomerId, originalData.getCustomerId()) | |
59 | + .eq(CluePool::getRefererId, originalData.getDetailId()) | |
60 | + .eq(CluePool::getGroupId, originalData.getGroupId()) | |
61 | + .in(CluePool::getClueStatus, ClueStatusEnum.ONGOING, ClueStatusEnum.WAITING) | |
62 | + ); | |
63 | + if (!CollectionUtils.isEmpty(list)) { | |
64 | + return true; | |
65 | + } | |
66 | + CluePool cluePool = transformClue(originalData); | |
67 | + cluePool.setStartTime(originalData.getGenerateTime()); | |
68 | + LocalDateTime deadLine = Optional.ofNullable(originalData.getDeadline()).orElse(LocalDate.now().plusYears(10L).atStartOfDay()); | |
69 | + cluePool.setDeadline(deadLine.minusSeconds(1L)); | |
70 | + return cluePoolService.save(cluePool); | |
71 | + } | |
72 | + | |
73 | + @Override | |
74 | + @Transactional(rollbackFor = Exception.class) | |
75 | + public void startClue(CluePool cluePool) throws Exception { | |
76 | + dealRepeatClue(cluePool, this); | |
77 | + FollowTask task = this.createTask(cluePool); | |
78 | + boolean saveTask = followTaskService.save(task); | |
79 | + BV.isTrue(saveTask, () -> "生成跟进任务失败"); | |
80 | + FollowRecord record = createRecord(task); | |
81 | + record.setTodoCode(getTodoCode()); | |
82 | + record.setNote(cluePool.getNote()); | |
83 | + record.setContacts(cluePool.getContacts()); | |
84 | + if (Objects.nonNull(cluePool.getFirstDeadline())) { | |
85 | + record.setDeadline(cluePool.getFirstDeadline()); | |
86 | + } | |
87 | + followRecordService.save(record); | |
88 | + | |
89 | + cluePool.setClueStatus(ClueStatusEnum.ONGOING); | |
90 | + cluePoolService.updateById(cluePool); | |
91 | + } | |
92 | +} | ... | ... |
pom.xml
... | ... | @@ -28,7 +28,7 @@ |
28 | 28 | <properties> |
29 | 29 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
30 | 30 | <java.version>1.8</java.version> |
31 | - <fw.shirasawa.sdk>1.0.2</fw.shirasawa.sdk> | |
31 | + <fw.shirasawa.sdk>1.0.3</fw.shirasawa.sdk> | |
32 | 32 | <!-- util --> |
33 | 33 | <spring-retry.version>1.2.4.RELEASE</spring-retry.version> |
34 | 34 | <!-- database --> | ... | ... |