Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManagerImpl.java
===================================================================
diff -u -r33359 -r33401
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManagerImpl.java (.../OrgUserDataWebServiceManagerImpl.java) (revision 33359)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManagerImpl.java (.../OrgUserDataWebServiceManagerImpl.java) (revision 33401)
@@ -4,6 +4,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import javax.jws.WebMethod;
import javax.jws.WebService;
@@ -23,6 +24,7 @@
import com.forgon.disinfectsystem.datasynchronization.model.UserVo;
import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
import com.forgon.exception.SystemException;
+import com.forgon.tools.date.DateTools;
@WebService(serviceName = "SysUserAndOrgService")
public class OrgUserDataWebServiceManagerImpl implements OrgUserDataWebServiceManager {
@@ -36,7 +38,7 @@
@WebMethod
public String dealOrgUnit(String xmlData) {
logger.debug("调用接口推送组织机构数据xmlData="+xmlData);
- String resultCode = "0";
+ String resultCode = "AE";
String resultMessage = "";
if (StringUtils.isNotBlank(xmlData)) {
try {
@@ -46,7 +48,7 @@
logger.debug(JSONArray.fromObject(allVos));
dataSynchronizationManager.processSyncOrgUnitData(allVos);
}
- resultCode = "1";
+ resultCode = "AA";
resultMessage = "成功";
} catch (Exception e) {
resultMessage = "同步失败:" + e.getMessage();
@@ -55,10 +57,76 @@
}else{
resultMessage = "入参数据为空";
}
- return "" + resultCode + "" + resultMessage + "";
+ return buildResponce(xmlData, resultCode, resultMessage);
}
/**
+ * 构建返回信息
+ * @param requestMessage 请求信息
+ * @param resultCode 处理结果
+ * @param resultMessage 处理结果的提示信息
+ * @return
+ */
+ private String buildResponce(String requestMessage, String resultCode, String resultMessage) {
+
+ //服务标识,extension为唯一事件编码,区分服务事件(更新或者注册)
+ String interactionId = "";
+ try {
+ Document document = DocumentHelper.parseText(requestMessage.trim());
+ Map nameSpaceURIMap = new HashMap();
+ nameSpaceURIMap.put("s", "urn:hl7-org:v3");
+ //注册科室
+ String rootXpath = "/PRPM_IN401030UV01";
+ if(StringUtils.contains(requestMessage, "PRPM_IN403010UV01")){
+ //更新科室
+ rootXpath = "/PRPM_IN403010UV01";
+ }else if(StringUtils.contains(requestMessage, "PRPM_IN303010UV01")){
+ //更新用户
+ rootXpath = "/PRPM_IN303010UV01";
+ }else if(StringUtils.contains(requestMessage, "PRPM_IN301010UV01")){
+ //注册用户
+ rootXpath = "/PRPM_IN301010UV01";
+ }
+
+ String interactionIdXpath = rootXpath + "/s:interactionId/@extension";
+ interactionId = processDataByXpath(document, nameSpaceURIMap, interactionIdXpath);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ StringBuffer responce = new StringBuffer();
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+ responce.append("" + resultMessage + "");
+ responce.append("");
+ responce.append("");
+ responce.append("");
+
+ return responce.toString();
+ }
+
+ /**
* 解析xml获取科室VO
* @param xmlData
* @return
@@ -73,6 +141,10 @@
//subject节点可以有多个,一个节点代表一个科室
String subjectXpath = "/PRPM_IN401030UV01/s:controlActProcess/s:subject";
+ if(StringUtils.contains(xmlData, "PRPM_IN403010UV01")){
+ //更新科室
+ subjectXpath = "/PRPM_IN403010UV01/s:controlActProcess/s:subject";
+ }
XPath xpath = document.createXPath(subjectXpath);
xpath.setNamespaceURIs(nameSpaceURIMap);
List subjectNodeList = xpath.selectNodes(document, xpath);
@@ -110,20 +182,19 @@
return null;
}
-
@Override
@WebMethod
public String dealUser(String xmlData) {
logger.error("调用接口推送用户数据xmlData="+xmlData);
- String resultCode = "0";
+ String resultCode = "AE";
String resultMessage = "";
if (StringUtils.isNotBlank(xmlData)) {
try {
//解析xml获取科室VO
UserVo[] allVos = buildUserVoByXML(xmlData);
logger.debug(JSONArray.fromObject(allVos));
dataSynchronizationManager.processSyncUserData(allVos);
- resultCode = "1";
+ resultCode = "AA";
resultMessage = "成功";
} catch (Exception e) {
resultMessage = "同步失败:" + e.getMessage();
@@ -132,7 +203,7 @@
}else{
resultMessage = "入参数据为空";
}
- return "" + resultCode + "" + resultMessage + "";
+ return buildResponce(xmlData, resultCode, resultMessage);
}
/**
@@ -150,6 +221,9 @@
//subject节点可以有多个,一个节点代表一个科室
String subjectXpath = "/PRPM_IN301010UV01/s:controlActProcess/s:subject";
+ if(StringUtils.contains(xmlData, "PRPM_IN303010UV01")){
+ subjectXpath = "/PRPM_IN303010UV01/s:controlActProcess/s:subject";
+ }
XPath xpath = document.createXPath(subjectXpath);
xpath.setNamespaceURIs(nameSpaceURIMap);
List subjectNodeList = xpath.selectNodes(document, xpath);
Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManager.java
===================================================================
diff -u -r33359 -r33401
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManager.java (.../OrgUserDataWebServiceManager.java) (revision 33359)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/gdskqyy/OrgUserDataWebServiceManager.java (.../OrgUserDataWebServiceManager.java) (revision 33401)
@@ -16,13 +16,13 @@
/**
* 调用接口推送科室数据
*/
- @WebMethod(action="dealOrgUnit")
+ @WebMethod(action="dealOrgUnit", operationName="dealOrgUnit")
public String dealOrgUnit(@WebParam(name = "xmlData") String xmlData);
/**
* 调用接口推送人员数据
*/
- @WebMethod(action="dealUser")
+ @WebMethod(action="dealUser", operationName="dealUser")
public String dealUser(@WebParam(name = "xmlData") String xmlData);
}