Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQDataDaoImpl.java =================================================================== diff -u -r29878 -r29887 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQDataDaoImpl.java (.../MQDataDaoImpl.java) (revision 29878) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQDataDaoImpl.java (.../MQDataDaoImpl.java) (revision 29887) @@ -79,7 +79,8 @@ private void buildOrgUnitSyncListener() { EwellServiceTool ewellServiceTool = new EwellServiceTool(); try { - ewellServiceTool.buildTopicListener(MQHelper.queueManagerName, "EQ.S17.PS02017.COLLECT", "S17", new MessageHandler() { + logger.info("监听科室EQ.S17.PS02017.COLLECT队列"); + ewellServiceTool.buildTopicListener(MQHelper.ORGANDUSERQUEUEMANAGERNAME, "EQ.S17.PS02017.COLLECT", "S17", new MessageHandler() { @Override public void onMessage(MessageEntity messageEntity) { if(messageEntity != null){ @@ -109,6 +110,10 @@ * @param orgUnitString */ private void synchAllOrgUnitVoData(String orgUnitString) { + /*String orgResult= "PS02017DG01PS02017S17001S92S17-12020-12-11 13:20:30" + + "admin2020-11-26 18:34:34admin2020-12-11 13:20:12102780101内一科病区1NYKBQMGTUA011002010102内一科科室02病区21888" + + "admin2020-11-26 18:34:34admin2020-12-11 13:20:12102780101内一科病区2NYKBQMGTUA011002010102内一科科室02病区21888" + + "";*/ try { // 解析入库 if (StringUtils.isNotBlank(orgUnitString)) { @@ -123,29 +128,23 @@ List orgUnitVoList = new ArrayList(); for (int i = 1; i <= nodeList2.size(); i++) { String msgXpath = "/ESBEntry/MsgInfo/Msg[" + i + "]"; - String orgUnitInfo = MQHelper.processDataByXpath(doc, msgXpath); // 科室信息 - if(StringUtils.isNotBlank(orgUnitInfo)){ - Document document = DocumentHelper.parseText(orgUnitInfo); - String actionXpath = "/Msg/@action"; //action判断增、删、改 - String codingXpath = "/Msg/DEPT_CODE"; // 科室代码 - String nameXpath = "/Msg/DEPT_NAME"; // 科室名称 - String parentCodingXpath = "/Msg/SUPERIOR_DEPT_CODE"; // 上级科室代码 - String action = MQHelper.processDataByXpath(document, actionXpath); - String coding = MQHelper.processDataByXpath(document, codingXpath); - String name = MQHelper.processDataByXpath(document, nameXpath); - String parentCoding = MQHelper.processDataByXpath(document, parentCodingXpath); - // 构建科室VO - OrgUnitVo orgUnitVo = new OrgUnitVo(); - orgUnitVo.setCoding(coding); - orgUnitVo.setName(name); - orgUnitVo.setParentCoding(parentCoding); - if("insert".equals(action) || "update".equals(action)){ - orgUnitVoList.add(orgUnitVo); - }else{ - logger.debug("成功接收科室同步的数据!action = " + action + " 不同步科室!"); - } + String actionXpath = msgXpath + "/@action"; //action判断增、删、改 + String codingXpath = msgXpath + "/DEPT_CODE"; // 科室代码 + String nameXpath = msgXpath + "/DEPT_NAME"; // 科室名称 + String parentCodingXpath = msgXpath + "/SUPERIOR_DEPT_CODE"; // 上级科室代码 + String action = MQHelper.processDataByXpath(doc, actionXpath); + String coding = MQHelper.processDataByXpath(doc, codingXpath); + String name = MQHelper.processDataByXpath(doc, nameXpath); + String parentCoding = MQHelper.processDataByXpath(doc, parentCodingXpath); + // 构建科室VO + OrgUnitVo orgUnitVo = new OrgUnitVo(); + orgUnitVo.setCoding(coding); + orgUnitVo.setName(name); + orgUnitVo.setParentCoding(parentCoding); + if("insert".equals(action) || "update".equals(action)){ + orgUnitVoList.add(orgUnitVo); }else{ - logger.info("找不到/ESBEntry/MsgInfo/Msg节点内容为空!"); + logger.debug("成功接收科室同步的数据!action = " + action + " 不同步科室!"); } } OrgUnitVo[] allVos = new OrgUnitVo[orgUnitVoList.size()]; @@ -175,9 +174,10 @@ */ @SuppressWarnings("deprecation") private void buildUserSyncListener () { + logger.info("监听用户EQ.S17.PS02018.COLLECT队列"); EwellServiceTool ewellServiceTool = new EwellServiceTool(); try { - ewellServiceTool.buildTopicListener(MQHelper.queueManagerName, "EQ.S17.PS02018.COLLECT", "S17", new MessageHandler() { + ewellServiceTool.buildTopicListener(MQHelper.ORGANDUSERQUEUEMANAGERNAME, "EQ.S17.PS02018.COLLECT", "S17", new MessageHandler() { @Override public void onMessage(MessageEntity messageEntity) { if(messageEntity != null){ @@ -205,6 +205,9 @@ * 解析用户信息 */ private void synchAllUserVoData(String userString) { + /*String userResult = "PS02018DG01PS02018S17001S92S17-12020-12-11 10:32:14" + + "admin2020-11-26 19:04:23admin2020-12-11 10:32:03105570004何炎燊HYSWO1972-11-06 00:00:00110010605总院门诊开单10010605总院门诊开单1医生0882" + + "";*/ try { // 解析入库 if (StringUtils.isNotBlank(userString)) { @@ -219,29 +222,23 @@ List userVoList = new ArrayList(); for (int i = 1; i <= nodeList2.size(); i++) { String msgXpath = "/ESBEntry/MsgInfo/Msg[" + i + "]"; - String userInfo = MQHelper.processDataByXpath(doc, msgXpath); // 用户信息 - if(StringUtils.isNotBlank(userInfo)){ - Document document = DocumentHelper.parseText(userInfo); - String actionXpath = "/Msg/@action"; //action判断增、删、改 - String codeXpath = "/Msg/STAFF_CODE"; // 职工工号 - String staffNameXpath = "/Msg/STAFF_NAME"; // 职工姓名 - String orgUnitCodingXpath = "/Msg/SUBOR_DEPT_CODE"; // 从属科室代码 - String action = MQHelper.processDataByXpath(document, actionXpath); - String staffCode = MQHelper.processDataByXpath(document, codeXpath); - String staffName = MQHelper.processDataByXpath(document, staffNameXpath); - String orgUnitCoding = MQHelper.processDataByXpath(document, orgUnitCodingXpath); - // 构建人员VO - UserVo userVo = new UserVo(); - userVo.setCoding(staffCode); - userVo.setName(staffName); - userVo.setDeptCode(orgUnitCoding); - if("insert".equals(action) || "update".equals(action)){ - userVoList.add(userVo); - }else{ - logger.debug("成功接收人员同步的数据!action = " + action + " 不同步人员!"); - } + String actionXpath = msgXpath + "/@action"; //action判断增、删、改 + String codeXpath = msgXpath + "/STAFF_CODE"; // 职工工号 + String staffNameXpath = msgXpath + "/STAFF_NAME"; // 职工姓名 + String orgUnitCodingXpath = msgXpath + "/SUBOR_DEPT_CODE"; // 从属科室代码 + String action = MQHelper.processDataByXpath(doc, actionXpath); + String staffCode = MQHelper.processDataByXpath(doc, codeXpath); + String staffName = MQHelper.processDataByXpath(doc, staffNameXpath); + String orgUnitCoding = MQHelper.processDataByXpath(doc, orgUnitCodingXpath); + // 构建人员VO + UserVo userVo = new UserVo(); + userVo.setCoding(staffCode); + userVo.setName(staffName); + userVo.setDeptCode(orgUnitCoding); + if("insert".equals(action) || "update".equals(action)){ + userVoList.add(userVo); }else{ - logger.info("找不到/ESBEntry/MsgInfo/Msg节点内容为空!"); + logger.debug("成功接收人员同步的数据!action = " + action + " 不同步人员!"); } } UserVo[] allVos = new UserVo[userVoList.size()]; Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQHelper.java =================================================================== diff -u -r29626 -r29887 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQHelper.java (.../MQHelper.java) (revision 29626) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/mq/dao/dgszyy/MQHelper.java (.../MQHelper.java) (revision 29887) @@ -42,6 +42,11 @@ public static String queueManagerName = "QMGR.S17"; /** + * 科室人员同步队列管理器名称 + */ + public static String ORGANDUSERQUEUEMANAGERNAME = "QMGR.P17"; + + /** * 获取入院病人信息(东莞中医院) * 需要发送带有住院号的xml消息到平台,然后平台再返回对应的住院病人信息 * @return