Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r24830 -r24974 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 24830) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 24974) @@ -964,8 +964,6 @@ } else if (barcodeDevice instanceof IDCardInstance) { idCardInstance = (IDCardInstance) barcodeDevice; isIDCardInstance = true; - Long idCardDefinitionId = idCardInstance.getIdCardDefinitionID(); - IDCardDefinition idCardDefinition = idCardDefinitionManager.get(idCardDefinitionId); // 是否已经废弃 try { if (!idCardInstance.isCanUse(objectDao, true)) { @@ -975,6 +973,25 @@ errorMessage = String.format("标识牌%s不可使用,原因(%s) !", barcode,e.getMessage()); } + Long idCardDefinitionId = idCardInstance.getIdCardDefinitionID(); + IDCardDefinition idCardDefinition = idCardDefinitionManager.get(idCardDefinitionId); + //判断标识牌对应的器械包定义id是否存在,如果不存在则提示 + if(!DatabaseUtil.isPoIdValid(idCardDefinition.getTousseDefinitionID())){ + errorMessage = "未找到该标识牌所属的器械包定义"; + } + TousseDefinition tousseDefinition = + idCardDefinition.getTousseDefinition(objectDao); + //判断标识牌对应的器械包定义数据是否存在,如果不存在则提示 + if(tousseDefinition == null){ + errorMessage = "未找到该标识牌所属的器械包定义"; + }else if(StringUtils.equals(tousseDefinition.getIsDisable(), Constants.STR_YES)){ + //判断该包定义是否已停用 + errorMessage = "器械包"+ tousseDefinition.getName() +"已停用"; + }else if(StringUtils.equals(tousseDefinition.getIsDisableIDCard(), Constants.STR_YES)){ + //判断该包定义是否已禁用标识牌 + errorMessage = "器械包"+ tousseDefinition.getName() +"已禁用标识牌";; + } + tousseInstance = IDCardInstanceUtils .getLastOperatedTousseInstance(objectDao, idCardInstance);