Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/xmsfybjy/UseRecordPushDaoImpl.java =================================================================== diff -u -r31983 -r32531 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/xmsfybjy/UseRecordPushDaoImpl.java (.../UseRecordPushDaoImpl.java) (revision 31983) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/xmsfybjy/UseRecordPushDaoImpl.java (.../UseRecordPushDaoImpl.java) (revision 32531) @@ -11,17 +11,13 @@ 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.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; 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.customform.formdefinition.FormDefinition; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; -import com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoring.QualityMonitoringInstance; -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; @@ -188,406 +184,343 @@ */ private String useRecordToXmlString(UseRecord useRecord) { - String instrumentSetBarcode = ""; + // 使用记录的基础信息 + String useRecordStr = buildUseRecordXml(useRecord); + String goodsItemListStr = ""; List tousseInstanceList = useRecord.getTousseInstanceList(objectDao); if(CollectionUtils.isNotEmpty(tousseInstanceList)){ - for (TousseInstance tousseInstance : tousseInstanceList) { - if(StringUtils.isBlank(instrumentSetBarcode)){ - instrumentSetBarcode = tousseInstance.getBarcode(); - }else{ - instrumentSetBarcode += ";" + tousseInstance.getBarcode(); - } - } - goodsItemListStr = buildGoodsItemListXml(tousseInstanceList); + goodsItemListStr = buildGoodsItemListXml(useRecordStr, tousseInstanceList); } StringBuffer result = new StringBuffer(); result.append(""); result.append(""); - result.append(""); + if(StringUtils.isNotBlank(goodsItemListStr)){ + result.append(goodsItemListStr); + } + result.append(""); + return result.toString(); + } + + /** + * 获取使用记录基础信息 + * @param useRecord + * @return + */ + private String buildUseRecordXml(UseRecord useRecord) { + StringBuffer result = new StringBuffer(); // 登记人姓名 result.append("" + useRecord.getOperator() + ""); - // 录入日期yyyymmddhhmmss + // 录入日期2021-11-11 15:10:07 result.append("" + ForgonDateUtils.safelyFormatDate(useRecord.getEnteringDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "") + ""); - // 录入使用记录的科室编码 - result.append("" + useRecord.getDepartCoding() + ""); - // 录入使用记录的科室名称 - result.append("" + useRecord.getDepart() + ""); - // 手术所使用的器械包的条码,多个器械包的条码通过分号;分隔 - result.append("" + instrumentSetBarcode + ""); - // 手术状态: 有如下4个状态:“准备手术”,“手术开始”,“手术中”,“手术结束” - // 值为“手术结束”时把单据改成已申请的状态,并且自动生成一张通用申请单,提醒供应室去回收器械 - result.append("" + StringUtils.defaultString(useRecord.getOperationStatus()) + ""); + // 病人ID + result.append(""); // 住院号 result.append("" + StringUtils.defaultString(useRecord.getHospitalNum()) + ""); - // 诊疗号 - result.append("" + StringUtils.defaultString(useRecord.getTreatmentNum()) + ""); - // 病人姓名 - result.append("" + StringUtils.defaultString(useRecord.getPatientName()) + ""); - // 病人年龄 - result.append("" + StringUtils.defaultString(useRecord.getPatientAge()) + ""); - // 病人性别(男/女) - result.append("" + StringUtils.defaultString(useRecord.getPatientSex()) + ""); // 病人身份证号 result.append("" + StringUtils.defaultString(useRecord.getPatientIDCard()) + ""); + // 病人性别(男/女) + result.append("" + StringUtils.defaultString(useRecord.getPatientSex()) + ""); + // 病人年龄 + result.append("" + StringUtils.defaultString(useRecord.getPatientAge()) + ""); + // 病区 + result.append("" + StringUtils.defaultString(useRecord.getPatientArea()) + ""); + // 住院次数 + result.append("" + (useRecord.getVisitId() == null ? "" : (useRecord.getVisitId()+"")) + ""); + // 病人姓名 + result.append("" + StringUtils.defaultString(useRecord.getPatientName()) + ""); + // 床位 + result.append("" + StringUtils.defaultString(useRecord.getBedNumber()) + ""); // 手术申请单号 result.append("" + StringUtils.defaultString(useRecord.getOperationScheduleId()) + ""); // 手术名称 result.append("" + StringUtils.defaultString(useRecord.getOperation()) + ""); - // 手术时间yyyymmddhhmmss - result.append("" + ForgonDateUtils.safelyFormatDate(useRecord.getOperationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "") + ""); - // 医生姓名 - result.append("" + StringUtils.defaultString(useRecord.getDoctorName()) + ""); - // 洗手护士工号 + // 医生工号和姓名 + String doctorName = StringUtils.defaultString(useRecord.getDoctorName()); + String doctorCode = searchUserCode(doctorName, useRecord.getDepartCoding()); + result.append("" + doctorCode + ""); + result.append("" + doctorName + ""); + // 洗手护士工号和姓名 String washHandNurseName = StringUtils.defaultString(useRecord.getWashHandNurse()); String washHandNurseCode = searchUserCode(washHandNurseName, useRecord.getDepartCoding()); result.append("" + washHandNurseCode + ""); - // 洗手护士姓名 result.append("" + washHandNurseName + ""); - // 巡回护士工号 + // 巡回护士工号和姓名 String circuitNurseName = StringUtils.defaultString(useRecord.getCircuitNurse()); String circuitNurseCode = searchUserCode(circuitNurseName, useRecord.getDepartCoding()); result.append("" + circuitNurseCode + ""); - // 巡回护士姓名 result.append("" + circuitNurseName + ""); - // 手术间 - result.append("" + StringUtils.defaultString(useRecord.getOperationRoom()) + ""); - // 病区 - result.append("" + StringUtils.defaultString(useRecord.getPatientArea()) + ""); - // 病人所属科室名称 - result.append("" + StringUtils.defaultString(useRecord.getAscriptionDepartment()) + ""); - // 病室 - result.append("" + StringUtils.defaultString(useRecord.getRoomNumber()) + ""); - // 床位 - result.append("" + StringUtils.defaultString(useRecord.getBedNumber()) + ""); - // 住院次数 - result.append("" + (useRecord.getVisitId() == null ? "" : (useRecord.getVisitId()+"")) + ""); - // 特殊感染类型 - result.append("" + StringUtils.defaultString(useRecord.getSpecialInfection()) + ""); // 备注 result.append("" + StringUtils.defaultString(useRecord.getRemark()) + ""); - if(StringUtils.isNotBlank(goodsItemListStr)){ - result.append(goodsItemListStr); - } - result.append(""); - result.append(""); return result.toString(); } /** * 生成物品xml + * @param useRecordStr * @param tousseInstanceList * @return */ - private String buildGoodsItemListXml(List tousseInstanceList) { - if(CollectionUtils.isEmpty(tousseInstanceList)){ + private String buildGoodsItemListXml(String useRecordStr, List tousseInstanceList) { + if(CollectionUtils.isEmpty(tousseInstanceList) || StringUtils.isBlank(useRecordStr)){ return null; } StringBuffer result = new StringBuffer(); - result.append(""); + result.append(""); for (TousseInstance tousseInstance : tousseInstanceList) { - String itemTraceInfo = getTousseInstanceTraceInfo(tousseInstance); + String itemTraceInfo = getTousseInstanceTraceInfo(useRecordStr, tousseInstance); result.append(itemTraceInfo); } - result.append(""); + result.append(""); return result.toString(); } /** * 根据器械包条码查询器械包的追溯信息 + * @param useRecordStr * @param barcode * @return ... + * + * .....(使用记录的基础信息) + 器械包条码 + 器械包名称 + 器械包申请单号 + 灭菌员代码 + 灭菌员姓名 + 灭菌开始时间 + 器械包失效日期 + 灭菌炉名称 + 灭菌炉次 + 清洗操作员工号 + 清洗操作员名称 + 清洗开始时间 + 清洗结束时间 + 配包人工号 + 配包人姓名 + 装配时间 + 装配审核人工号 + 装配审核人姓名 + 审核时间 + 灭菌程序编码 + 灭菌程序名称 + 灭菌结束时间 + 生物监测结果 + 发货员工号 + 发货员姓名 + 发货时间 + */ @SuppressWarnings("unchecked") - private String getTousseInstanceTraceInfo(TousseInstance tousseInstance) { + private String getTousseInstanceTraceInfo(String useRecordStr, TousseInstance tousseInstance) { String returnStr = ""; - + + // 器械包条码 + String instrumentSetBarcode = tousseInstance.getBarcode(); + // 器械包名称 + String instrumentSetName = tousseInstance.getTousseName(); + // 器械包申请单号 + String instrumentSetAppliFormNo = ""; + + // 灭菌员代码 + String sterilizationOperatorCode = ""; + // 灭菌员姓名 + String sterilizationOperatorName = ""; + // 灭菌开始时间 + String sterilizationBeginDatetime = ""; + // 器械包失效日期 + String instrumentSetExpirationDatetime = ""; + // 灭菌炉名称 + String sterilizationFurnaceName = ""; + // 灭菌炉次 + String sterilizationCycleNum = ""; + + // 清洗操作员工号 + String washOperatorCode = ""; + // 清洗操作员名称 + String washOperatorName = ""; + // 清洗开始时间 + String washBeginDatetime = ""; + // 清洗结束时间 + String washEndDatetime = ""; + + // 配包人工号 + String deliverPackPperatorCode = ""; + // 配包人姓名 + String deliverPackOperatorName = ""; + // 装配时间 + String assembleDatetime = ""; + + // 装配审核人工号 + String assembleProofOperatorCode = ""; + // 装配审核人姓名 + String assembleProofOperatorName = ""; + // 审核时间 + String proofDatetime = ""; + + // 灭菌程序编码 + String sterilizationProgramCode = ""; + // 灭菌程序名称 + String sterilizationProgramName = ""; + // 灭菌结束时间 + String sterilizationEndDatetime = ""; + // 生物监测结果 + String biologicalMonitorResult = ""; + + // 发货员工号 + String deliveryOperatorCode = ""; + // 发货员姓名 + String deliveryOperatorName = ""; + // 发货时间 + String deliveryDatetime = ""; + + // 申请记录信息 - StringBuilder applyStrSB = new StringBuilder(); - applyStrSB.append(""); Long invoicePlanId = tousseInstance.getInvoicePlanID(); SupplyRoomConfig firstSupplyRoomConfig = supplyRoomConfigManager.getFirstSupplyRoomConfig(); if(DatabaseUtil.isPoIdValid(invoicePlanId)){ InvoicePlan invoicePlan = (InvoicePlan) objectDao.getById(InvoicePlan.class.getSimpleName(), invoicePlanId); if(invoicePlan != null){ - String userCode = searchUserCode(invoicePlan.getApplicant(), invoicePlan.getDepartCoding()); - applyStrSB.append(""); - applyStrSB.append("" + invoicePlan.getSerialNumber() + ""); - applyStrSB.append("" + invoicePlan.getDepartCoding() + ""); - applyStrSB.append("" + invoicePlan.getDepart() + ""); - applyStrSB.append("" + StringUtils.defaultString(userCode) + ""); - applyStrSB.append("" + invoicePlan.getApplicant() + ""); - applyStrSB.append("" + ForgonDateUtils.safelyFormatDate(invoicePlan.getApplicationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "") + ""); - applyStrSB.append(""); - applyStrSB.append("" + invoicePlan.getType() + ""); - applyStrSB.append(""); + instrumentSetAppliFormNo = invoicePlan.getSerialNumber(); } } - applyStrSB.append(""); - - // 回收记录信息 - StringBuilder recycleStrSB = new StringBuilder(); - recycleStrSB.append(""); - 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 checkOperatorName = recyclingRecord.getOperator(); - String checkOperatorCode = checkOperatorName; - String recycleOperatorName = recyclingRecord.getRecyclingUser(); - String recycleOperatorCode = recycleOperatorName; - if(firstSupplyRoomConfig != null){ - recycleOperatorCode = searchUserCode(recycleOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); - checkOperatorCode = searchUserCode(checkOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); - } - String recycleDateTimeStr = ForgonDateUtils.safelyFormatDate(recyclingRecord.getRecyclingTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - - recycleStrSB.append(""); - recycleStrSB.append("" + checkOperatorCode + ""); - recycleStrSB.append("" + StringUtils.defaultString(checkOperatorName) + ""); - recycleStrSB.append("" + recycleOperatorCode + ""); - recycleStrSB.append("" + StringUtils.defaultString(recycleOperatorName) + ""); - recycleStrSB.append("" + recycleDateTimeStr + ""); - recycleStrSB.append(""); - } - } - } - recycleStrSB.append(""); - // 清洗记录信息 - StringBuilder cleanstrSB = new StringBuilder(); - cleanstrSB.append(""); 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(), + String classifyBasketHql = String.format("select po from %s po where %s order by po.id desc", 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) { - cleanstrSB.append(""); - cleanstrSB.append("" + washAndDisinfectRecord.getRinserId() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getDisinfectIdentification() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getDisinfectProgram() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getOperatorCode() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getOperator() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getStartDateStr() + ""); - cleanstrSB.append("" + washAndDisinfectRecord.getEndDateStr() + ""); - cleanstrSB.append(""); + if(CollectionUtils.isNotEmpty(washAndDisinfectRecordList)){ + WashAndDisinfectRecord washAndDisinfectRecord = washAndDisinfectRecordList.get(0); + // 清洗操作员工号 + washOperatorCode = StringUtils.defaultIfEmpty(washAndDisinfectRecord.getOperatorCode(), ""); + // 清洗操作员名称 + washOperatorName = StringUtils.defaultIfEmpty(washAndDisinfectRecord.getOperator(), ""); + // 清洗开始时间 + washBeginDatetime = washAndDisinfectRecord.getStartDateStr(); + // 清洗结束时间 + washEndDatetime = washAndDisinfectRecord.getEndDateStr(); } } } - cleanstrSB.append(""); // 装配记录 - StringBuilder packageStrSB = new StringBuilder(); - String operationTimeStr = ForgonDateUtils.safelyFormatDate(tousseInstance.getOperationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - String reviewTimeStr =ForgonDateUtils.safelyFormatDate(tousseInstance.getReviewTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - packageStrSB.append(""); - packageStrSB.append(""); - packageStrSB.append("" + tousseInstance.getBarcode() + ""); - packageStrSB.append("" + tousseInstance.getTousseName() + ""); - packageStrSB.append("" + StringUtils.defaultString(tousseInstance.getOperatorCode()) + ""); - packageStrSB.append("" + StringUtils.defaultString(tousseInstance.getOperator()) + ""); - packageStrSB.append("" + StringUtils.defaultString(tousseInstance.getReviewerCode()) + ""); - packageStrSB.append("" + StringUtils.defaultString(tousseInstance.getReviewer()) + ""); - packageStrSB.append("" + operationTimeStr + ""); - packageStrSB.append("" + reviewTimeStr + ""); - packageStrSB.append(""); - packageStrSB.append("" + StringUtils.defaultString(tousseInstance.getPackageType()) + ""); - packageStrSB.append(""); - packageStrSB.append(""); + // 配包人工号 + deliverPackPperatorCode = StringUtils.defaultString(tousseInstance.getOperatorCode()); + // 配包人姓名 + deliverPackOperatorName = StringUtils.defaultString(tousseInstance.getOperator()); + // 装配时间 + assembleDatetime = ForgonDateUtils.safelyFormatDate(tousseInstance.getOperationTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); + // 装配审核人工号 + assembleProofOperatorCode = StringUtils.defaultString(tousseInstance.getReviewerCode()); + // 装配审核人姓名 + assembleProofOperatorName = StringUtils.defaultString(tousseInstance.getReviewer()); + // 审核时间 + proofDatetime = ForgonDateUtils.safelyFormatDate(tousseInstance.getReviewTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); // 灭菌记录 StringBuilder sterilizationstrSB = new StringBuilder(); sterilizationstrSB.append(""); SterilizationRecord sterilizationRecord = tousseInstance.getSterilizationRecord(objectDao); if(sterilizationRecord != null){ - String sterilizationOperatorName = sterilizationRecord.getSterilizationUser(); - String sterilizationOperatorCode = sterilizationOperatorName; - if(firstSupplyRoomConfig != null){ - sterilizationOperatorCode = searchUserCode(sterilizationOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); - } Sterilizer sterilizer = sterilizationRecord.getSterilizer(); String sterilizationProcedure = sterilizationRecord.getSterilizationType(); Sterilisation sterilisation = (Sterilisation) objectDao.getByProperty(Sterilisation.class.getSimpleName(), "sterilisation", sterilizationProcedure); - String sterilizationBeginTimeStr = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getStartDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - String sterilizationEndTimeStr = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getEndDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - String bioMonitorBeginTimeStr = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getBiologicalMonitoringStartDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - String bioMonitorEndTimeStr = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getBiologicalMonitoringEndDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - String validUntil = ForgonDateUtils.safelyFormatDate(tousseInstance.getValidUntil(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - sterilizationstrSB.append(""); - sterilizationstrSB.append("" + sterilizationOperatorCode + ""); - sterilizationstrSB.append("" + sterilizationOperatorName + ""); - sterilizationstrSB.append("" + sterilizer.getName() + ""); - sterilizationstrSB.append("" + (sterilisation == null ? "" : sterilisation.getBarcode()) + ""); - sterilizationstrSB.append("" + (sterilisation == null ? "" : sterilisation.getSterilisation()) + ""); - sterilizationstrSB.append("" + sterilizationRecord.getFrequency() + ""); - sterilizationstrSB.append("" + sterilizationBeginTimeStr + ""); - sterilizationstrSB.append("" + sterilizationEndTimeStr + ""); - sterilizationstrSB.append("" + StringUtils.defaultString(sterilizationRecord.getChemistryResult()) + ""); - sterilizationstrSB.append("" + bioMonitorBeginTimeStr + ""); - sterilizationstrSB.append("" + bioMonitorEndTimeStr + ""); - sterilizationstrSB.append("" + StringUtils.defaultString(sterilizationRecord.getBiologyResult()) + ""); - sterilizationstrSB.append("" + validUntil + ""); - sterilizationstrSB.append(""); + + // 灭菌员代码和姓名 + sterilizationOperatorName = sterilizationRecord.getSterilizationUser(); + if(firstSupplyRoomConfig != null){ + sterilizationOperatorCode = searchUserCode(sterilizationOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); + } + // 灭菌开始时间 + sterilizationBeginDatetime = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getStartDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); + // 器械包失效日期 + instrumentSetExpirationDatetime = ForgonDateUtils.safelyFormatDate(tousseInstance.getValidUntil(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); + // 灭菌炉名称 + if(sterilizer != null){ + sterilizationFurnaceName = sterilizer.getName(); + } + // 灭菌炉次 + sterilizationCycleNum = (sterilizationRecord.getFrequency() == null ? "" : sterilizationRecord.getFrequency().toString()); + + // 灭菌程序编码 + sterilizationProgramCode = (sterilisation == null ? "" : sterilisation.getBarcode()); + // 灭菌程序名称 + sterilizationProgramName = (sterilisation == null ? "" : sterilisation.getSterilisation()); + // 灭菌结束时间 + sterilizationEndDatetime = ForgonDateUtils.safelyFormatDate(sterilizationRecord.getEndDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); + // 生物监测结果 + biologicalMonitorResult = StringUtils.defaultString(sterilizationRecord.getBiologyResult()); } - sterilizationstrSB.append(""); // 发货记录 StringBuilder sendstrSB = new StringBuilder(); - Invoice ip = tousseInstance.getInvoice(objectDao); - sendstrSB.append(""); - if (ip != null) { - String senderName = ip.getSender(); - String senderCode = senderName; - if(firstSupplyRoomConfig != null){ - senderCode = searchUserCode(senderName, firstSupplyRoomConfig.getOrgUnitCoding()); - } - String delivertDateTime = ForgonDateUtils.safelyFormatDate(ip.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - sendstrSB.append(""); - sendstrSB.append("" + senderCode + ""); - sendstrSB.append("" + (senderName == null ? "" : senderName) + ""); - sendstrSB.append("" + StringUtils.defaultString(ip.getDepartCoding()) + ""); - sendstrSB.append("" + StringUtils.defaultString(ip.getDepart()) + ""); - sendstrSB.append("" + delivertDateTime + ""); - sendstrSB.append(""); - } 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 = senderName; + deliveryOperatorName = ip2.getSender(); if(firstSupplyRoomConfig != null){ - senderCode = searchUserCode(senderName, firstSupplyRoomConfig.getOrgUnitCoding()); + deliveryOperatorCode = searchUserCode(deliveryOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); } - String delivertDateTime = ForgonDateUtils.safelyFormatDate(ip2.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - sendstrSB.append(""); - sendstrSB.append("" + senderCode + ""); - sendstrSB.append("" + (senderName == null ? "" : senderName) + ""); - sendstrSB.append("" + StringUtils.defaultString(ip2.getDepartCoding()) + ""); - sendstrSB.append("" + StringUtils.defaultString(ip2.getDepart()) + ""); - sendstrSB.append("" + delivertDateTime + ""); - sendstrSB.append(""); + deliveryDatetime = ForgonDateUtils.safelyFormatDate(ip2.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); } - } - sendstrSB.append(""); - - // 签收记录 - StringBuilder signRecordStrSB = new StringBuilder(); - signRecordStrSB.append(""); - Long signRecordId = tousseInstance.getSignRecordId(); - if(DatabaseUtil.isPoIdValid(signRecordId)){ - SignRecord signRecord = (SignRecord) objectDao.getById(SignRecord.class.getSimpleName(), signRecordId); - if(signRecord != null){ - OrgUnit depart = null; - String departCode = signRecord.getDepartCode(); - List departs = objectDao.findByProperty(OrgUnit.class.getSimpleName(), - "orgUnitCoding", departCode); - if(CollectionUtils.isNotEmpty(departs)){ - depart = departs.get(0); + }else{ + Invoice ip = tousseInstance.getInvoice(objectDao); + sendstrSB.append(""); + if (ip != null) { + deliveryOperatorName = ip.getSender(); + if(firstSupplyRoomConfig != null){ + deliveryOperatorCode = searchUserCode(deliveryOperatorName, firstSupplyRoomConfig.getOrgUnitCoding()); } - String signDate = ForgonDateUtils.safelyFormatDate(signRecord.getSignDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - signRecordStrSB.append(""); - signRecordStrSB.append("" + StringUtils.defaultString(signRecord.getSignUserCode()) + ""); - signRecordStrSB.append("" + StringUtils.defaultString(signRecord.getSignUserName()) + ""); - signRecordStrSB.append("" + StringUtils.defaultString(departCode) + ""); - signRecordStrSB.append("" + (depart == null ? "" : depart.getName()) + ""); - signRecordStrSB.append("" + signDate + ""); - signRecordStrSB.append(""); + deliveryDatetime = ForgonDateUtils.safelyFormatDate(ip.getSendTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); } } - signRecordStrSB.append(""); - // 使用记录 - UseRecord ur = tousseInstance.getUseRecord(objectDao); - StringBuilder useStrSB = new StringBuilder(); - useStrSB.append(""); - 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); - String washHandNurseName = ur.getWashHandNurse() == null ? "" : ur.getWashHandNurse(); - String washHandNurseCode = searchUserCode(washHandNurseName, departCode); - String circuitNurseName = ur.getCircuitNurse() == null ? "" : ur.getCircuitNurse(); - String circuitNurseCode = searchUserCode(circuitNurseName, departCode); - useStrSB.append(""); - useStrSB.append("" + StringUtils.defaultString(ur.getHospitalNum()) + ""); - useStrSB.append("" + StringUtils.defaultString(ur.getTreatmentNum()) + ""); - useStrSB.append("" + StringUtils.defaultString(ur.getOperationScheduleId()) + ""); - useStrSB.append("" + useDate + ""); - useStrSB.append("" + operatorCode + ""); - useStrSB.append("" + operatorName + ""); - useStrSB.append("" + washHandNurseCode + ""); - useStrSB.append("" + washHandNurseName + ""); - useStrSB.append("" + circuitNurseCode + ""); - useStrSB.append("" + circuitNurseName + ""); - useStrSB.append("" + departCode + ""); - useStrSB.append("" + ur.getDepart() + ""); - useStrSB.append(""); - } - useStrSB.append(""); - - // 废弃 - StringBuilder discardstrSB = new StringBuilder(); - String wasteDate = ForgonDateUtils.safelyFormatDate(tousseInstance.getWasteDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - discardstrSB.append(""); - discardstrSB.append(""); - discardstrSB.append("" + wasteDate + ""); - discardstrSB.append("" + StringUtils.defaultString(tousseInstance.getWasteReason()) + ""); - discardstrSB.append("" + StringUtils.defaultString(tousseInstance.getOperateUser()) + ""); - discardstrSB.append(""); - discardstrSB.append(""); - - // 质量监测记录 - StringBuilder qualityStrSB = new StringBuilder(); - qualityStrSB.append(""); - String qualityHql = String.format("select po from %s po where po.tousseInstance.id = %s", QualityMonitoringInstance.class.getSimpleName(), - tousseInstance.getId()); - List qualityList = objectDao.findByHql(qualityHql); - if(CollectionUtils.isNotEmpty(qualityList)){ - for (QualityMonitoringInstance qualityMonitoringInstance : qualityList) { - String departCode = qualityMonitoringInstance.getOrgUnitCoding(); - String createUserName = StringUtils.defaultString(qualityMonitoringInstance.getCreateUserName()); - String createUserCode = searchUserCode(createUserName, departCode); - String regDateTime = ForgonDateUtils.safelyFormatDate(qualityMonitoringInstance.getCreateDate(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, ""); - FormDefinition formDefinition = qualityMonitoringInstance.getFormDefinition(); - qualityStrSB.append(""); - qualityStrSB.append("" + createUserCode + ""); - qualityStrSB.append("" + createUserName + ""); - qualityStrSB.append("" + departCode + ""); - qualityStrSB.append("" + qualityMonitoringInstance.getOrgUnit() + ""); - qualityStrSB.append("" + regDateTime + ""); - qualityStrSB.append("" + formDefinition.getId() + ""); - qualityStrSB.append("" + formDefinition.getFormName() + ""); - qualityStrSB.append(""); - } - } - qualityStrSB.append(""); - StringBuilder returnStrSB = new StringBuilder(); - returnStrSB.append(""); - returnStrSB.append(applyStrSB.toString()); - returnStrSB.append(recycleStrSB.toString()); - returnStrSB.append(cleanstrSB.toString()); - returnStrSB.append(packageStrSB.toString()); - returnStrSB.append(sterilizationstrSB.toString()); - returnStrSB.append(sendstrSB.toString()); - returnStrSB.append(signRecordStrSB.toString()); - returnStrSB.append(useStrSB.toString()); - returnStrSB.append(discardstrSB.toString()); - returnStrSB.append(qualityStrSB.toString()); - returnStrSB.append(""); + returnStrSB.append(""); + returnStrSB.append(useRecordStr); + // 申请单子序号,如:器械包条码 + returnStrSB.append("" + tousseInstance.getBarcode() + ""); + returnStrSB.append("" + instrumentSetBarcode + ""); + returnStrSB.append("" + instrumentSetName + ""); + returnStrSB.append("" + instrumentSetAppliFormNo + ""); + returnStrSB.append("" + sterilizationOperatorCode + ""); + returnStrSB.append("" + sterilizationOperatorName + ""); + returnStrSB.append("" + sterilizationBeginDatetime + ""); + returnStrSB.append("" + instrumentSetExpirationDatetime + ""); + returnStrSB.append("" + sterilizationFurnaceName + ""); + returnStrSB.append("" + sterilizationCycleNum + ""); + + returnStrSB.append("" + washOperatorCode + ""); + returnStrSB.append("" + washOperatorName + ""); + returnStrSB.append("" + washBeginDatetime + ""); + returnStrSB.append("" + washEndDatetime + ""); + + returnStrSB.append("" + deliverPackPperatorCode + ""); + returnStrSB.append("" + deliverPackOperatorName + ""); + returnStrSB.append("" + assembleDatetime + ""); + returnStrSB.append("" + assembleProofOperatorCode + ""); + returnStrSB.append("" + assembleProofOperatorName + ""); + returnStrSB.append("" + proofDatetime + ""); + + returnStrSB.append("" + sterilizationProgramCode + ""); + returnStrSB.append("" + sterilizationProgramName + ""); + returnStrSB.append("" + sterilizationEndDatetime + ""); + returnStrSB.append("" + biologicalMonitorResult + ""); + + returnStrSB.append("" + deliveryOperatorCode + ""); + returnStrSB.append("" + deliveryOperatorName + ""); + returnStrSB.append("" + deliveryDatetime + ""); + + returnStrSB.append(""); returnStr = returnStrSB.toString(); return returnStr; }