fix: 修复流程预测节点错误问题

fix: 补充校验规则,流程创建时只校验预测节点的审批人是否配置
This commit is contained in:
smallNorthLee 2025-02-17 22:13:42 +08:00
parent 5e277e020f
commit c68ab33dfd
2 changed files with 12 additions and 13 deletions

View File

@ -32,7 +32,7 @@ import static org.flowable.bpmn.constants.BpmnXMLConstants.FLOWABLE_EXTENSIONS_P
/** /**
* BPMN Model 操作工具类目前分成三部分 * BPMN Model 操作工具类目前分成三部分
* <p> *
* 1. BPMN 修改 + 解析元素相关的方法 * 1. BPMN 修改 + 解析元素相关的方法
* 2. BPMN 简单查找相关的方法 * 2. BPMN 简单查找相关的方法
* 3. BPMN 复杂遍历相关的方法 * 3. BPMN 复杂遍历相关的方法
@ -105,8 +105,8 @@ public class BpmnModelUtils {
* 给节点添加候选人元素 * 给节点添加候选人元素
* *
* @param candidateStrategy 候选人策略 * @param candidateStrategy 候选人策略
* @param candidateParam 候选人参数允许空 * @param candidateParam 候选人参数允许空
* @param flowElement 节点 * @param flowElement 节点
*/ */
public static void addCandidateElements(Integer candidateStrategy, String candidateParam, FlowElement flowElement) { public static void addCandidateElements(Integer candidateStrategy, String candidateParam, FlowElement flowElement) {
addExtensionElement(flowElement, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY, addExtensionElement(flowElement, BpmnModelConstants.USER_TASK_CANDIDATE_STRATEGY,
@ -150,9 +150,9 @@ public class BpmnModelUtils {
/** /**
* 解析审批类型 * 解析审批类型
* *
* @see BpmUserTaskApproveTypeEnum
* @param userTask 任务节点 * @param userTask 任务节点
* @return 审批类型 * @return 审批类型
* @see BpmUserTaskApproveTypeEnum
*/ */
public static Integer parseApproveType(FlowElement userTask) { public static Integer parseApproveType(FlowElement userTask) {
return NumberUtils.parseInt(parseExtensionElement(userTask, BpmnModelConstants.USER_TASK_APPROVE_TYPE)); return NumberUtils.parseInt(parseExtensionElement(userTask, BpmnModelConstants.USER_TASK_APPROVE_TYPE));
@ -162,7 +162,7 @@ public class BpmnModelUtils {
* 添加任务拒绝处理元素 * 添加任务拒绝处理元素
* *
* @param rejectHandler 任务拒绝处理 * @param rejectHandler 任务拒绝处理
* @param userTask 任务节点 * @param userTask 任务节点
*/ */
public static void addTaskRejectElements(BpmSimpleModelNodeVO.RejectHandler rejectHandler, UserTask userTask) { public static void addTaskRejectElements(BpmSimpleModelNodeVO.RejectHandler rejectHandler, UserTask userTask) {
if (rejectHandler == null) { if (rejectHandler == null) {
@ -196,9 +196,9 @@ public class BpmnModelUtils {
/** /**
* 给节点添加用户任务的审批人与发起人相同时处理类型枚举 * 给节点添加用户任务的审批人与发起人相同时处理类型枚举
* *
* @param assignStartUserHandlerType 发起人处理类型
* @param userTask 任务节点
* @see BpmUserTaskAssignStartUserHandlerTypeEnum * @see BpmUserTaskAssignStartUserHandlerTypeEnum
* @param assignStartUserHandlerType 发起人处理类型
* @param userTask 任务节点
*/ */
public static void addAssignStartUserHandlerType(Integer assignStartUserHandlerType, UserTask userTask) { public static void addAssignStartUserHandlerType(Integer assignStartUserHandlerType, UserTask userTask) {
if (assignStartUserHandlerType == null) { if (assignStartUserHandlerType == null) {
@ -211,7 +211,7 @@ public class BpmnModelUtils {
* 给节点添加用户任务的审批人为空时处理类型枚举 * 给节点添加用户任务的审批人为空时处理类型枚举
* *
* @param emptyHandler 空处理 * @param emptyHandler 空处理
* @param userTask 任务节点 * @param userTask 任务节点
* @see BpmUserTaskAssignEmptyHandlerTypeEnum * @see BpmUserTaskAssignEmptyHandlerTypeEnum
*/ */
public static void addAssignEmptyHandlerType(BpmSimpleModelNodeVO.AssignEmptyHandler emptyHandler, UserTask userTask) { public static void addAssignEmptyHandlerType(BpmSimpleModelNodeVO.AssignEmptyHandler emptyHandler, UserTask userTask) {
@ -267,7 +267,7 @@ public class BpmnModelUtils {
/** /**
* 解析表单字段权限 * 解析表单字段权限
* *
* @param bpmnModel bpmnModel 对象 * @param bpmnModel bpmnModel 对象
* @param flowElementId 元素 ID * @param flowElementId 元素 ID
* @return 表单字段权限 * @return 表单字段权限
*/ */
@ -313,7 +313,7 @@ public class BpmnModelUtils {
/** /**
* 解析操作按钮设置 * 解析操作按钮设置
* *
* @param bpmnModel bpmnModel 对象 * @param bpmnModel bpmnModel 对象
* @param flowElementId 元素 ID * @param flowElementId 元素 ID
* @return 操作按钮设置 * @return 操作按钮设置
*/ */
@ -837,7 +837,7 @@ public class BpmnModelUtils {
* 计算条件表达式是否为 true 满足条件 * 计算条件表达式是否为 true 满足条件
* *
* @param variables 流程实例 * @param variables 流程实例
* @param express 条件表达式 * @param express 条件表达式
* @return 是否满足条件 * @return 是否满足条件
*/ */
public static boolean evalConditionExpress(Map<String, Object> variables, String express) { public static boolean evalConditionExpress(Map<String, Object> variables, String express) {

View File

@ -697,9 +697,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
if (CollUtil.isEmpty(tasks)) { if (CollUtil.isEmpty(tasks)) {
return; return;
} }
// 2.流程发起时要先获取当前流程的预测走向节点发起是
// 2. 校验发起人自选审批人的审批人和抄送人是否都配置了 // 2. 流程发起时要先获取当前流程的预测走向节点发起时只校验预测的节点发起人自选审批人的审批人和抄送人是否都配置了
tasks.stream().filter(task -> nodeIds == null || nodeIds.contains(task.getId())).forEach(task -> { tasks.stream().filter(task -> nodeIds == null || nodeIds.contains(task.getId())).forEach(task -> {
List<Long> assignees = startUserSelectAssignees != null ? startUserSelectAssignees.get(task.getId()) : null; List<Long> assignees = startUserSelectAssignees != null ? startUserSelectAssignees.get(task.getId()) : null;
if (CollUtil.isEmpty(assignees)) { if (CollUtil.isEmpty(assignees)) {