From 3998703641edf236113f77f15c79561fd7f75c59 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 22 五月 2026 11:16:43 +0800
Subject: [PATCH] 【市一】短信发送
---
smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java | 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java | 60 ++++++++++++++++++++++++++++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java | 20 ++++++++++
3 files changed, 81 insertions(+), 1 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 115081f..91ed52e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -10,7 +10,10 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sms.smsUtils;
import com.smartor.common.MtSubmitSmUtil;
+import com.smartor.common.ShiyiSmsUtil;
import com.smartor.domain.ServiceOutPath;
+import com.smartor.domain.ShiyiSmsRequest;
+import com.smartor.domain.ShiyiSmsResponse;
import com.smartor.domain.smsVO;
import com.smartor.mapper.UtilsMapper;
import com.smartor.service.IServiceOutPathService;
@@ -43,6 +46,9 @@
@Autowired
private MtSubmitSmUtil mtSubmitSmUtil;
+ @Autowired
+ private ShiyiSmsUtil shiyiSmsUtil;
+
@Value("${xhsmsAccount}")
private String xhsmsAccount;
@@ -73,6 +79,18 @@
public AjaxResult send(@RequestBody smsVO vo) {
String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), vo.getContent());
return AjaxResult.success(sendMsg);
+ }
+
+ @ApiOperation("甯備竴HIS鐭俊XML娴嬭瘯")
+ @PostMapping("/sendShiyiTest")
+ public AjaxResult sendShiyiTest(@RequestBody ShiyiSmsRequest request) {
+ try {
+ ShiyiSmsResponse response = shiyiSmsUtil.sendSms(request);
+ return AjaxResult.success(response);
+ } catch (Exception e) {
+ log.error("甯備竴HIS鐭俊XML娴嬭瘯澶辫触", e);
+ return AjaxResult.error("甯備竴HIS鐭俊XML娴嬭瘯澶辫触: " + e.getMessage());
+ }
}
/**
@@ -167,4 +185,6 @@
}
return AjaxResult.success(sendMsg);
}
+
+
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
index 859672d..8f21b07 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
@@ -157,6 +157,66 @@
* @param respBodyClass 鍝嶅簲浣撶被鍨�
* @return 杩斿洖鐨勫搷搴旂粨鏋�
*/
+ public static String postXmlRequest(String url, String request) throws HttpRequestException {
+ return postXmlRequest(url, request, EMPTY_HEADERS);
+ }
+
+ public static String postXmlRequest(String url, String request, Map<String, String> headers) throws HttpRequestException {
+ Assert.hasLength(url, "鐠囬攱鐪皍rl娑撳秷鍏樻稉铏光敄鐎涙顑佹稉灞傗偓?");
+ Assert.notNull(request, "XML request must not be null");
+ EntityEnclosingMethod httpMethod = new PostMethod(url);
+
+ httpMethod.addRequestHeader(CONTENT_TYPE, TEXT_XML_UTF8);
+ setHeaderRequestId(httpMethod);
+ if (headers != null && headers != EMPTY_HEADERS) {
+ setReqHeaders(headers, httpMethod);
+ }
+
+ try {
+ RequestEntity entity = new StringRequestEntity(request, TEXT_XML, StandardCharsets.UTF_8.name());
+ httpMethod.setRequestEntity(entity);
+
+ int resultCode = httpClient.executeMethod(httpMethod);
+ String contentType = httpMethod.getResponseHeader(CONTENT_TYPE) == null
+ ? null : httpMethod.getResponseHeader(CONTENT_TYPE).getValue();
+ String charset = StandardCharsets.UTF_8.name();
+ if (contentType != null && contentType.contains("charset=")) {
+ String[] parts = contentType.split("charset=");
+ if (parts.length > 1) {
+ charset = parts[1].split(";")[0].trim();
+ }
+ }
+
+ InputStream inputStream = httpMethod.getResponseBodyAsStream();
+ if (inputStream == null) {
+ throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "閸濆秴绨叉稉绨剈ll");
+ }
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
+ StringBuilder stringBuilder = new StringBuilder();
+ String str;
+ while ((str = reader.readLine()) != null) {
+ stringBuilder.append(str);
+ }
+ reader.close();
+ String respXml = stringBuilder.toString();
+ if (resultCode == OK) {
+ return respXml;
+ } else {
+ throw new HttpRequestException(resultCode, respXml);
+ }
+ } catch (UnsupportedEncodingException e) {
+ throw new HttpRequestException(ENCODING_ERROR_CODE, e);
+ } catch (HttpException e) {
+ throw new HttpRequestException(HTTP_ERROR_CODE, e);
+ } catch (IOException e) {
+ throw new HttpRequestException(IO_ERROR_CODE, e);
+ } finally {
+ if (httpMethod != null) {
+ httpMethod.releaseConnection();
+ }
+ }
+ }
+
@SuppressWarnings("unchecked")
public static <RESPBODY> HttpEntity<RESPBODY> postJsonRequestV2(String url, HttpEntity<?> reqEntity, Class<RESPBODY> respBodyClass) {
Assert.hasLength(url, "璇锋眰url涓嶈兘涓虹┖瀛楃涓层��");
diff --git a/smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java b/smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java
index 724ffd6..e726987 100644
--- a/smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java
+++ b/smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java
@@ -94,7 +94,7 @@
*/
public String invokeRunService(String tradeType, String tradeMsg) {
String soapEnvelope = buildSoapEnvelope(tradeType, tradeMsg);
- String hisServiceUrl = "http://192.200.54.57:7790/MediInfoHis.svc";
+ String hisServiceUrl = "http://192.178.0.104:7790/MediInfoHis.svc";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "xml", StandardCharsets.UTF_8));
--
Gitblit v1.9.3