update 统一工作流FlowParams构造方式为建造者模式,提升代码可读性
This commit is contained in:
parent
a690ece164
commit
564ab331d7
@ -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);
|
||||||
|
@ -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());
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user