9de0e2d7
张志伟
feature(*): 公共池线索...
|
1
2
|
package cn.fw.valhalla.service.bus.follow.strategy.impl;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
3
4
|
import cn.fw.shirasawa.sdk.enums.BusinessTypeEnum;
import cn.fw.shirasawa.sdk.enums.DataTypeEnum;
|
95f1b470
张志伟
feature(*): bug修复
|
5
|
import cn.fw.shirasawa.sdk.enums.TerminationReason;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
6
|
import cn.fw.valhalla.common.utils.DateUtil;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
7
8
9
10
|
import cn.fw.valhalla.domain.db.OriginalData;
import cn.fw.valhalla.domain.db.follow.ClueTask;
import cn.fw.valhalla.domain.db.follow.FollowClue;
import cn.fw.valhalla.domain.db.pub.PubCluePool;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
11
12
13
|
import cn.fw.valhalla.domain.dto.CustomerDetailDto;
import cn.fw.valhalla.domain.enums.*;
import cn.fw.valhalla.domain.vo.setting.SettingVO;
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
14
15
|
import cn.fw.valhalla.rpc.ehr.EhrRpcService;
import cn.fw.valhalla.rpc.ehr.dto.StaffInfoDTO;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
16
17
18
19
20
21
22
23
24
|
import cn.fw.valhalla.rpc.oop.OopService;
import cn.fw.valhalla.rpc.oop.dto.ShopDTO;
import cn.fw.valhalla.rpc.shirasawa.ShirasawaRpcService;
import cn.fw.valhalla.rpc.shirasawa.dto.ClueStopDTO;
import cn.fw.valhalla.rpc.shirasawa.dto.FollowInitDTO;
import cn.fw.valhalla.service.bus.cust.CustomerBizService;
import cn.fw.valhalla.service.bus.follow.strategy.FollowStrategy;
import cn.fw.valhalla.service.bus.setting.SettingBizService;
import cn.fw.valhalla.service.data.ClueTaskService;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
25
|
import cn.fw.valhalla.service.data.PubCluePoolService;
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
26
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
27
|
import lombok.Getter;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
28
29
|
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
30
31
|
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
32
33
34
|
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
35
|
import java.time.Duration;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
36
|
import java.time.LocalDateTime;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
37
|
import java.util.*;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
38
39
|
import static cn.fw.common.businessvalidator.Validator.BV;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
40
|
import static cn.fw.valhalla.service.bus.setting.strategy.SettingStrategy.COMMON_BRAND_ID;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
41
42
43
44
45
46
47
48
49
50
51
52
|
/**
* 公共池线索跟进
*
* @author : kurisu
* @version : 1.0
* @className : PubFollowStrategy
* @description : 公共池线索跟进
* @date : 2023-03-21 16:52
*/
@Slf4j
@Component
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
53
|
public class PubFollowStrategy implements FollowStrategy {
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
54
|
private final PubCluePoolService pubCluePoolService;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
55
56
57
58
59
|
private final ClueTaskService clueTaskService;
private final CustomerBizService customerBizService;
private final ShirasawaRpcService shirasawaRpcService;
private final OopService oopService;
private final SettingBizService settingBizService;
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
60
|
private final EhrRpcService ehrRpcService;
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
61
62
63
64
65
|
private final StringRedisTemplate redisTemplate;
@Value("${spring.cache.custom.global-prefix}:follow:clue:change:STOP")
@Getter
private String clueChangeKey;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
66
67
|
@Autowired
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
68
69
70
71
72
|
public PubFollowStrategy(final PubCluePoolService pubCluePoolService,
final ClueTaskService clueTaskService,
final CustomerBizService customerBizService,
final ShirasawaRpcService shirasawaRpcService,
final OopService oopService,
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
73
|
final SettingBizService settingBizService,
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
74
75
|
final EhrRpcService ehrRpcService,
final StringRedisTemplate redisTemplate) {
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
76
|
this.pubCluePoolService = pubCluePoolService;
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
77
78
79
80
81
|
this.clueTaskService = clueTaskService;
this.customerBizService = customerBizService;
this.shirasawaRpcService = shirasawaRpcService;
this.oopService = oopService;
this.settingBizService = settingBizService;
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
82
|
this.ehrRpcService = ehrRpcService;
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
83
|
this.redisTemplate = redisTemplate;
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
}
@Override
public FollowTypeEnum getFollowType() {
return FollowTypeEnum.PL;
}
/**
* 公共池线索跟进此方法无效
*
* @param originalData
* @return
*/
@Override
public boolean origin2task(final OriginalData originalData) {
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
99
|
// 公共池线索不存在这种场景
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
100
101
102
|
return false;
}
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
103
104
105
106
107
108
|
/**
* 公共池线索跟进此方法无效
*
* @param followClue
* @return
*/
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
109
110
|
@Override
public void startClue(final FollowClue followClue) {
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
111
|
// 公共池线索不存在这种场景
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
112
|
}
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
113
|
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
114
115
116
117
118
119
|
@Override
public void settingChanged(List<SettingVO> setting, Long groupId) {
// 更改设置不影响公共池线索跟进
}
@Override
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
120
121
|
public void forceStopClue(final FollowClue clue, final boolean fromTask) {
// 公共池线索不存在这种场景
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
122
123
|
}
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
124
|
@Transactional(rollbackFor = Exception.class)
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
125
126
127
128
129
130
131
132
133
134
135
136
|
public void startClue(final PubCluePool pubClue) {
ClueTask clueTask = new ClueTask();
clueTask.setClueId(pubClue.getId());
clueTask.setType(getFollowType());
clueTask.setBeginTime(pubClue.getStartTime().atStartOfDay());
clueTask.setRedistribution(Boolean.FALSE);
clueTask.setDeadline(pubClue.getDeadline().atStartOfDay());
clueTask.setState(TaskStateEnum.ONGOING);
clueTask.setGroupId(pubClue.getGroupId());
clueTask.setFollowShop(pubClue.getShopId());
clueTask.setFollowUser(pubClue.getAdviserId());
clueTask.setFollowUserName(pubClue.getAdviserName());
|
89bd2e6c
张志伟
feature(*): 新增区域站...
|
137
|
clueTask.setVersion(2);
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
138
|
clueTaskService.save(clueTask);
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
139
|
final FollowInitDTO followInitDTO = creteFollowInitDTO(pubClue, clueTask);
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
140
|
shirasawaRpcService.createFollowData(followInitDTO);
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
141
142
|
}
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
143
144
145
146
147
|
@Transactional(rollbackFor = Exception.class)
public void clueConvertSuccess(final PubCluePool pubClue) {
pubClue.setState(PublicClueStateEnum.COMPLETE);
pubClue.setCloseTime(LocalDateTime.now());
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
148
|
ClueTask clueTask = clueTaskService.queryOngoingTaskByClueId(pubClue.getId(), FollowTypeEnum.PL);
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
149
150
151
152
153
154
155
156
157
158
159
160
|
if (Objects.nonNull(clueTask)) {
clueTask.setCloseTime(LocalDateTime.now());
clueTask.setFinishUser(pubClue.getAdviserId());
StaffInfoDTO infoDTO = ehrRpcService.queryStaffInfo(pubClue.getAdviserId());
if (Objects.nonNull(infoDTO)) {
clueTask.setFinishUserName(infoDTO.getName());
}
clueTask.setState(TaskStateEnum.COMPLETE);
clueTask.setFinishShop(pubClue.getShopId());
boolean rpcSucess = rpcStopTask(clueTask);
clueTask.setRpcSuccess(rpcSucess);
clueTaskService.updateById(clueTask);
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
161
162
|
redisTemplate.opsForSet().add(getClueChangeKey(), String.valueOf(clueTask.getId()));
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
163
164
165
166
167
168
169
170
|
}
pubCluePoolService.updateById(pubClue);
}
@Transactional(rollbackFor = Exception.class)
public void clueConvertFailed(final PubCluePool pubClue, Long userId, Long shopId) {
pubClue.setState(PublicClueStateEnum.DEFEAT);
pubClue.setCloseTime(LocalDateTime.now());
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
171
|
pubClue.setDefeatReason(TaskDefeatTypeEnum.F);
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
172
|
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
173
|
ClueTask clueTask = clueTaskService.queryOngoingTaskByClueId(pubClue.getId(), FollowTypeEnum.PL);
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
174
175
176
177
178
179
180
181
182
183
184
185
186
|
if (Objects.nonNull(clueTask)) {
clueTask.setCloseTime(LocalDateTime.now());
clueTask.setFinishUser(pubClue.getAdviserId());
StaffInfoDTO infoDTO = ehrRpcService.queryStaffInfo(userId);
if (Objects.nonNull(infoDTO)) {
clueTask.setFinishUserName(infoDTO.getName());
}
clueTask.setState(TaskStateEnum.DEFEAT);
clueTask.setReason(TaskDefeatTypeEnum.F);
clueTask.setFinishShop(shopId);
boolean rpcSucess = rpcStopTask(clueTask);
clueTask.setRpcSuccess(rpcSucess);
clueTaskService.updateById(clueTask);
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
187
188
|
redisTemplate.opsForSet().add(getClueChangeKey(), String.valueOf(clueTask.getId()));
|
6f401c2d
张志伟
feature(*): 公共池完成逻辑
|
189
190
191
192
|
}
pubCluePoolService.updateById(pubClue);
}
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
/**
* 审批而来的数据
*
* @param vin
* @param groupId
*/
@Transactional(rollbackFor = Exception.class)
public void clueConvertFailedFromFlow(final String vin, final Long groupId) {
PubCluePool cluePool = pubCluePoolService.getOne(Wrappers.<PubCluePool>lambdaQuery()
.eq(PubCluePool::getVin, vin)
.eq(PubCluePool::getGroupId, groupId)
, false);
if (Objects.isNull(cluePool)) {
return;
}
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
208
|
|
ccd3fffa
张志伟
feature(*): bug修复
|
209
210
|
Long clueId = cluePool.getId();
ClueTask clueTask = clueTaskService.queryOngoingTaskByClueId(clueId, FollowTypeEnum.PL);
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
211
212
213
214
215
216
217
|
if (Objects.nonNull(clueTask)) {
clueTask.setCloseTime(LocalDateTime.now());
clueTask.setState(TaskStateEnum.DEFEAT);
clueTask.setReason(TaskDefeatTypeEnum.A);
boolean rpcSucess = rpcStopTask(clueTask);
clueTask.setRpcSuccess(rpcSucess);
clueTaskService.updateById(clueTask);
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
218
219
|
redisTemplate.opsForSet().add(getClueChangeKey(), String.valueOf(clueTask.getId()));
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
220
221
|
}
if (PublicClueStateEnum.ONGOING.equals(cluePool.getState())) {
|
ccd3fffa
张志伟
feature(*): bug修复
|
222
223
224
|
cluePool.setState(PublicClueStateEnum.DEFEAT);
cluePool.setCloseTime(LocalDateTime.now());
cluePool.setDefeatReason(TaskDefeatTypeEnum.A);
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
225
226
227
228
|
pubCluePoolService.updateById(cluePool);
}
}
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
229
230
231
232
233
234
235
236
237
238
239
240
241
|
@Override
@Transactional(rollbackFor = Exception.class)
public void onRoleChangeCloseTask(final ClueTask task) {
task.setState(TaskStateEnum.DEFEAT);
task.setCloseTime(LocalDateTime.now());
task.setReason(TaskDefeatTypeEnum.D);
boolean rpcSucess = rpcStopTask(task);
if (!rpcSucess) {
log.info("跟进系统终止任务失败");
}
task.setRpcSuccess(rpcSucess);
clueTaskService.updateById(task);
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
242
|
redisTemplate.opsForSet().add(getClueChangeKey(), String.valueOf(task.getId()));
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
243
244
245
|
}
@Override
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
246
|
public void forceStopTask(final ClueTask task) {
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
247
|
// 公共池线索不存在这种场景
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
248
249
|
}
|
953745ee
张志伟
feature(*): 新增区域站...
|
250
251
252
253
254
255
|
/**
* 维护跟进次数
*
* @param clue 虚拟的跟进线索[只有id 和类型 其他信息没有]
* @param overdue
*/
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
256
|
@Override
|
2a40e3f8
张志伟
feature(*): 续保跟进调整
|
257
|
public void onFollowComplete(final FollowClue clue, final boolean overdue) {
|
8bf465d6
张志伟
feature(*): 修改人员站岗信息
|
258
|
ClueTask task = clueTaskService.queryOngoingTaskByClueId(clue.getId(), FollowTypeEnum.PL);
|
2a40e3f8
张志伟
feature(*): 续保跟进调整
|
259
|
if (!overdue && Objects.nonNull(task)) {
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
260
261
262
263
|
Integer times = Optional.ofNullable(task.getTimes()).orElse(0);
task.setTimes(times + 1);
clueTaskService.updateById(task);
}
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
264
265
266
267
|
}
@Override
public void syncEndTask(final ClueTask task) {
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
268
269
270
271
272
273
|
if (TaskStateEnum.ONGOING.equals(task.getState())) {
return;
}
boolean res = rpcStopTask(task);
task.setRpcSuccess(res);
clueTaskService.updateById(task);
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
274
275
276
|
}
@Override
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
|
@Transactional(rollbackFor = Exception.class)
public void closeTask(final ClueTask task) {
final Long clueId = task.getClueId();
PubCluePool pubCluePool = pubCluePoolService.getById(clueId);
BV.notNull(pubCluePool, () -> "公共池跟进线索不存在: " + clueId);
task.setState(TaskStateEnum.DEFEAT);
task.setCloseTime(task.getDeadline().minusSeconds(1L));
task.setReason(TaskDefeatTypeEnum.C);
boolean rpcSucess = rpcStopTask(task);
if (!rpcSucess) {
log.info("跟进系统终止任务失败");
}
task.setRpcSuccess(rpcSucess);
clueTaskService.updateById(task);
pubCluePool.setCloseTime(task.getCloseTime());
pubCluePool.setState(PublicClueStateEnum.DEFEAT);
pubCluePool.setDefeatReason(task.getReason());
pubCluePoolService.updateById(pubCluePool);
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
295
|
customerBizService.pubTaskEndAbandon(pubCluePool);
|
9c86aa21
张志伟
feature(*): 线索到期后...
|
296
|
redisTemplate.opsForSet().add(getClueChangeKey(), String.valueOf(task.getId()));
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
297
|
}
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
298
299
300
301
302
|
private boolean rpcStopTask(ClueTask clueTask) {
ClueStopDTO clueStopDTO = new ClueStopDTO();
clueStopDTO.setType(DataTypeEnum.ofValue(clueTask.getType().getValue()));
clueStopDTO.setBusinessType(BusinessTypeEnum.AS);
|
2a40e3f8
张志伟
feature(*): 续保跟进调整
|
303
|
clueStopDTO.setDetailId(String.valueOf(clueTask.getClueId()));
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
304
305
306
307
308
309
310
311
312
|
clueStopDTO.setShopId(clueTask.getFinishShop());
ShopDTO shop = oopService.shop(clueTask.getFinishShop());
if (Objects.nonNull(shop)) {
clueStopDTO.setShopName(shop.getShortName());
}
clueStopDTO.setCompleteTime(DateUtil.localDateTime2Date(clueTask.getCloseTime()));
clueStopDTO.setGroupId(clueTask.getGroupId());
clueStopDTO.setUserId(clueTask.getFollowUser());
clueStopDTO.setUserName(clueTask.getFollowUserName());
|
95f1b470
张志伟
feature(*): bug修复
|
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
clueStopDTO.setReason(TerminationReason.ABANDON);
if (TaskStateEnum.DEFEAT.equals(clueTask.getState())) {
clueStopDTO.setTermination(Boolean.TRUE);
if (TaskDefeatTypeEnum.A.equals(clueTask.getReason())) {
clueStopDTO.setReason(TerminationReason.ABANDON);
}
if (TaskDefeatTypeEnum.F.equals(clueTask.getReason())) {
clueStopDTO.setReason(TerminationReason.ANOTHER);
}
if (TaskDefeatTypeEnum.D.equals(clueTask.getReason())) {
clueStopDTO.setReason(TerminationReason.ROLE_CHANGE);
}
}
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
|
return shirasawaRpcService.stopTask(clueStopDTO);
}
private FollowInitDTO creteFollowInitDTO(PubCluePool pubClue, ClueTask clueTask) {
CustomerDetailDto customerDetailDto = customerBizService.queryByFrameNo(pubClue.getVin(), pubClue.getGroupId());
BV.notNull(customerDetailDto, () -> "档案信息有误");
final FollowInitDTO followInitDTO = FollowInitDTO.builder()
.businessType(BusinessTypeEnum.AS)
.type(DataTypeEnum.ofValue(getFollowType().getValue()))
.customerId(customerDetailDto.getId())
.customerName(customerDetailDto.getName())
.memberId(customerDetailDto.getMemberId())
.plateNo(customerDetailDto.getPlateNo())
.frameNo(pubClue.getVin())
.contacts(customerDetailDto.getMobile())
|
2a40e3f8
张志伟
feature(*): 续保跟进调整
|
343
|
.detailId(String.valueOf(clueTask.getClueId()))
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
344
345
346
347
348
349
350
|
.generateTime(DateUtil.localDateTime2Date(clueTask.getBeginTime()))
.deadline(DateUtil.localDateTime2Date(clueTask.getDeadline()))
.groupId(clueTask.getGroupId())
.shopId(clueTask.getFollowShop())
.userId(clueTask.getFollowUser())
.userName(clueTask.getFollowUserName())
.bizId(pubClue.getVin())
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
351
|
.followDuration(Duration.ofHours(36L))
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
352
353
|
.build();
followInitDTO.setShopName(pubClue.getShopName());
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
354
355
|
Optional<SettingVO> setting = settingBizService.querySettingByType(FollowTypeEnum.OT, SettingTypeEnum.EFFECTIVE_TIME, clueTask.getGroupId(), COMMON_BRAND_ID);
setting.ifPresent(r -> {
|
2a51fef7
张志伟
feature(*): 清理代码监...
|
356
357
358
359
360
361
|
Integer unit = r.getUnit();
int detailValue = Optional.ofNullable(r.getDetailValue()).orElse(0);
Duration duration = transferDuration(detailValue, unit);
BV.notNull(duration, () -> "设置有误,周期计算不成功");
followInitDTO.setFollowDuration(duration);
});
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
|
Map<String, String> noteMap = createNoteMap(pubClue, customerDetailDto);
followInitDTO.setNoteMap(noteMap);
return followInitDTO;
}
private Map<String, String> createNoteMap(PubCluePool pubClue, CustomerDetailDto detailDto) {
Map<String, String> dynamicMap = new HashMap<>();
if (Objects.nonNull(pubClue)) {
int count = Optional.ofNullable(detailDto.getArrivalCount()).orElse(0);
Date buyDate = detailDto.getBuyDate();
Date expires = detailDto.getInsuranceExpires();
String name = detailDto.getName();
String vin = pubClue.getVin();
|
efdaf957
张志伟
feature(*): bug修复
|
377
|
String plate = detailDto.getPlateNo();
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
378
379
380
381
382
383
384
385
|
String arrivalCount = String.valueOf(count);
String defeatCount = "0";
String vehicleAge = String.valueOf(Math.abs(DateUtil.sub(buyDate, new Date(), "y")));
String _buyDate = DateUtil.getStringDateShort(buyDate);
String insuranceExpires = DateUtil.getStringDateShort(expires);
dynamicMap.put("name", name);
dynamicMap.put("vin", vin);
|
efdaf957
张志伟
feature(*): bug修复
|
386
|
dynamicMap.put("plate", plate);
|
3d6f8270
张志伟
feature(*): 公共池线索...
|
387
388
389
390
391
392
393
394
|
dynamicMap.put("arrivalCount", arrivalCount);
dynamicMap.put("defeatCount", defeatCount);
dynamicMap.put("vehicleAge", vehicleAge + "年");
dynamicMap.put("buyDate", _buyDate);
dynamicMap.put("insuranceExpires", insuranceExpires);
}
return dynamicMap;
}
|
9de0e2d7
张志伟
feature(*): 公共池线索...
|
395
|
}
|