diff --git a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/db/LeaveNeedDo.java b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/db/LeaveNeedDo.java index 6d9a594..824b4b4 100644 --- a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/db/LeaveNeedDo.java +++ b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/db/LeaveNeedDo.java @@ -47,4 +47,8 @@ public class LeaveNeedDo extends BaseAuditableTimeEntity { * 是否已完成处理 */ private Boolean done; + /** + * 待办处理人 + */ + private Long todoUser; } diff --git a/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/RoleChangeTask.java b/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/RoleChangeTask.java index a382d16..506317f 100644 --- a/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/RoleChangeTask.java +++ b/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/RoleChangeTask.java @@ -117,7 +117,9 @@ public class RoleChangeTask { continue; } try { - leaveNeedDoBizService.fwgwChanged(Long.valueOf(idStr)); + Long leaveId = Long.valueOf(idStr); + leaveNeedDoBizService.fwgwChanged(leaveId); + leaveNeedDoBizService.checkAllcotaion(leaveId); } catch (Exception e) { if (StringUtils.isValid(idStr)) { failList.add(idStr); diff --git a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java index 93fb363..2d42027 100644 --- a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java +++ b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java @@ -124,6 +124,8 @@ public class LeaveNeedDoBizService { if (count <= 0) { return; } + Long todoUser = postUserDTOS.get(0).getUserId(); + leaveNeedDo.setTodoUser(todoUser); leaveNeedDoService.save(leaveNeedDo); Map map = new HashMap<>(); map.put("id", String.valueOf(leaveNeedDo.getId())); @@ -131,7 +133,7 @@ public class LeaveNeedDoBizService { map.put("userName", leaveNeedDo.getUserName()); map.put("customerNum", String.valueOf(count)); map.put("leaveTime", DateUtil.getFullDateString(leaveNeedDo.getEffectiveTime(), "-")); - push2Todo(leaveNeedDo.getId(), postUserDTOS.get(0).getUserId(), shopId, map); + push2Todo(leaveNeedDo.getId(), todoUser, shopId, map); } public AppPage getList(LoginAuthBean currentUser, LeaveQueryVO queryVO) { @@ -173,6 +175,26 @@ public class LeaveNeedDoBizService { } } + @Transactional(rollbackFor = Exception.class) + public void checkAllcotaion(Long leaveId) { + LeaveNeedDo needDo = leaveNeedDoService.getById(leaveId); + int i = customerService.count(Wrappers.lambdaQuery() + .eq(Customer::getAdviserId, needDo.getUserId()) + .eq(Customer::getYn, Boolean.TRUE) + ); + if (i > 0) { + return; + } + needDo.setDone(Boolean.TRUE); + leaveNeedDoService.updateById(needDo); + + Long todoUser = needDo.getTodoUser(); + if (Objects.nonNull(todoUser)) { + BackLogItemDTO backLogItemDTO = new BackLogItemDTO(todoUser, getLeave2doCode(), String.valueOf(leaveId), new Date(), null); + todoRpcService.complete(backLogItemDTO); + } + } + /** * 服务顾问角色变动跟进处理 * @@ -192,7 +214,6 @@ public class LeaveNeedDoBizService { if (CollectionUtils.isEmpty(list)) { return; } - for (ClueTask task : list) { followBizService.roleChangeEndTask(task); } @@ -320,7 +341,6 @@ public class LeaveNeedDoBizService { } private void finish(LoginAuthBean user, Long leaveId, String key) { - leaveNeedDoService.dealById(leaveId); List list = getAllFromCache(key); for (UserInfo info : list) { try { @@ -334,9 +354,6 @@ public class LeaveNeedDoBizService { } } clearKey(key); - BackLogItemDTO backLogItemDTO = new BackLogItemDTO(user.getUserId(), getLeave2doCode(), String.valueOf(leaveId), new Date(), null); - todoRpcService.complete(backLogItemDTO); - BoundListOperations listOps = redisTemplate.boundListOps(getNeedDealTaskKey()); listOps.rightPush(String.valueOf(leaveId)); }