package com.hand.hsbc;

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class SaxReaderXml {

    /**
     * <p>
     * 解析汇丰银行确认文件1,确认文件1无误则有2
     * </p>
     *
     * @author keyouyuan16914
     * @version 1.0.0
     * @date 2020/01/18
     */
    public static String parseacKnowledge1(String path) {
        path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\error1.xml";
        SAXReader reader = new SAXReader();
        Document document;
        String error_msg = "";
        try {
            document = reader.read(new File(path));
            Element root = document.getRootElement();
            Element Body = root.element("CstmrPmtStsRpt");
            List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlGrpInfAndSts").elements();

            for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) {
                Element item = OrgnlGrpInfAndSts.get(i);

                String GrpSts = null;
                if (item.getName() == "GrpSts") {
                    GrpSts = item.getTextTrim();
                    /* System.out.println(GrpSts); */
                    if ("".equals(GrpSts)) {
                        GrpSts = null;
                    }
                }

                if (GrpSts == "ACCP") {
                    return "SUCCESS";
                } else {

                    if (item.getName() == "StsRsnInf") {
                        List<Element> StsRsnInfs = item.elements();
                        for (int j = 0; j < StsRsnInfs.size(); j++) {
                            Element item2 = StsRsnInfs.get(j);
                            if (item2.getName() == "AddtlInf") {
                                error_msg += item2.getTextTrim();

                            }
                        }

                    }
                    /* System.out.println(error_msg); */

                }

            }
        } catch (DocumentException e) {

            e.printStackTrace();
        }
        return error_msg;
    }

    /**
     * <p>
     * 解析汇丰银行确认文件2
     * </p>
     *
     * @author keyouyuan16914
     * @version 1.0.0
     * @date 2020/01/18
     */
    public static String parseacKnowledge2(String path) {
        path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\正确确认文件2.xml";
        SAXReader reader = new SAXReader();
        Document document;
        String error_msg = "";
        try {
            document = reader.read(new File(path));
            Element root = document.getRootElement();
            Element Body = root.element("CstmrPmtStsRpt");
            List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlPmtInfAndSts").elements();

            for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) {
                Element item = OrgnlGrpInfAndSts.get(i);

                String PmtInfSts = null;
                if (item.getName() == "PmtInfSts") {
                    PmtInfSts = item.getTextTrim();
                    /* System.out.println(GrpSts); */
                    if ("".equals(PmtInfSts)) {
                        PmtInfSts = null;
                    }
                }

                if (PmtInfSts == "ACCP") {
                    return "SUCCESS";
                } else {
                    // 此处需要进行判断
                    /*
                     * if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements();
                     * for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j);
                     * if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim();
                     *
                     * } }
                     *
                     * }
                     */
                    /* System.out.println(error_msg); */

                }

            }
        } catch (DocumentException e) {

            e.printStackTrace();
        }
        return error_msg;
    }

    /**
     * <p>
     * 解析汇丰银行日中文件2
     * </p>
     *
     * @author keyouyuan16914
     * @version 1.0.0
     * @date 2020/01/18
     */

    public static String parseDayMidFile(String path, String cdValue) {
        cdValue="ITBD";
        path = "C:\\Users\\User\\Desktop\\testfiledir\\down_day_mid_result\\testMid.xml";
        SAXReader reader = new SAXReader();

        Document document;
        String error_msg = "";
        try {
            document = reader.read(new File(path));

            Element root = document.getRootElement();
            Element Body = root.element("BkToCstmrAcctRpt");
            Element Rpt = Body.element("Rpt");
            List<Element> Rpts = Rpt.elements();
            System.out.println(Rpts.size());

            for (int i = 0; i < Rpts.size(); i++) {
                Element item = Rpts.get(i);

                String amt = null;
                if (item.getName() == "Bal") {
                    System.out.println(item.element("Tp").getName());
                    System.out.println(item.element("Tp").element("CdOrPrtry").getName());
                    System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getName());
                    System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim());
                    String ss=item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim();
                    System.out.println("1111");
                    System.out.println(ss.toString());
                    if(ss.toString().equals(cdValue)) {
                        System.out.println("2222");
                        System.out.println(item.element("Amt").getTextTrim());
                    }

                }

                if (amt == "ACCP") {
                    return "SUCCESS";
                } else {
                    // 此处需要进行判断
                    /*
                     * if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements();
                     * for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j);
                     * if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim();
                     *
                     * } }
                     *
                     * }
                     */
                    /* System.out.println(error_msg); */

                }

            }




        } catch (DocumentException e) {

            e.printStackTrace();
        }
        return error_msg;
    }
    public static String xmlToString(String xmlFileName){
        SAXReader saxReader=new SAXReader();
        org.dom4j.Document document;
        String xmlString="";
        try {
            document = saxReader.read(new File(xmlFileName));
            xmlString=document.asXML();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            xmlString="";
        }
        //String xmlString = document.asXML();
        return xmlString;
    }

    public static void main(String[] args) throws Exception {
        System.out.println(xmlToString("C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\ACK1PSRV3.PC000018926.20201231113053992299.20210121114031002.XML"));

    }

}