|
@ -7,26 +7,23 @@ import com.yihu.jw.entity.hospital.mapping.HospitalDeptMappingDO;
|
|
|
import com.yihu.jw.hospital.mapping.dao.HospitalDeptMappingDao;
|
|
|
import com.yihu.jw.hospital.prescription.service.entrance.util.ConvertUtil;
|
|
|
import com.yihu.jw.hospital.prescription.service.entrance.util.MqSdkUtil;
|
|
|
import com.yihu.jw.hospital.prescription.service.entrance.util.WebserviceUtil;
|
|
|
import com.yihu.jw.restmodel.hospital.prescription.WlyyHisPrescriptionVO;
|
|
|
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionDiagnosisVO;
|
|
|
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
|
|
|
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
|
|
|
import com.yihu.jw.restmodel.web.ListEnvelop;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import net.sf.json.JSON;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import net.sf.json.xml.XMLSerializer;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
import org.springframework.core.io.Resource;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.io.BufferedReader;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.InputStreamReader;
|
|
|
import java.util.*;
|
|
@ -114,22 +111,29 @@ public class EntranceService {
|
|
|
if(demoFlag){
|
|
|
resp=getJosnFileResullt(fid);
|
|
|
}else{
|
|
|
JSONObject msg=new JSONObject();
|
|
|
msg.put("endNum","20000");
|
|
|
msg.put("Msg", new net.sf.json.JSONArray() );
|
|
|
JSONObject query=new JSONObject();
|
|
|
query.put("@compy","=");
|
|
|
query.put("@item","CARD_NO");
|
|
|
query.put("@splice","and");
|
|
|
query.put("@value",cardNo);
|
|
|
msg.put("query",query);
|
|
|
msg.put("startNum",1);
|
|
|
List<String> stringList=new ArrayList<>();
|
|
|
stringList.add(cardNo);
|
|
|
//获取消息
|
|
|
resp = MqSdkUtil.putReqAndGetResp(msg.toString(), fid, "1",stringList);
|
|
|
//解析
|
|
|
resp= MqSdkUtil.xml2jsonObject(resp);
|
|
|
//先调用银医通获取下载余额到his,再查询his中卡余额
|
|
|
net.sf.json.JSONObject jsonObject= callYYTServerService(cardNo);
|
|
|
if(null==jsonObject && "success".equals(jsonObject.get("code").toString())){
|
|
|
JSONObject msg=new JSONObject();
|
|
|
msg.put("endNum","20000");
|
|
|
msg.put("Msg", new net.sf.json.JSONArray() );
|
|
|
JSONObject query=new JSONObject();
|
|
|
query.put("@compy","=");
|
|
|
query.put("@item","CARD_NO");
|
|
|
query.put("@splice","and");
|
|
|
query.put("@value",cardNo);
|
|
|
msg.put("query",query);
|
|
|
msg.put("startNum",1);
|
|
|
List<String> stringList=new ArrayList<>();
|
|
|
stringList.add(cardNo);
|
|
|
//获取消息
|
|
|
resp = MqSdkUtil.putReqAndGetResp(msg.toString(), fid, "1",stringList);
|
|
|
//解析
|
|
|
resp= MqSdkUtil.xml2jsonObject(resp);
|
|
|
}else {
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
return ConvertUtil.convertObjectEnvelopByString(resp);
|
|
|
}
|
|
@ -819,4 +823,47 @@ public class EntranceService {
|
|
|
return resp;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 银医通下载
|
|
|
* @param cardNo 待查询的卡号
|
|
|
**/
|
|
|
public net.sf.json.JSONObject callYYTServerService(String cardNo) throws Exception {
|
|
|
String re = "";
|
|
|
net.sf.json.JSONObject jsonObject=new net.sf.json.JSONObject();
|
|
|
String action = "CallYYTServerService";
|
|
|
String info_xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>" +
|
|
|
"<root><ip>172.16.50.40</ip><port>5516</port></root>";
|
|
|
String reqmsg_xml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>" +
|
|
|
"<root><sick_id>" + cardNo + "</sick_id><cus_card_no>" + cardNo + "</cus_card_no>" +
|
|
|
"<req_type>2001</req_type><trade_type>2001</trade_type><req_oper>8644</req_oper><req_term>192001019019</req_term><win_no>6</win_no></root>";
|
|
|
Map<String, String> params = new HashMap<>();
|
|
|
params.put("ServerInfo", info_xml);
|
|
|
params.put("RegMsg", reqmsg_xml);
|
|
|
String urlString = "http://172.16.50.40:80/ZyXmyytRequestService/ZyXmyytRequestServiceWs.dll?Handler=ZyXmyytRequestServiceWsService";
|
|
|
String namespace = "zysoft";
|
|
|
re = WebserviceUtil.post(urlString, namespace, action, params);
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
JSON json = xmlSerializer.read(re);
|
|
|
Object errorCode = ((net.sf.json.JSONObject) json).get("error_code");
|
|
|
if ("ok".equals(errorCode)) {
|
|
|
JSON json2 = xmlSerializer.read(((net.sf.json.JSONObject) json).get("response").toString());
|
|
|
System.out.println("银医通下载response:" + json2.toString(1));
|
|
|
jsonObject.element("code","success");
|
|
|
jsonObject.element("obj",json);
|
|
|
} else {
|
|
|
Object errorMsg = ((net.sf.json.JSONObject) json).get("error_msg");
|
|
|
jsonObject.element("code","error");
|
|
|
jsonObject.element("obj","银医通下载失败," +errorMsg);
|
|
|
//{"error_type":"0","error_code":"10002","error_msg":"卡号无效"}
|
|
|
}
|
|
|
if (StringUtils.isEmpty(re)) {
|
|
|
throw new Exception("返回为空!");
|
|
|
} else {
|
|
|
if (re.startsWith("error")) {
|
|
|
throw new Exception(re);
|
|
|
}
|
|
|
}
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
}
|