Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java
===================================================================
diff -u -r31676 -r31990
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 31676)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 31990)
@@ -62,6 +62,7 @@
+ "2017-07-17"
+ "妇科病区"
+ "妇科护士站"
+ + "123456"
+ ""
+ ""
+ ""
@@ -126,6 +127,8 @@
String ascriptionDepartmentXpath = msgXpath + "/ascriptionDepartment";
// 住院次数
String visitIdXpath = msgXpath + "/visitId";
+ // 手术单号
+ String operationScheduleIdXpath = msgXpath + "/operationScheduleId";
String hospitalNumber = WebServiceClientHelper.processDataByXpath(document, hospitalNumberXpath);
String patientName = WebServiceClientHelper.processDataByXpath(document, patientNameXpath);
@@ -139,6 +142,7 @@
String bedNumber = WebServiceClientHelper.processDataByXpath(document, bedNumberXpath);
String ascriptionDepartment = WebServiceClientHelper.processDataByXpath(document, ascriptionDepartmentXpath);
String visitId = WebServiceClientHelper.processDataByXpath(document, visitIdXpath);
+ String operationScheduleId = WebServiceClientHelper.processDataByXpath(document, operationScheduleIdXpath);
PatientInfoVO patientInfoVO = new PatientInfoVO();
patientInfoVO.setHospitalNumber(hospitalNumber);
@@ -152,6 +156,7 @@
patientInfoVO.setPatientArea(patientArea);
patientInfoVO.setBedNumber(bedNumber);
patientInfoVO.setAscriptionDepartment(ascriptionDepartment);
+ patientInfoVO.setOperationScheduleId(operationScheduleId);
if(DatabaseUtil.isPoIdValid(visitId)){
patientInfoVO.setVisitId(Long.parseLong(visitId));
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/szszyy/config.js
===================================================================
diff -u -r31713 -r31990
--- ssts-web/src/main/webapp/disinfectsystem/config/szszyy/config.js (.../config.js) (revision 31713)
+++ ssts-web/src/main/webapp/disinfectsystem/config/szszyy/config.js (.../config.js) (revision 31990)
@@ -91,5 +91,7 @@
//启用器械包状态进度条
enableTousseStatusProgressBar:true,
//是否使用旧版发货
- useOldInvoiceVersion:true
+ useOldInvoiceVersion:true,
+ //启用使用记录单推送至第三方系统功能
+ enableUseRecordTransportToThirdPartySystem:true
}
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/timer.xml
===================================================================
diff -u -r28241 -r31990
--- ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/timer.xml (.../timer.xml) (revision 28241)
+++ ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/timer.xml (.../timer.xml) (revision 31990)
@@ -61,13 +61,34 @@
0 0 0 * * ?
+
+
+
+
+
+
+
+ timingPushUseRecord
+
+
+
+
+
+
+
+
+ 0 0/30 * * * ?
+
+
+
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java
===================================================================
diff -u -r31676 -r31990
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 31676)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 31990)
@@ -24,8 +24,56 @@
public final static String FunctionName_ZY = "MES0221";
/**
+ * 推送使用记录接口的方法名称(入参)
+ */
+ public final static String FunctionName_SSTS = "MES0190";
+
+ /**
* 接口调用成功的编码
*/
public final static String SuccessCode = "0";
+ /**
+ * 接口调用失败的编码
+ */
+ public final static String FailCode = "-1";
+
+ /**
+ * 系统编码
+ */
+ public final static String SYSCODE = "SSTS";
+
+ /**
+ * 申请状态编码
+ */
+ public final static String STATUS_CODE_APPLY = "APPLY";
+ /**
+ * 回收状态编码
+ */
+ public final static String STATUS_CODE_RECYCLE = "RECYCLE";
+ /**
+ * 清洗状态编码
+ */
+ public final static String STATUS_CODE_WASH = "WASH";
+ /**
+ * 装配审核状态编码
+ */
+ public final static String STATUS_CODE_ASSEMBLE = "ASSEMBLE";
+ /**
+ * 灭菌状态编码
+ */
+ public final static String STATUS_CODE_STERILIZATION = "STERILIZATION";
+ /**
+ * 发货状态编码
+ */
+ public final static String STATUS_CODE_DELIVERY = "DELIVERY";
+ /**
+ * 签收状态编码
+ */
+ public final static String STATUS_CODE_SIGN = "SIGN";
+ /**
+ * 使用状态编码
+ */
+ public final static String STATUS_CODE_USE = "USE";
+
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml
===================================================================
diff -u -r31676 -r31990
--- ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml (.../HIS.xml) (revision 31676)
+++ ssts-web/src/main/webapp/disinfectsystem/config/szszyy/spring/HIS.xml (.../HIS.xml) (revision 31990)
@@ -54,5 +54,6 @@
-
+
+
\ No newline at end of file
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/szszyy/UseRecordPushDaoImpl.java (revision 31990)
@@ -0,0 +1,455 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.szszyy;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+
+import com.forgon.Constants;
+import com.forgon.directory.model.OrgUnit;
+import com.forgon.directory.model.OrgUserRelation;
+import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager;
+import com.forgon.disinfectsystem.datasynchronization.dao.UseRecordPushDao;
+import com.forgon.disinfectsystem.entity.basedatamanager.signRecord.SignRecord;
+import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig;
+import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance;
+import com.forgon.disinfectsystem.entity.becleanitem.ClassifyBasket;
+import com.forgon.disinfectsystem.entity.invoicemanager.Invoice;
+import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan;
+import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord;
+import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord;
+import com.forgon.disinfectsystem.entity.useRecord.UseRecord;
+import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord;
+import com.forgon.security.model.User;
+import com.forgon.tools.db.DatabaseUtil;
+import com.forgon.tools.hibernate.ObjectDao;
+import com.forgon.tools.util.ForgonDateUtils;
+import com.forgon.tools.util.SqlUtils;
+
+public class UseRecordPushDaoImpl implements UseRecordPushDao {
+
+ private ObjectDao objectDao;
+
+ private SupplyRoomConfigManager supplyRoomConfigManager;
+
+ public void setSupplyRoomConfigManager(
+ SupplyRoomConfigManager supplyRoomConfigManager) {
+ this.supplyRoomConfigManager = supplyRoomConfigManager;
+ }
+
+ Logger logger = Logger.getLogger(UseRecordPushDaoImpl.class);
+
+ public void setObjectDao(ObjectDao objectDao) {
+ this.objectDao = objectDao;
+ }
+
+ @Override
+ public boolean pushUseRecord(UseRecord useRecord) {
+ if(useRecord == null){
+ return false;
+ }
+
+ if(StringUtils.isBlank(useRecord.getOperationScheduleId())){
+ logger.info("使用记录手术申请单号为空,不需要推送!");
+ return true;
+ }
+
+ if(useRecord.getVisitId() == null){
+ logger.info("使用记录患者就诊号(住院次数)为空,不需要推送!");
+ return true;
+ }
+
+ List tousseInstanceList = useRecord.getTousseInstanceList(objectDao);
+ if(CollectionUtils.isEmpty(tousseInstanceList)){
+ logger.info("使用记录没有登记使用的物品,不需要推送!");
+ return true;
+ }
+
+ try {
+ String endpoint = DatasyncConstant.WebserviceAddress;
+ String targetNamespace = "http://www.dhcc.com.cn";
+ String soapActionURI = "http://www.dhcc.com.cn/DHC.Published.PUB0016.BS.PUB0016.HIPMessageServer";
+ String method = "HIPMessageServer";
+ String paramName1 = "input1";
+ String paramName2 = "input2";
+ String encodingStyle = "utf-8";
+
+ // 构建需要推送的消息内容
+ List messages = buildPushMessageByUseRecord(useRecord);
+
+ if(CollectionUtils.isNotEmpty(messages)){
+ for (String message : messages) {
+ String inputXml = message;
+ logger.info("使用记录推送接口地址:" + DatasyncConstant.WebserviceAddress);
+ logger.info("使用记录推送接口请求信息:" + inputXml);
+ /*String xmlResult = ""
+ //处理结果代码(0成功-1失败)
+ +"0"
+ //处理结果说明
+ +"成功"
+ +"";*/
+ String xmlResult = WebServiceClientHelper.axisInvokeWebservice(endpoint, targetNamespace, soapActionURI, method, paramName1, paramName2, DatasyncConstant.FunctionName_SSTS, inputXml, encodingStyle);
+ logger.info("使用记录推送接口返回信息:" + xmlResult);
+ String processResultCode = getProcessResultCode(xmlResult);
+ if(!StringUtils.equals(DatasyncConstant.SuccessCode, processResultCode)){
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("使用记录推送失败" + e);
+ }
+ return false;
+ }
+
+ /**
+ * 构建推送消息
+ * @param useRecord
+ * @return
+ *
+
+
+
+ 00190131
+ 23104299
+ 23104345||1
+
+ 100312382912
+
+ LIS
+
+
+
+
+
+
+
+
+
+
+
+
+ */
+ private List buildPushMessageByUseRecord(UseRecord useRecord) {
+ List tousseInstanceList = useRecord.getTousseInstanceList(objectDao);
+ if(CollectionUtils.isEmpty(tousseInstanceList)){
+ return null;
+ }
+ List messageList = new ArrayList();
+
+ StringBuffer result = new StringBuffer();
+ result.append("");
+ result.append("");
+ result.append("" + DatasyncConstant.SYSCODE + "");
+ result.append("");
+ result.append("");
+ result.append("");
+
+ for (TousseInstance tousseInstance : tousseInstanceList) {
+ // 追溯环节的7个节点
+ List tousseTraceMessage = buildTousseTraceInfoMessage(tousseInstance, useRecord.getHospitalNum(), useRecord.getVisitId().toString(), useRecord.getOperationScheduleId());
+ if(CollectionUtils.isNotEmpty(tousseTraceMessage)){
+ for (String message : tousseTraceMessage) {
+ result.append(message);
+ }
+ }
+ }
+ result.append("");
+ result.append("");
+
+ messageList.add(result.toString());
+ return messageList;
+ }
+
+ /**
+ *
+ * @param tousseInstance
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ private List buildTousseTraceInfoMessage(TousseInstance tousseInstance, String hospitalNum, String patientVisitNum, String operationScheduleId) {
+
+ List tousseTraceInfos = new ArrayList();
+ // 申请记录信息
+ Long invoicePlanId = tousseInstance.getInvoicePlanID();
+ if(DatabaseUtil.isPoIdValid(invoicePlanId)){
+ InvoicePlan invoicePlan = (InvoicePlan) objectDao.getById(InvoicePlan.class.getSimpleName(), invoicePlanId);
+ if(invoicePlan != null){
+ String updateUserCode = searchUserCode(invoicePlan.getApplicant(), invoicePlan.getDepartCoding());
+ String updateUserName = invoicePlan.getApplicant();
+ String updateDateTime = ForgonDateUtils.safelyFormatDate(invoicePlan.getApplicationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_APPLY, updateUserCode, updateUserName, updateDateTime, hospitalNum, patientVisitNum, operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ }
+
+ // 回收记录信息
+ if(DatabaseUtil.isPoIdValid(invoicePlanId)){
+ List recyclingRecordList = objectDao.findBySql(RecyclingRecord.class.getSimpleName(),
+ " where recyclingApplication.id=" + invoicePlanId,
+ " id desc ");
+ if(CollectionUtils.isNotEmpty(recyclingRecordList)){
+ for (RecyclingRecord recyclingRecord : recyclingRecordList) {
+ String recycleOperatorName = recyclingRecord.getRecyclingUser();
+ String recycleOperatorCode = "";
+ SupplyRoomConfig firstSupplyRoomConfig = supplyRoomConfigManager.getFirstSupplyRoomConfig();
+ if(firstSupplyRoomConfig != null){
+ recycleOperatorCode = searchUserCode(recycleOperatorName, firstSupplyRoomConfig.getOrgUnitCoding());
+ }
+ if(StringUtils.isBlank(recycleOperatorCode)){
+ List secondSupplyRoomConfigList = supplyRoomConfigManager
+ .getSupplyRoomList(SupplyRoomConfig.SUPPLYROOM_TYPE_SECOND_SUPPLYROOM);
+ if(CollectionUtils.isNotEmpty(secondSupplyRoomConfigList)){
+ for (SupplyRoomConfig supplyRoomConfig : secondSupplyRoomConfigList) {
+ recycleOperatorCode = searchUserCode(recycleOperatorName, supplyRoomConfig.getOrgUnitCoding());
+ if(StringUtils.isNotBlank(recycleOperatorCode)){
+ break;
+ }
+ }
+ }
+ }
+ String recycleDateTimeStr = ForgonDateUtils.safelyFormatDate(recyclingRecord.getRecyclingTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+
+ String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_RECYCLE,
+ recycleOperatorCode, recycleOperatorName, recycleDateTimeStr, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ }
+ }
+
+ // 清洗记录信息
+ String classifyBasketIds = tousseInstance.getClassifyBasketIds();
+ if(StringUtils.isNotBlank(classifyBasketIds)){
+ String[] classifyBasketIdArr = classifyBasketIds.split(";");
+ List classifyBasketIdList = Arrays.asList(classifyBasketIdArr);
+ String classifyBasketHql = String.format("select po from %s po where %s", ClassifyBasket.class.getSimpleName(),
+ SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", classifyBasketIdList));
+ List classifyBasketList = objectDao.findByHql(classifyBasketHql);
+ if(CollectionUtils.isNotEmpty(classifyBasketList)){
+ List washAndDisinfectRecordList = new ArrayList();
+ for (ClassifyBasket classifyBasket : classifyBasketList) {
+ washAndDisinfectRecordList.addAll(classifyBasket.getWashAndDisinfectRecords());
+ }
+ for (WashAndDisinfectRecord washAndDisinfectRecord : washAndDisinfectRecordList) {
+ String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_WASH,
+ washAndDisinfectRecord.getOperatorCode(), washAndDisinfectRecord.getOperator(),
+ washAndDisinfectRecord.getStartDateStr(), hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ }
+ }
+
+ // 装配记录
+ String operationTimeStr = ForgonDateUtils.safelyFormatDate(tousseInstance.getOperationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ String message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_ASSEMBLE,
+ StringUtils.defaultString(tousseInstance.getOperatorCode(), "无"),
+ StringUtils.defaultString(tousseInstance.getOperator(), "无"),
+ operationTimeStr, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+
+ // 灭菌记录
+ SterilizationRecord sterilizationRecord = tousseInstance.getSterilizationRecord(objectDao);
+ if(sterilizationRecord != null){
+ String orgUnitCode = sterilizationRecord.getOrgUnitCoding();
+ String sterilizationOperatorName = sterilizationRecord.getSterilizationUser();
+ String sterilizationOperatorCode = searchUserCode(sterilizationOperatorName, orgUnitCode);
+ String sterilizationBeginTimeStr = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getStartDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_STERILIZATION,
+ StringUtils.defaultString(sterilizationOperatorCode),
+ StringUtils.defaultString(sterilizationOperatorName),
+ sterilizationBeginTimeStr, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+
+ // 发货记录
+ Invoice ip = tousseInstance.getInvoice(objectDao);
+ if (ip != null) {
+ String senderName = ip.getSender();
+ String senderCode = "";
+ SupplyRoomConfig firstSupplyRoomConfig = supplyRoomConfigManager.getFirstSupplyRoomConfig();
+ if(firstSupplyRoomConfig != null){
+ senderCode = searchUserCode(senderName, firstSupplyRoomConfig.getOrgUnitCoding());
+ }
+ if(StringUtils.isBlank(senderCode)){
+ List secondSupplyRoomConfigList = supplyRoomConfigManager
+ .getSupplyRoomList(SupplyRoomConfig.SUPPLYROOM_TYPE_SECOND_SUPPLYROOM);
+ if(CollectionUtils.isNotEmpty(secondSupplyRoomConfigList)){
+ for (SupplyRoomConfig supplyRoomConfig : secondSupplyRoomConfigList) {
+ senderCode = searchUserCode(senderName, supplyRoomConfig.getOrgUnitCoding());
+ if(StringUtils.isNotBlank(senderCode)){
+ break;
+ }
+ }
+ }
+ }
+ String delivertDateTime = ForgonDateUtils.safelyFormatDate(ip.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_DELIVERY,
+ StringUtils.defaultString(senderCode),
+ StringUtils.defaultString(senderName),
+ delivertDateTime, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ if(DatabaseUtil.isPoIdValid(tousseInstance.getInvoice2_id())){
+ Invoice ip2 = (Invoice) objectDao.getById(Invoice.class.getSimpleName(), tousseInstance.getInvoice2_id());
+ if (ip2 != null) {
+ String senderName = ip2.getSender();
+ String senderCode = searchUserCode(senderName, ip2.getDepartCoding());
+ String delivertDateTime = ForgonDateUtils.safelyFormatDate(ip2.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_DELIVERY,
+ StringUtils.defaultString(senderCode),
+ StringUtils.defaultString(senderName),
+ delivertDateTime, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ }
+
+ // 签收记录
+ Long signRecordId = tousseInstance.getSignRecordId();
+ if(DatabaseUtil.isPoIdValid(signRecordId)){
+ SignRecord signRecord = (SignRecord) objectDao.getById(SignRecord.class.getSimpleName(), signRecordId);
+ if(signRecord != null){
+ String signDate = ForgonDateUtils.safelyFormatDate(signRecord.getSignDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_SIGN,
+ StringUtils.defaultString(signRecord.getSignUserCode()),
+ StringUtils.defaultString(signRecord.getSignUserName()),
+ signDate, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ }
+
+ // 使用记录
+ UseRecord ur = tousseInstance.getUseRecord(objectDao);
+ if (ur != null) {
+ String useDate = ForgonDateUtils.safelyFormatDate(ur.getEnteringDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "");
+ String departCode = ur.getDepartCoding();
+ String operatorName = ur.getOperator() == null ? "" : ur.getOperator();
+ String operatorCode = searchUserCode(operatorName, departCode);
+ message = buildTraceInfoMessage(DatasyncConstant.STATUS_CODE_USE,
+ StringUtils.defaultString(operatorCode, "无"),
+ StringUtils.defaultString(operatorName, "无"),
+ useDate, hospitalNum, patientVisitNum,
+ operationScheduleId, tousseInstance.getId());
+ tousseTraceInfos.add(message);
+ }
+ return tousseTraceInfos;
+ }
+
+ /**
+ * 构建请求信息
+ * @param updateUserCode
+ * @param updateUserName
+ * @param updateDateTime
+ * @return
+
+ 00190131
+ 23104299
+
+
+
+
+ LIS
+
+
+
+
+
+
+
+
+
+
+ */
+ private String buildTraceInfoMessage(String statusCode, String updateUserCode, String updateUserName, String updateDateTime, String hospitalNum, String patientVisitNum, String operationScheduleId, Long tousseInstanceId) {
+ updateUserCode = StringUtils.defaultIfEmpty(updateUserCode, updateUserName);
+ StringBuffer result = new StringBuffer();
+ result.append("");
+ result.append("" + hospitalNum + "");
+ result.append("" + patientVisitNum + "");
+ result.append("");
+ result.append("");
+ result.append("");
+ result.append("");
+ result.append("" + DatasyncConstant.SYSCODE + "");
+ result.append("");
+ result.append("" + operationScheduleId + "||" + tousseInstanceId + "");
+ result.append("");
+ result.append("");
+ result.append("");
+ result.append("" + statusCode + "");
+ result.append("" + updateUserCode + "");
+ result.append("" + updateUserName + "");
+ result.append("" + updateDateTime + "");
+ result.append("");
+ return result.toString();
+ }
+
+ /**
+ * 获取返回码
+ * @param result
+ * @return
+ */
+ private String getProcessResultCode(String result) {
+ if(StringUtils.isBlank(result)){
+ logger.info("接口返回信息为空");
+ return DatasyncConstant.FailCode;
+ }
+ int startIndex = result.indexOf("");
+ if(startIndex == -1){
+ logger.info("接口返回信息没有标签!");
+ throw new RuntimeException("接口返回信息没有标签!");
+ }
+ int endIndex = result.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ logger.info("接口返回信息没有标签");
+ throw new RuntimeException("接口返回信息没有标签");
+ }
+ return result.substring(startIndex + "".length(), endIndex);
+ }
+
+ /**
+ * 根据用户名和科室编码查找用户编码
+ * @param recycleOperatorName
+ * @param departCode
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ private String searchUserCode(String userFullName, String departCode) {
+ String userName = "";
+ List userList = objectDao.findByProperty(User.class.getSimpleName(), "fullName", userFullName);
+ if(CollectionUtils.isNotEmpty(userList)){
+ if(userList.size() == 1){
+ return userList.get(0).getName();
+ }
+ for (User user : userList) {
+ Set orgUserRelationSet = user.getOrgUserRelations();
+ for (OrgUserRelation orgUserRelation : orgUserRelationSet) {
+ OrgUnit orgUnit = orgUserRelation.getOrgUnit();
+ if(StringUtils.equals(orgUnit.getOrgUnitCoding(), departCode)){
+ userName = user.getName();
+ break;
+ }
+ }
+ }
+ }
+
+ return userName;
+ }
+
+}