Index: forgon-core/src/main/java/com/forgon/directory/action/OrgUnitGroupAction.java =================================================================== diff -u -r29964 -r29969 --- forgon-core/src/main/java/com/forgon/directory/action/OrgUnitGroupAction.java (.../OrgUnitGroupAction.java) (revision 29964) +++ forgon-core/src/main/java/com/forgon/directory/action/OrgUnitGroupAction.java (.../OrgUnitGroupAction.java) (revision 29969) @@ -35,8 +35,15 @@ * 获取科室分组设置列表 */ public void findOrgUnitGroupList(){ - JSONArray array = orgUnitGroupManager.getOrgUnitGroupJSONArray(); - StrutsResponseUtils.output(true, array); + try { + String searchKeyWord = StrutsParamUtils.getPraramValue("searchKeyWord", ""); + String searchColumns = StrutsParamUtils.getPraramValue("searchColumns", ""); + JSONArray array = orgUnitGroupManager.getOrgUnitGroupJSONArray(searchKeyWord, searchColumns); + StrutsResponseUtils.output(true, array); + } catch (Exception e) { + e.printStackTrace(); + StrutsResponseUtils.output(false, e.getMessage()); + } } /** Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManager.java =================================================================== diff -u -r29964 -r29969 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManager.java (.../OrgUnitGroupManager.java) (revision 29964) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManager.java (.../OrgUnitGroupManager.java) (revision 29969) @@ -10,9 +10,11 @@ /** * 加载科室分组设置列表 + * @param searchColumns + * @param searchKeyWord * @return */ - public JSONArray getOrgUnitGroupJSONArray(); + public JSONArray getOrgUnitGroupJSONArray(String searchKeyWord, String searchColumns); /** * 加载科室分组设置 Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManagerImpl.java =================================================================== diff -u -r29964 -r29969 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManagerImpl.java (.../OrgUnitGroupManagerImpl.java) (revision 29964) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitGroupManagerImpl.java (.../OrgUnitGroupManagerImpl.java) (revision 29969) @@ -25,9 +25,27 @@ public class OrgUnitGroupManagerImpl extends BasePoManagerImpl implements OrgUnitGroupManager{ @Override - public JSONArray getOrgUnitGroupJSONArray() { - String hql = String.format("select g, o from %s g, %s o, %s r where g.id = r.orgGroupId and o.id = r.orgUnitId order by g.id desc ", - OrgUnitGroup.class.getSimpleName(), OrgUnit.class.getSimpleName(), Org_OrgGroup.class.getSimpleName()); + public JSONArray getOrgUnitGroupJSONArray(String searchKeyWord, String searchColumns) { + + List searchSqlList = new ArrayList(); + if(StringUtils.isNotBlank(searchKeyWord) && StringUtils.isNotBlank(searchColumns)){ + Collection searchColumnList = StringTools.toCollectionIgnoreNullAndBlank(searchColumns, ";"); + for (String column : searchColumnList) { + if(StringUtils.equals(column, "name")){ + String nameSql = " g.name like '%" + searchKeyWord + "%' "; + searchSqlList.add(nameSql); + }else if(StringUtils.equals(column, "departName")){ + String orgUnitSql = " g.id in ( select orgGroupId from " + Org_OrgGroup.class.getSimpleName() + " where orgUnitId in (select id from " + OrgUnit.class.getSimpleName() + " where name like '%" + searchKeyWord + "%')) "; + searchSqlList.add(orgUnitSql); + } + } + } + String searchSql = ""; + if(CollectionUtils.isNotEmpty(searchSqlList)){ + searchSql = " and (" + StringTools.join(searchSqlList, " or ") + ") "; + } + String hql = String.format("select g, o from %s g, %s o, %s r where g.id = r.orgGroupId and o.id = r.orgUnitId %s order by g.id desc ", + OrgUnitGroup.class.getSimpleName(), OrgUnit.class.getSimpleName(), Org_OrgGroup.class.getSimpleName(), searchSql); List list = objectDao.findByHql(hql); if(CollectionUtils.isEmpty(list)){ return new JSONArray();