update 优化 工作流相关代码方法

2.X
疯狂的狮子Li 7 months ago
parent 42dc474949
commit 1b72f0d2d1

@ -259,17 +259,17 @@ 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())
) {
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();
if (processInstance != null) {
taskList = StreamUtils.filter(taskList, e -> !e.get("activityType").equals(FlowConstant.END_EVENT));

@ -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();
}
/**
*
*

Loading…
Cancel
Save