@Override
public <T> Map<String,String> saveChartData(String chartCode, File newFile) throws Exception{
Map<String, Map<String, Object>> queryTerritory1=queryTerritory(newFile);
// 创建一个集合用于返回所存储的板图号id 和版图信息的作业类型表
Map<String,String> map1 = new HashMap<>();
Map map = new HashMap();
SAXReader reader = new SAXReader();
map.put("schemaLocation", "http://www.hz.com.cn hull.xsd");
map.put("xsi", "http://www.w3.org/2001/XMLSchema-instance");
map.put("hull", "http://www.hz.com.cn");
// 跳转到当前标签
reader.getDocumentFactory().setXPathNamespaceURIs(map);
// Document d = reader.read("./demo/demo/B12B22套料.xml");
Document d = reader.read(newFile);
Document doc = DocumentHelper.parseText(d.asXML());
// 获得根节点
Element rootElrm = doc.getRootElement();
List<Node> nodes = rootElrm.selectNodes("//hull:Nests/hull:Nest");
// 如果不等于空 与 集合总数大于0
List<T> listModel = new ArrayList<>();
if (nodes != null && nodes.size() > 0) {
for (Node nod : nodes) {
Element ele = (Element) nod;
String charId = ele.attributeValue("ID");
map1.put(charId, "mes_mp_chart_example_job_type");
// 每次创建一个实体类保存数据
MesMfChartExample mesMfChartExample = new MesMfChartExample();
mesMfChartExample.setUuid(charId);
mesMfChartExample.setObjName(charId);
mesMfChartExample.setLevelCode(charId);
// 层级编码和名称特定写死的
mesMfChartExample.setLevelCode("chart_example");
mesMfChartExample.setLevelUuid("bcbde099-cef7-487b-9fff-bbc4134a3754");
mesMfChartExample.setObjParentId(chartCode);
MesMfChartExampleJobType mesMfChartExampleJobType = new MesMfChartExampleJobType();
MesMfChartExampleJobType mesMfChartExampleJobType2 = new MesMfChartExampleJobType();
mesMfChartExampleJobType.setProductCode(charId);
mesMfChartExampleJobType.setCapacityFactor((float) 1.0);
mesMfChartExampleJobType2.setProductCode(charId);
mesMfChartExampleJobType2.setCapacityFactor((float) 1.0);
//对板材型材进行区分保存
if (null != charId) {
String ares = queryTerritory1.get(charId).get("product_specifications").toString();
mesMfChartExample.setProductSpecifications(ares);
String Quality = queryTerritory1.get(charId).get("Quality").toString();
mesMfChartExample.setMaterialCz1(Quality);
if (null != ares && ares.contains("*")) {
String[] A = ares.split("[*]");
String B = A[A.length - 1];
Integer ss = Integer.parseInt(B);
float C = Float.valueOf(ss);
//保留两位小数
/*float F=C/1000;
float G = (float)(Math.round(F*100))/100;*/
double K= Double.parseDouble(String.valueOf(C)) ;
mesMfChartExampleJobType.setVolume(K);
mesMfChartExample.setMatType("MAT_BC");
mesMfChartExampleJobType.setJobType("HC1@a1@板材");
mesMfChartExampleJobType.setProductUnit("毫米");
} else {
float D = Float.parseFloat(ares);
double M=Double.parseDouble(String.valueOf(D)) ;
mesMfChartExampleJobType.setVolume(M);
mesMfChartExample.setMatType("MAT_XC");
mesMfChartExampleJobType.setJobType("HC1@a2@型材");
mesMfChartExampleJobType.setProductUnit("个");
}
Object object1= queryTerritory1.get(charId).get("Value");
String cuttinglength=null;
if(null!=object1) {
cuttinglength=object1.toString();
}
Object object2=queryTerritory1.get(charId).get("CuttingType");
String CuttingType=null;
if(null!=object2) {
CuttingType=object2.toString();
}
Object object3 = queryTerritory1.get(charId).get("MaterialQuantity");
String MaterialQuantity=null;
if(null!=object3) {
MaterialQuantity=object3.toString();
}
//保存切割工艺
if(null!=cuttinglength&&null!=CuttingType&&"数切".equals(CuttingType)) {
float H= Float.parseFloat(cuttinglength);
//float I = (float)(Math.round(H*100))/100;
double X=Double.parseDouble(String.valueOf(H)) ;
mesMfChartExampleJobType2.setVolume(X);
mesMfChartExampleJobType2.setJobType("HC3@b1@数切");
mesMfChartExampleJobType2.setProductUnit("毫米");
listModel.add((T) mesMfChartExampleJobType2);
}
if(null!=MaterialQuantity&&null!=CuttingType&&"型材切割".equals(CuttingType)) {
float H= Float.parseFloat(MaterialQuantity);
//float I = (float)(Math.round(H*100))/100;
double X=Double.parseDouble(String.valueOf(H)) ;
mesMfChartExampleJobType2.setVolume(X);
mesMfChartExampleJobType2.setJobType("HC3@b3@型材切割");
mesMfChartExampleJobType2.setProductUnit("个");
listModel.add((T) mesMfChartExampleJobType2);
}
}
// 所有原料库都是预处理 特定写死的
listModel.add((T) mesMfChartExampleJobType);
listModel.add((T) mesMfChartExample);
}
}
xmlReadDao.saveOrUpdateAll(listModel);
return map1;
}
public <T> Map<String,String> saveChartData(String chartCode, File newFile) throws Exception{
Map<String, Map<String, Object>> queryTerritory1=queryTerritory(newFile);
// 创建一个集合用于返回所存储的板图号id 和版图信息的作业类型表
Map<String,String> map1 = new HashMap<>();
Map map = new HashMap();
SAXReader reader = new SAXReader();
map.put("schemaLocation", "http://www.hz.com.cn hull.xsd");
map.put("xsi", "http://www.w3.org/2001/XMLSchema-instance");
map.put("hull", "http://www.hz.com.cn");
// 跳转到当前标签
reader.getDocumentFactory().setXPathNamespaceURIs(map);
// Document d = reader.read("./demo/demo/B12B22套料.xml");
Document d = reader.read(newFile);
Document doc = DocumentHelper.parseText(d.asXML());
// 获得根节点
Element rootElrm = doc.getRootElement();
List<Node> nodes = rootElrm.selectNodes("//hull:Nests/hull:Nest");
// 如果不等于空 与 集合总数大于0
List<T> listModel = new ArrayList<>();
if (nodes != null && nodes.size() > 0) {
for (Node nod : nodes) {
Element ele = (Element) nod;
String charId = ele.attributeValue("ID");
map1.put(charId, "mes_mp_chart_example_job_type");
// 每次创建一个实体类保存数据
MesMfChartExample mesMfChartExample = new MesMfChartExample();
mesMfChartExample.setUuid(charId);
mesMfChartExample.setObjName(charId);
mesMfChartExample.setLevelCode(charId);
// 层级编码和名称特定写死的
mesMfChartExample.setLevelCode("chart_example");
mesMfChartExample.setLevelUuid("bcbde099-cef7-487b-9fff-bbc4134a3754");
mesMfChartExample.setObjParentId(chartCode);
MesMfChartExampleJobType mesMfChartExampleJobType = new MesMfChartExampleJobType();
MesMfChartExampleJobType mesMfChartExampleJobType2 = new MesMfChartExampleJobType();
mesMfChartExampleJobType.setProductCode(charId);
mesMfChartExampleJobType.setCapacityFactor((float) 1.0);
mesMfChartExampleJobType2.setProductCode(charId);
mesMfChartExampleJobType2.setCapacityFactor((float) 1.0);
//对板材型材进行区分保存
if (null != charId) {
String ares = queryTerritory1.get(charId).get("product_specifications").toString();
mesMfChartExample.setProductSpecifications(ares);
String Quality = queryTerritory1.get(charId).get("Quality").toString();
mesMfChartExample.setMaterialCz1(Quality);
if (null != ares && ares.contains("*")) {
String[] A = ares.split("[*]");
String B = A[A.length - 1];
Integer ss = Integer.parseInt(B);
float C = Float.valueOf(ss);
//保留两位小数
/*float F=C/1000;
float G = (float)(Math.round(F*100))/100;*/
double K= Double.parseDouble(String.valueOf(C)) ;
mesMfChartExampleJobType.setVolume(K);
mesMfChartExample.setMatType("MAT_BC");
mesMfChartExampleJobType.setJobType("HC1@a1@板材");
mesMfChartExampleJobType.setProductUnit("毫米");
} else {
float D = Float.parseFloat(ares);
double M=Double.parseDouble(String.valueOf(D)) ;
mesMfChartExampleJobType.setVolume(M);
mesMfChartExample.setMatType("MAT_XC");
mesMfChartExampleJobType.setJobType("HC1@a2@型材");
mesMfChartExampleJobType.setProductUnit("个");
}
Object object1= queryTerritory1.get(charId).get("Value");
String cuttinglength=null;
if(null!=object1) {
cuttinglength=object1.toString();
}
Object object2=queryTerritory1.get(charId).get("CuttingType");
String CuttingType=null;
if(null!=object2) {
CuttingType=object2.toString();
}
Object object3 = queryTerritory1.get(charId).get("MaterialQuantity");
String MaterialQuantity=null;
if(null!=object3) {
MaterialQuantity=object3.toString();
}
//保存切割工艺
if(null!=cuttinglength&&null!=CuttingType&&"数切".equals(CuttingType)) {
float H= Float.parseFloat(cuttinglength);
//float I = (float)(Math.round(H*100))/100;
double X=Double.parseDouble(String.valueOf(H)) ;
mesMfChartExampleJobType2.setVolume(X);
mesMfChartExampleJobType2.setJobType("HC3@b1@数切");
mesMfChartExampleJobType2.setProductUnit("毫米");
listModel.add((T) mesMfChartExampleJobType2);
}
if(null!=MaterialQuantity&&null!=CuttingType&&"型材切割".equals(CuttingType)) {
float H= Float.parseFloat(MaterialQuantity);
//float I = (float)(Math.round(H*100))/100;
double X=Double.parseDouble(String.valueOf(H)) ;
mesMfChartExampleJobType2.setVolume(X);
mesMfChartExampleJobType2.setJobType("HC3@b3@型材切割");
mesMfChartExampleJobType2.setProductUnit("个");
listModel.add((T) mesMfChartExampleJobType2);
}
}
// 所有原料库都是预处理 特定写死的
listModel.add((T) mesMfChartExampleJobType);
listModel.add((T) mesMfChartExample);
}
}
xmlReadDao.saveOrUpdateAll(listModel);
return map1;
}