java读取xml文件导入数据

@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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值