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 + * +
+ LIS + +
+ + + 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; + } + +}