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.INTERNAL_SPECIFY_NEXT_APPROVER;
import static cn.axzo.workflow.common.constant.BpmnConstants.SIGNATURE_COLLECTION; 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_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.APPROVED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.HIDDEN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; 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.addComment;
import static cn.axzo.workflow.core.engine.cmd.helper.CustomTaskHelper.batchAddAttachment; 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, runtimeService.setVariable(task.getProcessInstanceId(), INTERNAL_SPECIFY_NEXT_APPROVER,
nextApprover); nextApprover);
} }
Boolean logNodeHidden = (Boolean) task.getTransientVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN); task.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + taskId, APPROVED.getStatus());
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); runtimeService.setVariables(task.getProcessInstanceId(), variables);

View File

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

View File

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

View File

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

View File

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

View File

@ -226,15 +226,15 @@ public class PrintAdminController implements PrintAdminApi {
FormContainer formContainer = (FormContainer) formField; FormContainer formContainer = (FormContainer) formField;
printFields.addAll(formContainer.getFields().get(0).stream() printFields.addAll(formContainer.getFields().get(0).stream()
.filter(field -> { .filter(field -> {
if (Objects.equals(Boolean.TRUE, dto.getFilterEnablePrint())) { // if (Objects.equals(Boolean.TRUE, dto.getFilterEnablePrint())) {
if (!CollectionUtils.isEmpty(field.getParams())) { if (!CollectionUtils.isEmpty(field.getParams())) {
Optional<Object> optEnablePrint = Optional.ofNullable(field.getParam("enablePrint")); Optional<Object> optEnablePrint = Optional.ofNullable(field.getParam("enablePrint"));
return optEnablePrint.map(obj -> Boolean.parseBoolean(obj.toString())).orElse(Boolean.TRUE); return optEnablePrint.map(obj -> Boolean.parseBoolean(obj.toString())).orElse(Boolean.TRUE);
} }
return true; return true;
} else { // } else {
return false; // return false;
} // }
}) })
.map(field -> { .map(field -> {
PrintFieldDTO printFieldDTO = new PrintFieldDTO() 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.BpmnFlowNodeType.NODE_STARTER;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED; 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.DELETED;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.HIDDEN;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING; 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.enums.BpmnProcessTaskResultEnum.HANDLING;
import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getActivitySignature; 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); String completionType = taskEntity.getVariable(TASK_COMPLETE_OPERATION_TYPE + taskEntity.getId(), String.class);
if (StringUtils.hasText(completionType) && !Objects.equals(DELETED.getStatus(), completionType)) { if (StringUtils.hasText(completionType) && !Objects.equals(DELETED.getStatus(), completionType)) {
update.setStatus(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 { } else {
// 多实例除操作人以外的任务直接删除日志 例如一个节点有两个人或签A 人驳回了那么 B 人不再需要操作任务自动删除而会签也同理 // 多实例除操作人以外的任务直接删除日志 例如一个节点有两个人或签A 人驳回了那么 B 人不再需要操作任务自动删除而会签也同理
update.setStatus(DELETED.getStatus());// delete标志着是多实例删除 update.setStatus(DELETED.getStatus());// delete标志着是多实例删除
@ -293,7 +298,7 @@ public class TaskEntityEventHandle implements EntityEventHandle<TaskEntity> {
} }
} }
// 重置日志隐藏的标识为 false // 重置日志隐藏的标识为 false
taskEntity.setVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN, false); taskEntity.removeVariable(TASK_LOG_NODE_HAS_BEEN_HIDDEN + taskEntity.getTaskDefinitionKey());
update.setEndTime(new Date()); update.setEndTime(new Date());
// 判断是否抄送节点如果是的话需要将抄送人集合放入对应字段 // 判断是否抄送节点如果是的话需要将抄送人集合放入对应字段