update 调整转办等消息提示

This commit is contained in:
gssong
2026-03-09 10:12:02 +08:00
parent 3cbbd0698d
commit 07b29e06cf

View File

@@ -144,9 +144,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
throw new ServiceException("流程【" + startProcessBo.getFlowCode() + "】未发布,请先在流程设计器中发布流程定义"); throw new ServiceException("流程【" + startProcessBo.getFlowCode() + "】未发布,请先在流程设计器中发布流程定义");
} }
Dict dict = JsonUtils.parseMap(definition.getExt()); Dict dict = JsonUtils.parseMap(definition.getExt());
boolean autoPass = !ObjectUtil.isNull(dict) && dict.getBool(FlowConstant.AUTO_PASS); boolean autoPass = !ObjectUtil.isNull(dict) && dict.getBool(AUTO_PASS);
variables.put(FlowConstant.AUTO_PASS, autoPass); variables.put(AUTO_PASS, autoPass);
variables.put(FlowConstant.BUSINESS_CODE, this.generateBusinessCode(bizExt)); variables.put(BUSINESS_CODE, this.generateBusinessCode(bizExt));
FlowParams flowParams = FlowParams.build() FlowParams flowParams = FlowParams.build()
.handler(startProcessBo.getHandler()) .handler(startProcessBo.getHandler())
.flowCode(startProcessBo.getFlowCode()) .flowCode(startProcessBo.getFlowCode())
@@ -208,11 +208,11 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
List<FlowCopyBo> flowCopyList = completeTaskBo.getFlowCopyList(); List<FlowCopyBo> flowCopyList = completeTaskBo.getFlowCopyList();
// 设置抄送人 // 设置抄送人
Map<String, Object> variables = completeTaskBo.getVariables(); Map<String, Object> variables = completeTaskBo.getVariables();
variables.put(FlowConstant.FLOW_COPY_LIST, flowCopyList); variables.put(FLOW_COPY_LIST, flowCopyList);
// 消息类型 // 消息类型
variables.put(FlowConstant.MESSAGE_TYPE, messageType); variables.put(MESSAGE_TYPE, messageType);
// 消息通知 // 消息通知
variables.put(FlowConstant.MESSAGE_NOTICE, notice); variables.put(MESSAGE_NOTICE, notice);
FlowTask flowTask = flowTaskMapper.selectById(taskId); FlowTask flowTask = flowTaskMapper.selectById(taskId);
@@ -222,7 +222,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Instance ins = insService.getById(flowTask.getInstanceId()); Instance ins = insService.getById(flowTask.getInstanceId());
// 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听 // 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听
if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) { if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) {
variables.put(FlowConstant.SUBMIT, true); variables.put(SUBMIT, true);
} }
// 设置弹窗处理人 // 设置弹窗处理人
Map<String, Object> assigneeMap = setPopAssigneeMap(completeTaskBo.getAssigneeMap(), ins.getVariableMap()); Map<String, Object> assigneeMap = setPopAssigneeMap(completeTaskBo.getAssigneeMap(), ins.getVariableMap());
@@ -275,9 +275,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
flowParams. flowParams.
message("流程引擎自动审批!"). message("流程引擎自动审批!").
variable(Map.of( variable(Map.of(
FlowConstant.SUBMIT, false, SUBMIT, false,
FlowConstant.FLOW_COPY_LIST, Collections.emptyList(), FLOW_COPY_LIST, Collections.emptyList(),
FlowConstant.MESSAGE_NOTICE, StringUtils.EMPTY)); MESSAGE_NOTICE, StringUtils.EMPTY));
skipTask(task.getId(), flowParams, instanceId, true); skipTask(task.getId(), flowParams, instanceId, true);
} }
} }
@@ -489,9 +489,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Map<String, Object> variable = new HashMap<>(); Map<String, Object> variable = new HashMap<>();
// 消息类型 // 消息类型
variable.put(FlowConstant.MESSAGE_TYPE, messageType); variable.put(MESSAGE_TYPE, messageType);
// 消息通知 // 消息通知
variable.put(FlowConstant.MESSAGE_NOTICE, notice); variable.put(MESSAGE_NOTICE, notice);
FlowParams flowParams = FlowParams.build() FlowParams flowParams = FlowParams.build()
.nodeCode(bo.getNodeCode()) .nodeCode(bo.getNodeCode())
@@ -756,9 +756,29 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
} }
} }
// 发送消息给相关用户 // 设置任务状态并执行对应的任务操作
List<String> messageType = bo.getMessageType(); boolean result = false;
if (CollUtil.isNotEmpty(messageType)) { switch (op) {
case DELEGATE_TASK -> {
flowParams.hisStatus(TaskStatusEnum.DEPUTE.getStatus());
result = taskService.depute(taskId, flowParams);
}
case TRANSFER_TASK -> {
flowParams.hisStatus(TaskStatusEnum.TRANSFER.getStatus());
result = taskService.transfer(taskId, flowParams);
}
case ADD_SIGNATURE -> {
flowParams.hisStatus(TaskStatusEnum.SIGN.getStatus());
result = taskService.addSignature(taskId, flowParams);
}
case REDUCTION_SIGNATURE -> {
flowParams.hisStatus(TaskStatusEnum.SIGN_OFF.getStatus());
result = taskService.reductionSignature(taskId, flowParams);
}
}
// 操作执行成功后再发送消息
if (result && CollUtil.isNotEmpty(bo.getMessageType())) {
List<Long> userIdList = new ArrayList<>(); List<Long> userIdList = new ArrayList<>();
if (StrUtil.isNotBlank(bo.getUserId())) { if (StrUtil.isNotBlank(bo.getUserId())) {
userIdList.add(Convert.toLong(bo.getUserId())); userIdList.add(Convert.toLong(bo.getUserId()));
@@ -768,33 +788,14 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
} }
if (CollUtil.isNotEmpty(userIdList)) { if (CollUtil.isNotEmpty(userIdList)) {
flwCommonService.sendMessage( flwCommonService.sendMessage(
messageType, bo.getMessageType(),
StringUtils.isNotBlank(bo.getMessage()) ? bo.getMessage() : "单据「" + op.getDesc() + "」通知", StringUtils.isNotBlank(bo.getMessage()) ? bo.getMessage() : "单据「" + op.getDesc() + "」通知",
"单据「" + op.getDesc() + "」提醒", "单据「" + op.getDesc() + "」提醒",
userService.selectListByIds(userIdList) userService.selectListByIds(userIdList)
); );
} }
} }
// 设置任务状态并执行对应的任务操作 return result;
switch (op) {
case DELEGATE_TASK -> {
flowParams.hisStatus(TaskStatusEnum.DEPUTE.getStatus());
return taskService.depute(taskId, flowParams);
}
case TRANSFER_TASK -> {
flowParams.hisStatus(TaskStatusEnum.TRANSFER.getStatus());
return taskService.transfer(taskId, flowParams);
}
case ADD_SIGNATURE -> {
flowParams.hisStatus(TaskStatusEnum.SIGN.getStatus());
return taskService.addSignature(taskId, flowParams);
}
case REDUCTION_SIGNATURE -> {
flowParams.hisStatus(TaskStatusEnum.SIGN_OFF.getStatus());
return taskService.reductionSignature(taskId, flowParams);
}
}
return false;
} }
/** /**