update 统一工作流FlowParams构造方式为建造者模式,提升代码可读性

This commit is contained in:
AprilWind 2025-04-10 16:01:29 +08:00
parent a690ece164
commit 564ab331d7
4 changed files with 42 additions and 45 deletions

View File

@ -32,13 +32,10 @@ public class FlowProcessEventHandler {
* @param params 办理参数 * @param params 办理参数
* @param submit 当为true时为申请人节点办理 * @param submit 当为true时为申请人节点办理
*/ */
public void processHandler(String flowCode, Instance instance, public void processHandler(String flowCode, Instance instance, String status, Map<String, Object> params, boolean submit) {
String status, Map<String, Object> params, boolean submit) {
String tenantId = TenantHelper.getTenantId(); 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); tenantId, flowCode, instance.getBusinessId(), status, instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), submit, params);
ProcessEvent processEvent = new ProcessEvent(); ProcessEvent processEvent = new ProcessEvent();
processEvent.setTenantId(tenantId); processEvent.setTenantId(tenantId);
processEvent.setFlowCode(flowCode); processEvent.setFlowCode(flowCode);
@ -61,7 +58,7 @@ public class FlowProcessEventHandler {
*/ */
public void processCreateTaskHandler(String flowCode, Instance instance, Long taskId) { public void processCreateTaskHandler(String flowCode, Instance instance, Long taskId) {
String tenantId = TenantHelper.getTenantId(); 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); tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId);
ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent(); ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
processCreateTaskEvent.setTenantId(tenantId); processCreateTaskEvent.setTenantId(tenantId);
@ -82,7 +79,7 @@ public class FlowProcessEventHandler {
*/ */
public void processDeleteHandler(String flowCode, String businessId) { public void processDeleteHandler(String flowCode, String businessId) {
String tenantId = TenantHelper.getTenantId(); String tenantId = TenantHelper.getTenantId();
log.info("发布删除流程事件, 租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId); log.info("【流程删除事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId);
ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent(); ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent();
processDeleteEvent.setTenantId(tenantId); processDeleteEvent.setTenantId(tenantId);
processDeleteEvent.setFlowCode(flowCode); processDeleteEvent.setFlowCode(flowCode);

View File

@ -198,12 +198,12 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
} }
for (FlowTask task : list) { for (FlowTask task : list) {
List<UserDTO> userList = flwTaskService.currentTaskAllUser(task.getId()); List<UserDTO> userList = flwTaskService.currentTaskAllUser(task.getId());
FlowParams flowParams = FlowParams.build(); FlowParams flowParams = FlowParams.build()
flowParams.nodeCode(targetNodeCode); .nodeCode(targetNodeCode)
flowParams.message(message); .message(message)
flowParams.skipType(SkipType.PASS.getKey()); .skipType(SkipType.PASS.getKey())
flowParams.flowStatus(flowStatus).hisStatus(flowHisStatus); .flowStatus(flowStatus).hisStatus(flowHisStatus)
flowParams.ignore(true); .ignore(true);
//解决会签没权限问题 //解决会签没权限问题
if (CollUtil.isNotEmpty(userList)) { if (CollUtil.isNotEmpty(userList)) {
flowParams.handler(userList.get(0).getUserId().toString()); flowParams.handler(userList.get(0).getUserId().toString());

View File

@ -437,11 +437,11 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
} }
List<FlowTask> flowTaskList = flwTaskService.selectByInstId(bo.getId()); List<FlowTask> flowTaskList = flwTaskService.selectByInstId(bo.getId());
for (FlowTask flowTask : flowTaskList) { for (FlowTask flowTask : flowTaskList) {
FlowParams flowParams = new FlowParams(); FlowParams flowParams = FlowParams.build()
flowParams.message(bo.getComment()); .message(bo.getComment())
flowParams.flowStatus(BusinessStatusEnum.INVALID.getStatus()) .flowStatus(BusinessStatusEnum.INVALID.getStatus())
.hisStatus(TaskStatusEnum.INVALID.getStatus()); .hisStatus(TaskStatusEnum.INVALID.getStatus())
flowParams.ignore(true); .ignore(true);
taskService.termination(flowTask.getId(), flowParams); taskService.termination(flowTask.getId(), flowParams);
} }
return true; return true;

View File

@ -117,10 +117,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
dto.setTaskId(taskList.get(0).getId()); dto.setTaskId(taskList.get(0).getId());
return dto; return dto;
} }
FlowParams flowParams = new FlowParams(); FlowParams flowParams = FlowParams.build()
flowParams.flowCode(startProcessBo.getFlowCode()); .flowCode(startProcessBo.getFlowCode())
flowParams.variable(startProcessBo.getVariables()); .variable(startProcessBo.getVariables())
flowParams.flowStatus(BusinessStatusEnum.DRAFT.getStatus()); .flowStatus(BusinessStatusEnum.DRAFT.getStatus());
Instance instance; Instance instance;
try { try {
instance = insService.start(businessId, flowParams); instance = insService.start(businessId, flowParams);
@ -170,13 +170,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
completeTaskBo.getVariables().putAll(assigneeMap); completeTaskBo.getVariables().putAll(assigneeMap);
} }
// 构建流程参数包括变量跳转类型消息处理人权限等信息 // 构建流程参数包括变量跳转类型消息处理人权限等信息
FlowParams flowParams = new FlowParams(); FlowParams flowParams = FlowParams.build()
flowParams.variable(completeTaskBo.getVariables()); .variable(completeTaskBo.getVariables())
flowParams.skipType(SkipType.PASS.getKey()); .skipType(SkipType.PASS.getKey())
flowParams.message(completeTaskBo.getMessage()); .message(completeTaskBo.getMessage())
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus()); .flowStatus(BusinessStatusEnum.WAITING.getStatus())
.hisStatus(TaskStatusEnum.PASS.getStatus())
flowParams.hisTaskExt(completeTaskBo.getFileId()); .hisTaskExt(completeTaskBo.getFileId());
// 执行任务跳转并根据返回的处理人设置下一步处理人 // 执行任务跳转并根据返回的处理人设置下一步处理人
Instance instance = taskService.skip(taskId, flowParams); Instance instance = taskService.skip(taskId, flowParams);
this.setHandler(instance, flowTask, flowCopyList); this.setHandler(instance, flowTask, flowCopyList);
@ -310,10 +310,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
task.setId(taskId); task.setId(taskId);
task.setNodeName("【抄送】" + task.getNodeName()); task.setNodeName("【抄送】" + task.getNodeName());
Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000); Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000);
FlowParams flowParams = FlowParams.build(); FlowParams flowParams = FlowParams.build()
flowParams.skipType(SkipType.NONE.getKey()); .skipType(SkipType.NONE.getKey())
flowParams.hisStatus(TaskStatusEnum.COPY.getStatus()); .hisStatus(TaskStatusEnum.COPY.getStatus())
flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName)); .message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams); HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
hisTask.setCreateTime(updateTime); hisTask.setCreateTime(updateTime);
hisTask.setUpdateTime(updateTime); hisTask.setUpdateTime(updateTime);
@ -456,13 +456,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Long definitionId = task.getDefinitionId(); Long definitionId = task.getDefinitionId();
Definition definition = defService.getById(definitionId); Definition definition = defService.getById(definitionId);
String applyNodeCode = flwCommonService.applyNodeCode(definitionId); String applyNodeCode = flwCommonService.applyNodeCode(definitionId);
FlowParams flowParams = FlowParams.build(); FlowParams flowParams = FlowParams.build()
flowParams.nodeCode(bo.getNodeCode()); .nodeCode(bo.getNodeCode())
flowParams.message(message); .message(message)
flowParams.skipType(SkipType.REJECT.getKey()); .skipType(SkipType.REJECT.getKey())
flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus()) .flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
.hisStatus(TaskStatusEnum.BACK.getStatus()); .hisStatus(TaskStatusEnum.BACK.getStatus())
flowParams.hisTaskExt(bo.getFileId()); .hisTaskExt(bo.getFileId());
taskService.skip(task.getId(), flowParams); taskService.skip(task.getId(), flowParams);
Instance instance = insService.getById(inst.getId()); Instance instance = insService.getById(inst.getId());
@ -519,9 +519,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
if (ObjectUtil.isNotNull(instance)) { if (ObjectUtil.isNotNull(instance)) {
BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus()); BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus());
} }
FlowParams flowParams = new FlowParams(); FlowParams flowParams = FlowParams.build()
flowParams.message(bo.getComment()); .message(bo.getComment())
flowParams.flowStatus(BusinessStatusEnum.TERMINATION.getStatus()) .flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
.hisStatus(TaskStatusEnum.TERMINATION.getStatus()); .hisStatus(TaskStatusEnum.TERMINATION.getStatus());
taskService.termination(taskId, flowParams); taskService.termination(taskId, flowParams);
return true; return true;
@ -662,8 +662,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean taskOperation(TaskOperationBo bo, String taskOperation) { public boolean taskOperation(TaskOperationBo bo, String taskOperation) {
FlowParams flowParams = new FlowParams(); FlowParams flowParams = FlowParams.build()
flowParams.message(bo.getMessage()); .message(bo.getMessage());
if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) { if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) {
flowParams.ignore(true); flowParams.ignore(true);
} }