Beispiel #1
0
  /**
   * @param model
   * @return
   */
  public static Document getDoc(DocumentModel model) {
    if (model == null) {
      return null;
    }
    Document doc = new Document();
    doc.setCreated(model.getCreated());
    doc.setDescription(model.getDescription());
    doc.setDocumentDate(model.getDocumentDate());
    doc.setId(model.getId());
    doc.setOwner(LoginHelper.get().getUser(model.getCreatedBy()));
    doc.setCaseNo(model.getSubject());
    doc.setType(getType(model.getType()));
    doc.setDocumentDate(model.getDocumentDate());
    doc.setPartner(model.getPartner());
    doc.setPriority(model.getPriority());
    doc.setValue(model.getValue());
    doc.setStatus(model.getStatus());
    doc.setProcessInstanceId(model.getProcessInstanceId());

    if (model.getProcessInstanceId() != null) {
      ProcessInstanceLog log =
          JPAProcessInstanceDbLog.findProcessInstance(model.getProcessInstanceId());
      if (log != null) doc.setDateSubmitted(log.getStart());
    }

    if (model.getProcessInstanceId() != null) {
      try {
        JBPMHelper.get().loadProgressInfo(doc, model.getProcessInstanceId());
      } catch (Exception e) {
        e.printStackTrace();
      }
    }

    if (model.getProcessId() == null && model.getType() != null) {
      doc.setProcessId(model.getType().getProcessDef().getProcessId());
    } else {
      doc.setProcessId(model.getProcessId());
    }

    if (doc.getProcessId() != null) {
      doc.setProcessName(JBPMHelper.get().getProcessName(doc.getProcessId()));
    }

    doc.setSessionId(model.getSessionId());
    doc.setHasAttachment(DB.getAttachmentDao().getHasAttachment(model.getId()));
    Collection<ADValue> values = model.getValues();
    if (values != null) {
      for (ADValue val : values) {
        // val.
        DataType type = getDataType(val);

        doc.setValue(val.getFieldName(), getValue(val, type));
      }
    }

    doc.setDetails(getDetails(model.getDetails()));

    return doc;
  }
Beispiel #2
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);
  }
Beispiel #3
0
  /**
   * @param content
   * @return
   */
  public static Document getDocument(Map<String, Object> content) {
    Document doc = new Document();
    if (content.get("documentOut") != null) {

      doc = (Document) content.get("documentOut");
      System.out.println("(1) ::" + doc.getCaseNo());
    } else if (content.get("document") != null) {

      doc = (Document) content.get("document");
      System.out.println("(2) :: " + doc.getCaseNo());

    } else {
      // System.err.println("DocumentDaoHelper.getDocument says Document is null!!");
      String description =
          content.get("description") == null ? null : (String) content.get("description");

      String subject = content.get("subject") == null ? null : (String) content.get("subject");
      if (subject == null) {
        subject = content.get("caseNo") == null ? null : (String) content.get("caseNo");
      }

      String value = content.get("value") == null ? null : (String) content.get("value");

      Integer priority = content.get("priority") == null ? null : (Integer) content.get("priority");

      doc.setDescription(description);
      doc.setCaseNo(subject);
      doc.setValue(value);
      doc.setPriority(priority);
      System.out.println("(3) :: " + doc.getCaseNo());
    }

    if (doc.getId() == null) {

      Object idStr = content.get("documentId");
      if (idStr == null || idStr.equals("null")) {
        idStr = null;
      }
      Long id = idStr == null ? null : new Long(idStr.toString());
      doc.setId(id);
    }

    return doc;
  }
Beispiel #4
0
  /**
   * This method saves updates a document
   *
   * @param document
   * @return Document
   * @throws InvalidSubjectExeption
   */
  public static Document save(Document document) throws InvalidSubjectExeption {

    DocumentDaoImpl dao = DB.getDocumentDao();

    // save
    if (document.getId() == null) {
      if (exists(document.getCaseNo())) {
        throw new InvalidSubjectExeption(
            "Case '" + document.getCaseNo() + "' already exists, this number cannot be reused");
      }

      if (document.getCaseNo() == null) {
        ADDocType type = dao.getDocumentTypeByName(document.getType().getName());
        document.setCaseNo(dao.generateDocumentSubject(type));

        Value value = document.getValues().get("caseNo");
        if (value == null) {
          value = new StringValue(null, "caseNo", "");
        }
        value.setValue(document.getCaseNo());
        document.setValue("caseNo", value);
      }

      if (document.getDescription() == null) {
        document.setDescription(document.getCaseNo());
        Value value = document.getValues().get("description");
        if (value == null) {
          value = new StringValue(null, "description", "");
        }
        value.setValue(document.getCaseNo());
        document.getValues().put("description", value);
      }
    }
    DocumentModel model = getDoc(document);

    if (document.getId() != null) {
      model = dao.getById(document.getId());
      model.setDescription(document.getDescription());
      model.setDocumentDate(document.getDocumentDate());
      model.setPartner(document.getPartner());
      model.setPriority(document.getPriority());
      model.setSubject(document.getCaseNo());
      model.setType(getType(document.getType()));
      model.setValue(document.getValue());
      model.setStatus(document.getStatus());
      model.setProcessInstanceId(document.getProcessInstanceId());
      model.setSessionId(document.getSessionId());
    }

    model.getValues().clear();
    Map<String, Value> vals = document.getValues();
    Collection<Value> values = vals.values();
    for (Value val : values) {
      if (val == null || (val instanceof GridValue)) {
        // Ignore
        continue;
      }

      ADValue previousValue = new ADValue();
      if (val.getId() != null) {
        previousValue = DB.getFormDao().getValue(val.getId());
      }

      ADValue adValue = getValue(previousValue, val);
      assert adValue != null;
      model.addValue(adValue);
    }

    // setDetails
    setDetails(model, document.getDetails());

    model = dao.saveDocument(model);

    Document doc = getDoc(model);

    return doc;
  }