Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r36637 -r36644 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36637) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 36644) @@ -1781,7 +1781,9 @@ + " , barcodedevice b , TousseDefinition td , TousseDefinition tdAncestor " + "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 "+ reviewedBasketIdsSql +" and t.reviewBasket_id is not null " - + " 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+"'))" + + ") " + queryDiscardSql; logger.debug("sql:" + sql4); buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(vos, sql4, enableUrgentFunction); @@ -1891,10 +1893,12 @@ + " t.reviewTime,t.isUrgentTousse,tdAncestor.isTraceable, tdAncestor.id tdAncestorId " + sqlSelect_UrgentLevel + "from tousseinstance t"+ sqlJoin_UrgentLevel + departJoinSql + + " left join " + InvoicePlan.class.getSimpleName() + + " pd on pd.id=t.proxyDisinfection_id " + " , 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 " + reviewedBasketSql - + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + + " and (pd.id is null and t.orgunitcoding='"+currentOrgUnitCode+"' or pd.id is not null and pd.handleDepartCoding='"+currentOrgUnitCode+"') " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + sterilingModeAncestorSql + sterilizerNameAndSterileFrequencySql; @@ -1928,10 +1932,12 @@ + "t.reviewTime,t.isUrgentTousse,tdAncestor.isTraceable, tdAncestor.id tdAncestorId " + sqlSelect_UrgentLevel + "from tousseinstance t"+ sqlJoin_UrgentLevel + departJoinSql + + " left join " + InvoicePlan.class.getSimpleName() + + " pd on pd.id=t.proxyDisinfection_id " + " , 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 " + reviewedBasketSql - + " and t.orgUnitCoding='"+currentOrgUnitCode+"' " + + " and (pd.id is null and t.orgunitcoding='"+currentOrgUnitCode+"' or pd.id is not null and pd.handleDepartCoding='"+currentOrgUnitCode+"') " + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'" + sterilingModeAncestorSql + sterilizerNameAndSterileFrequencySql; @@ -1946,8 +1952,9 @@ * @param sql */ private void buildTousseSimpleVOsForGetAllTousseInstanceVOsInReviewedBasket(List vos, String sql, boolean enableUrgentFunction){ - ResultSet rs = objectDao.executeSql(sql); + ResultSet rs = null; try { + rs = objectDao.executeSql(sql); while(rs.next()){ TousseSimpleVO vo = new TousseSimpleVO(); ItemDefinitionVO definition = new ItemDefinitionVO();