Merge branch 'feature/REQ-5965' into dev

This commit is contained in:
wangli 2025-11-06 11:52:33 +08:00
commit 2e64ce2063
7 changed files with 15 additions and 17 deletions

View File

@ -42,9 +42,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERAT
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_SPECIFY_NEXT_APPROVER;
import static cn.axzo.workflow.common.constant.BpmnConstants.SIGNATURE_COLLECTION;
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_COMPLETE_OPERATION_TYPE;
import static cn.axzo.workflow.common.constant.BpmnConstants.TASK_LOG_NODE_HAS_BEEN_HIDDEN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.HIDDEN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.addComment;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment;
@ -161,12 +159,7 @@ public class CustomApproveTaskCmd extends AbstractCommand<Void> implements Seria
runtimeService.setVariable(task.getProcessInstanceId(), INTERNAL_SPECIFY_NEXT_APPROVER,
nextApprover);
}
Boolean logNodeHidden = (Boolean) task.getTransientVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN);
if (Objects.nonNull(logNodeHidden) && logNodeHidden) {
task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + taskId, HIDDEN.getStatus());
} else {
task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + taskId, APPROVED.getStatus());
}
// 更新流程内的变量
runtimeService.setVariables(task.getProcessInstanceId(), variables);

View File

@ -130,7 +130,7 @@ public class BasedIdentityV2TaskAssigneeSelector extends AbstractBpmnTaskAssigne
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssignerV2", request));
} catch (WorkflowApproverCalcException e) {
log.warn("组织节点不存在, 入参:{}; 错误信息:{}", JSONUtil.toJsonStr(request), e.getMessage(), e);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, true);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + flowElement.getId(), true);
}
return convertApprover(apiResultUsers);
}

View File

@ -84,7 +84,7 @@ public class BasedInitiatorLeaderV2TaskAssigneeSelector extends AbstractBpmnTask
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssignerV2", request));
} catch (WorkflowApproverCalcException e) {
log.warn("组织节点不存在, 入参:{}; 错误信息:{}", JSONUtil.toJsonStr(request), e.getMessage(), e);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, true);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + flowElement.getId(), true);
}
return convertApprover(apiResultUsers);
}

View File

@ -153,7 +153,7 @@ public class BasedPositionV2TaskAssigneeSelector extends AbstractBpmnTaskAssigne
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssignerV2", request));
} catch (WorkflowApproverCalcException e) {
log.warn("组织节点不存在, 入参:{}; 错误信息:{}", JSONUtil.toJsonStr(request), e.getMessage(), e);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, true);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + flowElement.getId(), true);
}
return convertApprover(apiResultUsers);
}

View File

@ -156,7 +156,7 @@ public class BasedRoleV2TaskAssigneeSelector extends AbstractBpmnTaskAssigneeSel
"cn.axzo.orggateway.api.nodeuser.OrgNodeUserApi.listFlowTaskAssignerV2", request));
} catch (WorkflowApproverCalcException e) {
log.warn("组织节点不存在, 入参:{}; 错误信息:{}", JSONUtil.toJsonStr(request), e.getMessage(), e);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, true);
execution.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + flowElement.getId(), true);
}
return convertApprover(apiResultUsers);
}

View File

@ -226,15 +226,15 @@ public class PrintAdminController implements PrintAdminApi {
FormContainer formContainer = (FormContainer) formField;
printFields.addAll(formContainer.getFields().get(0).stream()
.filter(field -> {
if (Objects.equals(Boolean.TRUE, dto.getFilterEnablePrint())) {
// if (Objects.equals(Boolean.TRUE, dto.getFilterEnablePrint())) {
if (!CollectionUtils.isEmpty(field.getParams())) {
Optional<Object> optEnablePrint = Optional.ofNullable(field.getParam("enablePrint"));
return optEnablePrint.map(obj -> Boolean.parseBoolean(obj.toString())).orElse(Boolean.TRUE);
}
return true;
} else {
return false;
}
// } else {
// return false;
// }
})
.map(field -> {
PrintFieldDTO printFieldDTO = new PrintFieldDTO()

View File

@ -69,6 +69,7 @@ import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.OR;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_STARTER;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.DELETED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.HIDDEN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
import static cn.axzo.workflow.core.common.enums.BpmnProcessTaskResultEnum.HANDLING;
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getActivitySignature;
@ -286,6 +287,10 @@ public class TaskEntityEventHandle implements EntityEventHandle<TaskEntity> {
String completionType = taskEntity.getVariable(TASK_COMPLETE_OPERATION_TYPE + taskEntity.getId(), String.class);
if (StringUtils.hasText(completionType) && !Objects.equals(DELETED.getStatus(), completionType)) {
update.setStatus(completionType);
Boolean hiddenLog = taskEntity.getVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + taskEntity.getTaskDefinitionKey(), Boolean.class);
if (Objects.equals(hiddenLog, Boolean.TRUE)) {
update.setStatus(HIDDEN.getStatus());
}
} else {
// 多实例除操作人以外的任务直接删除日志 例如一个节点有两个人或签A 人驳回了那么 B 人不再需要操作任务自动删除而会签也同理
update.setStatus(DELETED.getStatus());// delete标志着是多实例删除
@ -293,7 +298,7 @@ public class TaskEntityEventHandle implements EntityEventHandle<TaskEntity> {
}
}
// 重置日志隐藏的标识为 false
taskEntity.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, false);
taskEntity.removeVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + taskEntity.getTaskDefinitionKey());
update.setEndTime(new Date());
// 判断是否抄送节点如果是的话需要将抄送人集合放入对应字段