From 3dd3a893194e6d6756fffaf41171edbbcee6efd2 Mon Sep 17 00:00:00 2001
From: lxw <810412026@qq.com>
Date: 星期一, 31 十月 2022 15:02:23 +0800
Subject: [PATCH] 解析文件加版本

---
 src/main/java/com/whyc/dto/XmlFileOpreate.java |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 153 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/whyc/dto/XmlFileOpreate.java b/src/main/java/com/whyc/dto/XmlFileOpreate.java
index a56c56e..d3c9e79 100644
--- a/src/main/java/com/whyc/dto/XmlFileOpreate.java
+++ b/src/main/java/com/whyc/dto/XmlFileOpreate.java
@@ -15,10 +15,126 @@
 import java.util.*;
 
 public class XmlFileOpreate {
+    //瑙f瀽FBR-6000NT鍩虹2.7
+    public static FileInfo readFBR_6000NT_jc(String xmlFilePath){
+        FileInfo fileInfo=new FileInfo();//鏂囦欢淇℃伅
+        FileParam fparam=fileInfo.getFileParam();//鏂囦欢鍙傛暟
+        boolean res = true;
+        try
+        {
+            SAXReader reader = new SAXReader();
+            FileInputStream  fiso=new FileInputStream(xmlFilePath);
+            Document document = reader.read(fiso);
+            Element rootnode = document.getRootElement();
 
-    //瑙f瀽xml鏂囦欢
-    public static FileInfo readXml(String xmlFilePath)
-    {
+            Element node;//鏍硅妭鐐�
+            Element file_node;//鏂囦欢鑺傜偣
+
+            //------------------------------------------------------------//
+            node = rootnode.element("TEST_TIME");
+            String testTime=node.getTextTrim();
+            testTime=testTime.replace("_"," ");
+            fparam.setTestTime(ActionUtil.sdfwithALL.parse(testTime));
+            //------------------------------------------------------------//
+            node = rootnode.element("VERSION");
+            fparam.setVersion(node.getTextTrim());
+            //------------------------------------------------------------//
+            node = rootnode.element("BATT_PARAM");
+            file_node=node.element("batt_group_name");
+            fparam.setBattGroupName(file_node.getTextTrim());
+
+            file_node=node.element("batt_producer");
+            if(file_node!=null){
+                fparam.setBattProducer(file_node.getTextTrim());
+            }
+            file_node=node.element("batt_cap");
+            fparam.setBattCap(Float.parseFloat(file_node.getTextTrim()));
+            file_node=node.element("batt_count");
+            fparam.setBattCount(Integer.parseInt(file_node.getTextTrim()));
+
+            file_node=node.element("batt_vol");
+            fparam.setBattVol(Float.parseFloat(file_node.getTextTrim()));
+            file_node=node.element("batt_vol_good");
+            if(file_node!=null){
+                fparam.setBattVolGood(Float.parseFloat(file_node.getTextTrim()));
+            }
+            file_node=node.element("batt_vol_bad");
+            if(file_node!=null){
+                fparam.setBattVolBad(Float.parseFloat(file_node.getTextTrim()));
+            }
+
+            file_node=node.element("batt_res");
+            fparam.setBattRes(Float.parseFloat(file_node.getTextTrim()));
+            file_node=node.element("batt_res_good");
+            if(file_node!=null){
+                fparam.setBattResGood(Float.parseFloat(file_node.getTextTrim()));
+            }
+            file_node=node.element("batt_res_bad");
+            if(file_node!=null){
+                fparam.setBattResBad(Float.parseFloat(file_node.getTextTrim()));
+            }
+
+            file_node=node.element("batt_ser");
+            fparam.setBattSer(Float.parseFloat(file_node.getTextTrim()));
+            file_node=node.element("batt_ser_good");
+            if(file_node!=null){
+                fparam.setBattSerGood(Float.parseFloat(file_node.getTextTrim()));
+            }
+            file_node=node.element("batt_ser_bad");
+            if(file_node!=null){
+                fparam.setBattSerBad(Float.parseFloat(file_node.getTextTrim()));
+            }
+
+            file_node=node.element("concount_pb");
+            fparam.setConcountPb(Integer.parseInt(file_node.getTextTrim()));
+
+            file_node=node.element("conn_res");
+            if(file_node!=null){
+                fparam.setConnRes(Float.parseFloat(file_node.getTextTrim()));
+            }
+            file_node=node.element("conn_res_good");
+            if(file_node!=null){
+                fparam.setConnResGood(Float.parseFloat(file_node.getTextTrim()));
+            }
+            file_node=node.element("conn_res_bad");
+            if(file_node!=null){
+                fparam.setConnResBad(Float.parseFloat(file_node.getTextTrim()));
+            }
+            //-----鏍规嵁groupNum鐨勫�艰鍙栨祴璇曟暟鎹�---------------------------//
+            Iterator nodes = rootnode.elementIterator("node_batt_num");
+            while (nodes.hasNext()){
+                node= (Element) nodes.next();
+                BattgroupInfo battInfo=new BattgroupInfo();
+                List<BattgroupData> battDataList=new ArrayList();
+                BattgroupData battData=new BattgroupData();
+                battData.setMonNum(Integer.parseInt(node.attributeValue("batt_num")));
+                file_node=node.element("bv_1");
+                battData.setBv(file_node.getTextTrim());
+                file_node=node.element("br_1");
+                battData.setBr(file_node.getTextTrim());
+                file_node=node.element("bs_1");
+                battData.setBs(file_node.getTextTrim());
+                file_node=node.element("cr_1");
+                battData.setCr(file_node.getTextTrim());
+                battDataList.add(battData);
+                battInfo.setBattDataList(battDataList);
+                fileInfo.getBattInfoList().add(battInfo);
+            }
+            fileInfo.setFileParam(fparam);
+            fiso.close();
+        } catch (NullPointerException | NumberFormatException | DocumentException | ParseException | FileNotFoundException e) {
+            res = false;
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if(false == res)
+                return null;
+        }
+        return fileInfo;
+    }
+    //瑙f瀽FBR-6000NT甯︽爣璁扮増鏈�2.0
+    public static FileInfo readFBR_6000NT_bj(String xmlFilePath){
         boolean res = true;
         FileInfo fileInfo=new FileInfo();//鏂囦欢淇℃伅
         FileParam fparam=fileInfo.getFileParam();//鏂囦欢鍙傛暟
@@ -36,6 +152,7 @@
             //------------------------------------------------------------//
             node = rootnode.element("TEST_TIME");
             String testTime=node.getTextTrim();
+            testTime.replace("_"," ");
             fparam.setTestTime(ActionUtil.sdfwithALL.parse(testTime));
             //------------------------------------------------------------//
             node = rootnode.element("VERSION");
@@ -144,6 +261,35 @@
         }
         return  fileInfo;
     }
+    //瑙f瀽xml鏂囦欢
+    public static FileInfo readXml(String xmlFilePath)
+    {
+        FileInfo fileInfo=new FileInfo();
+        try
+        {
+            SAXReader reader = new SAXReader();
+            FileInputStream  fiso=new FileInputStream(xmlFilePath);
+            Document document = reader.read(fiso);
+            Element rootnode = document.getRootElement();
+
+            //------------------------------------------------------------//
+            Element node = rootnode.element("VERSION");
+            if(node!=null){
+                String version=node.getTextTrim();
+                switch (version){
+                    case "V2.0": fileInfo=readFBR_6000NT_bj(xmlFilePath);break;
+                    case "V2.7": fileInfo=readFBR_6000NT_jc(xmlFilePath);break;
+                    default:break;
+                }
+            }
+            fiso.close();
+        } catch (NullPointerException | NumberFormatException | DocumentException  | FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return  fileInfo;
+    }
 
     public static boolean writeXml( Map<String,String> map,String xmlFilePath){
         boolean res=true;
@@ -177,10 +323,10 @@
     }
 
     public static void main(String[] args) {
-        String filePath="D://2022-06-14 16-02-34.xml";
+        String filePath="D:\\fileTest\\FBR-5000CT -鍘熸暟鎹�20221031\\\\2022-10-31_09-14-48.xml";
         Map map=new HashMap() ;
-        //FileInfo fileInfo=XmlFileOpreate.readXml(filePath);
-        //System.out.println(fileInfo);
+        FileInfo fileInfo=XmlFileOpreate.readXml(filePath);
+        System.out.println(fileInfo);
         map.put("ChainRes", "50.0");
         map.put("battTestNum","9");
         map.put("battModel","SD-001");
@@ -211,6 +357,6 @@
         map.put("batt_group_name","鍚庡鐢垫簮瀹�1#UPS绯荤粺lxw");
         map.put("battStation","榧撴ゼ绔檒xw");
 
-        XmlFileOpreate.writeXml(map,filePath);
+        //XmlFileOpreate.writeXml(map,filePath);
     }
 }

--
Gitblit v1.9.1