|
@@ -22,11 +22,14 @@ import com.pig4cloud.pigx.admin.api.entity.SysUser;
|
|
import com.pig4cloud.pigx.admin.api.feign.RemoteUserService;
|
|
import com.pig4cloud.pigx.admin.api.feign.RemoteUserService;
|
|
import com.pig4cloud.pigx.common.core.util.R;
|
|
import com.pig4cloud.pigx.common.core.util.R;
|
|
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
|
import com.pig4cloud.pigx.common.core.util.SpringContextHolder;
|
|
|
|
+import com.pig4cloud.pigx.common.data.tenant.TenantContextHolder;
|
|
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
|
import com.pig4cloud.pigx.common.security.util.SecurityUtils;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.activiti.engine.delegate.DelegateTask;
|
|
import org.activiti.engine.delegate.DelegateTask;
|
|
import org.activiti.engine.delegate.TaskListener;
|
|
import org.activiti.engine.delegate.TaskListener;
|
|
|
|
+import org.springframework.messaging.simp.SimpMessagingTemplate;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -45,18 +48,26 @@ public class LeaveProcessTaskListener implements TaskListener {
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void notify(DelegateTask delegateTask) {
|
|
public void notify(DelegateTask delegateTask) {
|
|
|
|
+ SimpMessagingTemplate simpMessagingTemplate = SpringContextHolder.getBean(SimpMessagingTemplate.class);
|
|
RemoteUserService userService = SpringContextHolder.getBean(RemoteUserService.class);
|
|
RemoteUserService userService = SpringContextHolder.getBean(RemoteUserService.class);
|
|
|
|
|
|
R<List<SysUser>> result = userService.ancestorUsers(SecurityUtils.getUsername());
|
|
R<List<SysUser>> result = userService.ancestorUsers(SecurityUtils.getUsername());
|
|
|
|
+ List<String> remindUserList = new ArrayList<>();
|
|
|
|
|
|
if (CollUtil.isEmpty(result.getData())) {
|
|
if (CollUtil.isEmpty(result.getData())) {
|
|
log.info("用户 {} 不存在上级,任务单由当前用户审批", SecurityUtils.getUsername());
|
|
log.info("用户 {} 不存在上级,任务单由当前用户审批", SecurityUtils.getUsername());
|
|
delegateTask.addCandidateUser(SecurityUtils.getUsername());
|
|
delegateTask.addCandidateUser(SecurityUtils.getUsername());
|
|
|
|
+ remindUserList.add(SecurityUtils.getUsername());
|
|
} else {
|
|
} else {
|
|
List<String> userList = result.getData().stream().map(SysUser::getUsername).collect(Collectors.toList());
|
|
List<String> userList = result.getData().stream().map(SysUser::getUsername).collect(Collectors.toList());
|
|
log.info("当前任务 {},由 {}处理", delegateTask.getId(), userList);
|
|
log.info("当前任务 {},由 {}处理", delegateTask.getId(), userList);
|
|
delegateTask.addCandidateUsers(userList);
|
|
delegateTask.addCandidateUsers(userList);
|
|
|
|
+ remindUserList.addAll(userList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ remindUserList.forEach(user -> {
|
|
|
|
+ String target = String.format("%s-%s", SecurityUtils.getUsername(), TenantContextHolder.getTenantId());
|
|
|
|
+ simpMessagingTemplate.convertAndSendToUser(target, "/remind", delegateTask.getName());
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|