Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r33496 -r33627 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33496) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 33627) @@ -8618,7 +8618,7 @@ } } /** - * SZSDSRMYY-75 包条码是否存在于其它未终止的申请单 + * SZSDSRMYY-75 包条码是否存在于其它未终止的申请单 如果回收时删除掉了 就不管 * @param ti 包实例 * @param invoicePlanId 申请单id * @return @@ -8634,7 +8634,7 @@ 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 " + String sql = String.format("select depart,serialNumber,id from %s where (endStatus is null or endStatus<>'"+ InvoicePlan.STATUS_END +"') and tousseBarcodes like '%%%s%%' %s " , InvoicePlan.class.getSimpleName() ,ti.getBarcode() ,DatabaseUtil.isPoIdValid(invoicePlanId)?" and id<>" + invoicePlanId:""); @@ -8644,6 +8644,24 @@ while (result.next()){ String depart = result.getString("depart"); String serialNumber = result.getString("serialNumber"); + if(!TousseDefinition.PACKAGE_TYPE_SPLIT.equals(ti.getTousseDefinition().getTousseType())){ + Long id = result.getLong("id"); + InvoicePlan ip = invoicePlanManager.get(id); + RecyclingRecord rr = ip.getRecyclingRecord(objectDao); + if(rr != null){ + boolean find = false; + for (RecyclingItem ri : rr.getItems()) { + if(MathTools.equals(ri.getTousseDefinitionId(), ti.getTousseDefinition().getId()) + || MathTools.equals(ri.getTousseDefinitionId(), ti.getTousseDefinition().getAncestorID())){ + find = true; + break; + } + } + if(!find){//没找到说明 没有回收 是回收时删除掉了 + break; + } + } + } if(idCardInstance == null){ msg = ti.getBarcode() + "【"+ ti.getTousseName() +"】存在于【"+ depart +"】的"+ serialNumber +"申请单中,请打开对应的申请单进行回收!"; }else{ Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r33387 -r33627 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 33387) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 33627) @@ -459,7 +459,21 @@ String handleDepartCoding = AcegiHelper.getLoginUser() .getOrgUnitCodingFromSupplyRoomConfig(); if(InvoicePlan.RECYCLINGSTATUS_RECYCLED.equals(application.getRecyclingStatus())){ - message = "该器械包已回收!"; + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(TousseDefinition.PACKAGE_TYPE_SPLIT.equals(td.getTousseType())){ + message = "该器械包已回收!"; + }else{ + RecyclingRecord rr = application.getRecyclingRecord(objectDao);//有回收记录才算回收 + if(rr != null){ + for (RecyclingItem ri : rr.getItems()) { + if(MathTools.equals(td.getId(), ri.getTousseDefinitionId()) || MathTools.equals(td.getAncestorID(), ri.getTousseDefinitionId())){ + message = "该器械包已回收!"; + break; + } + } + } + } + }else if (StringUtils.isNotBlank(handleDepartCoding) && !handleDepartCoding.equals(application .getHandleDepartCoding())) {