import org.kuali.rice.krad.bo.Note; //导入方法依赖的package包/类
/**
* @see org.kuali.rice.krad.service.DocumentService
*/
@Override
public Document sendNoteRouteNotification(Document document, Note note, Person sender) throws WorkflowException {
AdHocRouteRecipient routeRecipient = note.getAdHocRouteRecipient();
// build notification request
Person requestedUser = this.getPersonService().getPersonByPrincipalName(routeRecipient.getId());
String senderName = sender.getFirstName() + " " + sender.getLastName();
String requestedName = requestedUser.getFirstName() + " " + requestedUser.getLastName();
String notificationText =
kualiConfigurationService.getPropertyValueAsString(
RiceKeyConstants.MESSAGE_NOTE_NOTIFICATION_ANNOTATION);
if (StringUtils.isBlank(notificationText)) {
throw new RuntimeException(
"No annotation message found for note notification. Message needs added to application resources with key:" +
RiceKeyConstants.MESSAGE_NOTE_NOTIFICATION_ANNOTATION);
}
notificationText =
MessageFormat.format(notificationText, new Object[]{senderName, requestedName, note.getNoteText()});
List routeRecipients = new ArrayList();
routeRecipients.add(routeRecipient);
workflowDocumentService
.sendWorkflowNotification(document.getDocumentHeader().getWorkflowDocument(), notificationText,
routeRecipients, KRADConstants.NOTE_WORKFLOW_NOTIFICATION_REQUEST_LABEL);
// clear recipient allowing an notification to be sent to another person
note.setAdHocRouteRecipient(new AdHocRoutePerson());
return document;
}