184 lines
7.7 KiB
Java
184 lines
7.7 KiB
Java
package com.tenwa.app.invoice.action;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import org.springframework.http.HttpEntity;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.util.LinkedMultiValueMap;
|
|
import org.springframework.util.MultiValueMap;
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.amarsoft.are.jbo.BizObject;
|
|
import com.amarsoft.are.jbo.JBOException;
|
|
import com.amarsoft.awe.Configure;
|
|
import com.tenwa.app.invoice.data.ResponseEnum;
|
|
import com.tenwa.app.invoice.pojo.ResultPojo;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestBase;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestBody;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestFyxm;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestGroup;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestHead;
|
|
import com.tenwa.app.invoice.request.InvoiceRequestInput;
|
|
import com.tenwa.app.invoice.utils.JaxbUtil;
|
|
import com.tenwa.app.invoice.utils.PasswordGenerateUtil;
|
|
import com.tenwa.app.invoice.utils.ResultUtil;
|
|
|
|
public class InvoiceRequest {
|
|
|
|
private String url ="" ;
|
|
private String appId="" ;
|
|
private String fplxdm="";
|
|
|
|
public InvoiceRequest(String fplxdm) {
|
|
this.fplxdm = fplxdm;
|
|
}
|
|
public InvoiceRequest() {
|
|
}
|
|
public ResultPojo send(BizObject confirmBizObject,List<BizObject> confirmDetailList) throws JBOException{
|
|
Configure config = Configure.getInstance();
|
|
try {
|
|
url = config.getConfigure("INVOICE_URL") ;
|
|
appId = config.getConfigure("INVOICE_APPID") ;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return ResultUtil.error("读取a3web的开票接口配置文件失败");
|
|
}
|
|
|
|
InvoiceRequestBase base = new InvoiceRequestBase();
|
|
|
|
base.setComment("发票开具");
|
|
base.setId("FPKJ");
|
|
base.setVersion("2.0");
|
|
|
|
InvoiceRequestHead head = new InvoiceRequestHead();
|
|
head.setAppid(this.appId);
|
|
head.setSid(confirmBizObject.getAttribute("sid").toString());
|
|
base.setHead(head);
|
|
|
|
InvoiceRequestBody body = new InvoiceRequestBody();
|
|
|
|
InvoiceRequestInput input = new InvoiceRequestInput();
|
|
input.setFplxdm(confirmBizObject.getAttribute("fplxdm").toString());
|
|
input.setKplx("0");
|
|
input.setTspz("00");
|
|
input.setXhdwdzdh(confirmBizObject.getAttribute("xhdwdzdh").toString());
|
|
input.setXhdwyhzh(confirmBizObject.getAttribute("Xhdwyhzh").toString());
|
|
input.setGhdwsbh(confirmBizObject.getAttribute("ghdwsbh").toString());
|
|
input.setGhdwmc(confirmBizObject.getAttribute("ghdwmc").toString());
|
|
input.setGhdwdzdh(confirmBizObject.getAttribute("ghdwdzdh").toString());
|
|
input.setGhdwyhzh(confirmBizObject.getAttribute("ghdwyhzh").toString());
|
|
input.setHsslbs("0");
|
|
input.setZhsl(confirmBizObject.getAttribute("zhsl").toString());
|
|
input.setHjje(confirmBizObject.getAttribute("hjje").toString());
|
|
input.setHjse(confirmBizObject.getAttribute("hjse").toString());
|
|
input.setJshj(confirmBizObject.getAttribute("jshj").toString());
|
|
input.setBz("");
|
|
input.setSkr("");
|
|
input.setFhr("");
|
|
input.setKpr(confirmBizObject.getAttribute("kpr").toString());
|
|
input.setZyspmc(confirmBizObject.getAttribute("zyspmc").toString());
|
|
input.setSpsm("");
|
|
input.setSsyf("");
|
|
input.setTzdbh("");
|
|
input.setYfpdm("");
|
|
input.setYfphm("");
|
|
input.setGMF_DZYX("");
|
|
input.setGMF_SJHM(confirmBizObject.getAttribute("GMF_SJHM").toString());
|
|
input.setGMF_OPENID("");
|
|
|
|
InvoiceRequestFyxm fyxm = new InvoiceRequestFyxm();
|
|
|
|
List<InvoiceRequestGroup> groupList = new ArrayList<InvoiceRequestGroup>();
|
|
int index=1;
|
|
for(BizObject confirmDetailBizObject :confirmDetailList){
|
|
InvoiceRequestGroup group = new InvoiceRequestGroup();
|
|
group.setXh(String.valueOf(index));
|
|
group.setFphxz(confirmDetailBizObject.getAttribute("fphxz").toString());
|
|
group.setSpmc(confirmDetailBizObject.getAttribute("spmc").toString());
|
|
group.setSpsm(confirmDetailBizObject.getAttribute("spsm").toString());
|
|
group.setGgxh(confirmDetailBizObject.getAttribute("ggxh").toString());
|
|
group.setDw(confirmDetailBizObject.getAttribute("dw").toString());
|
|
group.setSpsl(confirmDetailBizObject.getAttribute("spsl").toString());
|
|
group.setDj(confirmDetailBizObject.getAttribute("dj").toString());
|
|
group.setJe(confirmDetailBizObject.getAttribute("je").toString());
|
|
group.setSl(confirmDetailBizObject.getAttribute("sl").toString());
|
|
group.setSe(confirmDetailBizObject.getAttribute("Se").toString());
|
|
group.setHsbz(confirmDetailBizObject.getAttribute("hsbz").toString());
|
|
group.setSpbm(confirmDetailBizObject.getAttribute("spbm").toString());
|
|
group.setZxbm(confirmDetailBizObject.getAttribute("zxbm").toString());
|
|
group.setYhzcbs(confirmDetailBizObject.getAttribute("yhzcbs").toString());
|
|
group.setSlbs(confirmDetailBizObject.getAttribute("slbs").toString());
|
|
group.setZzstsgl(confirmDetailBizObject.getAttribute("zzstsgl").toString());
|
|
|
|
groupList.add(group);
|
|
++index;
|
|
}
|
|
|
|
|
|
fyxm.setGroupList(groupList);
|
|
fyxm.setCount(String.valueOf( groupList.size() ));
|
|
input.setFyxm(fyxm);
|
|
|
|
|
|
body.setYylxdm("1");
|
|
body.setInput(input);
|
|
base.setBody(body);
|
|
|
|
String xml = JaxbUtil.convertToXml(base);
|
|
System.out.println(xml);
|
|
ResultPojo result= doPost(xml);
|
|
|
|
return result;
|
|
//return ResultUtil.error("ERROR[01]");
|
|
}
|
|
|
|
public ResultPojo findResult(String sid) throws JBOException{
|
|
Configure config = Configure.getInstance();
|
|
try {
|
|
url = config.getConfigure("INVOICE_URL") ;
|
|
appId = config.getConfigure("INVOICE_APPID") ;
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
return ResultUtil.error("读取a3web的开票接口配置文件失败");
|
|
}
|
|
|
|
InvoiceRequestBase invoiceRequestBase = new InvoiceRequestBase();
|
|
InvoiceRequestHead invoiceRequestHead = new InvoiceRequestHead();
|
|
invoiceRequestHead.setAppid(this.appId);
|
|
invoiceRequestHead.setSid(sid);
|
|
|
|
invoiceRequestBase.setHead(invoiceRequestHead);
|
|
invoiceRequestBase.setComment("查询开票结果");
|
|
invoiceRequestBase.setId("CXKPJG");
|
|
invoiceRequestBase.setVersion("1.0");
|
|
|
|
String xml = JaxbUtil.convertToXml(invoiceRequestBase);
|
|
ResultPojo result = doPost(xml);
|
|
return result;
|
|
}
|
|
public ResultPojo doPost(String xml){
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
|
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
|
param.add("bw",xml) ;
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
HttpEntity<MultiValueMap<String, Object>> entity = new HttpEntity<>(param, httpHeaders);
|
|
ResponseEntity<String> response = null ;
|
|
try {
|
|
response = restTemplate.exchange(this.url, HttpMethod.POST, entity, String.class);
|
|
}catch (Exception e){
|
|
return ResultUtil.error(ResponseEnum.NETWORK.getMsg());
|
|
}
|
|
System.out.println(response.getBody());
|
|
InvoiceRequestBase r = JaxbUtil.converyToJavaBean(response.getBody(), InvoiceRequestBase.class);
|
|
return ResultUtil.success(r);
|
|
}
|
|
|
|
|
|
}
|