Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java =================================================================== diff -u -r12331 -r16169 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 12331) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 16169) @@ -30,10 +30,15 @@ public ReviewedBasket getReviewedBasketButNew(String basketBarcode); public ReviewedBasket getBasketByBarcode(String barcode); + /** + * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) + * + * @param barcode + * @param sterilizeRecordId 调用的地方传的参数都是null,取消参数 + * @return + */ + public ReviewedBasket getReviewedBasketForSterilizeRecord(String barcode); - public ReviewedBasket getReviewedBasketForSterilizeRecord(String barcode, - Long sterilizeRecordId); - /** * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) * ###为防止与其它功能冲突此方法只单独提供被SterilizationRecordManagerImpl.saveOrUpdateSterilizationRecord方法调用 Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java =================================================================== diff -u -r15003 -r16169 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java (.../ProxyDisinfectionAction.java) (revision 15003) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/proxydisinfection/action/ProxyDisinfectionAction.java (.../ProxyDisinfectionAction.java) (revision 16169) @@ -412,7 +412,7 @@ && barcodeDevice instanceof Container) { Container container = (Container) barcodeDevice; ReviewedBasket basket = reviewedBasketManager - .getReviewedBasketForSterilizeRecord(barcode, null); + .getReviewedBasketForSterilizeRecord(barcode); Long basketId = null; if(basket != null){ basketId = basket.getId(); Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/security/service/WebServiceManagerImpl.java =================================================================== diff -u -r15798 -r16169 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/security/service/WebServiceManagerImpl.java (.../WebServiceManagerImpl.java) (revision 15798) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/security/service/WebServiceManagerImpl.java (.../WebServiceManagerImpl.java) (revision 16169) @@ -1306,7 +1306,7 @@ String toussesBarcodes) { try { ReviewedBasket basket = reviewedBasketManager - .getReviewedBasketForSterilizeRecord(basketBarcode, null); + .getReviewedBasketForSterilizeRecord(basketBarcode); if (basket == null) { basket = new ReviewedBasket(); Container container = (Container) barcodeManager @@ -1832,9 +1832,7 @@ } return msg; } - /** - * 通过条码获取代理灭菌的器械包信息或篮筐信息 - */ + @Override public String getProxyTousseOrBasket(String barcode) { BarcodeDevice barcodeDevice = barcodeManager @@ -1874,7 +1872,7 @@ basketMap.put("type", container.getType()); basketMap.put("containerName", container.getContainerName()); ReviewedBasket basket = reviewedBasketManager - .getReviewedBasketForSterilizeRecord(barcode, null); + .getReviewedBasketForSterilizeRecord(barcode); if (basket != null) { basketMap.put("reviewedBasketId", "" + basket.getId()); } else { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java =================================================================== diff -u -r16003 -r16169 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java (.../SterilizationRecord.java) (revision 16003) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java (.../SterilizationRecord.java) (revision 16169) @@ -501,6 +501,10 @@ } return false; } + @Transient + public boolean isSterilizationFailure(){ + return STERILIZATION_STATUS_FAILURE.equals(status); + } public Date getBiologicalMonitoringEndDate() { return biologicalMonitoringEndDate; Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java =================================================================== diff -u -r14129 -r16169 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 14129) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 16169) @@ -189,35 +189,30 @@ return null; } - - - /** - * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) - * - * @param barcode - * @param sterilizeRecordId - * @return - */ @Override - public ReviewedBasket getReviewedBasketForSterilizeRecord(String barcode, - Long sterilizeRecordId) { + public ReviewedBasket getReviewedBasketForSterilizeRecord(String barcode) { String sql = "select po,s from " + ReviewedBasket.class.getSimpleName() + " po left join po.sterilizationRecords s where (s.id is null or s.status='" + SterilizationRecord.STERILIZATION_STATUS_FAILURE + "')"; - if (sterilizeRecordId != null) { - sql = "select po,s from " + ReviewedBasket.class.getSimpleName() - + " po left join po.sterilizationRecords s where s.id = " - + sterilizeRecordId + ""; - } + sql += " and po.container.barcode = '" + barcode + "'"; sql += " order by po.id desc"; List list = objectDao.findByHql(sql); if (list != null && list.size() > 0) { Object[] objArray = (Object[]) list.get(0); Object basketObj = objArray[0]; - Object recordObj = objArray[1]; +// Object recordObj = objArray[1]; if (basketObj instanceof ReviewedBasket) { - return (ReviewedBasket) basketObj; + boolean allFailed = true; //必须所有的灭菌记录都是灭菌失败,才能使用。如果包含有灭菌完成、灭菌中、或者是灭菌中断的记录,则此篮筐实例不能使用 + for(SterilizationRecord sr : ((ReviewedBasket) basketObj).getSterilizationRecords()){ + if(sr!= null && !sr.isSterilizationFailure()){ + allFailed = false; + break; + } + } + if(allFailed){ + return (ReviewedBasket) basketObj; + } } } return null;