private static Map<String, List<DocumentLine>> getDetails(Collection<DetailModel> details) { Map<String, List<DocumentLine>> lines = new HashMap<>(); for (DetailModel lineModel : details) { DocumentLine line = new DocumentLine(); line.setDocumentId(lineModel.getDocument().getId()); line.setId(lineModel.getId()); line.setName(lineModel.getName()); for (ADValue value : lineModel.getValues()) { Value val = getValue(value, getDataType(value)); line.addValue(value.getFieldName(), val); } List<DocumentLine> detailz = new ArrayList<>(); if (lines.get(line.getName()) != null) { detailz = lines.get(line.getName()); } else { lines.put(line.getName(), detailz); } if (!detailz.contains(line)) detailz.add(line); } return lines; }
/** * @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; }