package com.tenwa.invoice; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.tenwa.comm.util.jboutil.DataOperatorUtil; public class IAutokpXML { public Map>> getInvoiceParam (String param){ JSONArray array =JSON.parseArray(param); Map>> map = new HashMap>>(); List> ls = new ArrayList>(); for(int i=0;i mapi = new HashMap<>(); mapi.put("MXXH",i+1+""); mapi.put("tax_type", obj.getString("tax_type")); mapi.put("tax_no", obj.getString("tax_no")); mapi.put("invoice_money",obj.getString("invoice_money")); mapi.put("tax_ratio",obj.getString("tax_ratio")); mapi.put("customer_name",obj.getString("customer_name")); mapi.put("acc_number",obj.getString("acc_number")); mapi.put("telephone",obj.getString("telephone")); mapi.put("cert_id",obj.getString("cert_id")); mapi.put("customer_type",obj.getString("customer_type")); mapi.put("plan_list",obj.getString("plan_list")); if(map.containsKey(contract_no)){ map.get(contract_no).add(mapi); }else{ ls.add(mapi); map.put(contract_no, ls); } } return map; } public Map>> getRedbackInvoiceParam (String param){ JSONArray array =JSON.parseArray(param); Map>> map = new HashMap>>(); List> ls = new ArrayList>(); for(int i=0;i mapi = new HashMap<>(); mapi.put("MXXH",i+1+""); mapi.put("tax_type", obj.getString("tax_type")); mapi.put("tax_no", obj.getString("tax_no")); mapi.put("invoice_money","-"+obj.getString("invoice_money")); mapi.put("tax_ratio",obj.getString("tax_ratio")); mapi.put("customer_name",obj.getString("customer_name")); mapi.put("acc_number",obj.getString("acc_number")); mapi.put("telephone",obj.getString("telephone")); mapi.put("cert_id",obj.getString("cert_id")); mapi.put("customer_type",obj.getString("customer_type")); mapi.put("plan_list",obj.getString("plan_list")); mapi.put("liti_id",obj.getString("liti_id")); mapi.put("HCFPDM",obj.getString("HCFPDM")); mapi.put("HCFPHM",obj.getString("HCFPHM")); mapi.put("HZTZDH",obj.getString("HZTZDH")); if(map.containsKey(mapKey)){ map.get(mapKey).add(mapi); }else{ ls.add(mapi); map.put(mapKey, ls); } } return map; } public Document createInvoiceXML(Map.Entry>> params,String fpzl,String fpzf){ Document doc = DocumentHelper.createDocument(); doc.setXMLEncoding("GBK"); Element rootEle = doc.addElement("DataArea"); //接口SID 目前默认填写SID_ZP Element Ele_SID = rootEle.addElement("SID"); Ele_SID.setText("SID_ZP"); IAutokpUtils.addUserInfo(rootEle); Element Ele_Data = rootEle.addElement("Data"); Element Ele_Order = Ele_Data.addElement("Order"); Element Ele_Head = Ele_Order.addElement("Head"); //单据编号 Element Ele_XSDJBH = Ele_Head.addElement("XSDJBH"); Ele_XSDJBH.setText(params.getKey()); //发票种类(00=专票、02=普票) Element Ele_FPZL = Ele_Head.addElement("FPZL"); Ele_FPZL.setText(fpzl); //购方类型(01=企业、03=个人) Element Ele_GFLX = Ele_Head.addElement("GFLX"); Ele_GFLX.setText("03"); //发票正负(00=正票、01=负票) Element Ele_FPZF = Ele_Head.addElement("fpzf"); Ele_FPZF.setText(fpzf); //购方名称(客户名称) Element Ele_GFMC = Ele_Head.addElement("GFMC"); //购方税号 Element Ele_GFSH = Ele_Head.addElement("GFSH"); //购方地址电话 Element Ele_GFDZDH = Ele_Head.addElement("GFDZDH"); //购方银行账号 Element Ele_GFYHZH = Ele_Head.addElement("GFYHZH"); //购方手机 Element Ele_GFSJ = Ele_Head.addElement("GFSJ"); //购方邮箱 Element Ele_GFYX = Ele_Head.addElement("GFYX"); //销方税号 Element Ele_XFSH = Ele_Head.addElement("XFSH"); Ele_XFSH.setText("91120118MA05M9911M"); //销方名称 Element Ele_XFMC = Ele_Head.addElement("XFMC"); Ele_XFMC.setText("安鹏融资租赁(天津)有限公司"); //销方地址电话 Element Ele_XFDZDH = Ele_Head.addElement("XFDZDH"); Ele_XFDZDH.setText("天津自贸试验区(东疆报税岗区)贺兰道450号恒盛广场4号楼-15-5 010-66292807"); //销方银行账号 Element Ele_XFYHZH = Ele_Head.addElement("XFYHZH"); Ele_XFYHZH.setText("中国银行天津自由贸易试验区分行营业部273979802218"); Element Ele_HCFPDM = Ele_Head.addElement("HCFPDM"); Element Ele_HCFPHM = Ele_Head.addElement("HCFPHM"); Element Ele_HZTZDH = Ele_Head.addElement("HZTZDH"); Element Ele_KJRQ = Ele_Head.addElement("KJRQ"); Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String curDate = formatter.format(date); Ele_KJRQ.setText(curDate); Element Ele_BZ = Ele_Head.addElement("BZ"); String sql = "select tax_creator,tax_checker,payee from tax_operator_info where is_use='Y'"; List> dataList; try { dataList = DataOperatorUtil.getDataBySql(sql); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("开票人员信息获取错误。"); return null; } String KJR = dataList.get(0).get("tax_creator"); String FHR = dataList.get(0).get("tax_checker"); String SKR = dataList.get(0).get("payee"); Element Ele_KJR = Ele_Head.addElement("KJR"); Ele_KJR.setText(KJR); Element Ele_XSDBMID = Ele_Head.addElement("XSDBMID"); Element Ele_YWXTBS = Ele_Head.addElement("YWXTBS"); Element Ele_FHR = Ele_Head.addElement("FHR"); Ele_FHR.setText(FHR); Element Ele_SKR = Ele_Head.addElement("SKR"); Ele_SKR.setText(SKR); Element Ele_WDDM = Ele_Head.addElement("WDDM"); Element Ele_KPFWQH = Ele_Head.addElement("KPFWQH"); Element Ele_KPDH = Ele_Head.addElement("KPDH"); Element Ele_DKBZ = Ele_Head.addElement("DKBZ"); Element Ele_CFBZ = Ele_Head.addElement("CFBZ"); Element Ele_QDBZ = Ele_Head.addElement("QDBZ"); Ele_QDBZ.setText("0"); Element Ele_ITEMS = Ele_Order.addElement("Items"); //添加每个商品信息 for(int i=0;i