mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 08:13:44 +08:00 
			
		
		
		
	update 统一工作流FlowParams构造方式为建造者模式,提升代码可读性
This commit is contained in:
		@@ -32,13 +32,10 @@ public class FlowProcessEventHandler {
 | 
			
		||||
     * @param params     办理参数
 | 
			
		||||
     * @param submit     当为true时为申请人节点办理
 | 
			
		||||
     */
 | 
			
		||||
    public void processHandler(String flowCode, Instance instance,
 | 
			
		||||
                               String status, Map<String, Object> params, boolean submit) {
 | 
			
		||||
 | 
			
		||||
    public void processHandler(String flowCode, Instance instance, String status, Map<String, Object> params, boolean submit) {
 | 
			
		||||
        String tenantId = TenantHelper.getTenantId();
 | 
			
		||||
        log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
 | 
			
		||||
        log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 流程状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
 | 
			
		||||
            tenantId, flowCode, instance.getBusinessId(), status, instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), submit, params);
 | 
			
		||||
 | 
			
		||||
        ProcessEvent processEvent = new ProcessEvent();
 | 
			
		||||
        processEvent.setTenantId(tenantId);
 | 
			
		||||
        processEvent.setFlowCode(flowCode);
 | 
			
		||||
@@ -61,7 +58,7 @@ public class FlowProcessEventHandler {
 | 
			
		||||
     */
 | 
			
		||||
    public void processCreateTaskHandler(String flowCode, Instance instance, Long taskId) {
 | 
			
		||||
        String tenantId = TenantHelper.getTenantId();
 | 
			
		||||
        log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
 | 
			
		||||
        log.info("【流程任务事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
 | 
			
		||||
            tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId);
 | 
			
		||||
        ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
 | 
			
		||||
        processCreateTaskEvent.setTenantId(tenantId);
 | 
			
		||||
@@ -82,7 +79,7 @@ public class FlowProcessEventHandler {
 | 
			
		||||
     */
 | 
			
		||||
    public void processDeleteHandler(String flowCode, String businessId) {
 | 
			
		||||
        String tenantId = TenantHelper.getTenantId();
 | 
			
		||||
        log.info("发布删除流程事件, 租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId);
 | 
			
		||||
        log.info("【流程删除事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId);
 | 
			
		||||
        ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent();
 | 
			
		||||
        processDeleteEvent.setTenantId(tenantId);
 | 
			
		||||
        processDeleteEvent.setFlowCode(flowCode);
 | 
			
		||||
 
 | 
			
		||||
@@ -198,12 +198,12 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
 | 
			
		||||
        }
 | 
			
		||||
        for (FlowTask task : list) {
 | 
			
		||||
            List<UserDTO> userList = flwTaskService.currentTaskAllUser(task.getId());
 | 
			
		||||
            FlowParams flowParams = FlowParams.build();
 | 
			
		||||
            flowParams.nodeCode(targetNodeCode);
 | 
			
		||||
            flowParams.message(message);
 | 
			
		||||
            flowParams.skipType(SkipType.PASS.getKey());
 | 
			
		||||
            flowParams.flowStatus(flowStatus).hisStatus(flowHisStatus);
 | 
			
		||||
            flowParams.ignore(true);
 | 
			
		||||
            FlowParams flowParams = FlowParams.build()
 | 
			
		||||
                .nodeCode(targetNodeCode)
 | 
			
		||||
                .message(message)
 | 
			
		||||
                .skipType(SkipType.PASS.getKey())
 | 
			
		||||
                .flowStatus(flowStatus).hisStatus(flowHisStatus)
 | 
			
		||||
                .ignore(true);
 | 
			
		||||
            //解决会签没权限问题
 | 
			
		||||
            if (CollUtil.isNotEmpty(userList)) {
 | 
			
		||||
                flowParams.handler(userList.get(0).getUserId().toString());
 | 
			
		||||
 
 | 
			
		||||
@@ -437,11 +437,11 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
 | 
			
		||||
            }
 | 
			
		||||
            List<FlowTask> flowTaskList = flwTaskService.selectByInstId(bo.getId());
 | 
			
		||||
            for (FlowTask flowTask : flowTaskList) {
 | 
			
		||||
                FlowParams flowParams = new FlowParams();
 | 
			
		||||
                flowParams.message(bo.getComment());
 | 
			
		||||
                flowParams.flowStatus(BusinessStatusEnum.INVALID.getStatus())
 | 
			
		||||
                    .hisStatus(TaskStatusEnum.INVALID.getStatus());
 | 
			
		||||
                flowParams.ignore(true);
 | 
			
		||||
                FlowParams flowParams = FlowParams.build()
 | 
			
		||||
                    .message(bo.getComment())
 | 
			
		||||
                    .flowStatus(BusinessStatusEnum.INVALID.getStatus())
 | 
			
		||||
                    .hisStatus(TaskStatusEnum.INVALID.getStatus())
 | 
			
		||||
                    .ignore(true);
 | 
			
		||||
                taskService.termination(flowTask.getId(), flowParams);
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -117,10 +117,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
            dto.setTaskId(taskList.get(0).getId());
 | 
			
		||||
            return dto;
 | 
			
		||||
        }
 | 
			
		||||
        FlowParams flowParams = new FlowParams();
 | 
			
		||||
        flowParams.flowCode(startProcessBo.getFlowCode());
 | 
			
		||||
        flowParams.variable(startProcessBo.getVariables());
 | 
			
		||||
        flowParams.flowStatus(BusinessStatusEnum.DRAFT.getStatus());
 | 
			
		||||
        FlowParams flowParams = FlowParams.build()
 | 
			
		||||
            .flowCode(startProcessBo.getFlowCode())
 | 
			
		||||
            .variable(startProcessBo.getVariables())
 | 
			
		||||
            .flowStatus(BusinessStatusEnum.DRAFT.getStatus());
 | 
			
		||||
        Instance instance;
 | 
			
		||||
        try {
 | 
			
		||||
            instance = insService.start(businessId, flowParams);
 | 
			
		||||
@@ -170,13 +170,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
                completeTaskBo.getVariables().putAll(assigneeMap);
 | 
			
		||||
            }
 | 
			
		||||
            // 构建流程参数,包括变量、跳转类型、消息、处理人、权限等信息
 | 
			
		||||
            FlowParams flowParams = new FlowParams();
 | 
			
		||||
            flowParams.variable(completeTaskBo.getVariables());
 | 
			
		||||
            flowParams.skipType(SkipType.PASS.getKey());
 | 
			
		||||
            flowParams.message(completeTaskBo.getMessage());
 | 
			
		||||
            flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus());
 | 
			
		||||
 | 
			
		||||
            flowParams.hisTaskExt(completeTaskBo.getFileId());
 | 
			
		||||
            FlowParams flowParams = FlowParams.build()
 | 
			
		||||
                .variable(completeTaskBo.getVariables())
 | 
			
		||||
                .skipType(SkipType.PASS.getKey())
 | 
			
		||||
                .message(completeTaskBo.getMessage())
 | 
			
		||||
                .flowStatus(BusinessStatusEnum.WAITING.getStatus())
 | 
			
		||||
                .hisStatus(TaskStatusEnum.PASS.getStatus())
 | 
			
		||||
                .hisTaskExt(completeTaskBo.getFileId());
 | 
			
		||||
            // 执行任务跳转,并根据返回的处理人设置下一步处理人
 | 
			
		||||
            Instance instance = taskService.skip(taskId, flowParams);
 | 
			
		||||
            this.setHandler(instance, flowTask, flowCopyList);
 | 
			
		||||
@@ -310,10 +310,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
        task.setId(taskId);
 | 
			
		||||
        task.setNodeName("【抄送】" + task.getNodeName());
 | 
			
		||||
        Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000);
 | 
			
		||||
        FlowParams flowParams = FlowParams.build();
 | 
			
		||||
        flowParams.skipType(SkipType.NONE.getKey());
 | 
			
		||||
        flowParams.hisStatus(TaskStatusEnum.COPY.getStatus());
 | 
			
		||||
        flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
 | 
			
		||||
        FlowParams flowParams = FlowParams.build()
 | 
			
		||||
            .skipType(SkipType.NONE.getKey())
 | 
			
		||||
            .hisStatus(TaskStatusEnum.COPY.getStatus())
 | 
			
		||||
            .message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
 | 
			
		||||
        HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
 | 
			
		||||
        hisTask.setCreateTime(updateTime);
 | 
			
		||||
        hisTask.setUpdateTime(updateTime);
 | 
			
		||||
@@ -456,13 +456,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
            Long definitionId = task.getDefinitionId();
 | 
			
		||||
            Definition definition = defService.getById(definitionId);
 | 
			
		||||
            String applyNodeCode = flwCommonService.applyNodeCode(definitionId);
 | 
			
		||||
            FlowParams flowParams = FlowParams.build();
 | 
			
		||||
            flowParams.nodeCode(bo.getNodeCode());
 | 
			
		||||
            flowParams.message(message);
 | 
			
		||||
            flowParams.skipType(SkipType.REJECT.getKey());
 | 
			
		||||
            flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
 | 
			
		||||
                .hisStatus(TaskStatusEnum.BACK.getStatus());
 | 
			
		||||
            flowParams.hisTaskExt(bo.getFileId());
 | 
			
		||||
            FlowParams flowParams = FlowParams.build()
 | 
			
		||||
                .nodeCode(bo.getNodeCode())
 | 
			
		||||
                .message(message)
 | 
			
		||||
                .skipType(SkipType.REJECT.getKey())
 | 
			
		||||
                .flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
 | 
			
		||||
                .hisStatus(TaskStatusEnum.BACK.getStatus())
 | 
			
		||||
                .hisTaskExt(bo.getFileId());
 | 
			
		||||
            taskService.skip(task.getId(), flowParams);
 | 
			
		||||
 | 
			
		||||
            Instance instance = insService.getById(inst.getId());
 | 
			
		||||
@@ -519,9 +519,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
            if (ObjectUtil.isNotNull(instance)) {
 | 
			
		||||
                BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus());
 | 
			
		||||
            }
 | 
			
		||||
            FlowParams flowParams = new FlowParams();
 | 
			
		||||
            flowParams.message(bo.getComment());
 | 
			
		||||
            flowParams.flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
 | 
			
		||||
            FlowParams flowParams = FlowParams.build()
 | 
			
		||||
                .message(bo.getComment())
 | 
			
		||||
                .flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
 | 
			
		||||
                .hisStatus(TaskStatusEnum.TERMINATION.getStatus());
 | 
			
		||||
            taskService.termination(taskId, flowParams);
 | 
			
		||||
            return true;
 | 
			
		||||
@@ -662,8 +662,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    public boolean taskOperation(TaskOperationBo bo, String taskOperation) {
 | 
			
		||||
        FlowParams flowParams = new FlowParams();
 | 
			
		||||
        flowParams.message(bo.getMessage());
 | 
			
		||||
        FlowParams flowParams = FlowParams.build()
 | 
			
		||||
            .message(bo.getMessage());
 | 
			
		||||
        if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) {
 | 
			
		||||
            flowParams.ignore(true);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user