mirror of
https://gitee.com/dromara/RuoYi-Cloud-Plus.git
synced 2025-09-02 02:34:26 +00:00
update 优化 工作流相关代码方法
This commit is contained in:
@@ -259,15 +259,15 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
List<HistoricActivityInstance> highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
|
||||
for (HistoricActivityInstance tempActivity : highLightedFlowList) {
|
||||
Map<String, Object> task = new HashMap<>();
|
||||
if (!FlowConstant.SEQUENCE_FLOW.equals(tempActivity.getActivityType()) &&
|
||||
!FlowConstant.PARALLEL_GATEWAY.equals(tempActivity.getActivityType()) &&
|
||||
!FlowConstant.EXCLUSIVE_GATEWAY.equals(tempActivity.getActivityType()) &&
|
||||
!FlowConstant.INCLUSIVE_GATEWAY.equals(tempActivity.getActivityType())
|
||||
) {
|
||||
task.put("key", tempActivity.getActivityId());
|
||||
task.put("completed", tempActivity.getEndTime() != null);
|
||||
task.put("activityType", tempActivity.getActivityType());
|
||||
taskList.add(task);
|
||||
switch (tempActivity.getActivityType()) {
|
||||
case FlowConstant.SEQUENCE_FLOW, FlowConstant.PARALLEL_GATEWAY,
|
||||
FlowConstant.EXCLUSIVE_GATEWAY, FlowConstant.INCLUSIVE_GATEWAY -> {}
|
||||
default -> {
|
||||
task.put("key", tempActivity.getActivityId());
|
||||
task.put("completed", tempActivity.getEndTime() != null);
|
||||
task.put("activityType", tempActivity.getActivityType());
|
||||
taskList.add(task);
|
||||
}
|
||||
}
|
||||
}
|
||||
ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult();
|
||||
|
@@ -263,7 +263,8 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
String userId = String.valueOf(LoginHelper.getUserId());
|
||||
queryWrapper.eq("t.business_status_", BusinessStatusEnum.WAITING.getStatus());
|
||||
queryWrapper.eq(TenantHelper.isEnable(), "t.tenant_id_", TenantHelper.getTenantId());
|
||||
queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' " + "and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN " + getInParam(roleIds) + " ) ))", userId)));
|
||||
String ids = StreamUtils.join(roleIds, x -> "'" + x + "'");
|
||||
queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN ({1}) ) ))", userId, ids)));
|
||||
if (StringUtils.isNotBlank(taskBo.getName())) {
|
||||
queryWrapper.like("t.name_", taskBo.getName());
|
||||
}
|
||||
@@ -292,19 +293,6 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
private String getInParam(List<String> param) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("(");
|
||||
for (int i = 0; i < param.size(); i++) {
|
||||
sb.append("'").append(param.get(i)).append("'");
|
||||
if (i != param.size() - 1) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
sb.append(")");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询当前租户所有待办任务
|
||||
*
|
||||
|
Reference in New Issue
Block a user