Index: ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebService.java
===================================================================
diff -u
--- ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebService.java (revision 0)
+++ ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebService.java (revision 38447)
@@ -0,0 +1,16 @@
+package com.forgon.disinfectsystem.webservice.server;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+/**
+ * 大成手麻向手术器械闭环系统查询使用记录状态接口GDSRMYY-613
+ */
+@WebService(serviceName="/userRecordStateService")
+public interface UserRecordStateWebService {
+
+ @WebMethod(action="queryUserRecordState", operationName="queryUserRecordState")
+ public String queryUserRecordState(@WebParam(name="message") String dataXml);
+
+}
Index: ssts-web/src/main/webapp/disinfectsystem/config/gdsy/spring/webservice-cxf.xml
===================================================================
diff -u -r36976 -r38447
--- ssts-web/src/main/webapp/disinfectsystem/config/gdsy/spring/webservice-cxf.xml (.../webservice-cxf.xml) (revision 36976)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gdsy/spring/webservice-cxf.xml (.../webservice-cxf.xml) (revision 38447)
@@ -98,4 +98,13 @@
implementor="#JLK_BatchImageDataPush" />
+
+
+
+
+
+
\ No newline at end of file
Index: ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebServiceImpl.java
===================================================================
diff -u
--- ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebServiceImpl.java (revision 0)
+++ ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/webservice/server/UserRecordStateWebServiceImpl.java (revision 38447)
@@ -0,0 +1,183 @@
+package com.forgon.disinfectsystem.webservice.server;
+
+import java.sql.ResultSet;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.forgon.directory.acegi.tools.AcegiHelper;
+import com.forgon.disinfectsystem.entity.useRecord.UseRecord;
+import com.forgon.disinfectsystem.webservice.helper.JLKWebServiceClientHelper;
+import com.forgon.log.model.Log;
+import com.forgon.log.service.LogManager;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.hibernate.ObjectDao;
+import com.forgon.tools.util.ForgonDateUtils;
+
+public class UserRecordStateWebServiceImpl implements UserRecordStateWebService {
+
+ /**
+ * 表示是否接收成功:成功为0
+ */
+ public static final Integer CODE_SUCCESS = 0;
+
+ /**
+ * 表示是否接收成功:失败为1
+ */
+ public static final Integer CODE_FAIL = 1;
+
+ private static Logger logger = Logger.getLogger(UserRecordStateWebServiceImpl.class);
+
+ @Autowired
+ private LogManager appLogManager;
+
+ @Autowired
+ private ObjectDao objectDao;
+
+ @Override
+ public String queryUserRecordState(String dataXml) {
+ logger.info("请求消息:" + dataXml);
+ Integer code = CODE_SUCCESS;
+ String message = "";
+ List useRecordList = new ArrayList();
+ try {
+ if(StringUtils.isBlank(dataXml)){
+ throw new RuntimeException("参数不能为空!");
+ }
+ Document document = DocumentHelper.parseText(dataXml);
+
+ String patientInfoXpath = "/REQUEST/Patient_information";
+ String hospitalNumberXpath = patientInfoXpath + "/hospitalNumber";
+ String patientIDCardXpath = patientInfoXpath + "/patientIDCard";
+ String patientNameXpath = patientInfoXpath + "/patientName";
+
+ String hospitalNumber = JLKWebServiceClientHelper.processDataByXpath(document, hospitalNumberXpath);
+ String patientIDCard = JLKWebServiceClientHelper.processDataByXpath(document, patientIDCardXpath);
+ String patientName = JLKWebServiceClientHelper.processDataByXpath(document, patientNameXpath);
+
+ if(StringUtils.isBlank(hospitalNumber)){
+ throw new RuntimeException("病人住院号为必填项!");
+ }
+ if(StringUtils.isBlank(patientIDCard)){
+ throw new RuntimeException("病人身份证号码为必填项!");
+ }
+ if(StringUtils.isBlank(patientName)){
+ throw new RuntimeException("病人姓名为必填项!");
+ }
+
+ useRecordList = selectUseRecord(hospitalNumber, patientIDCard, patientName);
+
+ if(CollectionUtils.isEmpty(useRecordList)){
+ throw new RuntimeException("未找到满足条件的使用记录");
+ }
+
+ } catch (Exception e) {
+ code = CODE_FAIL;
+ message = e.getMessage();
+ }
+ String responce = buildResponce(code, message, useRecordList);
+ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_SYNC, "接口同步", "手术器械闭环管理系统使用记录状态接口,入参:" + dataXml + ",出参:" + responce);
+ return responce;
+ }
+
+ /**
+ * 根据住院号、身份证号码、患者姓名查询使用记录
+ * @param hospitalNumber
+ * @param patientIDCard
+ * @param patientName
+ * @return
+ */
+ private List selectUseRecord(String hospitalNumber, String patientIDCard, String patientName) {
+
+ List useRecordList = new ArrayList();
+ StringBuffer sqlBuffer = new StringBuffer();
+ sqlBuffer.append("select ur.id, ur.status, ur.enteringDate from ");
+ sqlBuffer.append(UseRecord.class.getSimpleName());
+ sqlBuffer.append(" ur where ur.hospitalNum = ?");
+ sqlBuffer.append(" and ur.patientIDCard = ?");
+ sqlBuffer.append(" and ur.patientName = ?");
+
+ String[] args = new String[]{hospitalNumber, patientIDCard, patientName};
+
+ ResultSet rs = null;
+ try {
+
+ rs = objectDao.executeSql(sqlBuffer.toString(), args);
+ while(rs.next()){
+ Long id = rs.getLong("id");
+ String status = rs.getString("status");
+ Date enteringDate = rs.getTimestamp("enteringDate");
+ UseRecord useRecord = new UseRecord();
+ useRecord.setId(id);
+ useRecord.setStatus(status);
+ useRecord.setEnteringDate(enteringDate);
+ useRecord.setHospitalNum(hospitalNumber);
+ useRecord.setPatientIDCard(patientIDCard);
+ useRecord.setPatientName(patientName);
+ useRecordList.add(useRecord);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ DatabaseUtil.closeResultSetAndStatement(rs);
+ }
+ return useRecordList;
+ }
+
+ /**
+ * 构建返回参数
+ * @param code
+ * @param message
+ * @param useRecordList
+ * @return
+ */
+ public static String buildResponce(Integer code, String message, List useRecordList){
+ StringBuffer returnMsgSB = new StringBuffer();
+ returnMsgSB.append("");
+ returnMsgSB.append("" + code + "
");
+ returnMsgSB.append("");
+ if(StringUtils.isNotBlank(message)){
+ returnMsgSB.append(message);
+ }
+ returnMsgSB.append("");
+ if(code != null && code.intValue() == CODE_SUCCESS.intValue()){
+ returnMsgSB.append("");
+ if(CollectionUtils.isNotEmpty(useRecordList)){
+ returnMsgSB.append("");
+ returnMsgSB.append(useRecordList.get(0).getHospitalNum());
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append(useRecordList.get(0).getPatientIDCard());
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append(useRecordList.get(0).getPatientName());
+ returnMsgSB.append("");
+ for (UseRecord useRecord : useRecordList) {
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append(useRecord.getId());
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append(useRecord.getStatus());
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ returnMsgSB.append(ForgonDateUtils.safelyFormatDate(useRecord.getEnteringDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""));
+ returnMsgSB.append("");
+ returnMsgSB.append("");
+ }
+ }
+ returnMsgSB.append("");
+ }
+
+ returnMsgSB.append("");
+ return returnMsgSB.toString();
+ }
+
+}