141 lines
5.3 KiB
Java
141 lines
5.3 KiB
Java
package com.release11;
|
|
|
|
import org.apache.camel.Exchange;
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Element;
|
|
|
|
import javax.xml.parsers.DocumentBuilder;
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import javax.xml.transform.OutputKeys;
|
|
import javax.xml.transform.Result;
|
|
import javax.xml.transform.Transformer;
|
|
import javax.xml.transform.TransformerFactory;
|
|
import javax.xml.transform.dom.DOMSource;
|
|
import javax.xml.transform.stream.StreamResult;
|
|
import java.io.File;
|
|
import java.util.*;
|
|
|
|
public class DAO {
|
|
|
|
static List<Material> materials = new ArrayList<>();
|
|
static List<Package> packages = new ArrayList<>();
|
|
|
|
public String test(LinkedHashMap materialMap) throws Exception {
|
|
Material material = mapToMaterial(materialMap);
|
|
String xml = singleXML(material);
|
|
return xml;
|
|
}
|
|
|
|
public void getId(Exchange exchange) throws InterruptedException {
|
|
|
|
String tmp = exchange.getIn().getBody().toString();
|
|
System.out.println(tmp);
|
|
exchange.getIn().setBody("SELECT * FROM package WHERE material_id = 1");
|
|
}
|
|
|
|
public void splitPackage(LinkedHashMap packageMap) {
|
|
Package pack = new Package();
|
|
pack.setId((Integer) packageMap.get("id"));
|
|
pack.setNumber((String) packageMap.get("number"));
|
|
pack.setMaterial_id((Integer) packageMap.get("material_id"));
|
|
pack.setEan((String.valueOf(packageMap.get("ean"))));
|
|
pack.setUnit_of_measure((String) packageMap.get("unit_of_measure"));
|
|
pack.setDimension((String) packageMap.get("dimension"));
|
|
pack.setDescription((String) packageMap.get("description"));
|
|
packages.add(pack);
|
|
}
|
|
|
|
public void splitMaterial(LinkedHashMap materialMap) {
|
|
Material material = mapToMaterial(materialMap);
|
|
materials.add(material);
|
|
}
|
|
|
|
public String singleXML(Material material) throws Exception {
|
|
|
|
File file = new File("src/main/resources/test.xml");
|
|
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
|
DocumentBuilder builder = dbf.newDocumentBuilder();
|
|
Document doc = builder.newDocument();
|
|
Element root = doc.createElement("material");
|
|
|
|
Element materialNumber = doc.createElement("material_number");
|
|
materialNumber.setTextContent(String.valueOf(material.getNumber()));
|
|
root.appendChild(materialNumber);
|
|
|
|
Element materialType = doc.createElement("material_type");
|
|
materialType.setTextContent(String.valueOf(material.getType()));
|
|
root.appendChild(materialType);
|
|
|
|
Element materialName = doc.createElement("material_name");
|
|
materialName.setTextContent(String.valueOf(material.getName()));
|
|
root.appendChild(materialName);
|
|
|
|
Element description = doc.createElement("description");
|
|
description.setTextContent(material.getDescription());
|
|
root.appendChild(description);
|
|
|
|
Element is_deleted = doc.createElement("is_deleted");
|
|
is_deleted.setTextContent(String.valueOf(material.getIs_deleted()));
|
|
root.appendChild(is_deleted);
|
|
|
|
for (Package p : material.getPackageList()) {
|
|
|
|
Element packageElement = doc.createElement("packages");
|
|
|
|
Element packageNumber = doc.createElement("package_number");
|
|
packageNumber.setTextContent(String.valueOf(p.getNumber()));
|
|
packageElement.appendChild(packageNumber);
|
|
|
|
Element ean = doc.createElement("ean");
|
|
ean.setTextContent(String.valueOf(p.getEan()));
|
|
packageElement.appendChild(ean);
|
|
|
|
Element unit = doc.createElement("unit_of_measure");
|
|
unit.setTextContent(String.valueOf(p.getUnit_of_measure()));
|
|
packageElement.appendChild(unit);
|
|
|
|
Element dimension = doc.createElement("dimension");
|
|
dimension.setTextContent(String.valueOf(p.getDimension()));
|
|
packageElement.appendChild(dimension);
|
|
|
|
Element descriptionPackage = doc.createElement("description");
|
|
descriptionPackage.setTextContent(String.valueOf(p.getDescription()));
|
|
packageElement.appendChild(descriptionPackage);
|
|
|
|
root.appendChild(packageElement);
|
|
}
|
|
|
|
doc.appendChild(root);
|
|
DOMSource src = new DOMSource(doc);
|
|
Result result = new StreamResult(file);
|
|
TransformerFactory tf = TransformerFactory.newInstance();
|
|
Transformer transformer = tf.newTransformer();
|
|
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
|
transformer.transform(src, result);
|
|
|
|
String xml = "";
|
|
Scanner myReader = new Scanner(file);
|
|
while (myReader.hasNextLine()) {
|
|
xml += myReader.nextLine() + "\n";
|
|
}
|
|
|
|
return xml;
|
|
|
|
}
|
|
|
|
public Material mapToMaterial(LinkedHashMap list) {
|
|
Material material = new Material();
|
|
material.setId((Integer) list.get("id"));
|
|
material.setNumber((String) list.get("number"));
|
|
material.setType(Material.enumType.valueOf((String) list.get("type")));
|
|
material.setName((String) list.get("name"));
|
|
material.setDescription((String) list.get("description"));
|
|
material.setIs_deleted((Boolean) list.get("is_deleted"));
|
|
for (int j = 0; j < packages.size(); j++) {
|
|
if (packages.get(j).getMaterial_id() == material.getId())
|
|
material.getPackageList().add(packages.get(j));
|
|
}
|
|
return material;
|
|
}
|
|
}
|