|
|
@ -187,8 +187,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService { |
|
|
|
// 执行任务跳转,并根据返回的处理人设置下一步处理人
|
|
|
|
Instance instance = taskService.skip(taskId, flowParams); |
|
|
|
this.setHandler(instance, flowTask, flowCopyList); |
|
|
|
// 消息通知
|
|
|
|
sendMessage(definition.getFlowName(), ins.getId(), messageType, notice); |
|
|
|
// 待办消息通知
|
|
|
|
WorkflowUtils.sendMessage(definition.getFlowName(), ins.getId(), messageType, notice); |
|
|
|
return true; |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage(), e); |
|
|
@ -430,7 +430,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { |
|
|
|
Instance instance = insService.getById(inst.getId()); |
|
|
|
this.setHandler(instance, task, null); |
|
|
|
// 消息通知
|
|
|
|
sendMessage(definition.getFlowName(), instance.getId(), messageType, notice); |
|
|
|
WorkflowUtils.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice); |
|
|
|
return true; |
|
|
|
} catch (Exception e) { |
|
|
|
log.error(e.getMessage(), e); |
|
|
@ -733,51 +733,4 @@ public class FlwTaskServiceImpl implements IFlwTaskService { |
|
|
|
service.completeTask(completeTaskBo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 发送消息 |
|
|
|
* @param flowName |
|
|
|
* @param instId |
|
|
|
* @param messageType |
|
|
|
* @param message |
|
|
|
*/ |
|
|
|
private void sendMessage(String flowName, Long instId, List<String> messageType, String message) { |
|
|
|
List<RemoteUserVo> userList = new ArrayList<>(); |
|
|
|
List<FlowTask> list = this.selectByInstId(instId); |
|
|
|
|
|
|
|
if (StringUtils.isBlank(message)) { |
|
|
|
message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。"; |
|
|
|
} |
|
|
|
for (Task task : list) { |
|
|
|
List<RemoteUserVo> users = this.currentTaskAllUser(task.getId()); |
|
|
|
if (CollUtil.isNotEmpty(users)) { |
|
|
|
userList.addAll(users); |
|
|
|
} |
|
|
|
} |
|
|
|
if (CollUtil.isNotEmpty(userList)) { |
|
|
|
for (String code : messageType) { |
|
|
|
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code); |
|
|
|
if (ObjectUtil.isNotEmpty(messageTypeEnum)) { |
|
|
|
switch (messageTypeEnum) { |
|
|
|
case SYSTEM_MESSAGE: |
|
|
|
SseMessageDto dto = new SseMessageDto(); |
|
|
|
dto.setUserIds(StreamUtils.toList(userList, RemoteUserVo::getUserId).stream().distinct().collect(Collectors.toList())); |
|
|
|
dto.setMessage(message); |
|
|
|
dto.getUserIds().forEach(userId -> { |
|
|
|
remoteMessageService.publishMessage(userId,dto.getMessage()); |
|
|
|
}); |
|
|
|
break; |
|
|
|
case EMAIL_MESSAGE: |
|
|
|
MailUtils.sendText(StreamUtils.join(userList, RemoteUserVo::getEmail), "单据审批提醒", message); |
|
|
|
break; |
|
|
|
case SMS_MESSAGE: |
|
|
|
//todo 短信发送
|
|
|
|
break; |
|
|
|
default: |
|
|
|
throw new IllegalStateException("Unexpected value: " + messageTypeEnum); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|