| ÎļþÃû´Ó smartor/src/main/java/com/smartor/common/ShiyiSmsUtil.java ÐÞ¸Ä |
| | |
| | | package com.smartor.common; |
| | | package com.ruoyi.message.sms.provider.shiyi; |
| | | |
| | | import com.smartor.domain.ShiyiSmsRequest; |
| | | import com.smartor.domain.ShiyiSmsResponse; |
| | | import com.ruoyi.message.config.MessageProperties; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.http.HttpEntity; |
| | | import org.springframework.http.HttpHeaders; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import javax.xml.parsers.DocumentBuilder; |
| | | import javax.xml.parsers.DocumentBuilderFactory; |
| | | import org.w3c.dom.Document; |
| | | import org.w3c.dom.Element; |
| | | import org.w3c.dom.Node; |
| | | import org.w3c.dom.NodeList; |
| | | import org.xml.sax.InputSource; |
| | | |
| | | import javax.xml.parsers.DocumentBuilder; |
| | | import javax.xml.parsers.DocumentBuilderFactory; |
| | | import java.io.StringReader; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * æå·å¸ä¸ HIS æå¡å¹³å°å¯¹æ¥å·¥å
፱ȋ |
| | | * æå·å¸ä¸ HIS æå¡å¹³å°å¯¹æ¥å·¥å
·ç±»ï¼çä¿¡ï¼ã |
| | | * <p> |
| | | * æãHIS æå¡å¹³å°æ¥å£è¯´æææ¡£ V1.1ã3.1 è约å®ï¼HIS 对å¤ä»¥ WCF Web Service å½¢å¼åå¸ï¼ |
| | | * ç»ä¸å
¥å£ï¼{@code int RunService(string TradeType, string TradeMsg, ref string TradeOut)}ï¼ |
| | | * å
¶ä¸ {@code TradeType} æ è¯ä¸å¡ç¼ç ï¼{@code TradeMsg} 为 UTF-8 ç¼ç ç XML æ¥æã |
| | | * æ¬å·¥å
·ç±»ç®åå®ç° 5.2 çä¿¡ä¸å¡ (TradeType=FASONGDX)ã |
| | | * æ¬ç±»å®ç° 5.2 çä¿¡ä¸å¡ (TradeType=FASONGDX)ã |
| | | * <p> |
| | | * è¿ç§»è¯´æï¼å类为 {@code com.smartor.common.ShiyiSmsUtil}ãå·®å¼ç¹ï¼ |
| | | * <ul> |
| | | * <li>é
ç½®ç± {@code @Value("${his.service.defaultCaozuoydm:}")} æ¹ä¸ºä» {@link MessageProperties} 读å |
| | | * ï¼åç¼ {@code message.sms.shiyi.*}ï¼ï¼å key ä¸åéè¦ï¼</li> |
| | | * <li>æ¥å£å°åç±ç¡¬ç¼ç æ¹ä¸º {@code message.sms.shiyi.ws-url}ï¼é»è®¤å¼ä¸å硬ç¼ç ä¸è´ |
| | | * ï¼{@code http://192.178.0.104:7790/MediInfoHis.svc}ï¼ã</li> |
| | | * </ul> |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class ShiyiSmsUtil { |
| | | |
| | | /** 5.2 çä¿¡ä¸å¡ TradeType */ |
| | | /** |
| | | * 5.2 çä¿¡ä¸å¡ TradeType |
| | | */ |
| | | public static final String TRADE_TYPE_FASONGDX = "FASONGDX"; |
| | | |
| | | /** WCF å½å空é´ï¼é»è®¤éææ¡£ç¤ºä¾ */ |
| | | private String namespace = "http://tempuri.org/"; |
| | | /** |
| | | * WCF å½å空é´ï¼é»è®¤éææ¡£ç¤ºä¾ |
| | | */ |
| | | private final String namespace = "http://tempuri.org/"; |
| | | |
| | | /** é»è®¤æä½å代ç */ |
| | | @Value("${his.service.defaultCaozuoydm:}") |
| | | private String defaultCaozuoydm; |
| | | |
| | | /** é»è®¤æä½åå§å */ |
| | | @Value("${his.service.defaultCaozuoyxm:}") |
| | | private String defaultCaozuoyxm; |
| | | |
| | | /** é»è®¤ç³»ç»æ è¯ */ |
| | | private String defaultXitongbs = "0"; |
| | | |
| | | /** é»è®¤åé¢ä»£ç */ |
| | | private String defaultFenyuandm = "1"; |
| | | |
| | | /** é»è®¤æºæä»£ç */ |
| | | private String defaultJigoudm = "1"; |
| | | private final MessageProperties properties; |
| | | |
| | | private final RestTemplate restTemplate = new RestTemplate(); |
| | | |
| | | public ShiyiSmsUtil(MessageProperties properties) { |
| | | this.properties = properties; |
| | | } |
| | | |
| | | /** |
| | | * åéçä¿¡ (FASONGDX) |
| | |
| | | } |
| | | |
| | | /** |
| | | * è°ç¨ å¸ä¸ WCF RunService æ¥å£ãSOAP 1.1 åºç¡é´ææææ¡£ä¸è¦æ±ã |
| | | * è°ç¨å¸ä¸ WCF RunService æ¥å£ãSOAP 1.1 åºç¡é´ææææ¡£ä¸è¦æ±ã |
| | | * |
| | | * @return TradeOut æ¥æï¼æå¡ç«¯ ref åæ°ï¼ |
| | | */ |
| | | public String invokeRunService(String tradeType, String tradeMsg) { |
| | | String soapEnvelope = buildSoapEnvelope(tradeType, tradeMsg); |
| | | String hisServiceUrl = "http://192.178.0.104:7790/MediInfoHis.svc"; |
| | | String hisServiceUrl = properties.getSms().getShiyi().getWsUrl(); |
| | | |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.setContentType(new MediaType("text", "xml", StandardCharsets.UTF_8)); |
| | |
| | | } |
| | | |
| | | private void applyDefaults(ShiyiSmsRequest request) { |
| | | MessageProperties.ShiyiSms shiyi = properties.getSms().getShiyi(); |
| | | if (StringUtils.isBlank(request.getCaozuoydm())) { |
| | | request.setCaozuoydm(defaultCaozuoydm); |
| | | request.setCaozuoydm(shiyi.getDefaultCaozuoydm()); |
| | | } |
| | | if (StringUtils.isBlank(request.getCaozuoyxm())) { |
| | | request.setCaozuoyxm(defaultCaozuoyxm); |
| | | request.setCaozuoyxm(shiyi.getDefaultCaozuoyxm()); |
| | | } |
| | | if (StringUtils.isBlank(request.getCaozuorq())) { |
| | | request.setCaozuorq(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
| | | } |
| | | if (StringUtils.isBlank(request.getXitongbs())) { |
| | | request.setXitongbs(defaultXitongbs); |
| | | request.setXitongbs("0"); |
| | | } |
| | | if (StringUtils.isBlank(request.getFenyuandm())) { |
| | | request.setFenyuandm(defaultFenyuandm); |
| | | request.setFenyuandm("1"); |
| | | } |
| | | if (StringUtils.isBlank(request.getJigoudm())) { |
| | | request.setJigoudm(defaultJigoudm); |
| | | request.setJigoudm("1"); |
| | | } |
| | | if (StringUtils.isBlank(request.getDuanxinlx())) { |
| | | request.setDuanxinlx("0"); |