Commit dbd3caa4d1559bb3fb046d1c85a03b47ae6e97f0

Authored by 张志伟
1 parent 740805dc

:zap: 优化角色变动分配算法

fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java
@@ -12,6 +12,7 @@ import cn.fw.valhalla.common.constant.RoleCode; @@ -12,6 +12,7 @@ import cn.fw.valhalla.common.constant.RoleCode;
12 import cn.fw.valhalla.common.utils.DateUtil; 12 import cn.fw.valhalla.common.utils.DateUtil;
13 import cn.fw.valhalla.domain.db.LeaveNeedDo; 13 import cn.fw.valhalla.domain.db.LeaveNeedDo;
14 import cn.fw.valhalla.domain.db.customer.Customer; 14 import cn.fw.valhalla.domain.db.customer.Customer;
  15 +import cn.fw.valhalla.domain.db.follow.FollowRecord;
15 import cn.fw.valhalla.domain.db.follow.FollowTask; 16 import cn.fw.valhalla.domain.db.follow.FollowTask;
16 import cn.fw.valhalla.domain.db.pool.CustomerCluePool; 17 import cn.fw.valhalla.domain.db.pool.CustomerCluePool;
17 import cn.fw.valhalla.domain.db.pool.StammkundePool; 18 import cn.fw.valhalla.domain.db.pool.StammkundePool;
@@ -397,9 +398,13 @@ public class LeaveNeedDoBizService { @@ -397,9 +398,13 @@ public class LeaveNeedDoBizService {
397 task.setCloseTime(new Date()); 398 task.setCloseTime(new Date());
398 task.setState(TaskStateEnum.DEFEAT); 399 task.setState(TaskStateEnum.DEFEAT);
399 task.setReason(TaskDefeatTypeEnum.D); 400 task.setReason(TaskDefeatTypeEnum.D);
  401 + FollowRecord taskRecord = followRecordService.getOne(Wrappers.<FollowRecord>lambdaQuery()
  402 + .eq(FollowRecord::getTaskId, task.getId())
  403 + .eq(FollowRecord::getAddTodo, Boolean.FALSE)
  404 + .isNull(FollowRecord::getFollowTime)
  405 + .last(" limit 1")
  406 + );
400 followTaskService.updateById(task); 407 followTaskService.updateById(task);
401 - followRecordService.removeByTaskId(task.getId());  
402 -  
403 if (Boolean.TRUE.equals(task.getRedistribution())) { 408 if (Boolean.TRUE.equals(task.getRedistribution())) {
404 clue.setCloseTime(new Date()); 409 clue.setCloseTime(new Date());
405 clue.setClueStatus(ClueStatusEnum.FAILURE); 410 clue.setClueStatus(ClueStatusEnum.FAILURE);
@@ -407,7 +412,6 @@ public class LeaveNeedDoBizService { @@ -407,7 +412,6 @@ public class LeaveNeedDoBizService {
407 } else { 412 } else {
408 clue.setRedistribution(Boolean.TRUE); 413 clue.setRedistribution(Boolean.TRUE);
409 } 414 }
410 -  
411 FollowTask nTask = new FollowTask(); 415 FollowTask nTask = new FollowTask();
412 nTask.setClueId(clue.getId()); 416 nTask.setClueId(clue.getId());
413 nTask.setCustomerId(clue.getRefererId()); 417 nTask.setCustomerId(clue.getRefererId());
@@ -421,6 +425,13 @@ public class LeaveNeedDoBizService { @@ -421,6 +425,13 @@ public class LeaveNeedDoBizService {
421 nTask.setFollowShop(shopId); 425 nTask.setFollowShop(shopId);
422 nTask.setGroupId(clue.getGroupId()); 426 nTask.setGroupId(clue.getGroupId());
423 followTaskService.save(nTask); 427 followTaskService.save(nTask);
  428 + if (Objects.nonNull(taskRecord)) {
  429 + taskRecord.setTaskId(nTask.getId());
  430 + taskRecord.setUserId(nTask.getFollowUser());
  431 + taskRecord.setUserName(nTask.getFollowUserName());
  432 + followRecordService.updateById(taskRecord);
  433 + return;
  434 + }
424 followBizService.startTask(nTask); 435 followBizService.startTask(nTask);
425 } 436 }
426 437