Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r30046 -r30053 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30046) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 30053) @@ -1608,25 +1608,13 @@ for(String tousseInstanceBarcode : tousseInstanceBarcodes){ tousseInstanceBarcodesInclude.add("'" + tousseInstanceBarcode + "'"); } - String sql = "select b.barcode from TousseInstance t join barcodeDevice b on t.id=b.id where 1=1 " + String sql = "select count(b.barcode) from TousseInstance t join barcodeDevice b on t.id=b.id where 1=1 " + " and b.barcode in (" + StringUtils.join(tousseInstanceBarcodesInclude.toArray() , ",") + ") and t.tousseFixedBarcode=0 " + " and t.id in (select tousseInstance_id from sterilization_tousseInstance where sterilizationRecord_id in (select id from SterilizationRecord where 1=1 " + ((sterilizationRecord.getId() == null || sterilizationRecord.getId() == 0 ) ? "" : " and id <> " + sterilizationRecord.getId() + " ") + " and status in ('" + SterilizationRecord.STERILIZATION_STATUS_BEGIN + "','" + SterilizationRecord.STERILIZATION_STATUS_END + "','" + SterilizationRecord.STERILIZATION_STATUS_DRAFT + "') ) )"; //根据器械包条码判断器械包是否有器械包状态为灭菌中或已灭菌或灭菌暂存 - List tousseBarcodeList = new ArrayList(); - ResultSet rs = objectDao.executeSql(sql); - try { - while(rs.next()){ - tousseBarcodeList.add(rs.getString("barcode")); - } - } catch (SQLException e) { - e.printStackTrace(); - }finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - - if(CollectionUtils.isNotEmpty(tousseBarcodeList)){ + if(objectDao.countBySql(sql) > 0){ result.put(JSONUtil.JSON_KEY_SUCCESS, false); result.put(JSONUtil.JSON_KEY_MESSAGE, "部分器械包正在灭菌或已灭菌"); return result; @@ -1794,6 +1782,11 @@ for (TousseDefinition tousseDefinition : tdList) { tdMap.put(tousseDefinition.getId(), tousseDefinition); } + if(CollectionUtils.isNotEmpty(list)){ + for (TousseInstance ti : list) { + ti.setTousseDefinition(tdMap.get(ti.getTousseDefinition().getId())); + } + } } } @@ -1818,10 +1811,6 @@ List delfixedBarcodeTousseIns = new ArrayList(); // 扣减的器械包状态还原为[已审核] if(subTdAmountMap != null && !subTdAmountMap.isEmpty() && DatabaseUtil.isPoIdValid(sterilizationRecord.getId())){ - List tdIdList = new ArrayList(); - for (TousseDefinition td : subTdAmountMap.keySet()) { - tdIdList.add(td.getId()); - } for (TousseInstance tousseInstance : whithoutBasketTousseIns) { TousseDefinition td = tousseInstance.getTousseDefinition(); if(subTdAmountMap.keySet().contains(td) && subTdAmountMap.get(td).intValue() > 0){ @@ -2026,23 +2015,36 @@ sterilizationRecord.getCycleCounter()); sterilizationRecord.setSterilizerRecordAmount(count); - //设置生物监测状态 (生物监测持续时间不为空 或者 有开始、没结束,统一置为“未做”) - if(sterilizer.getBiologicalMonitoringTime()!=null - || (sterilizationRecord.getBiologicalMonitoringStartDate()!=null && sterilizationRecord.getBiologicalMonitoringEndDate()==null)){ - sterilizationRecord.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_NOTDO); - } + //灭菌记录关联的器械包 + List allTousseInstanceOfRecord = new ArrayList(); + allTousseInstanceOfRecord.addAll(reviewedBasketTousseInstance); + allTousseInstanceOfRecord.addAll(whithoutBasketTousseIns); //如果生物监测结果为合格或不合格时,设置生物监测的状态为已确认 if(StringUtils.equals(sterilizationRecord.getBiologyResult(),SterilizationRecord.MONITOR_RESULT_QUALIFIED) || StringUtils.equals(sterilizationRecord.getBiologyResult(),SterilizationRecord.MONITOR_RESULT_UNQUALIFIED)){ sterilizationRecord.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_CHECK); + }else{ + //判断灭菌物品是否包含植入物 + String includeImplant = Constants.STR_NO; + for (TousseInstance tousseInstance : allTousseInstanceOfRecord) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(StringUtils.equals(td.getIncludeImplantStr(), Constants.STR_YES)){ + includeImplant = Constants.STR_YES; + break; + } + } + //设置生物监测状态 (“灭菌的物品否含有植入物”或者“灭菌记录扫描了生物监测包”,统一置为“未做”) + if(StringUtils.equals(includeImplant, Constants.STR_YES) + || StringUtils.isNotBlank(sterilizationRecord.getMonitorPackageBarcode())){ + sterilizationRecord.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_NOTDO); + }else{ + sterilizationRecord.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_NULL); + } } saveOrUpdate(sterilizationRecord); // 计算并更新器械统计信息 - List allTousseInstanceOfRecord = new ArrayList(); - allTousseInstanceOfRecord.addAll(reviewedBasketTousseInstance); - allTousseInstanceOfRecord.addAll(whithoutBasketTousseIns); updateSterilizationRecordStatisticsInfo(sterilizationRecord,allTousseInstanceOfRecord); //更新灭菌记录的加急信息 if(CssdUtils.getSystemSetConfigByNameBool("enableUrgentFunction", false)){ Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java =================================================================== diff -u -r29544 -r30053 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 29544) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 30053) @@ -567,7 +567,7 @@ record.setBiologicalMonitoringEndDate(biologicalMonitoringEndDate); } catch (Exception e) { //如果结束时间为空或者时间格式有误 record.setBiologicalMonitoringEndDate(null); - record.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_NOTDO); + record.setBiologicalMonitoringStatus(SterilizationRecord.BIOLOGICALMONITORING_STATUS_NULL); } record.setPhysicsResult(physicsResult);