|
@ -1488,6 +1488,28 @@ public class DsyyEntranceService {
|
|
|
return buffer.toString();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据结算号获取his开票信息
|
|
|
*
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray findInvoiceInfo(String settleNo) throws Exception {
|
|
|
String sql = "select einvoicecode as \"einvoicecode\",einvoicenumber as \"einvoicenumber\",randomnumber as \"randomnumber\",sick_id from v_hlwyydp where settle_no='"+settleNo+"' ";
|
|
|
JSONArray array = new JSONArray();
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("sql",sql);
|
|
|
logger.info("hlwyydp:"+sql);
|
|
|
HttpResponse response = HttpUtils.doGet(url,params);
|
|
|
String content = response.getContent();
|
|
|
logger.info("response:"+content);
|
|
|
JSONObject rs = JSON.parseObject(content);
|
|
|
Integer status = rs.getInteger("status");
|
|
|
if (status==200){
|
|
|
array = rs.getJSONArray("detailModelList");
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
|
|
|
|
//=============his webservice 调用开始 =============================
|
|
|
|
|
|
/**
|
|
@ -3885,13 +3907,17 @@ public class DsyyEntranceService {
|
|
|
|
|
|
|
|
|
//============================电子发票开始====================================
|
|
|
String dsfp = "http://10.95.8.94:20017/service/invoice/perform";
|
|
|
String dsfp = "http://10.95.8.48:20017/service/invoice/perform";
|
|
|
String appId ="862e18c18c5e4d72";
|
|
|
String appKey ="d756d7778c43e3c5b8bbcb301c48fe25";
|
|
|
String msgNo ="8901";
|
|
|
String organ = "401039";
|
|
|
String organ = "5676";
|
|
|
|
|
|
String user = "hisbizadmin";
|
|
|
|
|
|
String org= "123502124266188956";
|
|
|
public String getAccessToken() throws Exception {
|
|
|
long timestamp = new Date().getTime() * 1000000;
|
|
|
String accessToken = "";
|
|
|
String msg = "<Voucher>\n" +
|
|
|
"<AppId>"+appId+"</AppId>\n" +
|
|
|
"<AppKey>"+appKey+"</AppKey>\n" +
|
|
@ -3900,14 +3926,14 @@ public class DsyyEntranceService {
|
|
|
String params ="<?xml version='1.0' encoding='UTF-8'?>\n" +
|
|
|
"<Invoice>\n" +
|
|
|
"<Head>\n" +
|
|
|
"<MsgNo>"+msgNo+"</MsgNo>\n" +
|
|
|
"<MsgNo>8901</MsgNo>\n" +
|
|
|
"<Organ>"+organ+"</Organ>\n" +
|
|
|
"<User>"+user+"</User>\n" +
|
|
|
"<Version>1.0</Version>\n" +
|
|
|
"<AppId>"+appId+"</AppId>\n" +
|
|
|
"<MsgId>5676"+randomStr+"</MsgId>\n" +
|
|
|
"<MsgRef>5676"+randomStr+"</MsgRef>\n" +
|
|
|
"<DateTime>"+new Date().getTime()+"</DateTime>\n" +
|
|
|
"<DateTime>"+timestamp+"</DateTime>\n" +
|
|
|
"<Reserve></Reserve>\n" +
|
|
|
"</Head>\n" +
|
|
|
"<Msg>"+ Base64.encodeBase64String(msg.getBytes("utf-8"))+"</Msg>\n" +
|
|
@ -3915,7 +3941,20 @@ public class DsyyEntranceService {
|
|
|
logger.info("请求前入参:"+params);
|
|
|
String result = httpClientUtil.sendPost(dsfp,params);
|
|
|
logger.info("请求结果:"+result);
|
|
|
return result;
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(result).toString();
|
|
|
logger.info("请求后出参:"+json);
|
|
|
JSONObject resObj = JSONObject.parseObject(json);
|
|
|
String msgResult = resObj.getString("Msg");
|
|
|
if (StringUtils.isNoneBlank(msgResult)){
|
|
|
byte[] msgBase64 = Base64.decodeBase64(msgResult);
|
|
|
String msgText = new String(msgBase64, "utf-8");
|
|
|
System.out.println("msgText"+msgText);
|
|
|
String msgTexts = xmlSerializer.read(msgText).toString();
|
|
|
JSONObject msgObj = JSONObject.parseObject(msgTexts);
|
|
|
accessToken = msgObj.getString("AccessToken");
|
|
|
}
|
|
|
return accessToken;
|
|
|
}
|
|
|
|
|
|
|
|
@ -4032,7 +4071,7 @@ public class DsyyEntranceService {
|
|
|
String params ="<?xml version='1.0' encoding='UTF-8'?>\n" +
|
|
|
"<Invoice>\n" +
|
|
|
"<Head>\n" +
|
|
|
"<MsgNo>"+msgNo+"</MsgNo>\n" +
|
|
|
"<MsgNo>8213</MsgNo>\n" +
|
|
|
"<Organ>"+organ+"</Organ>\n" +
|
|
|
"<User>"+user+"</User>\n" +
|
|
|
"<Version>1.0</Version>\n" +
|
|
@ -4059,37 +4098,51 @@ public class DsyyEntranceService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String queryDzfp(String medicalId) throws Exception {
|
|
|
YlzMedicalRelationInvoiceDO invoiceDO = invoiceDao.findByMedicalId(medicalId);
|
|
|
public String queryDzfp(String medicalId,String invoiceNo,String invoiceCode,String invoiceSerialNum) throws Exception {
|
|
|
String resultResponse = "";
|
|
|
long timestamp = new Date().getTime() * 1000000;
|
|
|
String msg = "<Voucher>\n" +
|
|
|
"<AgencyCode>401039</AgencyCode>\n" +
|
|
|
"<AgencyCode>"+org+"</AgencyCode>\n" +
|
|
|
"<AgencyName>厦门市第三医院</AgencyName>\n" +
|
|
|
"<EInvoiceCode>"+invoiceDO.getInvoiceCode()+"</EInvoiceCode>\n" +
|
|
|
"<EInvoiceNumber>"+invoiceDO.getInvoiceSerialNum()+"</EInvoiceNumber>\n" +
|
|
|
"<RandomNumber>"+invoiceDO.getInvoiceNo()+"</RandomNumber>\n" +
|
|
|
"<EInvoiceCode>"+invoiceCode+"</EInvoiceCode>\n" +
|
|
|
"<EInvoiceNumber>"+invoiceSerialNum+"</EInvoiceNumber>\n" +
|
|
|
"<RandomNumber>"+invoiceNo+"</RandomNumber>\n" +
|
|
|
"</Voucher>\n";
|
|
|
logger.info("发票下载入参未加密:"+msg);
|
|
|
String randomStr = System.currentTimeMillis()+(int)(Math.random()*900)+100+"";
|
|
|
String params ="<?xml version='1.0' encoding='UTF-8'?>\n" +
|
|
|
"<Invoice>\n" +
|
|
|
"<Head>\n" +
|
|
|
"<MsgNo>"+msgNo+"</MsgNo>\n" +
|
|
|
"<MsgNo>8213</MsgNo>\n" +
|
|
|
"<Organ>"+organ+"</Organ>\n" +
|
|
|
"<User>"+user+"</User>\n" +
|
|
|
"<Version>1.0</Version>\n" +
|
|
|
"<AppId>"+appId+"</AppId>\n" +
|
|
|
"<AccessToken>aaaabbbbb11111333333</AccessToken>"+
|
|
|
"<AppId>862e18c18c5e4d72</AppId>\n" +
|
|
|
"<AccessToken>"+getAccessToken()+"</AccessToken>"+
|
|
|
"<MsgId>5676"+randomStr+"</MsgId>\n" +
|
|
|
"<MsgRef>5676"+randomStr+"</MsgRef>\n" +
|
|
|
"<DateTime>"+new Date().getTime()+"</DateTime>\n" +
|
|
|
"<DateTime>"+timestamp+"</DateTime>\n" +
|
|
|
"<Reserve></Reserve>\n" +
|
|
|
"</Head>\n" +
|
|
|
"<Msg>"+ Base64.encodeBase64String(msg.getBytes("utf-8"))+"</Msg>\n" +
|
|
|
"</Invoice>";
|
|
|
logger.info("开具电子发票入参:"+params);
|
|
|
logger.info("发票下载入参:"+params);
|
|
|
String result = httpClientUtil.sendPost(dsfp,params);
|
|
|
logger.info("开具电子发票请求结果:"+result);
|
|
|
return result;
|
|
|
logger.info("发票下载请求结果:"+result);
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
String json = xmlSerializer.read(result).toString();
|
|
|
logger.info("请求后出参:"+json);
|
|
|
JSONObject resObj = JSONObject.parseObject(json);
|
|
|
String msgResult = resObj.getString("Msg");
|
|
|
if (StringUtils.isNoneBlank(msgResult)){
|
|
|
byte[] msgBase64 = Base64.decodeBase64(msgResult);
|
|
|
String msgText = new String(msgBase64, "utf-8");
|
|
|
System.out.println("msgText"+msgText);
|
|
|
String msgTexts = xmlSerializer.read(msgText).toString();
|
|
|
JSONObject msgObj = JSONObject.parseObject(msgTexts);
|
|
|
resultResponse = msgObj.toJSONString();
|
|
|
}
|
|
|
return resultResponse;
|
|
|
}
|
|
|
|
|
|
|