2020-11-23 14:44:56 +08:00

253 lines
10 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("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("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("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 ="0." + params.getValue().get(i).get("tax_ratio");
String SPMC = params.getValue().get(i).get("tax_type");
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");
//<2F><><EFBFBD>ͻ<EFBFBD>ȷ<EFBFBD><C8B7>
Ele_SPBM.setText("3040203");
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();
}
}