|
@@ -134,6 +134,9 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
@Resource
|
|
@Resource
|
|
SysMessageService sysMessageService;
|
|
SysMessageService sysMessageService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 根据deploymentId查找processDefinitionId
|
|
* 根据deploymentId查找processDefinitionId
|
|
*
|
|
*
|
|
@@ -762,6 +765,43 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
|
|
|
boolean replace = false;
|
|
boolean replace = false;
|
|
String oldUserId = null;
|
|
String oldUserId = null;
|
|
|
|
+ List<Long> originalUserIdList = new ArrayList<>();
|
|
|
|
+ List<Task> taskList = taskService.createTaskQuery()
|
|
|
|
+ .processInstanceId(String.valueOf(tfCustomFlowEntity.getFlowId())).list();
|
|
|
|
+ if (!CollectionUtils.isEmpty(taskList) && taskList.size() > 1) {
|
|
|
|
+ for (Task t : taskList) {
|
|
|
|
+ if (Objects.nonNull(t.getAssignee())) {
|
|
|
|
+ originalUserIdList.add(Long.parseLong(t.getAssignee()));
|
|
|
|
+ } else {
|
|
|
|
+ List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
|
|
|
|
+ if (!CollectionUtils.isEmpty(identityLinkList)) {
|
|
|
|
+ for (IdentityLink i : identityLinkList) {
|
|
|
|
+ originalUserIdList.add(Long.parseLong(i.getUserId()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (Objects.nonNull(taskList.get(0).getAssignee())) {
|
|
|
|
+ originalUserIdList.add(Long.parseLong(taskList.get(0).getAssignee()));
|
|
|
|
+ } else {
|
|
|
|
+ List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(taskList.get(0).getId());
|
|
|
|
+ if (!CollectionUtils.isEmpty(identityLinkList)) {
|
|
|
|
+ for (IdentityLink i : identityLinkList) {
|
|
|
|
+ originalUserIdList.add(Long.parseLong(i.getUserId()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!CollectionUtils.isEmpty(originalUserIdList)) {
|
|
|
|
+ List<SysRole> sysRoleList = sysUserRoleService.listRoleByUserIds(originalUserIdList);
|
|
|
|
+ List<SysRole> sysRoleTempList = sysRoleList.stream()
|
|
|
|
+ .filter(s -> s.getType() == RoleTypeEnum.EFFECT_ENGINEER
|
|
|
|
+ || s.getType() == RoleTypeEnum.ASSISTANT_ENGINEER).collect(Collectors.toList());
|
|
|
|
+ if (CollectionUtils.isEmpty(sysRoleTempList)) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (!multiInstance) {
|
|
if (!multiInstance) {
|
|
oldUserId = task.getAssignee();
|
|
oldUserId = task.getAssignee();
|
|
if (Objects.nonNull(task.getAssignee())) {
|
|
if (Objects.nonNull(task.getAssignee())) {
|
|
@@ -793,11 +833,25 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
if (!replace) {
|
|
if (!replace) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- List<Task> taskList = taskService.createTaskQuery()
|
|
|
|
- .processInstanceId(String.valueOf(tfCustomFlowEntity.getFlowId())).list();
|
|
|
|
|
|
+ taskList = taskService.createTaskQuery().processInstanceId(String.valueOf(tfCustomFlowEntity.getFlowId()))
|
|
|
|
+ .list();
|
|
String pendApproveIds = null;
|
|
String pendApproveIds = null;
|
|
if (!CollectionUtils.isEmpty(taskList) && taskList.size() > 1) {
|
|
if (!CollectionUtils.isEmpty(taskList) && taskList.size() > 1) {
|
|
- List<String> list = taskList.stream().map(s -> s.getAssignee()).collect(Collectors.toList());
|
|
|
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
|
+ for (Task t : taskList) {
|
|
|
|
+ if (Objects.nonNull(t.getAssignee())) {
|
|
|
|
+ list.add(t.getAssignee());
|
|
|
|
+ originalUserIdList.add(Long.parseLong(t.getAssignee()));
|
|
|
|
+ } else {
|
|
|
|
+ List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(t.getId());
|
|
|
|
+ if (!CollectionUtils.isEmpty(identityLinkList)) {
|
|
|
|
+ for (IdentityLink i : identityLinkList) {
|
|
|
|
+ list.add(i.getUserId());
|
|
|
|
+ originalUserIdList.add(Long.parseLong(i.getUserId()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
pendApproveIds = list.toString().replaceAll("\\[", "").replaceAll("\\]", "").replaceAll(", ", ",");
|
|
pendApproveIds = list.toString().replaceAll("\\[", "").replaceAll("\\]", "").replaceAll(", ", ",");
|
|
} else {
|
|
} else {
|
|
pendApproveIds = String.valueOf(userId);
|
|
pendApproveIds = String.valueOf(userId);
|