|
@ -425,6 +425,7 @@ public class DsyyEntranceService {
|
|
|
String pw = idcard.substring(idcard.length() - 6);
|
|
|
doctor.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
|
|
|
doctor.setSalt(salt);
|
|
|
doctor.setAtddrNo(doctorJson.getString("countryCode"));
|
|
|
|
|
|
doctor.setJobTitleCode(doctorJson.getString("jobtitlecode"));
|
|
|
doctor.setJobTitleName(doctorJson.getString("jobTitleName"));
|
|
@ -493,6 +494,7 @@ public class DsyyEntranceService {
|
|
|
doctor.setDel("1");
|
|
|
doctor.setEnabled(1);
|
|
|
doctor.setLocked(0);
|
|
|
doctor.setAtddrNo(doctorJson.getString("countryCode"));
|
|
|
doctor.setCreateTime(new Date());
|
|
|
|
|
|
doctor.setJobTitleCode(doctorJson.getString("jobtitlecode"));
|
|
@ -1486,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 调用开始 =============================
|
|
|
|
|
|
/**
|
|
@ -2002,6 +2026,51 @@ public class DsyyEntranceService {
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 16结算结果查询
|
|
|
* @param cardNo
|
|
|
* @param outChargeNo
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public String queryMedicalPay(String cardNo,String outChargeNo) throws Exception{
|
|
|
String api = "query_medical_pay";
|
|
|
String msgHeader ="<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
|
|
|
"<root> " +
|
|
|
" <serverName>"+api+"</serverName> " +
|
|
|
" <format>xml</format>" +
|
|
|
" <callOperator>"+operate+"</callOperator> " +
|
|
|
" <certificate>"+key+"</certificate> " +
|
|
|
" <orgCode>01</orgCode> " +
|
|
|
"</root>";
|
|
|
String condition ="";
|
|
|
JSONObject object = new JSONObject();
|
|
|
if (StringUtils.isNoneBlank(cardNo)){
|
|
|
object.put("cardNo",cardNo);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(outChargeNo)){
|
|
|
object.put("outChargeNo",outChargeNo);
|
|
|
}
|
|
|
condition = object.toJSONString();
|
|
|
String msgBody =condition;
|
|
|
Map<String,String> params = new HashedMap();
|
|
|
params.put("msgHeader",msgHeader);
|
|
|
params.put("msgBody",msgBody);
|
|
|
logger.info("query_medical_pay params:"+params.toString());
|
|
|
String xml = getDsyyWebServiceInfo("CallInterface",params,getOperateUrl());
|
|
|
WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
|
|
|
wlyyHttpLogDO.setRequest(params.toString());
|
|
|
wlyyHttpLogDO.setCode("query_medical_pay");
|
|
|
wlyyHttpLogDO.setName("3.16结算结果查询");
|
|
|
wlyyHttpLogDO.setResponse(xml);
|
|
|
wlyyHttpLogDO.setCreateTime(new Date());
|
|
|
wlyyHttpLogDao.save(wlyyHttpLogDO);
|
|
|
logger.info(" query_medical_pay json:"+xml);
|
|
|
return xml;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询院内卡列表
|
|
|
*
|
|
@ -3838,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" +
|
|
@ -3853,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" +
|
|
@ -3868,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;
|
|
|
}
|
|
|
|
|
|
|
|
@ -3985,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" +
|
|
@ -4012,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;
|
|
|
}
|
|
|
|
|
|
|