Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManagerImpl.java
===================================================================
diff -u
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManagerImpl.java (revision 0)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManagerImpl.java (revision 25011)
@@ -0,0 +1,238 @@
+package com.forgon.disinfectsystem.webservice.datasync.stdxyxyfszlyy;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+import net.sf.json.JSONObject;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.forgon.directory.model.OrgUnit;
+import com.forgon.directory.service.OrgUnitManager;
+import com.forgon.directory.service.SysUserManager;
+import com.forgon.disinfectsystem.common.CssdUtils;
+import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo;
+import com.forgon.disinfectsystem.datasynchronization.model.UserVo;
+import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager;
+import com.forgon.log.service.LogManager;
+import com.forgon.security.model.User;
+
+
+@WebService(targetNamespace="urn:hl7-org:v3")
+public class OrgUserDataWebServiceManagerImpl implements OrgUserDataWebServiceManager {
+
+ private final Logger logger = Logger.getLogger(this.getClass());
+
+ /**
+ * 数据类型,即科室或人员
+ */
+ public final static String DATATYPE_DEPARTMENT = "DEPARTMENT";
+ public final static String DATATYPE_EMPLOYEE = "EMPLOYEE";
+ public final static String DATATYPE_ERROR = "ERROR";
+
+ /**
+ * 成功与失败对应的编码
+ */
+ public final static String RESULT_CODE_SUCCESS = "AA";
+ public final static String RESULT_CODE_FAILURE = "AE";
+ /**
+ * 注册科室信息
+ */
+ public final static String ACTION_a_dept = "a_dept";
+
+ /**
+ * 注册人员信息
+ */
+ public final static String ACTION_a_employee = "a_employee";
+
+ /**
+ * 更新科室信息
+ */
+ public final static String ACTION_u_dept = "u_dept";
+
+ /**
+ * 更新人员信息
+ */
+ public final static String ACTION_u_employee = "u_employee";
+
+ /**
+ * 删除科室信息
+ */
+ public final static String ACTION_d_dept = "d_dept";
+
+ /**
+ * 删除人员信息
+ */
+ public final static String ACTION_d_employee = "d_employee";
+
+ @Autowired
+ private DataSynchronizationManager dataSynchronizationManager;
+
+ @Autowired
+ private OrgUnitManager orgUnitManager;
+
+ @Autowired
+ private SysUserManager sysUserManager;
+
+ @Autowired
+ private LogManager appLogManager;
+
+ @Override
+ @WebMethod
+ public String HIPMessageServer(@WebParam(name = "action") String action , @WebParam(name = "message") String message) {
+ logger.debug("OrgUserDataWebServiceManagerImpl.HIPMessageServer action=" + action + ",message=" + message);
+ String result = null;
+ switch (action) {
+ case ACTION_a_dept:
+ result = dealOrgUnit(message , action);
+ break;
+ case ACTION_u_dept:
+ result = dealOrgUnit(message , action);
+ break;
+ case ACTION_a_employee:
+ result = dealUser(message , action);
+ break;
+ case ACTION_u_employee:
+ result = dealUser(message , action);
+ break;
+ case ACTION_d_dept:
+ String resultMessage = "暂不处理科室删除";
+ JSONObject json = parseMessage(message, action);
+ String messageId = json != null ? json.optString("messageId") : "";
+ String businessTime = json != null ? json.optString("businessTime") : "";
+ result = constructReturnValue(DATATYPE_DEPARTMENT, messageId,
+ businessTime, "", RESULT_CODE_FAILURE, resultMessage);
+ break;
+ case ACTION_d_employee:
+ resultMessage = "暂不处理人员删除";
+ json = parseMessage(message, action);
+ messageId = json != null ? json.optString("messageId") : "";
+ businessTime = json != null ? json.optString("businessTime") : "";
+ result = constructReturnValue(DATATYPE_EMPLOYEE, messageId,
+ businessTime, "", RESULT_CODE_FAILURE, resultMessage);
+ break;
+ default:
+ resultMessage = "不支持的action参数值:" + action;
+ json = parseMessage(message, action);
+ messageId = json != null ? json.optString("messageId") : "";
+ businessTime = json != null ? json.optString("businessTime") : "";
+ result = constructReturnValue(DATATYPE_ERROR, messageId,
+ businessTime, "", RESULT_CODE_FAILURE, resultMessage);
+ break;
+ }
+ logger.debug(result);
+ return result;
+ }
+
+ private String dealOrgUnit(String message , String action) {
+ JSONObject jsonObject = null;
+ try{
+ jsonObject = (JSONObject)CssdUtils.xml2JsonCommon(CssdUtils.getXmlNodeContentByTagName(message, action + "_request"));
+ OrgUnitVo vo = new OrgUnitVo();
+ if(StringUtils.equals(action, ACTION_a_dept)){
+ vo.setDeptCode(jsonObject.optString("dept_code"));
+ vo.setDeptName(jsonObject.optString("dept_name"));
+ vo.setParentCoding(jsonObject.optString("super_code"));
+ }else{
+ vo.setDeptCode(jsonObject.optJSONArray("whereBean").optString(0));
+ vo.setDeptName(jsonObject.optJSONObject("setBean").optString("dept_name"));
+ vo.setParentCoding(jsonObject.optJSONObject("setBean").optString("super_code"));
+ }
+ OrgUnitVo[] vos = new OrgUnitVo[1];
+ vos[0] = vo;
+ dataSynchronizationManager.processSyncOrgUnitData(vos);
+ //回查此科室的id
+ OrgUnit orgUnit = orgUnitManager.getByCode(vo.getDeptCode());
+ return constructReturnValue(DATATYPE_EMPLOYEE, jsonObject.optString("messageId"),
+ jsonObject.optString("businessTime"), String.valueOf(orgUnit.getId()), RESULT_CODE_SUCCESS, "成功");
+ }catch(Exception e){
+ if(jsonObject == null){
+ return constructReturnValue(DATATYPE_EMPLOYEE, "",
+ "", "", RESULT_CODE_FAILURE, "message数据格式错误");
+ }else{
+ return constructReturnValue(DATATYPE_EMPLOYEE, jsonObject.optString("messageId"),
+ jsonObject.optString("businessTime"), "", RESULT_CODE_FAILURE, "处理科室接口数据报错");
+ }
+ }
+ }
+
+ private String dealUser(String message , String action) {
+ JSONObject jsonObject = null;
+ try{
+ jsonObject = (JSONObject)CssdUtils.xml2JsonCommon(CssdUtils.getXmlNodeContentByTagName(message, action + "_request"));
+ UserVo vo = new UserVo();
+ if(StringUtils.equals(action, ACTION_a_employee)){
+ vo.setCoding(jsonObject.optString("emp_code"));
+ vo.setName(jsonObject.optString("emp_name"));
+ vo.setDeptCode(jsonObject.optString("dept_code"));
+ }else{
+ vo.setCoding(jsonObject.optJSONArray("whereBean").optString(0));
+ vo.setName(jsonObject.optJSONObject("setBean").optString("emp_name"));
+ vo.setDeptCode(jsonObject.optJSONObject("setBean").optString("dept_code"));
+ }
+ UserVo[] vos = new UserVo[1];
+ vos[0] = vo;
+ dataSynchronizationManager.processSyncUserData(vos);
+ //回查此人员的id
+ User user = sysUserManager.getUserByproperty("name", vo.getCoding());
+ return constructReturnValue(DATATYPE_EMPLOYEE, jsonObject.optString("messageId"),
+ jsonObject.optString("businessTime"), String.valueOf(user.getId()), RESULT_CODE_SUCCESS, "成功");
+ }catch(Exception e){
+ if(jsonObject == null){
+ return constructReturnValue(DATATYPE_EMPLOYEE, "",
+ "", "", RESULT_CODE_FAILURE, "message数据格式错误");
+ }else{
+ return constructReturnValue(DATATYPE_EMPLOYEE, jsonObject.optString("messageId"),
+ jsonObject.optString("businessTime"), "", RESULT_CODE_FAILURE, "处理人员接口数据报错");
+ }
+ }
+ }
+
+ /**
+ * 构造返回结果
+ * @return 示例如下:
+ *
+
+ 3423
+ 2018-08-30T00:00:00.000+08:00
+ 4028c381659d68e301659d92167b000c
+ AA
+ 成功
+
+
+ */
+ private String constructReturnValue(String dataType , String messageId,String businessTime
+ ,String responseId ,String resultMark ,String resultMsg){
+ //String businessTime = "2018-08-30T00:00:00.000+08:00";
+ String result = String.format(""
+ + ""
+ + "%s"
+ + "%s"
+ + "%s"
+ + "%s"
+ + "%s"
+ + ""
+ + ""
+ , dataType , messageId , businessTime, responseId, resultMark, resultMsg, dataType);
+ return result;
+ }
+
+ /**
+ * 根据action对入参的message进行解析
+ * @param message
+ * @param action
+ * @return
+ */
+ private JSONObject parseMessage(String message , String action){
+ try{
+ JSONObject jsonObject = (JSONObject)CssdUtils.xml2JsonCommon(CssdUtils.getXmlContentByTagName(message, action + "_request"));
+ return jsonObject;
+ }catch(Exception e){
+ return new JSONObject();
+ }
+ }
+
+}
Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManager.java
===================================================================
diff -u
--- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManager.java (revision 0)
+++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/stdxyxyfszlyy/OrgUserDataWebServiceManager.java (revision 25011)
@@ -0,0 +1,36 @@
+package com.forgon.disinfectsystem.webservice.datasync.stdxyxyfszlyy;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+/**
+ * 汕大肿瘤科室人员数据webserivce
+ * @author shuyongfu
+ * @since 2018-11-22
+ *
+ */
+@WebService
+public interface OrgUserDataWebServiceManager {
+
+
+ /**
+ * 调用接口推送科室、 人员数据
+ * @param action 入参:
+ * @param message 入参:
+
+ * @return 出参:
+
+ 3423
+ 2018-08-30T00:00:00.000+08:00
+ 4028c381659d68e301659d92167b000c
+ AA
+ 成功
+
+
+ *
+ */
+ @WebMethod
+ public String HIPMessageServer(@WebParam(name = "action") String action , @WebParam(name = "message") String message);
+
+}
Index: ssts-web/src/main/resources/spring/projects/stdxyxyfszlyy/webservice-cxf.xml
===================================================================
diff -u
--- ssts-web/src/main/resources/spring/projects/stdxyxyfszlyy/webservice-cxf.xml (revision 0)
+++ ssts-web/src/main/resources/spring/projects/stdxyxyfszlyy/webservice-cxf.xml (revision 25011)
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-web/src/main/webapp/WEB-INF/web-stdxyxyfszlyy.xml
===================================================================
diff -u
--- ssts-web/src/main/webapp/WEB-INF/web-stdxyxyfszlyy.xml (revision 0)
+++ ssts-web/src/main/webapp/WEB-INF/web-stdxyxyfszlyy.xml (revision 25011)
@@ -0,0 +1,392 @@
+
+
+
+ SterileSupplySystem-standard
+
+
+ reload_interval_in_minutes
+ 30
+
+
+
+ contextConfigLocation
+ classpath*:spring/applicationContext-blank.xml
+
+
+
+ locatorFactorySelector
+ classpath*:beanRefContext.xml
+
+
+
+ parentContextKey
+ com.forgon.portal
+
+
+
+
+
+ springSecurityFilterChain
+ org.springframework.web.filter.DelegatingFilterProxy
+
+
+
+ springSecurityFilterChain
+ /*
+
+
+
+ EncodingFilter
+ org.springframework.web.filter.CharacterEncodingFilter
+
+ encoding
+ UTF-8
+
+
+
+
+ resetPasswordFilter
+ com.forgon.security.filter.ResetPasswordFilter
+
+ toUrl
+ /logon.jsp
+
+
+
+
+
+
+ versionManagerFilter
+ com.forgon.register.filter.VersionManagerFilter
+
+ noFilterUrl
+ /ext-4.2.3/;/buttjoint/;/qualitymonitoringWithNoLogon/;/debug/;/disinfectsystem/config/;/disinfectsystem/common/;/disinfectSystem/fileUploadServlet;/CodeImageServlet;/fckeditor/;/UserUpLoadFiles/;/openSystemMainPage.jsp;/logon.jsp;/favicon.ico;/js/;/common/taglibs.jsp;/jquery/;/ext/;/dwr/;/images/;/styles/;/scripts/;/wap/index.jsp;/themes/;/services/;/HIP/;/ikey/;/mobileClient/;/disinfectSystem/sterilization/sterilizationRecordAction!uploadSterilizationRecordPic.do/;/disinfectSystem/printBarcodeAction!printBarcodeImage.do/;/servlets/image
+
+
+
+
+
+
+ struts2
+ org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
+
+
+
+ hibernateFilter
+ org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
+
+
+
+ EncodingFilter
+ /*
+
+
+
+ hibernateFilter
+ /*
+
+
+
+
+
+ versionManagerFilter
+ /*
+
+
+
+ struts2
+ *.do
+
+
+
+
+
+
+ com.forgon.servlet.ForgonServletContextListener
+
+
+
+
+ org.springframework.web.context.ContextLoaderListener
+
+
+
+
+
+ org.springframework.web.context.request.RequestContextListener
+
+
+
+
+ com.forgon.tools.listener.SingletonSpringApplicationContextListener
+
+
+
+
+
+
+ org.springframework.security.web.session.HttpSessionEventPublisher
+
+
+ com.forgon.oa.onlineusers.listener.SessionInvalidationListener
+
+
+
+ dwr-invoker
+ org.directwebremoting.servlet.DwrServlet
+
+ debug
+ true
+
+
+ classes
+ java.lang.Object
+
+
+ activeReverseAjaxEnabled
+ true
+
+
+ maxWaitAfterWrite
+ 500
+
+
+ crossDomainSessionSecurity
+ false
+
+
+ scriptCompressed
+ true
+
+
+ compressionLevel
+ 47
+
+
+
+
+ spring-mvc
+ org.springframework.web.servlet.DispatcherServlet
+
+ contextConfigLocation
+ /WEB-INF/spring-mvc-servlet.xml
+
+ 1
+
+
+
+ fileDownLoad
+ com.forgon.filedownload.servlet.FileDownLoadServlet
+
+
+
+ CodeImageServlet
+ com.forgon.security.servlet.CodeImageServlet
+
+
+
+ CodeImageServlet
+ /CodeImageServlet
+
+
+
+
+ JRHTMLServlet
+ org.xinyunfei.web.JRHTMLServlet
+
+
+ JRHTMLServlet
+ /JRHTMLServlet
+
+
+
+
+ ImageServlet
+ net.sf.jasperreports.j2ee.servlets.ImageServlet
+
+
+
+ ImageServlet
+ /servlets/image
+
+
+
+ DisplayChart
+ org.jfree.chart.servlet.DisplayChart
+
+
+
+ DisplayChart
+ /DisplayChart
+
+
+
+
+
+
+
+ Connector
+ com.fredck.FCKeditor.connector.ConnectorServlet
+
+ baseDir
+ /UserUpLoadFiles/
+
+
+ debug
+ false
+
+ 1
+
+
+
+ SimpleUploader
+ com.fredck.FCKeditor.uploader.SimpleUploaderServlet
+
+ baseDir
+ /UserUpLoadFiles/
+
+
+ debug
+ false
+
+
+ enabled
+ true
+
+
+ AllowedExtensionsFile
+
+
+
+ DeniedExtensionsFile
+ php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi
+
+
+ AllowedExtensionsImage
+ jpg|gif|jpeg|png|bmp
+
+
+ DeniedExtensionsImage
+
+
+
+ AllowedExtensionsFlash
+ swf|fla
+
+
+ DeniedExtensionsFlash
+
+
+ 1
+
+
+
+ cxf
+ cxf
+ Apache CXF Endpoint
+ org.apache.cxf.transport.servlet.CXFServlet
+ 1
+
+
+ uploadImageServlet
+ com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.servlet.UploadServlet
+
+
+ uploadImageServlet
+ /disinfectSystem/fileUploadServlet
+
+
+ Connector
+ /fckeditor/editor/filemanager/browser/default/connectors/jsp/connector
+
+
+
+ SimpleUploader
+ /fckeditor/editor/filemanager/upload/simpleuploader
+
+
+
+
+ dwr-invoker
+ /dwr/*
+
+
+
+ fileDownLoad
+ /attachfiles/fileDownLoad
+
+
+
+ spring-mvc
+ *.mhtml
+
+
+
+ cxf
+ /services/*
+
+
+
+ cxf
+ /HIP/*
+
+
+
+ http://www.springmodules.org/tags/commons-validator
+ /WEB-INF/tlds/spring-commons-validator.tld
+
+
+
+ http://www.forgon.com/interceptString
+ /WEB-INF/tlds/interceptStringTag.tld
+
+
+
+ http://www.forgon.com/tags-operation
+ /WEB-INF/tlds/operation.tld
+
+
+
+ http://www.forgon.com/tags-bean
+ /WEB-INF/tlds/attachfile.tld
+
+
+
+
+ javax.servlet.jsp.jstl.fmt.localizationContext
+ resources/oa
+
+
+
+ logon.jsp
+
+
+
+ 480
+
+
+
+ 403
+ /casfailed.jsp
+
+
+ 404
+ /pagenotfound.jsp
+
+
\ No newline at end of file
Index: ssts-web/build.gradle
===================================================================
diff -u -r24608 -r25011
--- ssts-web/build.gradle (.../build.gradle) (revision 24608)
+++ ssts-web/build.gradle (.../build.gradle) (revision 25011)
@@ -328,7 +328,7 @@
println "运行任务5:prepareWebXmlFile:准备web.xml文件,使用标准的或者项目定制的web.xml文件"
// web.xml文件名的后缀
def suffix = 'standard'
- if (projectName == 'zd5y' || projectName == 'cszxyy'){
+ if (projectName == 'zd5y' || projectName == 'cszxyy' || projectName == 'stdxyxyfszlyy'){
suffix = projectName
}
Index: ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back
===================================================================
diff -u -r24869 -r25011
--- ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 24869)
+++ ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 25011)
@@ -63,6 +63,7 @@
+
Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java
===================================================================
diff -u -r24811 -r25011
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 24811)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/common/CssdUtils.java (.../CssdUtils.java) (revision 25011)
@@ -1,13 +1,16 @@
package com.forgon.disinfectsystem.common;
import java.io.BufferedReader;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
@@ -18,30 +21,49 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Scanner;
+import java.util.Set;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
+import org.apache.http.NameValuePair;
+import org.apache.http.ParseException;
+import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.params.BasicHttpParams;
+import org.apache.http.params.HttpConnectionParams;
+import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
+import com.fasterxml.jackson.core.JsonParser.Feature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.forgon.Constants;
import com.forgon.directory.model.BarcodeDevice;
import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils;
@@ -68,6 +90,7 @@
import com.forgon.tools.string.StringTools;
import com.forgon.tools.util.ConfigUtils;
import com.forgon.tools.util.PathUtils;
+import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl;
/***
*
@@ -507,8 +530,9 @@
* @param remark 需要追加的备注信息
*/
public static void appendRemarkOfInvoicePlan(InvoicePlan invoicePlan, String remark){
- if(invoicePlan == null || StringUtils.isBlank(remark))
+ if(invoicePlan == null || StringUtils.isBlank(remark)){
return;
+ }
StringBuilder sb = new StringBuilder(StringUtils.defaultString(invoicePlan
.getRemark()));
if (sb.length() > 0) {
@@ -746,13 +770,124 @@
/**
* 执行post的http请求
* @param url请求地址
- * @param param 输入参数
+ * @param param 输入参数:示例如arg1=value1&arg2=value2&arg3=value3
* @param charset 字符编码集
* @return
* @throws Exception
*/
+ public static String sendPostRequest(String url, String params) {
+ logger.debug("sendPostRequest:url="+ url +",params="+ params);
+ return sendPostRequest(url, params , null);
+ }
+
+ /**
+ * 执行post的http请求
+ * @param url请求地址
+ * @param param 输入参数:示例如arg1=value1&arg2=value2&arg3=value3
+ * @param charset 字符编码集
+ * @return
+ * @throws Exception
+ */
public static String sendPostRequest(String url, String params, String charset) {
logger.debug("sendPostRequest:url="+ url +",params="+ params +",charset="+ charset);
+ PrintWriter out = null;
+
+ BufferedReader in = null;
+
+ String result = "";
+
+ try {
+
+ URL realUrl = new URL(url);
+
+ URLConnection conn = realUrl.openConnection();
+
+ conn.setRequestProperty("accept", "*/*");
+
+ conn.setRequestProperty("connection", "Keep-Alive");
+
+ conn.setRequestProperty("user-agent",
+
+ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+
+ conn.setDoOutput(true);
+
+ conn.setDoInput(true);
+
+ out = new PrintWriter(conn.getOutputStream());
+
+
+ out.print(params);
+
+ out.flush();
+
+ //如果指定了字符编码集,则输入读取需指定,否则默认
+ if(StringUtils.isNotBlank(charset)){
+
+ in = new BufferedReader(
+
+ new InputStreamReader(conn.getInputStream() , charset));
+ }else{
+ in = new BufferedReader(
+
+ new InputStreamReader(conn.getInputStream()));
+ }
+
+ String line;
+
+ while ((line = in.readLine()) != null) {
+
+ result += line;
+
+ }
+ logger.debug("result="+ result);
+ } catch (Exception e) {
+
+ logger.error("出现异常!"+e);
+
+ e.printStackTrace();
+
+ }
+
+ finally{
+
+ try{
+
+ if(out!=null){
+
+ out.close();
+
+ }
+
+ if(in!=null){
+
+ in.close();
+
+ }
+
+ }
+
+ catch(IOException ex){
+
+ ex.printStackTrace();
+
+ }
+
+ }
+
+ return result;
+ }
+
+ /**
+ * 执行post的http请求
+ * @param url请求地址
+ * @param params 输入参数
+ * @param charset 字符编码集
+ * @return
+ * @throws Exception
+ */
+ public static String sendPostRequest(String url, Map params, String charset) {
+ logger.debug("sendPostRequest:url="+ url +",params="+ params +",charset="+ charset);
PrintWriter out = null;
BufferedReader in = null;
@@ -786,7 +921,7 @@
in = new BufferedReader(
- new InputStreamReader(conn.getInputStream()));
+ new InputStreamReader(conn.getInputStream() , charset));
String line;
@@ -841,88 +976,125 @@
* @return
* @throws Exception
*/
- public static String sendPostRequest(String url, Map params, String charset) {
- PrintWriter out = null;
+ public static String sendRequestByHttpPost(String url, Map params, String charset) {
+ logger.debug("sendRequestByHttpPost="+ url +",params="+ params +",charset="+ charset);
+ String result = null;
+ HttpPost post = new HttpPost(url);
+ List postParams = new ArrayList();
+ if(params != null && params.size() > 0){
+ for (String key : params.keySet()) {
+ postParams.add(new BasicNameValuePair(key, params.get(key)));
+ }
+ }
+ try {
+ post.setEntity(new UrlEncodedFormEntity(postParams, charset));
+ } catch (UnsupportedEncodingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ HttpParams httpParameters = new BasicHttpParams();
+ HttpConnectionParams.setConnectionTimeout(httpParameters, 30*1000);//设置请求超时10秒
+ HttpConnectionParams.setSoTimeout(httpParameters, 30*1000); //设置等待数据超时10秒
+ HttpConnectionParams.setSocketBufferSize(httpParameters, 8192);
- BufferedReader in = null;
+ HttpResponse response = null;
+ try {
+ response = new DefaultHttpClient(httpParameters).execute(post);
+ } catch (ClientProtocolException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if(response != null && response.getStatusLine().getStatusCode() == 200){
+ try {
+ result = EntityUtils.toString(response.getEntity());
+ } catch (ParseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ return result;
+ }
- String result = "";
-
- try {
-
- URL realUrl = new URL(url);
-
- URLConnection conn = realUrl.openConnection();
-
- conn.setRequestProperty("accept", "*/*");
-
- conn.setRequestProperty("connection", "Keep-Alive");
-
- conn.setRequestProperty("user-agent",
-
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
-
- conn.setDoOutput(true);
-
- conn.setDoInput(true);
-
- out = new PrintWriter(conn.getOutputStream());
-
-
- out.print(params);
-
- out.flush();
-
- in = new BufferedReader(
-
- new InputStreamReader(conn.getInputStream()));
-
- String line;
-
- while ((line = in.readLine()) != null) {
-
- result += line;
-
- }
- logger.debug("result="+ result);
- } catch (Exception e) {
-
- logger.error("出现异常!"+e);
-
- e.printStackTrace();
-
+ /**
+ * http post json请求
+ * @param url
+ * @param json
+ * @return
+ */
+ public static JSONObject sendJSONRequestByHttpPost(String url,JSONObject json){
+ HttpClient client = new DefaultHttpClient();
+ HttpPost post = new HttpPost(url);
+ JSONObject response = null;
+ try {
+ StringEntity s = new StringEntity(json.toString());
+ s.setContentEncoding("UTF-8");
+ s.setContentType("application/json");//发送json数据需要设置contentType
+ post.setEntity(s);
+ HttpResponse res = client.execute(post);
+ if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
+ String result = EntityUtils.toString(res.getEntity());// 返回json格式:
+ //测试数据(仅用于本地测试)
+ /*result = "{"
+ +"\"code\": \"0000\","
+ +"\"fundProjects\": ["
+ +"{"
+ +"\"fundCards\": ["
+ +"{"
+ +"\"balanceAmount\": 3266045.1,"
+ +"\"budgetAmount\": 3288000,"
+ +"\"cardNo\": \"81530028\","
+ +"\"expendAmount\": 1291,"
+ +"\"freezeAmount\": 20663.9,"
+ +"\"fundCategory\": \"1\","
+ +"\"fundSubjects\": ["
+ +"{"
+ +"\"balanceAmount\": 87468.95,"
+ +"\"budgetAmount\": 2256300,"
+ +"\"coperator\": \"项目预算\","
+ +"\"expendAmount\": 2146728.15,"
+ +"\"freezeAmount\": 22102.9,"
+ +"\"subjectCode\": \"0018\","
+ +"\"subjectName\": \"材料费\""
+ +"},"
+ +"{"
+ +"\"balanceAmount\": 1934.44,"
+ +"\"budgetAmount\": 1934.44,"
+ +"\"coperator\": \"项目预算\","
+ +"\"expendAmount\": 1934.44,"
+ +"\"freezeAmount\": 0,"
+ +"\"subjectCode\": \"0073\","
+ +"\"subjectName\": \"其他\""
+ +"}"
+ +"],"
+ +"\"status\": \"0\""
+ +"}"
+ +"],"
+ +"\"orgManagerCode\": \"8329\","
+ +"\"orgManagerName\": \"刘奕志\","
+ +"\"projectCode\": \"3030901003053\","
+ +"\"projectName\": \"自体iPS来源的RPE移植后眼炎症反应的机理和干预研究\","
+ +"\"projectSource\": \"6\""
+ +"}"
+ +"],"
+ +"\"message\": \"请求成功!\""
+ +"}";*/
+ response = JSONObject.fromObject(result);
}
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return response;
+ }
- finally{
-
- try{
-
- if(out!=null){
-
- out.close();
-
- }
-
- if(in!=null){
-
- in.close();
-
- }
-
- }
-
- catch(IOException ex){
-
- ex.printStackTrace();
-
- }
-
- }
-
- return result;
- }
-
/**
* 执行post的http请求(请求参数为xml)
* @param url 请求地址
@@ -955,35 +1127,7 @@
return result;
}
-
/**
- * http post json请求
- * @param url
- * @param json
- * @return
- */
- public static JSONObject sendJSONRequestByHttpPost(String url,JSONObject json){
- HttpClient client = new DefaultHttpClient();
- HttpPost post = new HttpPost(url);
- JSONObject response = null;
- try {
- StringEntity s = new StringEntity(json.toString());
- s.setContentEncoding("UTF-8");
- s.setContentType("application/json");//发送json数据需要设置contentType
- post.setEntity(s);
- HttpResponse res = client.execute(post);
- if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
- String result = EntityUtils.toString(res.getEntity());
- response = JSONObject.fromObject(result);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- return response;
- }
-
-
- /**
* 获取包定义的材料总和
* @param td
* @param totalDiposableGoods 是否统计耗材
@@ -1268,6 +1412,26 @@
}
/**
+ * 从xml格式的文本中取出某个标签的内容
+ * @param xmlString xml文本
+ * @param tagName xml标签名
+ * @return
+ */
+ public static String getXmlNodeContentByTagName(String xmlString , String tagName){
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db;
+ try {
+ db = dbf.newDocumentBuilder();
+ Document doc = db.parse(new InputSource(new StringReader(xmlString)));
+ return getXmlNodeContentByTagName(doc , tagName);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
* 从document中取出某个标签的内容
* @param doc w3c的document对象
* @param tagName xml标签名
@@ -1288,6 +1452,55 @@
}
/**
+ * 从document中取出某个标签的内容
+ * @param doc w3c的document对象
+ * @param tagName xml标签名
+ * @return
+ */
+ public static String getXmlNodeContentByTagName(Document doc , String tagName){
+ try {
+ NodeList list = doc.getElementsByTagName(tagName);
+ if(list != null && list.getLength() > 0){
+ Node node = list.item(0);
+ return nodeToString(node);
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 将传入的一个DOM Node对象输出成字符串。如果失败则返回一个空字符串""。
+ *
+ * @param node
+ * DOM Node 对象。
+ * @return a XML String from node
+ */
+ public static String nodeToString(Node node) {
+ if (node == null) {
+ throw new IllegalArgumentException();
+ }
+ try {
+ Transformer transformer = TransformerFactory.newInstance()
+ .newTransformer();
+ Properties properties = transformer.getOutputProperties();
+ properties.setProperty(OutputKeys.ENCODING, com.forgon.tools.Constants.CHARSET_UTF8);
+ properties.setProperty(OutputKeys.METHOD, "xml");
+ properties.setProperty(OutputKeys.VERSION, "1.0");
+ properties.setProperty(OutputKeys.INDENT, "no");
+ transformer.setOutputProperties(properties);
+ StringWriter sw = new StringWriter();
+ transformer.transform(new DOMSource(node), new StreamResult(sw));
+ return sw.toString();
+ } catch (TransformerException te) {
+ throw new RuntimeException(te.getMessage());
+ }
+ }
+
+
+ /**
* 对比两个集合,取出不同的元素
* @param list1
* @param tousseInstanceBarcodes
@@ -1340,4 +1553,166 @@
}
return str;
}
+
+ public static JSONObject getJsonObjectFromConfigJs(String configJsFilePath){
+ JSONObject jsonObj = null;
+
+ ObjectMapper mapper = new ObjectMapper().configure(
+ Feature.ALLOW_COMMENTS, true);
+
+ mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
+ mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
+ Scanner scan = null;
+ try {
+ String content = readFullFile(configJsFilePath);
+ int startIndex = content.indexOf("{");
+ int endIndex = (content.lastIndexOf("}") + 1);
+ if (startIndex != -1 && endIndex != -1 && startIndex < endIndex) {
+ content = content.substring(startIndex, endIndex);
+ }
+
+ jsonObj = mapper
+ .readValue(
+ content,
+ JSONObject.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }finally{
+ if(scan != null){
+ scan.close();
+ }
+ }
+ return jsonObj;
+ }
+
+ public static void printAllProjectConfig(){
+ //遍历所有项目的config.js文件
+ JSONObject totalJsonObject = new JSONObject();
+ String path = "C:\\WorkspaceLunaSR2-V4.1.0\\forgon-ssts-v4.1.0\\ssts-web\\src\\main\\webapp\\disinfectsystem\\config";
+ File configFolder = new File(path);
+ if(configFolder.exists()){
+ File[] projectNameFolder = configFolder.listFiles();
+ if(projectNameFolder != null && projectNameFolder.length > 0){
+ for (File file : projectNameFolder) {
+ String projectConfigJsFilePath = file.getAbsolutePath() + "/config.js";
+ logger.debug("projectConfigJsFilePath=" + projectConfigJsFilePath);
+ File configJsFile = new File(projectConfigJsFilePath);
+ if(configJsFile.exists()){
+ JSONObject jsonObject = getJsonObjectFromConfigJs(projectConfigJsFilePath);
+ if(jsonObject != null){
+ Set keySet = jsonObject.keySet();
+ if(CollectionUtils.isNotEmpty(keySet)){
+ for (String key : keySet) {
+ if(totalJsonObject.containsKey(key)){
+ continue;
+ }
+ totalJsonObject.put(key, jsonObject.opt(key));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ logger.debug("totalJsonObject.keySet().size()=" + totalJsonObject.keySet().size());
+ logger.debug("totalJsonObject=\n" + totalJsonObject);
+ }
+
+ // 读取完整的文件
+ private static String readFullFile(String Path) {
+ BufferedReader reader = null;
+ String laststr = "";
+ try {
+ FileInputStream fileInputStream = new FileInputStream(Path);
+ InputStreamReader inputStreamReader = new InputStreamReader(
+ fileInputStream, "UTF-8");
+ reader = new BufferedReader(inputStreamReader);
+ String tempString = null;
+ while ((tempString = reader.readLine()) != null) {
+ laststr += tempString + "\r\n";
+ }
+ reader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return laststr;
+ }
+
+ public static JSON getJsonFromJsonFile(String jsonFilePath){
+ JSON json = null;
+
+ ObjectMapper mapper = new ObjectMapper().configure(
+ Feature.ALLOW_COMMENTS, true);
+
+ mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
+ mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
+ try {
+ String content = readFullFile(jsonFilePath);
+
+ json = mapper
+ .readValue(
+ content,
+ JSONObject.class);
+ } catch (IOException e) {
+ e.printStackTrace();
+ try {
+ String content = readFullFile(jsonFilePath);
+
+ json = mapper
+ .readValue(
+ content,
+ JSONArray.class);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }
+ return json;
+ }
+
+ public static void main(String[] args) {
+ /*String xml = ""+
+ ""+
+ "MS025"+
+ "科室字典"+
+ "S028"+
+ ""+
+ "20170705175444"+
+ ""+
+ ""+
+ ""+
+ "010101
"+
+ "中心主任办公室"+
+ ""+
+ ""+
+ ""+
+ ""+
+ ""+
+ ""+
+ ""+
+ "0"+
+ ""+
+ ""+
+ ""+
+ ""+
+ ""+
+ ""+
+ "0101"+
+ "管理科室"+
+ ""+
+ ""+
+ "
"+
+ ""+
+ "";
+ System.out.println("======" + CssdUtils.xml2JsonCommon(xml));*/
+
+ //printAllProjectConfig();
+ }
}