Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java =================================================================== diff -u -r26116 -r27131 --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java (.../OrgUnitVo.java) (revision 26116) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/OrgUnitVo.java (.../OrgUnitVo.java) (revision 27131) @@ -24,6 +24,11 @@ */ public String source; + /** + * 请求消息的Id(德阳市人民医院DYSYY-53二期合同接口开发) + */ + private String messageId; + public String getCoding() { return coding; } @@ -118,4 +123,12 @@ logger.debug("set科室名称value是否转码后的值:" + getName()); } } + + public String getMessageId() { + return messageId; + } + + public void setMessageId(String messageId) { + this.messageId = messageId; + } } Index: ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml =================================================================== diff -u -r23822 -r27131 --- ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 23822) +++ ssts-web/src/main/resources/spring/projects/dysyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 27131) @@ -38,6 +38,10 @@ + + + + Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java =================================================================== diff -u -r16800 -r27131 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 16800) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 27131) @@ -23,6 +23,11 @@ */ public static String WebserviceAddress = "http://192.168.28.10:9086/ExternalServices/ZL_InformationService.asmx/Custom"; + /** + * 调用集成平台提供的webservice(DYSYY-53 二期合同接口开发) + */ + public static String HIPWebServiceAddress = "http://192.168.28.123:6998/services/HIPService?wsdl"; + //公网环境的接口地址 //public static String WebserviceAddress = "http://218.6.146.70:8086/ExternalServices/ZL_InformationService.asmx/Custom"; @@ -47,6 +52,11 @@ public static String MethodName_CSSD_User = "ZLTHIRD.CSSD.USER"; /** + * 调用集成平台提供的webservice,查询用户信息(DYSYY-53 二期合同接口开发) + */ + public static String MethodName_GetUserInfo = "getUserInfo"; + + /** * 请求参数的特殊字符替换 */ public static Map paramSpecialWordReplaceMap; Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java =================================================================== diff -u --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (revision 0) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/SyncDataFromHIPDao.java (revision 27131) @@ -0,0 +1,58 @@ +package com.forgon.disinfectsystem.datasynchronization.dao; + +import java.util.List; + +import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo; +import com.forgon.disinfectsystem.datasynchronization.model.UserVo; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.operationreservation.OperationReservation; +import com.forgon.disinfectsystem.entity.useRecord.UseRecord; + +/** + * 德阳市人民医院DYSYY-53 二期合同接口开发 + * + * @author ZhouPeiMian + * + */ +public interface SyncDataFromHIPDao { + + /** + * 解析xml,返回OrgUnitVo + * @param action OrganizationInfoRegister: 医疗卫生机构信息注册服务 + * OrganizationInfoUpdate: 医疗卫生机构信息更新服务 + * @param xmlStr 待解析的xml字符串 + * @return + */ + public List paramToOrgUnitVos(String action, String xmlStr); + + /** + * 解析xml,返回UserVo + * @param action ProviderInfoRegister: 医疗卫生人员信息注册服务 + * ProviderInfoUpdate: 医疗卫生人员信息更新服务 + * @param xmlStr 待解析的xml字符串 + * @return + */ + public List paramToUserVos(String action, String xmlStr); + + /** + * 根据xml中的手术申请单编号,查询并返回申请单信息 + * @param xmlStr 手术申请单信息查询服务请求信息xml + * @return + */ + public List paramToOperationReservation(String xmlStr); + + /** + * 消毒物料使用记录登记 + * @param xmlStr + * @return 处理的消息id + */ + public UseRecord syncUseRecord(String xmlStr); + + /** + * 消毒物料明细查询服务 + * @param xmlStr + * @return + */ + public TousseInstance tousseDetailQuery(String xmlStr); + +} Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java =================================================================== diff -u -r16803 -r27131 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 16803) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 27131) @@ -1,6 +1,8 @@ package com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy; +import java.util.UUID; + import net.sf.json.JSON; import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; @@ -26,6 +28,13 @@ public static String STATE_FAIL = "F"; /** + * 医院平台提供的用户名密码(中联项目人员进行系统注册)德阳市人民医院DYSYY-53 二期合同接口开发 + */ + public final static String USERNAME = "CSSD-96412E0C1AE56502E053CF1CA8C060C7"; + public final static String PASSWORD = "mcTuwEZ1YyPv9slh5X1jsw=="; + + + /** * 构造接口输入参数 * @param methodName * @param arg @@ -68,6 +77,23 @@ + "" + "" + ""; + } else if (DatasyncConstant.MethodName_GetUserInfo.equals(methodName)) { + StringBuilder soap = new StringBuilder(); + UUID uuid = UUID.randomUUID(); + String xmlInput = "" + uuid.toString() + "" + arg[0] + ""; + soap.append(""); + soap.append(""); + soap.append("" + (WebServiceClientHelper.USERNAME) + ""); + soap.append("" + (WebServiceClientHelper.PASSWORD) + ""); + soap.append("VQWHc2A2Y03wM2Yfumbd2g==2018-09-19T01:09:51.634Z"); + soap.append(""); + soap.append(""); + soap.append("" + methodName + ""); + soap.append(""); + soap.append(""); + soap.append(""); + soap.append(""); + inputXml = soap.toString(); } else { throw new RuntimeException("不存在此方法:" + methodName); } Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java =================================================================== diff -u --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (revision 0) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dysrmyy/SycnDataFromHIPDaoImpl.java (revision 27131) @@ -0,0 +1,281 @@ +package com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.DocumentHelper; +import org.dom4j.Node; +import org.dom4j.XPath; +import org.springframework.beans.factory.annotation.Autowired; + +import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.datasynchronization.dao.SyncDataFromHIPDao; +import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo; +import com.forgon.disinfectsystem.datasynchronization.model.UserVo; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.operationreservation.OperationReservation; +import com.forgon.disinfectsystem.entity.useRecord.UseRecord; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; +import com.forgon.tools.Constants; +import com.forgon.tools.date.DateTools; + +public class SycnDataFromHIPDaoImpl implements SyncDataFromHIPDao { + + @Autowired + private TousseInstanceManager tousseInstanceManager; + @Autowired + private BarcodeManager barcodeManager; + + /** + * 根据document和Xpath表达式解析数据 + * @param document + * @param nameSpaceURIMap + * @param xpathExp + * @return + */ + private static String processDataByXpath(Document document, Map nameSpaceURIMap, String xpathExp) { + if ((StringUtils.isNotBlank(xpathExp)) && (document != null)) { + XPath xpath = document.createXPath(xpathExp); + if (nameSpaceURIMap != null) { + xpath.setNamespaceURIs(nameSpaceURIMap); + } + Node node = xpath.selectSingleNode(document); + if (node != null) { + return node.getStringValue(); + } + } + return null; + } + + @Override + public List paramToOrgUnitVos(String action, String xmlStr) { + if (StringUtils.isBlank(action) || StringUtils.isBlank(xmlStr)) { + throw new RuntimeException("参数action或message为空!"); + } + // xml文件命名空间 + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + // xml字段的xpath表达式 + String idXpath = ""; + String deptXpath = ""; + String deptCodeXpath = ""; + String deptNameXpath = ""; + String parentDeptCodeXpath = ""; + if (StringUtils.equals("OrganizationInfoRegister", action)) { + idXpath = "/PRPM_IN401030UV01/s:id/@extension"; + deptXpath = "/PRPM_IN401030UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:assignedEntity"; + deptCodeXpath = deptXpath + + "/s:id/s:item/@extension"; + deptNameXpath = deptXpath + + "/s:assignedPrincipalOrganization/s:name/s:item/s:part/@value"; + parentDeptCodeXpath = deptXpath + + "/s:assignedPrincipalOrganization/s:asAffiliate/s:scoper2/s:id/s:item/@extension"; + } else if (StringUtils.equals("OrganizationInfoUpdate", action)){ + idXpath = "/PRPM_IN403010UV01/s:id/@extension"; + deptXpath = "/PRPM_IN403010UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:assignedEntity"; + deptCodeXpath = deptXpath + + "/s:id/s:item/@extension"; + deptNameXpath = deptXpath + + "/s:assignedPrincipalOrganization/s:name/s:item/s:part/@value"; + parentDeptCodeXpath = deptXpath + + "/s:assignedPrincipalOrganization/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; + } else { + throw new RuntimeException("action不为OrganizationInfoRegister或者OrganizationInfoUpdate!"); + } + + try { + Document document = DocumentHelper.parseText(xmlStr); + String messageId = processDataByXpath(document, nameSpaceURIMap, idXpath); + String deptCode = processDataByXpath(document, nameSpaceURIMap, deptCodeXpath); + String deptName = processDataByXpath(document, nameSpaceURIMap, deptNameXpath); + String parentDeptCode = processDataByXpath(document, nameSpaceURIMap, parentDeptCodeXpath); + + if (messageId == null || deptCode == null || deptName == null || parentDeptCode == null) { + throw new RuntimeException("xml中的必须项不能为空!"); + } + + OrgUnitVo orgUnitVo = new OrgUnitVo(); + orgUnitVo.setCoding(deptCode); + orgUnitVo.setName(deptName); + orgUnitVo.setParentCoding(parentDeptCode); + orgUnitVo.setSource(Constants.SOURCE_SYNC); + // 临时用于保存消息id + orgUnitVo.setMessageId(messageId); + List orgUnitVoList = new ArrayList(); + orgUnitVoList.add(orgUnitVo); + return orgUnitVoList; + }catch (DocumentException e) { + e.printStackTrace(); + throw new RuntimeException("xml解析失败!"); + } + } + + @Override + public List paramToUserVos(String action, String xmlStr) { + if (StringUtils.isBlank(action) || StringUtils.isBlank(xmlStr)) { + throw new RuntimeException("参数action或message为空!"); + } + // xml文件命名空间 + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + // xml字段的xpath表达式 + String messageIdXpath = ""; + String userXpath = ""; + String userCodeXpath = ""; + String userNameXpath = ""; + String deptCodeXpath = ""; + if (StringUtils.equals("ProviderInfoRegister", action)) { + messageIdXpath = "/PRPM_IN301010UV01/s:id/@extension"; + userXpath = "/PRPM_IN301010UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:healthCareProvider"; + userCodeXpath = userXpath + + "/s:id/s:item/@extension"; + userNameXpath = userXpath + + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value"; + deptCodeXpath = userXpath + + "/s:healthCarePrincipalPerson/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; + } else if (StringUtils.equals("ProviderInfoUpdate", action)){ + messageIdXpath = "/PRPM_IN303010UV01/s:id/@extension"; + userXpath = "/PRPM_IN303010UV01/s:controlActProcess/s:subject/s:registrationRequest/s:subject1/s:healthCareProvider"; + userCodeXpath = userXpath + + "/s:id/s:item/@extension"; + userNameXpath = userXpath + + "/s:healthCarePrincipalPerson/s:name/s:item/s:part/@value"; + deptCodeXpath = userXpath + + "/s:healthCarePrincipalPerson/s:asAffiliate/s:affiliatedPrincipalOrganization/s:id/s:item/@extension"; + } else { + throw new RuntimeException("action不为ProviderInfoRegister或者ProviderInfoUpdate!"); + } + + try { + Document document = DocumentHelper.parseText(xmlStr); + String messageId = processDataByXpath(document, nameSpaceURIMap, messageIdXpath); + String userCode = processDataByXpath(document, nameSpaceURIMap, userCodeXpath); + String userName = processDataByXpath(document, nameSpaceURIMap, userNameXpath); + String deptCode = processDataByXpath(document, nameSpaceURIMap, deptCodeXpath); + if (messageId == null || userCode == null || userName == null || deptCode == null) { + throw new RuntimeException("xml中关键的参数不能为空!"); + } + UserVo userVo = new UserVo(); + userVo.setCoding(userCode); + userVo.setName(userName); + userVo.setOrgUnitCoding(deptCode); + userVo.setSource(Constants.SOURCE_SYNC); + // 保存消息id + userVo.setMessageId(messageId); + List userVoList = new ArrayList(); + userVoList.add(userVo); + return userVoList; + } catch (DocumentException e) { + e.printStackTrace(); + throw new RuntimeException("xml解析失败!"); + } + } + + + @Override + public List paramToOperationReservation(String xmlStr) { + if (StringUtils.isEmpty(xmlStr)) { + throw new RuntimeException("参数message为空!"); + } + // xml文件命名空间 + Map nameSpaceURIMap = new HashMap(); + nameSpaceURIMap.put("s", "urn:hl7-org:v3"); + String actIdXpath = "/QUMT_IN020030UV01/s:controlActProcess/s:queryByParameter/s:actId/s:value/s:item/@extension"; + try { + Document document = DocumentHelper.parseText(xmlStr); + String actId = processDataByXpath(document, nameSpaceURIMap, actIdXpath); + if (StringUtils.isBlank(actId)) { + throw new RuntimeException("xml中申请单编号参数不能为空!"); + } + List list = new ArrayList(); + OperationReservation operationReservation = new OperationReservation(); + operationReservation.setSerialNumber(actId); + list.add(operationReservation); + return list; + } catch (DocumentException e) { + e.printStackTrace(); + throw new RuntimeException("xml解析失败!"); + } + } + + @Override + public UseRecord syncUseRecord(String xmlStr) { + if (StringUtils.isBlank(xmlStr)) { + throw new RuntimeException("参数message为空!"); + } + String messageIdXpath = "/req/message_id"; + String codeXpath = "/req/message_cont/INPUT/code"; + //String patientIdXpath = "/req/message_cont/INPUT/patient_id"; + String inpatientnoXpath = "/req/message_cont/INPUT/inpatientno"; + String excutorXpath = "/req/message_cont/INPUT/excutor"; + String excutimeXpath = "/req/message_cont/INPUT/excutime"; + String excutdeptnoXpath = "/req/message_cont/INPUT/excutdeptno"; + try { + Document document = DocumentHelper.parseText(xmlStr); + String messageId = processDataByXpath(document, null, messageIdXpath); + // 器械包条码 + String barcode = processDataByXpath(document, null, codeXpath); + // 患者标识 + //String patientId = processDataByXpath(document, null, patientIdXpath); + // 患者住院号 + String inpatientno = processDataByXpath(document, null, inpatientnoXpath); + String excutor = processDataByXpath(document, null, excutorXpath); + String excutime = processDataByXpath(document, null, excutimeXpath); + String excutdeptno = processDataByXpath(document, null, excutdeptnoXpath); + if (StringUtils.isBlank(messageId) || StringUtils.isBlank(barcode) || StringUtils.isBlank(inpatientno)) { + throw new RuntimeException("xml中关键参数不能为空!"); + } + // 1、查询器械包实例 + TousseInstance tousseInstance = new TousseInstance(); + tousseInstance.setBarcode(barcode); + List list = new ArrayList(); + list.add(tousseInstance); + // 2、生成使用记录 + UseRecord useRecord = new UseRecord(); + useRecord.setTousseInstanceList(list); + useRecord.setPatientIDCard(inpatientno); + useRecord.setDepartCoding(excutdeptno); + useRecord.setOperator(excutor); + // 存放使用记录录入时间 + useRecord.setOperationTime(DateTools.coverStrToDate(excutime, "yyyyMMddHHmmss")); + // remark暂时存放请求消息的messageId + useRecord.setRemark(messageId); + return useRecord; + } catch (DocumentException e) { + e.printStackTrace(); + throw new RuntimeException("xml解析失败!"); + } + } + + @Override + public TousseInstance tousseDetailQuery(String xmlStr) { + if (StringUtils.isBlank(xmlStr)) { + throw new RuntimeException("参数message为空!"); + } + String messageIdXpath = "/req/message_id"; + String barcodeXpath = "/req/message_cont/INPUT/code"; + try { + Document document = DocumentHelper.parseText(xmlStr); + // 器械包条码 + String barcode = processDataByXpath(document, null, barcodeXpath); + String messageId = processDataByXpath(document, null, messageIdXpath); + if (StringUtils.isBlank(messageId) || StringUtils.isBlank(barcode)) { + throw new RuntimeException("xml中关键参数不能为空!"); + } + TousseInstance ti = new TousseInstance(); + ti.setBarcode(barcode); + // remark暂时存放请求消息的messageId + ti.setRemark(messageId); + return ti; + } catch (DocumentException e) { + e.printStackTrace(); + throw new RuntimeException("xml解析失败!"); + } + } + +} Index: ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml =================================================================== diff -u -r23160 -r27131 --- ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 23160) +++ ssts-web/src/main/resources/spring/security/applicationContext-acegi-security.xml (.../applicationContext-acegi-security.xml) (revision 27131) @@ -39,6 +39,7 @@ + Index: ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml =================================================================== diff -u --- ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml (revision 0) +++ ssts-web/src/main/resources/spring/projects/dysyy/webservice-cxf.xml (revision 27131) @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + \ No newline at end of file Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java =================================================================== diff -u --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java (revision 0) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebService.java (revision 27131) @@ -0,0 +1,19 @@ +package com.forgon.disinfectsystem.webservice.datasync.dysrmyy; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; + +/** + * 德阳市人民医院DYSYY-53 + * 二期合同接口开发 + * @author zhoupeimian + * @since 2019-10-17 + */ +@WebService(serviceName="HIPMessageWebService") +public interface HIPMessageWebService { + + @WebMethod(operationName="HIPMessageServer") + public String HIPMessageServer(@WebParam(name="action") String action, @WebParam(name="message") String message); + +} Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java =================================================================== diff -u --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (revision 0) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/datasync/dysrmyy/HIPMessageWebServiceImpl.java (revision 27131) @@ -0,0 +1,508 @@ +package com.forgon.disinfectsystem.webservice.datasync.dysrmyy; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; + +import com.forgon.directory.model.BarcodeDevice; +import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.datasynchronization.dao.SyncDataFromHIPDao; +import com.forgon.disinfectsystem.datasynchronization.model.OrgUnitVo; +import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; +import com.forgon.disinfectsystem.datasynchronization.model.UserVo; +import com.forgon.disinfectsystem.datasynchronization.service.DataSynchronizationManager; +import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.useRecord.UseRecord; +import com.forgon.disinfectsystem.operationreservation.service.OperationReservationManager; +import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; +import com.forgon.disinfectsystem.useRecord.service.UseRecordManager; +import com.forgon.tools.date.DateTools; +import com.forgon.tools.hibernate.ObjectDao; + +public class HIPMessageWebServiceImpl implements HIPMessageWebService { + + private static Logger logger = Logger.getLogger(HIPMessageWebServiceImpl.class); + + @Autowired + private SyncDataFromHIPDao sycnDataFromHIPDao; + @Autowired + private DataSynchronizationManager dataSynchronizationManager; + @Autowired + private OperationReservationManager operationReservationManager; + @Autowired + private TousseInstanceManager tousseInstanceManager; + @Autowired + private BarcodeManager barcodeManager; + @Autowired + private ObjectDao objectDao; + @Autowired + private UseRecordManager useRecordManager; + + /** + * 医疗卫生人员信息注册服务 + * @param action + * @param message + * @return + */ + public String organizationInfoRegister(String action, String message) { + logger.info("organizationInfoRegister ---> action : " + action + "; message : " + message); + // typeCode为处理结果,AA表示成功 AE表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = ""; + // 消息ID + String messageId = ""; + // guid + UUID uuid = UUID.randomUUID(); + List orgUnitVoList = new ArrayList(); + try { + orgUnitVoList = sycnDataFromHIPDao.paramToOrgUnitVos(action, message); + } catch (Exception e) { + e.printStackTrace(); + returnStr = e.getMessage(); + logger.info(returnStr); + } + if (CollectionUtils.isNotEmpty(orgUnitVoList)) { + typeCode = "AA"; + returnStr = "同步成功"; + OrgUnitVo orgUnitVo = orgUnitVoList.get(0); + messageId = orgUnitVo.getMessageId(); + // 同步到数据库中 + dataSynchronizationManager.processSyncOrgUnitData(new OrgUnitVo[] {orgUnitVo}); + } + String returnMsg = "" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " "; + logger.info("organizationInfoRegister ---> " + returnMsg); + return returnMsg; + } + + /** + * 医疗卫生人员信息更新服务 + * @param action + * @param message + * @return + */ + public String organizationInfoUpdate(String action, String message) { + return organizationInfoRegister(action, message); + } + + /** + * 医疗卫生机构(科室)信息注册服务 + * @param action + * @param message + * @return + */ + public String providerInfoRegister(String action, String message) { + logger.info("providerInfoRegister ---> action : " + action + "; message : " + message); + // typeCode为处理结果,AA表示成功 AE表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = ""; + // 消息ID + String messageId = ""; + // guid + UUID uuid = UUID.randomUUID(); + List userList = new ArrayList(); + try { + userList = sycnDataFromHIPDao.paramToUserVos(action, message); + } catch (Exception e) { + returnStr = e.getMessage(); + logger.info(returnStr); + e.printStackTrace(); + } + if (CollectionUtils.isNotEmpty(userList)) { + typeCode = "AA"; + returnStr = "同步成功"; + UserVo userVo = userList.get(0); + messageId = userVo.getMessageId(); + // 同步到数据库中 + dataSynchronizationManager.processSyncUserData(new UserVo[] {userVo}); + } + StringBuilder returnMsg = new StringBuilder(); + returnMsg.append(""); + returnMsg.append(""); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + returnMsg.append(" "); + String returnString = returnMsg.toString(); + logger.info("providerInfoRegister ---> " + returnString); + return returnString; + } + + /** + * 医疗卫生机构(科室)信息更新服务 + * @param action + * @param message + * @return + */ + public String providerInfoUpdate(String action, String message) { + return providerInfoRegister(action, message); + } + + /** + * 器械包使用登记(消毒物料使用登记) + * @param action + * @param message + * @return + */ + public String applyRegister(String action, String message) { + logger.info("applyRegister ---> action : " + action + "; message : " + message); + // typeCode 为处理结果, AA 表示成功 AE 表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = "患者消毒物料使用登记失败"; + // 消息id + String messageId = ""; + try { + UseRecord useRecord = sycnDataFromHIPDao.syncUseRecord(message); + if (useRecord != null) { + messageId = useRecord.getRemark(); + List list = useRecord.getTousseInstanceList(); + if (CollectionUtils.isNotEmpty(list)) { + TousseInstance ti = list.get(0); + BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode()); + if (bd instanceof TousseInstance) { + // 1、查询器械包实例 + TousseInstance tousseInstance = (TousseInstance) bd; + if (!TousseInstance.STATUS_STERILED.equals(tousseInstance.getStatus())) { + throw new RuntimeException("患者消毒物料使用登记失败 :消毒物料处于" + tousseInstance.getStatus() + "状态"); + } + // 2、查询患者信息 + // (可以调用手麻系统提供患者查询服务,或者调用HIS系统提供患者查询服务,实现其中一种即可,之前已经实现手麻系统提供患者查询服务,所以这里调用的是手麻系统提供患者查询服务) + PatientInfoVO[] patients = dataSynchronizationManager.findPatientInfoByHospitalNum(useRecord.getPatientIDCard()); + if (patients == null || patients.length == 0) { + throw new RuntimeException("患者消毒物料使用登记失败 :未找到住院号为" + useRecord.getHospitalNum() + "的患者信息"); + } + PatientInfoVO patient = patients[0]; + // 3、创建使用记录 + UseRecord newUseRecord = new UseRecord(); + newUseRecord.setHospitalNum(patient.getHospitalNumber()); + newUseRecord.setTreatmentNum(patient.getClinicNumber()); + newUseRecord.setPatientName(patient.getPatientName()); + newUseRecord.setPatientAge(patient.getPatientAge()); + newUseRecord.setPatientSex(patient.getPatientSex()); + newUseRecord.setPatientIDCard(patient.getPatientIDCard()); + newUseRecord.setDoctorName(patient.getDoctorName()); + newUseRecord.setOperation(patient.getOperation()); + newUseRecord.setOperationRoom(patient.getOpRoomId()); + newUseRecord.setPatientArea(patient.getPatientArea()); + newUseRecord.setRoomNumber(patient.getRoomNumber()); + newUseRecord.setBedNumber(patient.getBedNumber()); + newUseRecord.setDepart(patient.getAscriptionDepartment()); + newUseRecord.setVisitId(patient.getVisitId()); + newUseRecord.setWashHandNurse(patient.getWashHandNurse()); + newUseRecord.setCircuitNurse(patient.getCircuitNurse()); + // 登记人 + newUseRecord.setOperator(useRecord.getOperator()); + // 审核人 + newUseRecord.setReviewer(useRecord.getOperator()); + Date currentDate = new Date(); + // 录入时间 + newUseRecord.setEnteringDate(useRecord.getOperationTime()); + // 审核时间 + newUseRecord.setReviewTime(useRecord.getOperationTime()); + newUseRecord.setApplicationTime(currentDate); + newUseRecord.setOperationTime(useRecord.getOperationTime()); + // 使用记录转申请单 + useRecordManager.saveAndReviewAndConvertUseRecordForm_TRANS_REQUIRED( + newUseRecord, useRecord.getOperator(), null, useRecord.getDepartCoding(), + useRecord.getOperationTime(), InvoicePlan.TYPE_COMBO_FORM, + useRecord.getOperator(), useRecord.getOperator()); + // 登记人 + newUseRecord.setOperator(useRecord.getOperator()); + // 审核人 + newUseRecord.setReviewer(useRecord.getOperator()); + // 录入时间 + newUseRecord.setEnteringDate(useRecord.getOperationTime()); + // 审核时间 + newUseRecord.setReviewTime(useRecord.getOperationTime()); + objectDao.saveOrUpdate(newUseRecord); + tousseInstance.setUseRecord_id(newUseRecord.getId()); + tousseInstance.setStatus(TousseInstance.STATUS_USED); + tousseInstance.setPatientName(patient.getPatientName()); + tousseInstance.setDoctorName(patient.getDoctorName()); + tousseInstance.setUseTime(useRecord.getOperationTime()); + objectDao.saveOrUpdate(tousseInstance); + if (StringUtils.isNotBlank(messageId)) { + typeCode = "AA"; + returnStr = "患者消毒物料使用登记成功"; + } + } else { + returnStr = "该条码不是器械包条码"; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + returnStr = e.getMessage(); + } + StringBuilder returnMsg = new StringBuilder(); + returnMsg.append(""); + returnMsg.append(" "); + returnMsg.append(""); + returnMsg.append("" + returnStr + ""); + returnMsg.append(""); + logger.info("applyRegister ---> " + returnMsg.toString()); + return returnMsg.toString(); + } + + /** + * 根据器械包条码查询消毒物料明细查询 + * @param action + * @param message + * @return + */ + public String tousseDetailQuery(String action, String message) { + logger.info("tousseDetailQuery ---> action : " + action + "; message : " + message); + // typeCode 为处理结果, AA 表示成功 AE 表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = "消毒物料明细查询失败"; + // 消息id + String messageId = ""; + // guid + UUID uuid = UUID.randomUUID(); + try { + TousseInstance ti = sycnDataFromHIPDao.tousseDetailQuery(message); + BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode()); + if (bd instanceof TousseInstance) { + // 生成器械包信息xml + TousseInstance tousseInstance = (TousseInstance) bd; + TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition(); + if (tousseDefinition != null) { + List materialInstances = tousseDefinition.getMaterialInstances(); + messageId = ti.getRemark(); + typeCode = "AA"; + //String materialStr = ""; + StringBuilder materialStr = new StringBuilder(); + if (CollectionUtils.isNotEmpty(materialInstances)) { + for (MaterialInstance materialInstance : materialInstances) { + String detailspec = materialInstance.getSpecification() == null ? "" : materialInstance.getSpecification(); + materialStr.append("" + materialInstance.getMaterialDefinitionId() + ""); + materialStr.append("" + materialInstance.getMaterialName() + ""); + materialStr.append("" + detailspec + ""); + materialStr.append("" + materialInstance.getCount() + ""); + } + } + StringBuilder returnStrSB = new StringBuilder(); + returnStrSB.append(""); + returnStrSB.append("" + tousseInstance.getBarcode() + ""); + returnStrSB.append("" + tousseDefinition.getId() + ""); + returnStrSB.append("" + tousseInstance.getTousseName() + ""); + returnStrSB.append("" + tousseInstance.getSterileEndTime() + ""); + returnStrSB.append("" + tousseInstance.getValidUntilStr() + ""); + returnStrSB.append(materialStr.toString()); + returnStrSB.append(""); + returnStr = returnStrSB.toString(); + } + } + } catch (RuntimeException e) { + e.printStackTrace(); + returnStr = e.getMessage(); + } + StringBuilder returnMsgSB = new StringBuilder(); + returnMsgSB.append(""+ uuid.toString() +""); + returnMsgSB.append(""); + returnMsgSB.append(""); + returnMsgSB.append("" + returnStr + ""); + logger.info("tousseDetailQuery ---> " + returnMsgSB.toString()); + return returnMsgSB.toString(); + } + + /** + * 医院质控管理需要按患者使用的消毒包条码,进行消毒供应处理步骤的追溯并显示相关信息 + * @param action + * @param message + * @return + */ + public String tousseTraceQuery(String action, String message) { + logger.info("tousseTraceQuery ---> action : " + action + "; message : " + message); + // typeCode 为处理结果, AA 表示成功 AE 表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = "消毒物料消毒追溯信息查询失败"; + // 消息id + String messageId = ""; + // guid + UUID uuid = UUID.randomUUID(); + try { + // 临时从xml中解析,只存了器械包条码,remark暂时存放请求消息的messageId + TousseInstance ti = sycnDataFromHIPDao.tousseDetailQuery(message); + BarcodeDevice bd = barcodeManager.getBarcodeByBarcode(ti.getBarcode()); + if (bd instanceof TousseInstance) { + // 生成器械包信息xml + TousseInstance tousseInstance = (TousseInstance) bd; + messageId = ti.getRemark(); + typeCode = "AA"; + StringBuilder recoverStrSB = new StringBuilder(); + recoverStrSB.append(""); + recoverStrSB.append("" + (tousseInstance.getRecyclingOperator() == null ? "" : tousseInstance.getRecyclingOperator()) + ""); + recoverStrSB.append("" + (tousseInstance.getRecyclingUser() == null ? "" : tousseInstance.getRecyclingUser()) + ""); + recoverStrSB.append("" + (tousseInstance.getRecyclingTime() == null ? "" : tousseInstance.getRecyclingTime()) + ""); + recoverStrSB.append(""); + recoverStrSB.append(""); + recoverStrSB.append(""); + + StringBuilder cleanstrSB = new StringBuilder(); + cleanstrSB.append(""); + cleanstrSB.append("" + (tousseInstance.getDisinfectIdentification() == null ? "" : tousseInstance.getDisinfectIdentification()) + ""); + cleanstrSB.append("" + (tousseInstance.getDisinfectProgram() == null ? "" : tousseInstance.getDisinfectProgram()) + ""); + cleanstrSB.append("" + (tousseInstance.getWashBasket() == null ? "" : tousseInstance.getWashBasket()) + ""); + cleanstrSB.append("" + (tousseInstance.getWashOperator() == null ? "" : tousseInstance.getWashOperator()) + ""); + cleanstrSB.append(""); + cleanstrSB.append("" + (tousseInstance.getLocation() == null ? "" : tousseInstance.getLocation()) + ""); + cleanstrSB.append("" + (tousseInstance.getWashStartTime() == null ? "" : tousseInstance.getWashStartTime()) + ""); + cleanstrSB.append("" + (tousseInstance.getWashEndTime() == null ? "" : tousseInstance.getWashEndTime()) + ""); + cleanstrSB.append(""); + cleanstrSB.append(""); + + StringBuilder packageStrSB = new StringBuilder(); + packageStrSB.append(""); + packageStrSB.append("" + (tousseInstance.getWrapper() == null ? "" : tousseInstance.getWrapper()) + ""); + packageStrSB.append("" + (tousseInstance.getOperationTimeStr() == null ? "" : tousseInstance.getOperationTimeStr()) + ""); + packageStrSB.append("" + (tousseInstance.getPackageType() == null ? "" : tousseInstance.getPackageType()) + ""); + packageStrSB.append("" + (tousseInstance.getReviewer() == null ? "" : tousseInstance.getReviewer()) + ""); + packageStrSB.append("" + (tousseInstance.getReviewTimeStr() == null ? "" : tousseInstance.getReviewTimeStr()) + ""); + packageStrSB.append(""); + + StringBuilder sterilizationstrSB = new StringBuilder(); + sterilizationstrSB.append(""); + sterilizationstrSB.append("" + (tousseInstance.getSterilizerName() == null ? "" : tousseInstance.getSterilizerName()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterilingType() == null ? "" : tousseInstance.getSterilingType()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterileFrequency() == null ? "" : tousseInstance.getSterileFrequency()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterilizationUser() == null ? "" : tousseInstance.getSterilizationUser()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterileStartTime() == null ? "" : tousseInstance.getSterileStartTime()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterileEndTime() == null ? "" : tousseInstance.getSterileEndTime()) + ""); + sterilizationstrSB.append("" + (tousseInstance.getSterilizationBasket() == null ? "" : tousseInstance.getSterilizationBasket()) + ""); + sterilizationstrSB.append(""); + sterilizationstrSB.append(""); + sterilizationstrSB.append("" + (tousseInstance.getValidUntilStr() == null ? "" : tousseInstance.getValidUntilStr()) + ""); + sterilizationstrSB.append(""); + + Invoice ip = tousseInstance.getInvoice(objectDao); + StringBuilder sendstrSB = new StringBuilder(); + if (ip != null) { + sendstrSB.append(""); + sendstrSB.append("" + (ip.getSerialNumber() == null ? "" : ip.getSerialNumber()) + ""); + sendstrSB.append("" + (ip.getDepart() == null ? "" : ip.getDepart()) + ""); + sendstrSB.append("" + (ip.getApplicant() == null ? "" : ip.getApplicant()) + ""); + sendstrSB.append("" + (ip.getApplicationTime_YYYYMMDDHHMM() == null ? "" : ip.getApplicationTime_YYYYMMDDHHMM()) + ""); + sendstrSB.append("" + (ip.getSendTime_YYYYMMDDHHMM() == null ? "" : ip.getSendTime_YYYYMMDDHHMM()) + ""); + sendstrSB.append("" + (ip.getSender() == null ? "" : ip.getSender()) + ""); + sendstrSB.append("" + (ip.getReceiptingTime_YYYYMMDDHHMM() == null ? "" : ip.getReceiptingTime_YYYYMMDDHHMM()) + ""); + sendstrSB.append("" + (ip.getReceiptor() == null ? "" : ip.getReceiptor()) + ""); + sendstrSB.append(""); + } + + UseRecord ur = tousseInstance.getUseRecord(objectDao); + StringBuilder useStrSB = new StringBuilder(); + if (ur != null) { + useStrSB.append(""); + useStrSB.append("" + (ur.getHospitalNum() == null ? "" : ur.getHospitalNum()) + ""); + useStrSB.append("" + (ur.getTreatmentNum() == null ? "" : ur.getTreatmentNum()) + ""); + useStrSB.append("" + (ur.getPatientName() == null ? "" : ur.getPatientName()) + ""); + useStrSB.append("" + (ur.getPatientIDCard() == null ? "" : ur.getPatientIDCard()) + ""); + useStrSB.append("" + (ur.getOperationTimeStr() == null ? "" : ur.getOperationTimeStr()) + ""); + useStrSB.append("" + (ur.getSurgeon() == null ? "" : ur.getSurgeon()) + ""); + useStrSB.append("" + (ur.getDoctorName() == null ? "" : ur.getDoctorName()) + ""); + useStrSB.append("" + (ur.getOperator() == null ? "" : ur.getOperator()) + ""); + useStrSB.append("" + (ur.getPatientName() == null ? "" : ur.getPatientName()) + ""); + useStrSB.append(""); + } + + StringBuilder discardstrSB = new StringBuilder(); + discardstrSB.append(""); + discardstrSB.append("" + (tousseInstance.getWasteDateStr() == null ? "" : tousseInstance.getWasteDateStr()) + ""); + discardstrSB.append("" + (tousseInstance.getWasteReason() == null ? "" : tousseInstance.getWasteReason()) + ""); + discardstrSB.append("" + (tousseInstance.getOperateUser() == null ? "" : tousseInstance.getOperateUser()) + ""); + discardstrSB.append(""); + + StringBuilder returnStrSB = new StringBuilder(); + returnStrSB.append(""); + returnStrSB.append(recoverStrSB.toString()); + returnStrSB.append(cleanstrSB.toString()); + returnStrSB.append(packageStrSB.toString()); + returnStrSB.append(sterilizationstrSB.toString()); + returnStrSB.append(sendstrSB.toString()); + returnStrSB.append(useStrSB.toString()); + returnStrSB.append(discardstrSB.toString()); + returnStrSB.append(""); + returnStr = returnStrSB.toString(); + } + } catch (RuntimeException e) { + e.printStackTrace(); + returnStr = e.getMessage(); + } + String returnMsg = + ""+ uuid.toString() +"" + + "" + + "" + + "" + returnStr + ""; + logger.info("tousseTraceQuery ---> " + returnMsg); + return returnMsg; + } + + + @Override + public String HIPMessageServer(String action, String message) { + if ("ProviderInfoRegister".equals(action)) { + return this.providerInfoRegister(action, message); + } else if ("ProviderInfoUpdate".equals(action)) { + return this.providerInfoUpdate(action, message); + } else if ("OrganizationInfoRegister".equals(action)) { + return this.organizationInfoRegister(action, message); + } else if ("OrganizationInfoUpdate".equals(action)) { + return this.organizationInfoUpdate(action, message); + } else if ("FJ_DETAILQUERY".equals(action)) { + return this.tousseDetailQuery(action, message); + } else if ("FJ_APPLYREGIS".equals(action)) { + return this.applyRegister(action, message); + } else if ("FJ_TRACEQUERY".equals(action)) { + return this.tousseTraceQuery(action, message); + } else { + logger.info("action : " + action + "; message : " + message); + // typeCode 为处理结果, AA 表示成功 AE 表示失败 + String typeCode = "AE"; + // 处理结果说明 + String returnStr = "错误的action值"; + // guid + UUID uuid = UUID.randomUUID(); + StringBuilder returnMsgSB = new StringBuilder(); + returnMsgSB.append("" + uuid.toString() + ""); + returnMsgSB.append(""); + returnMsgSB.append(""); + returnMsgSB.append("" + returnStr + ""); + String returnMsg = returnMsgSB.toString(); + logger.info("returnMsg : " + returnMsg); + return returnMsg; + } + } + +} Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java =================================================================== diff -u -r14351 -r27131 --- ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java (.../UserVo.java) (revision 14351) +++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/datasynchronization/model/UserVo.java (.../UserVo.java) (revision 27131) @@ -22,6 +22,11 @@ */ private String source; + /** + * 请求消息的Id(德阳市人民医院DYSYY-53二期合同接口开发) + */ + private String messageId; + public String getCoding() { return coding; } @@ -107,4 +112,12 @@ this.status = status; } + public String getMessageId() { + return messageId; + } + + public void setMessageId(String messageId) { + this.messageId = messageId; + } + } Index: ssts-web/src/main/webapp/logonSSOForDysyy.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/logonSSOForDysyy.jsp (revision 0) +++ ssts-web/src/main/webapp/logonSSOForDysyy.jsp (revision 27131) @@ -0,0 +1,214 @@ +<%@page import="com.itextpdf.text.log.SysoLogger"%> +<%@page import="com.forgon.security.model.User"%> +<%@page import="com.forgon.disinfectsystem.common.CssdUtils"%> +<%@page import="com.forgon.security.service.UserManager"%> +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@page import="com.forgon.tools.SpringBeanManger"%> +<%@page import="com.forgon.tools.Constants"%> +<%@page import="net.sf.json.JSONObject" %> +<%@page import="java.io.File" %> +<%@page import="java.util.ArrayList" %> +<%@page import="org.apache.commons.lang.StringUtils"%> +<%@page import="com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy.DatasyncConstant"%> +<%@page import="com.forgon.disinfectsystem.datasynchronization.dao.dysrmyy.WebServiceClientHelper"%> + +<% +ArrayList message = new ArrayList(); +String sid = request.getParameter("sid"); +if(StringUtils.isNotBlank(sid)){ + //String xmlInput = "123546" + sid + ""; + String xmlResult = CssdUtils.sendPostRequest(DatasyncConstant.HIPWebServiceAddress, + WebServiceClientHelper.transferSpecialWordParam( + WebServiceClientHelper.buildCallWebServiceInputXml(DatasyncConstant.MethodName_GetUserInfo, sid) + ), Constants.CHARSET_UTF8); + String userName = ""; + try{ + JSONObject json = (JSONObject)CssdUtils.xml2JsonCommon(xmlResult); + String typeCode = json.optJSONObject("message_cont") + .optJSONObject("acknowledgement").optString("@typeCode"); + if("AA".equals(typeCode)){ + String text = json.optJSONObject("message_cont") + .optJSONObject("acknowledgement") + .optJSONObject("acknowledgementDetail") + .optString("text"); + JSONObject textJson = JSONObject.fromObject(text); + userName = textJson.optString("user_name"); + if(userName == null){ + message.add("xml的格式有误"); + } + else if(userName.equals("")){ + message.add("userName不能为空"); + } + } + else{ + message.add("xml的格式有误"); + } + } + catch(Exception e) { + message.add("xml的格式有误"); + } + + if(StringUtils.isNotBlank(userName)){ + UserManager userManager=(UserManager)SpringBeanManger.getBean("userManager"); + User user=userManager.getFirst("name", userName); + if(user==null){ + message.add("用户:"+userName+"不存在"); + }else{ + pageContext.setAttribute("barcode", user.getBarcode()); + } + } +}else{ + message.add("sid不能为空"); +} +pageContext.setAttribute("message", message); + +String companyName = CssdUtils.getSystemSetConfigByName("companyName"); +String companyNameStr = ""; +if(companyName == null || companyName.equals("forgon")){ + companyNameStr = "©2016 广州孚峻信息技术有限公司 版权所有"; +}else if(companyName.equals("dingxiang")){ + companyNameStr = "©2016 广州丁香软件有限公司 版权所有"; +} +session.setAttribute("companyName", companyNameStr); +String project = CssdUtils.getConfigProperty("project"); +session.setAttribute("profile", project); + +String imgPath = "disinfectsystem/config/" + project + "/img/logo_" + project +".png"; +//System.out.println(application.getRealPath("/") + imgPath); +File file = new File(application.getRealPath("/") + imgPath); +if(file.exists()){ + request.setAttribute("logoPath",imgPath); +}else{ + if(companyName == null || companyName.equals("forgon")){ + request.setAttribute("logoPath","themes/portalPage/img/logo_Forgon.png"); + }else if(companyName.equals("dingxiang")){ + request.setAttribute("logoPath","themes/portalPage/img/logo_dingxiangsoft.png"); + } +} + +%> + + + + + + + + +消毒供应质量追溯管理系统 +<%-- --%> + + + + + + +
+
+
+ 账号或密码错误!请重新输入! + 验证码错误,请重新输入! + 该用户没有回收清点的权限,请重新输入! + 注册码不正确或试用期已过!请与管理人员联系! + 身份验证接口访问异常,请与系统管理员联系! + + +
+
+ + + + + + + + + + Index: ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back =================================================================== diff -u -r25011 -r27131 --- ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 25011) +++ ssts-web/src/main/resources/spring/security/applicationContext-acegi-security-standard.xml.back (.../applicationContext-acegi-security-standard.xml.back) (revision 27131) @@ -38,6 +38,7 @@ +