update - 调整费流程设计节点类型的日志中节点的类型
This commit is contained in:
parent
6a04af9fac
commit
32728d49cb
@ -18,6 +18,8 @@ public enum BpmnFlowNodeType {
|
||||
NODE_TRIGGER("NODE_TRIGGER", "触发器节点"),
|
||||
NODE_ROBOT("NODE_ROBOT", "机器人节点"),
|
||||
NODE_COMMENT("NODE_COMMENT", "评论节点"),
|
||||
NODE_ABORT("NODE_ABORT", "终止节点"),
|
||||
NODE_CANCEL("NODE_CANCEL", "撤销节点"),
|
||||
NODE_EMPTY("NODE_EMPTY", "空节点"),
|
||||
;
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ public class BpmnTaskDelegateAssigner implements Serializable {
|
||||
|
||||
/**
|
||||
* 人所在的单位 ID
|
||||
* 仅安心筑使用
|
||||
* 仅安心筑使用, 工人可以没有, 其他身份一定需要
|
||||
*/
|
||||
private String ouId;
|
||||
|
||||
@ -87,13 +87,20 @@ public class BpmnTaskDelegateAssigner implements Serializable {
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
public final String buildAssigneeId() {
|
||||
public final String buildAssigneeId_1_2_1() {
|
||||
if (StringUtils.hasLength(assigneeType)) {
|
||||
return tenantId + "|" + assignee + "|" + assigneeType;
|
||||
}
|
||||
return tenantId + "|" + assignee;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 1.3.0 版本起, 使用 ouId + personId 作为审批人唯一标识
|
||||
*/
|
||||
public final String buildAssigneeId() {
|
||||
return ouId + "|" + personId;
|
||||
}
|
||||
|
||||
public static BpmnTaskDelegateAssigner buildDummyAssigner(String assignee,
|
||||
String assigneeType,
|
||||
String assignerName) {
|
||||
|
||||
@ -1,212 +0,0 @@
|
||||
//package cn.axzo.workflow.core.common.enums;
|
||||
//
|
||||
//import cn.axzo.framework.domain.web.code.IProjectRespCode;
|
||||
//import lombok.AllArgsConstructor;
|
||||
//import lombok.Getter;
|
||||
//
|
||||
///**
|
||||
// * @Author: liyong.tian
|
||||
// * @Date: 2022/9/5
|
||||
// * @Description: 响应码规范:一共8位,取值范围0~9,3位项目编号(首位不能为0)+2位模块编号+3位自定义编号
|
||||
// */
|
||||
//@Getter
|
||||
//@AllArgsConstructor
|
||||
//public enum BpmnErrorCode implements IProjectRespCode {
|
||||
// // ========== category 01-001 ==========
|
||||
// CATEGORY_VALUE_EXISTS("01001", "分类值【{}】已经存在"),
|
||||
// CATEGORY_ID_NOT_EXISTS("01002", "指定分类【{}】不存在"),
|
||||
// CATEGORY_DATA_ERROR("01003", "分类数据异常"),
|
||||
//
|
||||
// // ========== convertor 02-001 ==========
|
||||
// CONVERTOR_UNKNOW_NODE_TYPE("02001", "节点类型【{}】暂不支持"),
|
||||
// CONVERTOR_META_DATA_FORMAT_ERROR("02002", "JSON 数据格式有误-{}: {}"),
|
||||
// CONVERTOR_COMMON_ERROR("02003", "JSON 转 BPMN 失败, 原因:【{}】"),
|
||||
// CONVERTOR_NODE_TYPE_NOT_SUPPORT("02004", "【{}】节点类型, ID:【{}】暂不支持"),
|
||||
// CONVERTOR_OPERATION_STRING_TYPE_ERROR("02005", "条件节点运算符【{}】暂不支持"),
|
||||
// CONVERTOR_OPERATION_NUMBER_TYPE_ERROR("02006", "条件节点运算符【{}】暂不支持"),
|
||||
// CONVERTOR_OPERATION_RADIO_TYPE_ERROR("02007", "条件节点运算符【{}】暂不支持"),
|
||||
// CONVERTOR_OPERATION_CHECKBOX_TYPE_ERROR("02008", "条件节点运算符【{}】暂不支持"),
|
||||
//
|
||||
//
|
||||
// // ========== bpmn model 03-001 ==========
|
||||
// MODEL_KEY_EXISTS("03001", "已经存在流程标识为【{}】的流程"),
|
||||
// MODEL_ID_NOT_EXISTS("03002", "流程模型ID【{}】不存在"),
|
||||
// MODEL_KEY_NOT_EXISTS("03003", "流程模型KEY【{}】不存在"),
|
||||
// MODEL_NOT_EXISTS("03004", "流程模型不存在"),
|
||||
// BPMN_BYTES_NOT_EXISTS("03005", "模型定义内容字节码不存在"),
|
||||
//
|
||||
// // ========== bpmn processDefinition 04-001 ==========
|
||||
// PROCESS_DEFINITION_BPMN_NOT_EXISTS("04001", "模型ID【{}】的定义内容不存在"),
|
||||
// PROCESS_DEFINITION_ID_NOT_EXISTS("04002", "流程定义ID【{}】不存在"),
|
||||
// PROCESS_DEFINITION_DEPLOY_ID_NOT_EXISTS("04003", "流程定义部署ID【{}】不存在"),
|
||||
// PROCESS_DEFINITION_KEY_NOT_EXISTS("04004", "流程定义KEY【{}】不存在"),
|
||||
// PROCESS_DEFINITION_RESULT_TOO_MANY("04005", "租户【{}】中存在多条分类为【{}】的流程定义,不允许直接变更状态"),
|
||||
// PROCESS_DEFINITION_IS_SUSPENDED("04006", "流程定义KEY【{}】处于挂起状态"),
|
||||
// PROCESS_DEFINITION_KEY_NOT_MATCH("04007", "流程定义的标识不一致, 请修改 BPMN 流程图"),
|
||||
// PROCESS_DEFINITION_NAME_NOT_MATCH("04008", "流程定义的名字期望是({}),当前是({}),请修改 BPMN 流程图"),
|
||||
// // "数据出现异常,同一个工作台下,同一个所属分类,只能有一个流程定义"),
|
||||
// // ========== bpmn processInstance 05-001 ==========
|
||||
// PROCESS_OPERATION_PARAM_VALID_ERROR("05001", "参数缺失, 请确保传入了 ID 或 businessKey 对流程实例进行操作"),
|
||||
// PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS("05002", "流程取消失败,流程不处于运行中"),
|
||||
// PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF("05003", "流程取消失败,该流程不是你发起的"),
|
||||
// PROCESS_INSTANCE_NOT_EXISTS("05004", "流程实例不存在或已结束"),
|
||||
// PROCESS_INSTANCE_ID_NOT_EXISTS("05005", "流程实例【{}】不存在"),
|
||||
// PROCESS_INSTANCE_CANCELLED("05006", "流程实例已取消"),
|
||||
// // ========== bpmn task 06-001 ==========
|
||||
// TASK_COMPLETE_FAIL_NOT_EXISTS("06001", "未找到指定审批任务"),
|
||||
// TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF("06002", "该任务的审批人不是你"),
|
||||
// TASK_APOSTILLE_NOT_SUPPORT("06003", "当前加签模式不支持"),
|
||||
// TASK_REMIND_ERROR_NOT_EXISTS("06004", "当前审批节点没有待审批任务, 不能催办"),
|
||||
// ACTIVITY_TRIGGER_NOT_EXISTS("06005", "触发 ID:【{}】不存在"),
|
||||
// CALC_TASK_ASSIGNEE_ERROR("06006", "执行计算审批候选人出现异常: {}"),
|
||||
// ASSIGNEE_HAS_BEEN_EXISTS("06007", "你选择的人员已是审批人,请检查后提交"),
|
||||
//
|
||||
// // ========== form Model 07-001 ==========
|
||||
// FORM_MODEL_NOT_EXISTS("07001", "表单模型不存在"),
|
||||
// FORM_MODEL_ID_NOT_EXISTS("07002", "表单模型ID【{}】不存在"),
|
||||
// // ========== form Definition 08-001 ==========
|
||||
// FORM_DEFINITION_NOT_EXISTS("08001", "表单定义内容转换出错, 建议重新修改表单定义后重试"),
|
||||
// FORM_DEFINITION_PARSER_ERROR("08002", "表单定义内容解析出错"),
|
||||
// // ========== form Instance 09-001 ==========
|
||||
// // ========== flowable Engine 10-001 ==========
|
||||
// ENGINE_EXECUTION_LOST_ID_ERROR("10001", "Execution 丢失"),
|
||||
// ENGINE_USER_TASK_CALC_ERROR("10002", "计算用户任务节点的审批发生异常: 【{}】"),
|
||||
// ENGINE_USER_TASK_TYPE_NOT_SUPPORT("10003", "审批指定方式暂不支持"),
|
||||
// // ========== flowable Engine 99-001 ==========
|
||||
// MES_PUSH_OBJECT_BUILD_ERROR("99001", "构建消息推送对象异常"),
|
||||
// REPEAT_SUBMIT_TIME_ERROR_TIPS("99002", "重复提交间隔时间不能小于{}秒"),
|
||||
// REPEAT_SUBMIT_ERROR_TIPS("99002", "{}"),
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// // // ========== 流程模型 01-001 ==========
|
||||
// //
|
||||
// //
|
||||
// // MODEL_KEY_VALID("9002002",
|
||||
// // "流程标识格式不正确,需要以字母或下划线开头,后接任意字母、数字、中划线、下划线、句点!"),
|
||||
// // MODEL_DEPLOY_FAIL_FORM_NOT_CONFIG("9002003",
|
||||
// // "部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置"),
|
||||
// // MODEL_DEPLOY_FAIL_TASK_ASSIGN_RULE_NOT_CONFIG("9002004", "部署流程失败," +
|
||||
// // "原因:用户任务({})未配置分配规则,请点击【配置审核人】按钮进行配置"),
|
||||
// // MODEL_DEPLOY_FAIL_TASK_INFO_EQUALS("9003005", "流程定义部署失败,原因:信息未发生变化"),
|
||||
// //
|
||||
// // // ========== 流程定义 1-009-003-000 ==========
|
||||
// //
|
||||
// //
|
||||
// // PROCESS_DEFINITION_NOT_EXISTS("9003002", "流程定义不存在"),
|
||||
// //
|
||||
// // PROCESS_DEFINITION_BPMN_MODEL_NOT_EXISTS("9003004", "流程定义的模型不存在"),
|
||||
// //
|
||||
// // // ========== 流程实例 1-009-004-000 ==========
|
||||
// //
|
||||
// //
|
||||
// // // ========== 流程任务 1-009-005-000 ==========
|
||||
// //
|
||||
// //
|
||||
// // // ========== 流程任务分配规则 1-009-006-000 ==========
|
||||
// // TASK_ASSIGN_RULE_EXISTS("9006000", "流程({}) 的任务({}) 已经存在分配规则"),
|
||||
// // TASK_ASSIGN_RULE_NOT_EXISTS("9006001", "流程任务分配规则不存在"),
|
||||
// // TASK_UPDATE_FAIL_NOT_MODEL("9006002", "只有流程模型的任务分配规则,才允许被修改"),
|
||||
// // TASK_CREATE_FAIL_NO_CANDIDATE_USER("9006003", "操作失败,原因:找不到任务的审批人!"),
|
||||
// // TASK_ASSIGN_SCRIPT_NOT_EXISTS("9006004", "操作失败,原因:任务分配脚本({}) 不存在"),
|
||||
// // TASK_ASSIGN_GET_USER_ERROR("9006005", "通过【{}】获取任务候选人失败,失败原因:{}"),
|
||||
// // USER_COMPANY_ID_NOT_EXISTS("9006006", "缺失所在单位信息"),
|
||||
// // TASK_ASSIGN_USER_NOT_ENOUGH("9006007", "操作失败,原因:候选人数量{}小于循环基数{}"),
|
||||
// //
|
||||
// // // ========== 动态表单模块 1-009-010-000 ==========
|
||||
// // FORM_NOT_EXISTS("9010000", "动态表单不存在"),
|
||||
// // FORM_FIELD_REPEAT("9010001", "表单项({}) 和 ({}) 使用了相同的字段名({})"),
|
||||
// // FORM_CONFIG_ERROR("9010002", "内置表单解析失败"),
|
||||
// //
|
||||
// // FORM_CONFIG_ID_NOT_EXISTS("9010003", "修改/删除业务表单时,ID不能为空"),
|
||||
// //
|
||||
// // FORM_CONFIG_IN_USED("9010004", "表单正在使用中,不能删除"),
|
||||
// //
|
||||
// // FORM_CONFIG_CATEGORY_EXIST("9010005", "当前所属业务已有绑定关系,不能重复新增"),
|
||||
// //
|
||||
// // FORM_FIELD_DECODE_ERROR("9010006", "表单Field格式不正确"),
|
||||
// //
|
||||
// // FORM_CONFIG_CATEGORY_NOT_EXIST("9010006", "表单信息不存在,请前往 配置管理->所属业务关联关系 添加表单绑定信息"),
|
||||
// //
|
||||
// // // ========== 用户组模块 1-009-011-000 ==========
|
||||
// // USER_GROUP_NOT_EXISTS("9011000", "用户组不存在"),
|
||||
// // USER_GROUP_IS_DISABLE("9011001", "名字为【{}】的用户组已被禁用"),
|
||||
// //
|
||||
// // // ========== 公共模板 1-009-012-000 ==========
|
||||
// // COMMON_ERROR("9012000", "{}"),
|
||||
// // COMMON_MODEL_EXISTS("9012001", "名字为【{}】的公共模型已经存在"),
|
||||
// // COMMON_MODEL_PROJECT_ID_NOT_EXISTS("9012002",
|
||||
// // "应用类型选择租户时, 关联的项目[tenants]不能为空"),
|
||||
// // COMMON_MODEL_FORM_CONFIG_NOT_EXISTS("9012003",
|
||||
// // "表单类型选择业务表单时, 业务表单不能为空"),
|
||||
// // COMMON_MODEL_ID_IS_NULL("9012004", "模型ID丢失, 请检查入参"),
|
||||
// // COMMON_MODEL_TASK_ASSIGN_RULE_EXISTS("9012005",
|
||||
// // "流程({}) 的任务({}) 已经存在分配规则"),
|
||||
// // COMMON_MODEL_TASK_ASSIGN_RULE_NOT_EXISTS("9012006", "流程任务分配规则不存在"),
|
||||
// // COMMON_MODEL_TASK_ASSIGN_RULE_TYPE_ILLEGAL("9012007",
|
||||
// // "({}) 的应用范围,不能配置 ({}) 审配人类型"),
|
||||
// // COMMON_MODEL_FORM_FIELD_PERMISSION("9012008",
|
||||
// // "HTML 标签 ID 为 ({})和 Label 为 ({})的表单项配置权限信息只能只读/隐藏二选一,且不能为空"),
|
||||
// // FORM_CONFIG_REGISTER_INFO_NOT_EXISTS("9012009", "未获取到该业务表单的配置信息"),
|
||||
// // COMMON_MODEL_PROCESS_FORM_NOT_EXISTS("9012010", "流程表单已被删除, 请重新选择"),
|
||||
// // GET_REMOTE_WORKSPACE_INFO_ERROR("9012011", "调用远程接口出现异常, 接口: {}"),
|
||||
// // COMMON_MODEL_ASSIGN_DATA_NOT_EXISTS("9012012", "模板数据异常,未获取到租户"),
|
||||
// // COMMON_MODEL_NOT_EXISTS("9012013",
|
||||
// // "流程模型模板不存在,或者模型未配置 BPMN 流程"),
|
||||
// // BPM_PROCESS_DEFINITION_NOT_EXISTS("9012014",
|
||||
// // "未查询到可以用于发起工作流的流程定义ID, 请确认工作台与所属分类是否匹配"),
|
||||
// //
|
||||
// //
|
||||
// // FORM_NOT_ENABLE("9012016", "表单已经不可用"),
|
||||
// // ILLEGAL_FORM_DATA("9012017", "表单类型数据异常, 非法数据"),
|
||||
// // BPMN_XML_NOT_EXISTS("9012018", "BPMN 文件内容不存在,将终止发布"),
|
||||
// // BPMN_XML_NOT_VALID("9012019", "BPMN 文件内容不合法,将终止发布"),
|
||||
// // DEPLOY_TENANTS_NOT_EXISTS("9012020", "当前模型中未选择应用范围,将终止发布"),
|
||||
// // DEPLOY_FORM_CONFIG_NOT_EXISTS("9012021", "当前模型中未关联表单,将终止发布"),
|
||||
// // DEPLOY_OPTIONS_NOT_EXISTS("9012022", "当前模型中[{}]任务未分配审核人,将终止发布"),
|
||||
// // DEPLOY_SOURCE_NOT_EXISTS("9012023", "流程模型原数据丢失,将终止发布"),
|
||||
// // GET_REMOTE_DATE_ERROR("9012024", "调用远程接口 [{}] 发生异常: {}"),
|
||||
// // PARTICIPATED_DATA_IS_EMPTY("9012025",
|
||||
// // "当前 [{}] 项目工作台(WorkspaceId={})下未获取到参与单位信息"),
|
||||
// // PARTICIPATED_TYPE_DATA_IS_EMPTY("9012026",
|
||||
// // "当前 [{}] 项目工作台(WorkspaceId={})下未获取到{}数据"),
|
||||
// // GET_SUPERIOR_UNIT_ID_ERROR("9012027", "获取上级执行单位信息异常"),
|
||||
// // MODEL_POOL_CANT_DEPLOY("9012028", "模型已不部署,无需重复发布"),
|
||||
// // PROCESS_DEFINITION_IS_SUSPENDED_CANT_DEPLOY("9012029",
|
||||
// // "模型处于挂起状态,无法发布"),
|
||||
// //
|
||||
// //
|
||||
// // FLOWABLE_GENERAL_ERROR("9013000", "流程引擎一般错误"),
|
||||
// // FLOWABLE_ENGINE_OBJECT_NOT_FOUND("9013001", "流程引擎内部错误:流程定义未找到"),
|
||||
// // FLOWABLE_WRONG_DB("9013002", "数据库版本与流程引擎版本不匹配"),
|
||||
// // FLOWABLE_DB_OPTIMISTIC_LOCKING("9013003", "引擎内部数据乐观锁死锁"),
|
||||
// // FLOWABLE_TASK_ALREADY_CLAIMED("9013004", "当前审批任务已有审批人"),
|
||||
// // FLOWABLE_ILLEGAL_STATE("9013005", "审批流状态异常"),
|
||||
// // FLOWABLE_ILLEGAL_ARGUMENT("9013006", "流程引擎存在非法参数"),
|
||||
// // FLOWABLE_FORBIDDEN("9013007", "当前流程引擎禁止访问"),
|
||||
// // FLOWABLE_CLASS_LOADING_ERROR("9013008", "流程引擎加载异常"),
|
||||
// //
|
||||
// //
|
||||
// // USER_NOT_EXISTS("01001", "用户不存在,id=%s"),
|
||||
// // USER_PHONE_EMAIL_IS_NULL("01002", "电话和邮箱不能都为空");
|
||||
// ;
|
||||
//
|
||||
// private String code;
|
||||
// private String message;
|
||||
//
|
||||
// @Override
|
||||
// public String getProjectCode() {
|
||||
// // 根据不同项目进行项目编码调整,可联系框架组获取项目编号(首位不能为0)
|
||||
// return "100";
|
||||
// }
|
||||
//
|
||||
// public void setCode(String code) {
|
||||
// this.code = code;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public void setMessage(String message) {
|
||||
// this.message = message;
|
||||
// }
|
||||
//}
|
||||
@ -18,7 +18,6 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.ABORT_ID;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_DELETE_PROCESS_FLAG;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_TENANT_ID;
|
||||
@ -27,6 +26,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_USER_N
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_PROCESS_TYPE_ABORT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_ASSIGNEE_SKIP_FLAT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE;
|
||||
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_ABORT;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.ABORTED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.CANCELLED;
|
||||
import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS;
|
||||
@ -85,23 +85,12 @@ public class CustomAbortProcessInstanceCmd implements Command<Void>, Serializabl
|
||||
RuntimeService runtimeService = processEngineConfiguration.getRuntimeService();
|
||||
runtimeService.setVariables(instance.getId(), variables);
|
||||
|
||||
// // 有一些节点是普通的 task,没有 ExecutionId,所以先主动去完成这些 node
|
||||
// List<HistoricTaskInstance> historyTaskList =
|
||||
// historyService.createHistoricTaskInstanceQuery().unfinished().list();
|
||||
// TaskService taskService = processEngineConfiguration.getTaskService();
|
||||
// if (!CollectionUtils.isEmpty(historyTaskList)) {
|
||||
// historyTaskList.stream().filter(i -> Objects.isNull(i.getExecutionId()))
|
||||
// .forEach(i -> taskService.complete(i.getId()));
|
||||
// }
|
||||
//
|
||||
// // TODO 这里应该有问题,需要优先处理没有 ExecutionId 的任务
|
||||
// runtimeService.deleteProcessInstance(processInstanceId, HIDDEN_ASSIGNEE_ID);
|
||||
CommandContextUtil.getAgenda(commandContext).planOperation(new DeleteProcessInstanceOperation(commandContext,
|
||||
processInstanceId));
|
||||
|
||||
// 添加自定义的节点,用于展示最后的操作
|
||||
Task task = createVirtualTask(commandContext, extAxHiTaskInstService, processInstanceId,
|
||||
"系统终止", ABORT_ID, reason, BpmnTaskDelegateAssigner.buildDummyAssigner("system",
|
||||
"系统终止", NODE_ABORT.getType(), reason, BpmnTaskDelegateAssigner.buildDummyAssigner("system",
|
||||
TASK_ASSIGNEE_SKIP_FLAT, "系统"), ABORTED.getStatus());
|
||||
addComment(commandContext, task, COMMENT_TYPE_OPERATION_DESC, "系统终止");
|
||||
runtimeService.setVariable(task.getProcessInstanceId(), TASK_COMPLETE_OPERATION_TYPE + task.getId(), ABORTED);
|
||||
|
||||
@ -18,12 +18,12 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CANCEL_ID;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_DELETE_PROCESS_FLAG;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_TENANT_ID;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_USER_ID;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_USER_NAME;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_PROCESS_TYPE_CANCEL;
|
||||
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_CANCEL;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.ABORTED;
|
||||
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.CANCELLED;
|
||||
import static cn.axzo.workflow.core.common.code.BpmnInstanceRespCode.PROCESS_INSTANCE_CANCEL_FAIL_NOT_EXISTS;
|
||||
@ -106,7 +106,7 @@ public class CustomCancelProcessInstanceCmd implements Command<Void>, Serializab
|
||||
|
||||
// 添加自定义的节点,用于展示最后的操作
|
||||
Task task = createVirtualTask(commandContext, extAxHiTaskInstService, processInstanceId,
|
||||
"发起人撤销", CANCEL_ID, reason, initiator, CANCELLED.getStatus());
|
||||
"发起人撤销", NODE_CANCEL.getType(), reason, initiator, CANCELLED.getStatus());
|
||||
// runtimeService.setVariable(task.getProcessInstanceId(), TASK_COMPLETE_OPERATION_TYPE + task.getId()
|
||||
// , CANCELLED);
|
||||
return null;
|
||||
|
||||
@ -17,7 +17,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.engine.delegate.DelegateExecution;
|
||||
import org.flowable.engine.delegate.ExecutionListener;
|
||||
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
|
||||
@ -37,6 +36,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.BPM_ALLOW_SKIP_USER_TASK;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.DUMMY_ASSIGNEE;
|
||||
@ -68,8 +69,6 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
private ObjectProvider<BpmnTaskDelegate> bpmTaskDelegate;
|
||||
@Resource
|
||||
private List<BpmnTaskAssigneeSelector> selectors;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
|
||||
@Value("${workflow.mock:false}")
|
||||
private Boolean mock;
|
||||
@ -153,7 +152,6 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
} else {
|
||||
defaultCalcTaskAssigner(execution, userTask, currentActivityId, assigneeListVariableName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void emptyAssigneeHandle(List<BpmnTaskDelegateAssigner> assigners, UserTask userTask,
|
||||
@ -235,9 +233,19 @@ public class EngineExecutionStartListener implements ExecutionListener {
|
||||
}
|
||||
});
|
||||
}
|
||||
return assigners;
|
||||
|
||||
// 按 personId 去重
|
||||
return removeDuplicateByPersonId(assigners);
|
||||
}
|
||||
|
||||
private List<BpmnTaskDelegateAssigner> removeDuplicateByPersonId(List<BpmnTaskDelegateAssigner> delegateAssigners) {
|
||||
if (CollectionUtils.isEmpty(delegateAssigners)) {
|
||||
return delegateAssigners;
|
||||
}
|
||||
return new ArrayList<>(delegateAssigners.stream()
|
||||
.collect(Collectors.toMap(BpmnTaskDelegateAssigner::getPersonId, Function.identity(), (s, t) -> s))
|
||||
.values());
|
||||
}
|
||||
/**
|
||||
* 枢智版本的逻辑, 不太兼容了,暂时先放在这里
|
||||
*
|
||||
|
||||
@ -379,8 +379,8 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
(BpmnTaskDelegateAssigner) assginerSnapshot.getValue() : null;
|
||||
if (StringUtils.hasLength(vo.getAssignee()) && !vo.getAssignee().contains(TASK_ASSIGNEE_SKIP_FLAT)) {
|
||||
vo.setAssignee(Objects.isNull(assigner) ? "" : assigner.getAssignee());
|
||||
vo.setAssigneeSnapshot(assigner);
|
||||
}
|
||||
vo.setAssigneeSnapshot(assigner);
|
||||
}
|
||||
return vos;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user