Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r13740 -r13800 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 13740) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 13800) @@ -879,6 +879,7 @@ * true:只查询器械包,false:只查询一次性物品 * @param includeCoustomTousse * true:不过滤自定义器械包,false:过滤自定义器械包 + * @param searchTousseBelonged 是否只搜索登录用户当前科室能处理的器械包 * @param pageIndex * 页码 * @param countOfLI @@ -932,7 +933,10 @@ + TousseDefinition.PACKAGE_TYPE_CUSTOM + "'"); } sql += " and po.forDisplay = 1 ";//字体自己生成的包定义不显示 - + if(searchTousseBelonged){ + sql += " and po.ancestorID in (select tousseDefinitionId from " + CssdHandleTousses.class.getSimpleName() + + " where orgUnitCode='"+ AcegiHelper.getLoginUser().getCurrentOrgUnitCode()+"')"; + } //是否显示禁用物品 if(!showDisableGoods){ sql += " and po.isDisable != '" + TousseDefinition.STR_YES + "' "; @@ -956,11 +960,12 @@ if (tousseDefinitions != null) { String handlerDepartCode = AcegiHelper.getLoginUser().getOrgUnitCodingFromSupplyRoomConfig(); for (TousseDefinition tousseDefinition : tousseDefinitions) { - if (searchTousseBelonged){ - if(!getTousseTaskGroupByOrgUnitCode(tousseDefinition , handlerDepartCode)){ - continue; - } - } + //不可以在这里这样判断,因为有分页,有可能因为分页导致查询结果中没有目标处理科室的内容,但是实际上是有对应的内容的,只是当前页没有获取到 +// if (searchTousseBelonged){ +// if(!getTousseTaskGroupByOrgUnitCode(tousseDefinition , handlerDepartCode)){ +// continue; +// } +// } Map temp = new HashMap(); temp.put("id", tousseDefinition.getId()); temp.put("name", tousseDefinition.getName()); @@ -1006,11 +1011,11 @@ */ private boolean getTousseTaskGroupByOrgUnitCode(TousseDefinition td, String orgUnitCoding){ boolean result = false; - String sql = "select count(0) from CssdHandleTousses ct where ct.tousseDefinitionId = " + td.getId() + " and orgUnitCode = '" + orgUnitCoding + "'"; + String sql = "select count(0) cnt from CssdHandleTousses ct where ct.tousseDefinitionId = " + td.getAncestorID() + " and orgUnitCode = '" + orgUnitCoding + "'"; ResultSet rs = null; try{ rs = objectDao.executeSql(sql); - if(rs.next()){ + if(rs.next() && rs.getInt("cnt") > 0){ result = true; } }catch(Exception e){