Commit 667e410ca5b6022cafcf54625efb9e2ed4d94987

Authored by 张志伟
1 parent 4af298c8

:sparkles: 角色变动分配档案处理跟进任务逻辑完善

fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java
... ... @@ -12,6 +12,7 @@ import cn.fw.valhalla.common.enums.AllocationTypeEnum;
12 12 import cn.fw.valhalla.common.utils.DateUtil;
13 13 import cn.fw.valhalla.domain.db.LeaveNeedDo;
14 14 import cn.fw.valhalla.domain.db.customer.Customer;
  15 +import cn.fw.valhalla.domain.db.follow.FollowRecord;
15 16 import cn.fw.valhalla.domain.db.follow.FollowTask;
16 17 import cn.fw.valhalla.domain.db.pool.CustomerCluePool;
17 18 import cn.fw.valhalla.domain.db.pool.StammkundePool;
... ... @@ -67,6 +68,7 @@ public class LeaveNeedDoBizService {
67 68 private final OopService oopService;
68 69 private final FollowBizService followBizService;
69 70 private final FollowTaskService followTaskService;
  71 + private final FollowRecordService followRecordService;
70 72 private final DistributedLocker distributedLocker;
71 73 private final ImSendMessage imSendMessage;
72 74 private final TodoRpcService todoRpcService;
... ... @@ -318,16 +320,23 @@ public class LeaveNeedDoBizService {
318 320 if (Objects.isNull(task)) {
319 321 return;
320 322 }
  323 + UserInfoDTO user = userService.user(adviserId);
  324 + String userName = Objects.nonNull(user) ? user.getUserName() : "";
  325 +
321 326 if (Boolean.TRUE.equals(task.getRedistribution())) {
322 327 task.setFollowUser(adviserId);
  328 + task.setFollowUserName(userName);
323 329 task.setFollowShop(shopId);
324 330 followTaskService.updateById(task);
  331 + stopRecord(task);
325 332 return;
326 333 }
327 334 task.setCloseTime(new Date());
328 335 task.setState(TaskStateEnum.DEFEAT);
329 336 task.setReason(TaskDefeatTypeEnum.D);
330 337 followTaskService.updateById(task);
  338 + followRecordService.removeByTaskId(task.getId());
  339 +
331 340 FollowTask nTask = new FollowTask();
332 341 nTask.setClueId(clue.getId());
333 342 nTask.setCustomerId(clue.getRefererId());
... ... @@ -337,12 +346,44 @@ public class LeaveNeedDoBizService {
337 346 nTask.setRedistribution(Boolean.TRUE);
338 347 nTask.setDeadline(clue.getDeadline());
339 348 nTask.setFollowUser(adviserId);
  349 + task.setFollowUserName(userName);
340 350 nTask.setFollowShop(shopId);
341 351 nTask.setGroupId(clue.getGroupId());
342 352 followTaskService.save(nTask);
343 353 followBizService.startTask(nTask);
344 354 }
345 355  
  356 + private void stopRecord(FollowTask task) {
  357 + List<FollowRecord> list = followRecordService.list(Wrappers.<FollowRecord>lambdaQuery()
  358 + .eq(FollowRecord::getTaskId, task.getId())
  359 + .eq(FollowRecord::getOutTime, Boolean.FALSE)
  360 + .eq(FollowRecord::getAddTodo, Boolean.FALSE)
  361 + .isNull(FollowRecord::getFollowTime)
  362 + );
  363 + if (!CollectionUtils.isEmpty(list)) {
  364 + list.forEach(r -> {
  365 + r.setUserId(task.getFollowUser());
  366 + r.setUserName(task.getFollowUserName());
  367 + r.setShopId(task.getFollowShop());
  368 + });
  369 + followRecordService.updateBatchById(list);
  370 + }
  371 +
  372 + list = followRecordService.list(Wrappers.<FollowRecord>lambdaQuery()
  373 + .eq(FollowRecord::getTaskId, task.getId())
  374 + .eq(FollowRecord::getOutTime, Boolean.FALSE)
  375 + .eq(FollowRecord::getAddTodo, Boolean.TRUE)
  376 + .isNull(FollowRecord::getFollowTime)
  377 + );
  378 + if (CollectionUtils.isEmpty(list)) {
  379 + return;
  380 + }
  381 + for (FollowRecord record : list) {
  382 + followBizService.completeRecordAndEnd(record, true);
  383 + }
  384 + }
  385 +
  386 +
346 387 private void finish(LoginAuthBean user, Long leaveId, String key) {
347 388 leaveNeedDoService.dealById(leaveId);
348 389 List<UserInfo> list = getAllFromCache(key);
... ...
fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowBizService.java
... ... @@ -173,10 +173,10 @@ public class FollowBizService {
173 173 * @param record
174 174 */
175 175 @Transactional(rollbackFor = Exception.class)
176   - public void completeRecordAndEnd(FollowRecord record) {
  176 + public void completeRecordAndEnd(FollowRecord record, boolean needNew) {
177 177 FollowStrategy strategy = followMap.get(record.getType());
178 178 Assert.notNull(strategy, "strategy cannot be null");
179   - strategy.completeRecordAndEnd(record);
  179 + strategy.completeRecordAndEnd(record, needNew);
180 180 }
181 181  
182 182 /**
... ...
fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/strategy/AbstractFollowStrategy.java
... ... @@ -213,7 +213,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy {
213 213  
214 214 @Override
215 215 @Transactional(rollbackFor = Exception.class)
216   - public void completeRecordAndEnd(FollowRecord record) {
  216 + public void completeRecordAndEnd(FollowRecord record, boolean needNew) {
217 217 boolean equals = Boolean.FALSE.equals(record.getOutTime()) && Objects.isNull(record.getFollowTime());
218 218 if (!equals) {
219 219 return;
... ... @@ -221,7 +221,9 @@ public abstract class AbstractFollowStrategy implements FollowStrategy {
221 221 final Date followTime = DateUtil.localDateTime2Date(LocalDateTime.now());
222 222 record.setFollowTime(followTime);
223 223 followRecordService.updateById(record);
224   - this.addTaskRecord(record, false);
  224 + if (needNew) {
  225 + this.addTaskRecord(record, false);
  226 + }
225 227 BackLogItemDTO dto = new BackLogItemDTO(record.getUserId(), getItemCode(record.getType()), String.valueOf(record.getId()), followTime, record.getShopId());
226 228 todoRpcService.complete(dto);
227 229 }
... ... @@ -822,7 +824,7 @@ public abstract class AbstractFollowStrategy implements FollowStrategy {
822 824 if (!CollectionUtils.isEmpty(recordList)) {
823 825 for (FollowRecord record : recordList) {
824 826 if (Boolean.TRUE.equals(record.getAddTodo())) {
825   - completeRecordAndEnd(record);
  827 + completeRecordAndEnd(record, false);
826 828 } else {
827 829 followRecordService.removeById(record.getId());
828 830 }
... ...
fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/strategy/FollowStrategy.java
... ... @@ -69,7 +69,7 @@ public interface FollowStrategy {
69 69 *
70 70 * @param record
71 71 */
72   - void completeRecordAndEnd(FollowRecord record);
  72 + void completeRecordAndEnd(FollowRecord record, boolean needNew);
73 73  
74 74 /**
75 75 * 上传跟进附件
... ...
fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/strategy/impl/ACFollowStrategy.java
... ... @@ -104,7 +104,7 @@ public class ACFollowStrategy extends AbstractFollowStrategy {
104 104 }
105 105  
106 106 @Override
107   - public void completeRecordAndEnd(FollowRecord record) {
  107 + public void completeRecordAndEnd(FollowRecord record, boolean needNew) {
108 108 final Date followTime = DateUtil.localDateTime2Date(LocalDateTime.now());
109 109 BackLogItemDTO dto = new BackLogItemDTO(record.getUserId(), getItemCode(record.getType()), String.valueOf(record.getId()), followTime, record.getShopId());
110 110 if (Boolean.FALSE.equals(record.getOutTime()) && Objects.isNull(record.getFollowTime())) {
... ...