Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r33371 -r33380 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33371) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33380) @@ -8346,7 +8346,7 @@ errorMessage = "申请单上的"+ td.getName() +"的材料清单与所扫描的物品不同,请另外填单进行回收!"; }else{ if(!isFixedBarcode){ - String recyclingErrorMsg = getRecyclingErrorMsg(null,tousseInstance, invoicePlanId); + String recyclingErrorMsg = getRecyclingErrorMsg(null,tousseInstance, invoicePlanId, recyclingRecordId); if(StringUtils.isNotBlank(recyclingErrorMsg)){ errorMessage = recyclingErrorMsg; break out; @@ -8450,7 +8450,7 @@ //tousseInstance.setLocationForDisplay("新器械包标识牌"); } } else { - String recyclingErrorMsg = getRecyclingErrorMsg(idCardInstance, tousseInstance, invoicePlanId); + String recyclingErrorMsg = getRecyclingErrorMsg(idCardInstance, tousseInstance, invoicePlanId, recyclingRecordId); if(StringUtils.isNotBlank(recyclingErrorMsg)){ errorMessage = recyclingErrorMsg; break out; @@ -8623,11 +8623,17 @@ * @param invoicePlanId 申请单id * @return */ - private String getRecyclingErrorMsg(IDCardInstance idCardInstance,TousseInstance ti, Long invoicePlanId){ + private String getRecyclingErrorMsg(IDCardInstance idCardInstance,TousseInstance ti, Long invoicePlanId, String recyclingRecordId){ boolean recyclingOnlyInTheCorrespondingApplicationFormWhenScanningUniqueBarcode = CssdUtils.getSystemSetConfigByNameBool("recyclingOnlyInTheCorrespondingApplicationFormWhenScanningUniqueBarcode", false); if(!recyclingOnlyInTheCorrespondingApplicationFormWhenScanningUniqueBarcode){ return null; } + if(DatabaseUtil.isPoIdValid(recyclingRecordId) && !DatabaseUtil.isPoIdValid(invoicePlanId)){ + RecyclingRecord rr = (RecyclingRecord)objectDao.getById(RecyclingRecord.class.getSimpleName(), recyclingRecordId); + if(rr != null && rr.getRecyclingApplication() != null){ + invoicePlanId = rr.getRecyclingApplication().getId(); + } + } String sql = String.format("select depart,serialNumber from %s where (endStatus is null or endStatus<>'"+ InvoicePlan.STATUS_END +"') and tousseBarcodes like '%%%s%%' %s " , InvoicePlan.class.getSimpleName() ,ti.getBarcode()