Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r36717 -r36787 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36717) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36787) @@ -1682,7 +1682,8 @@ + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor left join Sterilisation s on s.sterilisation = tdAncestor.sterilingMethod " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() - + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + + " and ((t.proxyDisinfection_id is null and t.orgUnitCoding='"+currentOrgUnitCode+"' ) or " + + "(t.proxyDisinfection_id is not null and t.proxyDisinfection_id in (select ip.id from invoicePlan ip where ip.handleDepartCoding='"+currentOrgUnitCode+"'))) " + departmentCodeSql + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; buildTousseSimpleVOs(vos, sql4, enableUrgentFunction); @@ -1726,7 +1727,8 @@ + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor left join Sterilisation s on s.sterilisation = tdAncestor.sterilingMethod " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.ancestorID=tdAncestor.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() - + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + + " and ((t.proxyDisinfection_id is null and t.orgUnitCoding='"+currentOrgUnitCode+"' ) or " + + "(t.proxyDisinfection_id is not null and t.proxyDisinfection_id in (select ip.id from invoicePlan ip where ip.handleDepartCoding='"+currentOrgUnitCode+"'))) " + departmentCodeSql + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; buildTousseSimpleVOs(vos, sql4, enableUrgentFunction); @@ -10214,7 +10216,11 @@ for (TousseSimpleVO ti : tis) { String tousseType = ti.getTousseType(); - if(!tousseType.equals("器械包") + if(DatabaseUtil.isPoIdValid(ti.getProxyDisinfectionId())){ + if(!tiIdOfProxyDisinfection.contains(ti.getId())){ + continue;//代理单需要代理科室处理 + } + }else if(!tousseType.equals("器械包") && !tousseType.equals("消毒物品") && !tousseType.equals("敷料包") && !tousseType.equals("聚合包")){//以前的逻辑 @@ -10228,11 +10234,7 @@ if(DatabaseUtil.isPoIdValid(ti.getComboTousseInstanceId())){ continue; } - if(DatabaseUtil.isPoIdValid(ti.getProxyDisinfectionId())){ - if(!tiIdOfProxyDisinfection.contains(ti.getId())){ - continue;//代理单需要代理科室处理 - } - }else if(!currentOrgUnitCode.equals(ti.getOrgUnitCoding()) + if(!currentOrgUnitCode.equals(ti.getOrgUnitCoding()) && !ancestorIds.contains(ti.getAncestorTDId())){ continue;//处理科室不是当前处理科室 }