255 lines
10 KiB
Java
255 lines
10 KiB
Java
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<String,List<Map<String,String>>> getInvoiceParam (String param){
|
||
JSONArray array =JSON.parseArray(param);
|
||
System.out.println(array.toString());
|
||
Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
|
||
for(int i=0;i<array.size();i++){
|
||
JSONObject obj= (JSONObject) array.get(i);
|
||
String contract_no= obj.getString("contract_no");
|
||
Map<String,String> mapi = new HashMap<>();
|
||
mapi.put("tax_type", obj.getString("tax_type"));
|
||
mapi.put("tax_no", obj.getString("tax_no"));
|
||
mapi.put("tax_code", obj.getString("tax_code"));
|
||
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("contract_no", obj.getString("contract_no"));
|
||
if(!map.containsKey(contract_no)){
|
||
map.put(contract_no,new ArrayList<Map<String,String>>());
|
||
}
|
||
map.get(contract_no).add(mapi);
|
||
}
|
||
return map;
|
||
}
|
||
public Map<String,List<Map<String,String>>> getRedbackInvoiceParam (String param){
|
||
JSONArray array =JSON.parseArray(param);
|
||
System.out.println(array.toString());
|
||
Map<String,List<Map<String,String>>> map = new HashMap<String,List<Map<String,String>>>();
|
||
for(int i=0;i<array.size();i++){
|
||
JSONObject obj= (JSONObject) array.get(i);
|
||
String HCFPDM= obj.getString("HCFPDM");
|
||
String HCFPHM= obj.getString("HCFPHM");
|
||
String mapKey = HCFPDM + "@" + HCFPHM;
|
||
Map<String,String> mapi = new HashMap<>();
|
||
mapi.put("tax_type", obj.getString("tax_type"));
|
||
mapi.put("tax_no", obj.getString("tax_no"));
|
||
mapi.put("tax_code", obj.getString("tax_code"));
|
||
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("contract_no", obj.getString("contract_no"));
|
||
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.put(mapKey,new ArrayList<Map<String,String>>());
|
||
}
|
||
map.get(mapKey).add(mapi);
|
||
}
|
||
|
||
return map;
|
||
}
|
||
public Document createInvoiceXML(Map.Entry<String, List<Map<String, String>>> params,String fpzl,String fpzf){
|
||
|
||
Document doc = DocumentHelper.createDocument();
|
||
doc.setXMLEncoding("GBK");
|
||
Element rootEle = doc.addElement("DataArea");
|
||
//<2F>ӿ<EFBFBD>SID ĿǰĬ<C7B0><C4AC><EFBFBD><EFBFBD>д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");
|
||
//<2F><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>
|
||
Element Ele_XSDJBH = Ele_Head.addElement("XSDJBH");
|
||
Ele_XSDJBH.setText(params.getKey());
|
||
//<2F><>Ʊ<EFBFBD><C6B1><EFBFBD>ࣨ00=רƱ<D7A8><C6B1>02=<3D><>Ʊ<EFBFBD><C6B1>
|
||
Element Ele_FPZL = Ele_Head.addElement("FPZL");
|
||
Ele_FPZL.setText(fpzl);
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>01=<3D><>ҵ<EFBFBD><D2B5>03=<3D><><EFBFBD>ˣ<EFBFBD>
|
||
Element Ele_GFLX = Ele_Head.addElement("GFLX");
|
||
Ele_GFLX.setText("03");
|
||
//<2F><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>00=<3D><>Ʊ<EFBFBD><C6B1>01=<3D><>Ʊ<EFBFBD><C6B1>
|
||
Element Ele_FPZF = Ele_Head.addElement("fpzf");
|
||
Ele_FPZF.setText(fpzf);
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ƣ<EFBFBD>
|
||
Element Ele_GFMC = Ele_Head.addElement("GFMC");
|
||
//<2F><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0>
|
||
Element Ele_GFSH = Ele_Head.addElement("GFSH");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>绰
|
||
Element Ele_GFDZDH = Ele_Head.addElement("GFDZDH");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>
|
||
Element Ele_GFYHZH = Ele_Head.addElement("GFYHZH");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>
|
||
Element Ele_GFSJ = Ele_Head.addElement("GFSJ");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
Element Ele_GFYX = Ele_Head.addElement("GFYX");
|
||
//<2F><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0>
|
||
Element Ele_XFSH = Ele_Head.addElement("XFSH");
|
||
Ele_XFSH.setText("91120118MA05M9911M");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
Element Ele_XFMC = Ele_Head.addElement("XFMC");
|
||
Ele_XFMC.setText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>绰
|
||
Element Ele_XFDZDH = Ele_Head.addElement("XFDZDH");
|
||
Ele_XFDZDH.setText("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>450<EFBFBD>ź<EFBFBD>ʢ<EFBFBD>㳡4<EFBFBD><EFBFBD>¥-15-5 010-66292807");
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>
|
||
Element Ele_XFYHZH = Ele_Head.addElement("XFYHZH");
|
||
Ele_XFYHZH.setText("<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӫҵ<EFBFBD><EFBFBD>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<Map<String, String>> dataList;
|
||
try {
|
||
dataList = DataOperatorUtil.getDataBySql(sql);
|
||
} catch (Exception e) {
|
||
// TODO Auto-generated catch block
|
||
e.printStackTrace();
|
||
System.out.println("<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||
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");
|
||
//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>Ϣ
|
||
for(int i=0;i<params.getValue().size();i++){
|
||
String JE = params.getValue().get(i).get("invoice_money");
|
||
String SLV =params.getValue().get(i).get("tax_ratio");
|
||
SLV = String.format("%.2f",Double.parseDouble(SLV)/100);
|
||
String SPMC = params.getValue().get(i).get("tax_type");
|
||
String taxCode = params.getValue().get(i).get("tax_code");
|
||
if(i==0){
|
||
String GFMC = params.getValue().get(i).get("customer_name");
|
||
Ele_GFMC.setText(GFMC);
|
||
String GFYHZH = params.getValue().get(i).get("acc_number");
|
||
Ele_GFYHZH.setText(GFYHZH);
|
||
String GFDZDH = params.getValue().get(i).get("telephone");
|
||
Ele_GFDZDH.setText(GFDZDH);
|
||
String GFSH = params.getValue().get(i).get("cert_id");
|
||
Ele_GFSH.setText(GFSH);
|
||
if("01".equals(fpzf)){
|
||
Ele_HCFPDM.setText(params.getValue().get(i).get("HCFPDM"));
|
||
Ele_HCFPHM.setText(params.getValue().get(i).get("HCFPHM"));
|
||
Ele_HZTZDH.setText(params.getValue().get(i).get("HZTZDH"));
|
||
}
|
||
}
|
||
|
||
Element Ele_ITEM = Ele_ITEMS.addElement("Item");
|
||
Element Ele_MXXH = Ele_ITEM.addElement("MXXH");
|
||
Ele_MXXH.setText(i+1+"");
|
||
Element Ele_JE = Ele_ITEM.addElement("JE");
|
||
Ele_JE.setText(JE);
|
||
Element Ele_SLV = Ele_ITEM.addElement("SLV");
|
||
Ele_SLV.setText(SLV);
|
||
Element Ele_SPMC = Ele_ITEM.addElement("SPMC");
|
||
Ele_SPMC.setText(SPMC);
|
||
Element Ele_GGXH = Ele_ITEM.addElement("GGXH");
|
||
Element Ele_JLDW = Ele_ITEM.addElement("JLDW");
|
||
Element Ele_SL = Ele_ITEM.addElement("SL");
|
||
String SL = Ele_FPZF.getText()=="01"?"-1":"1";
|
||
Ele_SL.setText(SL);
|
||
Element Ele_DJ = Ele_ITEM.addElement("DJ");
|
||
Ele_DJ.setText(JE);
|
||
Element Ele_SHUIER = Ele_ITEM.addElement("shuier");
|
||
//Ϊ<>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EEA3AC><EFBFBD><EEB2BB>ֱ<EFBFBD><D6B1><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>*˰<>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>㷽<EFBFBD><E3B7BD>----<2D><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>=<3D><>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>/<2F><>1+˰<>ʣ<EFBFBD><CAA3><EFBFBD>˰<EFBFBD><CBB0>=<3D><>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>
|
||
String SHUIER = new BigDecimal(JE).subtract(new BigDecimal(JE).divide(new BigDecimal(SLV).add(new BigDecimal("1")),2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).toString();
|
||
Ele_SHUIER.setText(SHUIER);
|
||
Element Ele_HSBZ = Ele_ITEM.addElement("HSBZ");
|
||
Ele_HSBZ.setText("1");
|
||
Element Ele_GOODSNOVER = Ele_ITEM.addElement("goodsnover");
|
||
Ele_GOODSNOVER.setText("13.0");
|
||
Element Ele_SPBM = Ele_ITEM.addElement("sw_spbm");
|
||
Ele_SPBM.setText(taxCode);
|
||
Element Ele_YHZCBS = Ele_ITEM.addElement("YHZCBS");
|
||
Ele_YHZCBS.setText("0");
|
||
Element Ele_TAXPRECON = Ele_ITEM.addElement("TAXPRECON");
|
||
Element Ele_LSLBS = Ele_ITEM.addElement("LSLBS");
|
||
Element ELE_ZKHBS = Ele_ITEM.addElement("zkhbs");
|
||
ELE_ZKHBS.setText("0");
|
||
}
|
||
|
||
System.out.println("<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"+doc.asXML());
|
||
|
||
return doc;
|
||
}
|
||
|
||
public String createInvoiceOthersXML(String sid,String fpzl,String fpdm,String fphm){
|
||
Document doc = DocumentHelper.createDocument();
|
||
doc.setXMLEncoding("GBK");
|
||
Element rootEle = doc.addElement("DataArea");
|
||
Element Ele_SID = rootEle.addElement("SID");
|
||
Ele_SID.setText(sid);
|
||
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_FPZL = Ele_Head.addElement("FPZL");
|
||
Element Ele_FPDM = Ele_Head.addElement("fpdm");
|
||
Element Ele_FPHM = Ele_Head.addElement("fphm");
|
||
Ele_FPZL.setText(fpzl);
|
||
Ele_FPDM.setText(fpdm);
|
||
Ele_FPHM.setText(fphm);
|
||
System.out.println("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>---"+sid+"---<2D><>"+doc.asXML());
|
||
return doc.asXML();
|
||
}
|
||
|
||
}
|