Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r16095 -r16170 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 16095) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 16170) @@ -76,6 +76,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.string.StringTools; /** * @author WangYi 2012-2-24 @@ -814,6 +815,26 @@ } + /** + * 将器械包状态设置为已审核。只有灭菌中的包才修改。并记录日志 + * @param tousseInstances + */ + private void setTousseInstanceToReviewid(Collection tousseInstances){ + if(CollectionUtils.isNotEmpty(tousseInstances)){ + List modifiedBarcodes = new ArrayList(); + for(TousseInstance tousseInstance : tousseInstances){ + if(tousseInstance != null && tousseInstance.isSteriling()){ + modifiedBarcodes.add(tousseInstance.getBarcode()); + tousseInstance.setStatus(TousseInstance.STATUS_REVIEWED); + tousseInstanceManager.saveOrUpdate(tousseInstance); + } + } + if(CollectionUtils.isNotEmpty(modifiedBarcodes)){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_STERILIZATION, + Log.TYPE_UPDATE, "将包实例从灭菌中修改为已审核,包实例的条码有[" + StringTools.join(modifiedBarcodes, ",") + "]"); + } + } + } @Override public String delete(String sterilizationRecordIdStr) { JSONObject message = new JSONObject(); @@ -823,13 +844,15 @@ for (String id : str) { // 修改包实例的状态,以审核;删除灭菌记录 SterilizationRecord sterilizationRecord = getSterilizationRecordById(Long.valueOf(id)); + if(sterilizationRecord == null){ + continue; + } + if(sterilizationRecord.isSterilizationFinish() || sterilizationRecord.isSterilizationFailure()){ + throw new RuntimeException("已灭菌的记录不能删除"); + } List tousseInstanceList = sterilizationRecord .getTousseInstanceList(); - for (TousseInstance tousseInstance : tousseInstanceList) { - tousseInstance - .setStatus(TousseInstance.STATUS_REVIEWED); - tousseInstanceManager.saveOrUpdate(tousseInstance); - } + setTousseInstanceToReviewid(tousseInstanceList); List reviewedBasketList = sterilizationRecord .getReviewedBaskets(); for (ReviewedBasket reviewedBasket : reviewedBasketList) { @@ -838,13 +861,7 @@ Container.CONTAINER_STATUS_STERILIZELOADING); //设置篮筐中的器械包状态为已审核 Set set = reviewedBasket.getTousseInstances(objectDao); - if(CollectionUtils.isNotEmpty(set)){ - for (TousseInstance tousseInstance : set) { - tousseInstance - .setStatus(TousseInstance.STATUS_REVIEWED); - tousseInstanceManager.saveOrUpdate(tousseInstance); - } - } + setTousseInstanceToReviewid(set); } deleteSterilizationRecord(sterilizationRecord); }