Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdateDepartmentQueueListener.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdateDepartmentQueueListener.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdateDepartmentQueueListener.java (revision 34786)
@@ -0,0 +1,57 @@
+package com.forgon.disinfectsystem.mq.dao.ksdqdyrmyy;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
+
+/**
+ * 修改科室的队列的监听器KSDQDYRMYY-17
+ *
+ */
+public class UpdateDepartmentQueueListener implements MessageListener {
+
+ private static Logger logger = Logger.getLogger(UpdateDepartmentQueueListener.class);
+
+ DataSynchronizationManager dataSynchronizationManager;
+
+ public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) {
+ this.dataSynchronizationManager = dataSynchronizationManager;
+ }
+
+ @Override
+ public void onMessage(Message message) {
+ String jmsDestination = MQHelper.XDGY_updateDepartmentQueue;
+ String messageBody = "";
+ try {
+ //读取消息内容
+ messageBody = MQHelper.readMessage(jmsDestination, message);
+ try {
+ //解析消息中的科室信息
+ OrgUnitVo[] allVos = MQHelper.getAllOrgUnitVoData(jmsDestination, messageBody);
+ //根据同步到的组织机构数据进行处理
+ dataSynchronizationManager.processSyncOrgUnitData(allVos);
+ } catch (Exception e) {
+ logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage());
+ }
+ //回调下平台服务
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ MQHelper.sentAck(jmsDestination, message);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+ } catch (Exception e) {
+ logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS112.xml
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS112.xml (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS112.xml (revision 34786)
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdatePractitionerQueueListener.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdatePractitionerQueueListener.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/UpdatePractitionerQueueListener.java (revision 34786)
@@ -0,0 +1,58 @@
+package com.forgon.disinfectsystem.mq.dao.ksdqdyrmyy;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.datasynchronization.model.UserVo;
+import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
+
+/**
+ * 修改人员的队列的监听器KSDQDYRMYY-17
+ *
+ */
+public class UpdatePractitionerQueueListener implements MessageListener {
+
+ private static Logger logger = Logger.getLogger(UpdatePractitionerQueueListener.class);
+
+ private DataSynchronizationManager dataSynchronizationManager;
+
+ public void setDataSynchronizationManager(
+ DataSynchronizationManager dataSynchronizationManager) {
+ this.dataSynchronizationManager = dataSynchronizationManager;
+ }
+
+ @Override
+ public void onMessage(Message message) {
+ String jmsDestination = MQHelper.XDGY_updatePractitionerQueue;
+ String messageBody = "";
+ try {
+ //读取消息内容
+ messageBody = MQHelper.readMessage(jmsDestination, message);
+ try {
+ //解析消息中的用户信息
+ UserVo[] allVos = MQHelper.getAllUserVoData(jmsDestination, messageBody);
+ //根据同步到的用户数据进行处理
+ dataSynchronizationManager.processSyncUserData(allVos);
+ } catch (Exception e) {
+ logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage());
+ }
+ //回调下平台服务
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ MQHelper.sentAck(jmsDestination, message);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+ } catch (Exception e) {
+ logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS111.xml
===================================================================
diff -u
--- ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS111.xml (revision 0)
+++ ssts-web/src/main/webapp/disinfectsystem/config/ksdqdyrmyy/spring/IBMMQListenerKS111.xml (revision 34786)
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: build.gradle
===================================================================
diff -u -r34671 -r34786
--- build.gradle (.../build.gradle) (revision 34671)
+++ build.gradle (.../build.gradle) (revision 34786)
@@ -564,6 +564,9 @@
compile group: 'com.ibm.mq', name: 'hamcrest-core', version: '1.1'
compile group: 'com.ibm.mq', name: 'connector', version: '1.0'
compile group: 'com.ibm.mq', name: 'jsr305', version: '1.3.7'
+ compile group: 'org.springframework', name: 'spring-jms', version:springVersion
+ compile group: 'javax.jms', name: 'javax.jms-api', version: '2.0.1'
+ compile group: 'com.ibm.mq', name: 'com.ibm.mq.allclient', version: '9.3.0.1'
compile group: 'com.ibm.mq', name: 'MQSDK1.6', version: '3.0.1'
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreateDepartmentQueueListener.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreateDepartmentQueueListener.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreateDepartmentQueueListener.java (revision 34786)
@@ -0,0 +1,57 @@
+package com.forgon.disinfectsystem.mq.dao.ksdqdyrmyy;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
+
+/**
+ * 新建科室的队列的监听器KSDQDYRMYY-17
+ *
+ */
+public class CreateDepartmentQueueListener implements MessageListener {
+
+ private static Logger logger = Logger.getLogger(CreateDepartmentQueueListener.class);
+
+ DataSynchronizationManager dataSynchronizationManager;
+
+ public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) {
+ this.dataSynchronizationManager = dataSynchronizationManager;
+ }
+
+ @Override
+ public void onMessage(Message message) {
+ String jmsDestination = MQHelper.XDGY_createDepartmentQueue;
+ String messageBody = "";
+ try {
+ //读取消息内容
+ messageBody = MQHelper.readMessage(jmsDestination, message);
+ try {
+ //解析消息中的科室信息
+ OrgUnitVo[] allVos = MQHelper.getAllOrgUnitVoData(jmsDestination, messageBody);
+ //根据同步到的组织机构数据进行处理
+ dataSynchronizationManager.processSyncOrgUnitData(allVos);
+ } catch (Exception e) {
+ logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage());
+ }
+ //回调下平台服务
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ MQHelper.sentAck(jmsDestination, message);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+ } catch (Exception e) {
+ logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreatePractitionerQueueListener.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreatePractitionerQueueListener.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/CreatePractitionerQueueListener.java (revision 34786)
@@ -0,0 +1,57 @@
+package com.forgon.disinfectsystem.mq.dao.ksdqdyrmyy;
+
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.datasynchronization.model.UserVo;
+import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
+
+/**
+ * 新建人员的队列的监听器KSDQDYRMYY-17
+ *
+ */
+public class CreatePractitionerQueueListener implements MessageListener {
+
+ private static Logger logger = Logger.getLogger(CreatePractitionerQueueListener.class);
+
+ private DataSynchronizationManager dataSynchronizationManager;
+
+ public void setDataSynchronizationManager(DataSynchronizationManager dataSynchronizationManager) {
+ this.dataSynchronizationManager = dataSynchronizationManager;
+ }
+
+ @Override
+ public void onMessage(Message message) {
+ String jmsDestination = MQHelper.XDGY_createPractitionerQueue;
+ String messageBody = "";
+ try {
+ //读取消息内容
+ messageBody = MQHelper.readMessage(jmsDestination, message);
+ try {
+ //解析消息中的用户信息
+ UserVo[] allVos = MQHelper.getAllUserVoData(jmsDestination, messageBody);
+ //根据同步到的用户数据进行处理
+ dataSynchronizationManager.processSyncUserData(allVos);
+ } catch (Exception e) {
+ logger.info("解析【" + jmsDestination +"】消息失败:" + e.getMessage());
+ }
+ //回调下平台服务
+ new Thread(){
+ @Override
+ public void run() {
+ try {
+ MQHelper.sentAck(jmsDestination, message);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+ } catch (Exception e) {
+ logger.info("监听【" + jmsDestination +"】消息队列失败:" + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/MQHelper.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/MQHelper.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/ksdqdyrmyy/MQHelper.java (revision 34786)
@@ -0,0 +1,419 @@
+package com.forgon.disinfectsystem.mq.dao.ksdqdyrmyy;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.jms.BytesMessage;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.TextMessage;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Node;
+import org.dom4j.XPath;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+import com.forgon.disinfectsystem.datasynchronization.model.UserVo;
+import com.ibm.jms.JMSBytesMessage;
+import com.ibm.msg.client.wmq.WMQConstants;
+
+/**
+ * MQ队列帮助类
+ *
+ */
+public class MQHelper {
+
+ private static Logger logger = Logger.getLogger(MQHelper.class);
+
+ /**
+ * 医疗卫生机构(科室)信息注册服务队列名称XD_createDepartment
+ */
+ public static final String XDGY_createDepartmentQueue = "XDGY_createDepartment";
+ /**
+ * 医疗卫生机构(科室)信息更新服务队列名称XD_updateDepartment
+ */
+ public static final String XDGY_updateDepartmentQueue = "XDGY_updateDepartment";
+ /**
+ * 医疗卫生人员信息注册服务队列名称XD_createPractitioner
+ */
+ public static final String XDGY_createPractitionerQueue = "XDGY_createPractitioner";
+ /**
+ * 医疗卫生人员信息更新服务队列名称XD_updatePractitioner
+ */
+ public static final String XDGY_updatePractitionerQueue = "XDGY_updatePractitioner";
+
+ /**
+ * ACK地址
+ */
+ public static final String ackUrl = "http://192.168.11.139:7800/ack";
+
+ /**
+ * DOMAIN
+ */
+ public static final String domain = "XDGY";
+
+ /**
+ * GTM8_SEC取值为8小时(平台规定的时间)
+ */
+ public static final Long GTM8_SEC = 1000l * 60 * 60 * 8;
+
+ /**
+ * 获取消息后,回调下平台服务
+ * @param destination 队列名称
+ * @param message 消息
+ * @return
+ * @throws JMSException
+ */
+ public static boolean sentAck(String destination,Message message) throws JMSException {
+
+ if (StringUtils.isEmpty(ackUrl)) {
+ return false;
+ }
+
+ try {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+
+ Map map= new HashMap();
+ map.put("queue", destination);
+ map.put("localTransId", message.getJMSCorrelationID()==null? "":message.getJMSCorrelationID() );
+ map.put("operTime", timestampToDateTime(message.getJMSTimestamp()));
+ map.put("domain", domain);
+
+ HttpEntity