Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r37874 -r37875 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37874) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 37875) @@ -1957,11 +1957,23 @@ //是否外来器械申请单 InvoicePlan application = record.getRecyclingApplication(); if (record.getId() == null && application != null - && application.getRecyclingRecord(objectDao) != null - &&(!application.isForeignTousseAppliaction() - || application.isForeignTousseAppliaction() && (ipRemark == null || ipRemark.length() ==0))) { - //外来器械待回收状态,是可以再回收的,即使已经回收过了。因为有二次回收 - throw new SystemException("当前申请单已回收,不能重复回收!"); + && application.getRecyclingRecord(objectDao) != null) { + if(!application.isForeignTousseAppliaction() ){ + throw new SystemException("当前申请单已回收,不能重复回收!"); + }else{ + //外来器械待回收状态,是可以再回收的,即使已经回收过了。因为有二次回收 + if(enableSecondRecyclingAfterInvoiceFunction){ + if(application.recyclingStatusRecycled()){ + throw new SystemException("当前申请单已回收,不能重复回收!"); + }else if(application.recyclingStatusReceived() && (ipRemark == null || ipRemark.length() ==0)){ + throw new SystemException("当前申请单已回收,不能重复回收!"); + } + }else{ + if(application.recyclingStatusReceived() || application.recyclingStatusRecycled()){ + throw new SystemException("当前申请单已回收,不能重复回收!"); + } + } + } } RecyclingSumInfoVo recyclingSumInfoVo = new RecyclingSumInfoVo(); setHaveErrorOrDamageInfo(record, recyclingSumInfoVo);