update - 添加测试逻辑
This commit is contained in:
parent
93cd2b45b6
commit
cb18b8aa39
@ -28,6 +28,7 @@ public class FlowableConfiguration {
|
||||
ObjectProvider<FlowableEventListener> listeners,
|
||||
CustomActivityBehaviorFactory customActivityBehaviorFactory) {
|
||||
return configuration -> {
|
||||
configuration.setEnableHistoricTaskLogging(true);
|
||||
configuration.setHistoryLevel(HistoryLevel.AUDIT);
|
||||
configuration.setHistory(HistoryLevel.AUDIT.getKey());
|
||||
configuration.setEventListeners(Lists.newArrayList(listeners));
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
package cn.axzo.workflow.core.deletage;
|
||||
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner;
|
||||
import cn.axzo.workflow.core.deletage.BpmnTaskAssigneeSelector;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 开发阶段的模拟审批人查询
|
||||
@ -24,6 +24,51 @@ public class MockTaskAssigneeSelector implements BpmnTaskAssigneeSelector {
|
||||
@Override
|
||||
public List<BpmnTaskDelegateAssigner> select(UserTask userTask, DelegateExecution execution) {
|
||||
List<BpmnTaskDelegateAssigner> users = new ArrayList<>();
|
||||
|
||||
// 一级审批
|
||||
if (Objects.equals(userTask.getId(), "2")) {
|
||||
BpmnTaskDelegateAssigner task_2 = new BpmnTaskDelegateAssigner();
|
||||
task_2.setAssignee("1");
|
||||
task_2.setAssignerName("王粒");
|
||||
task_2.setTenantId("");
|
||||
users.add(task_2);
|
||||
}
|
||||
|
||||
// 条件 2 审批节点
|
||||
if (Objects.equals(userTask.getId(), "10")) {
|
||||
BpmnTaskDelegateAssigner task_10_1 = new BpmnTaskDelegateAssigner();
|
||||
task_10_1.setAssignee("1");
|
||||
task_10_1.setAssignerName("王粒");
|
||||
task_10_1.setTenantId("");
|
||||
users.add(task_10_1);
|
||||
|
||||
BpmnTaskDelegateAssigner task_10_2 = new BpmnTaskDelegateAssigner();
|
||||
task_10_2.setAssignee("2");
|
||||
task_10_2.setAssignerName("王粒");
|
||||
task_10_2.setTenantId("");
|
||||
users.add(task_10_2);
|
||||
}
|
||||
|
||||
// 业务节点有审批人
|
||||
if (Objects.equals(userTask.getId(), "13")) {
|
||||
BpmnTaskDelegateAssigner task_13_1 = new BpmnTaskDelegateAssigner();
|
||||
task_13_1.setAssignee("1");
|
||||
task_13_1.setAssignerName("王粒");
|
||||
task_13_1.setTenantId("");
|
||||
users.add(task_13_1);
|
||||
|
||||
BpmnTaskDelegateAssigner task_13_2 = new BpmnTaskDelegateAssigner();
|
||||
task_13_2.setAssignee("2");
|
||||
task_13_2.setAssignerName("王粒");
|
||||
task_13_2.setTenantId("");
|
||||
users.add(task_13_2);
|
||||
|
||||
BpmnTaskDelegateAssigner task_13_3 = new BpmnTaskDelegateAssigner();
|
||||
task_13_3.setAssignee("3");
|
||||
task_13_3.setAssignerName("王粒");
|
||||
task_13_3.setTenantId("");
|
||||
users.add(task_13_3);
|
||||
}
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
||||
@ -618,12 +618,17 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
*/
|
||||
private Task checkTask(String tenantId, String assignee, String taskId) {
|
||||
Task task = getTask(taskId, null, null);
|
||||
if (Objects.nonNull(task) && !Objects.equals(assignee, task.getAssignee())) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF);
|
||||
}
|
||||
if (Objects.isNull(task)) {
|
||||
List<BpmnTaskDelegateAssigner> assigners = (List<BpmnTaskDelegateAssigner>) taskService.getVariable(taskId,
|
||||
INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + task.getTaskDefinitionKey());
|
||||
if (CollectionUtils.isEmpty(assigners)) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_NOT_EXISTS);
|
||||
}
|
||||
|
||||
assigners.stream()
|
||||
.filter(i -> Objects.equals(i.buildAssigneeId(), assignee))
|
||||
.filter(i -> Objects.equals(i.getTenantId(), tenantId))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF));
|
||||
return task;
|
||||
}
|
||||
|
||||
@ -648,24 +653,29 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void assigneeTask(BpmnTaskAssigneeDTO dto) {
|
||||
Task task = taskService.createTaskQuery().taskId(dto.getTaskId()).active().singleResult();
|
||||
if (Objects.isNull(task)) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_NOT_EXISTS);
|
||||
}
|
||||
if ((StringUtils.hasLength(task.getAssignee()) && Objects.isNull(dto.getOriginAssigner())) || !Objects.equals(task.getAssignee(), dto.getOriginAssigner().buildAssigneeId())) {
|
||||
if ((StringUtils.hasLength(task.getAssignee()) && Objects.isNull(dto.getOriginAssigner()))
|
||||
|| !Objects.equals(task.getAssignee(), dto.getOriginAssigner().buildAssigneeId())) {
|
||||
throw new WorkflowEngineException(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF);
|
||||
}
|
||||
|
||||
Authentication.setAuthenticatedUserId(dto.getOriginAssigner().getAssignee());
|
||||
if (Objects.isNull(dto.getTargetAssigner())) {
|
||||
taskService.setAssignee(task.getId(), "");
|
||||
runtimeService.removeVariable(task.getProcessInstanceId(),
|
||||
INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT + task.getId());
|
||||
INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT + task.getTaskDefinitionKey());
|
||||
} else {
|
||||
runtimeService.setVariable(task.getProcessInstanceId(),
|
||||
INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT + task.getId(), dto.getTargetAssigner());
|
||||
INTERNAL_TASK_RELATION_ASSIGNEE_INFO_SNAPSHOT + task.getTaskDefinitionKey(),
|
||||
dto.getTargetAssigner());
|
||||
taskService.setAssignee(task.getId(), dto.getTargetAssigner().buildAssigneeId());
|
||||
}
|
||||
|
||||
saveAttachment(dto.getAttachmentList(), task.getProcessInstanceId(), task.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -731,9 +741,9 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
if (StringUtils.hasLength(dto.getTaskDefinitionKey())) {
|
||||
taskQuery.taskDefinitionKey(dto.getTaskDefinitionKey());
|
||||
}
|
||||
if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
taskQuery.processInstanceId(dto.getTenantId());
|
||||
}
|
||||
// if (StringUtils.hasLength(dto.getTenantId())) {
|
||||
// taskQuery.processInstanceId(dto.getTenantId());
|
||||
// }
|
||||
List<Task> list = taskQuery.active().list();
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
throw new WorkflowEngineException(TASK_REMIND_ERROR_NOT_EXISTS);
|
||||
|
||||
@ -132,7 +132,7 @@ public class BpmnProcessModelController implements ProcessModelApi {
|
||||
@PostMapping("/deploy")
|
||||
@Override
|
||||
public CommonResponse<String> deployById(@NotBlank(message = "流程模型 ID 不能为空") @RequestParam(required = false) String processModelId,
|
||||
@RequestParam(required = false) String modelTenantId,
|
||||
@RequestParam(required = false, defaultValue = "") String modelTenantId,
|
||||
@NotNull(message = "操作人不能为空") BpmnTaskDelegateAssigner operator) {
|
||||
log.info("部署模型deployBpmModelById===>>>参数:{}, 租户 ID: {}, operator: {}", JSON.toJSONString(processModelId),
|
||||
modelTenantId, operator);
|
||||
|
||||
@ -17,7 +17,7 @@ spring:
|
||||
logging:
|
||||
level:
|
||||
com.alibaba.nacos.client.config.impl: WARN
|
||||
# root: debug
|
||||
org.flowable: INFO
|
||||
|
||||
---
|
||||
#开发环境
|
||||
@ -71,4 +71,4 @@ spring:
|
||||
config:
|
||||
server-addr: ${NACOS_HOST:https://pre-nacos.axzo.cn}:${NACOS_PORT:443}
|
||||
file-extension: yaml
|
||||
namespace: ${NACOS_NAMESPACE_ID:8b4cf725-7595-4c92-b2a6-9260a51ce078}
|
||||
namespace: ${NACOS_NAMESPACE_ID:8b4cf725-7595-4c92-b2a6-9260a51ce078}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user