예제 #1
0
  private void sendMail(
      String htmlTemplate, Document doc, List<HTUser> receipients, Map<String, Object> params) {

    if (receipients == null || receipients.isEmpty()) {
      return;
    }

    /**
     * Sending mail
     *
     * <p>Schedule async
     */
    CommandContext context = new CommandContext();
    params.put("callbacks", CommandCodes.SendEmailCallback.name());
    params.put("To", receipients);
    params.put("From", params.get("From") == null ? "*****@*****.**" : params.get("From"));
    params.put(
        "docDate",
        SimpleDateFormat.getDateInstance(SimpleDateFormat.MEDIUM)
            .format(doc.getDocumentDate() == null ? doc.getCreated() : doc.getDocumentDate()));
    DocumentType type = doc.getType();
    params.put("DocType", type.getDisplayName());
    params.put("DocumentURL", getDocUrl(doc.getId()));
    params.put("ownerId", doc.getOwner());

    try {
      if (htmlTemplate == null) {
        InputStream is =
            Thread.currentThread().getContextClassLoader().getResourceAsStream("email.html");
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        IOUtils.copy(is, bout);
        htmlTemplate = new String(bout.toByteArray());
      }

      // Merge params & doc
      for (String key : params.keySet()) {
        doc.setValue(
            key, params.get(key) == null ? null : new StringValue(params.get(key).toString()));
      }
      htmlTemplate = parse(htmlTemplate, doc);

      params.put("Body", htmlTemplate);
    } catch (Exception e) {
      e.printStackTrace();
    }

    params.put("businessKey", UUID.randomUUID().toString());
    context.setData(params);

    log.info("BODY = " + htmlTemplate);
    ExecutorModule.getInstance()
        .getExecutorServiceEntryPoint()
        .scheduleRequest(CommandCodes.SendEmailCommand, context);
  }
예제 #2
0
  /**
   * @param document
   * @return
   */
  private static DocumentModel getDoc(Document document) {
    DocumentModel model =
        new DocumentModel(
            document.getId(),
            document.getCaseNo(),
            document.getDescription(),
            getType(document.getType()));

    model.setDocumentDate(document.getDocumentDate());
    model.setPartner(document.getPartner());
    model.setPriority(document.getPriority());
    model.setValue(document.getValue());
    model.setCreated(document.getCreated());
    model.setStatus(document.getStatus());
    model.setProcessInstanceId(document.getProcessInstanceId());
    model.setSessionId(document.getSessionId());

    return model;
  }