Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r16370 -r16476 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 16370) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 16476) @@ -17,6 +17,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.cxf.service.invoker.spring.SpringBeanFactory; import org.apache.log4j.Logger; @@ -897,6 +898,23 @@ } @Override + public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell, Integer roomType, boolean useSequence) { + if (BooleanUtils.isFalse(useSequence)){ + return this.searchOrgUnitByRoomTypeSpellOrWbCode(simpleSpell, roomType); + } + simpleSpell = simpleSpell.toUpperCase(); + String hql = "select po from OrgUnit po, SupplyRoomConfig src where po.orgUnitCoding = src.orgUnitCoding and src.supplyRoomType = " + roomType; + Pattern pat = Pattern.compile("[\\u4E00-\\u9FA5]+"); // 匹配中文字符的正则表达式 + Matcher m = pat.matcher(simpleSpell); + String searchMode = AcegiHelper.getLoginUser().getSearchMode(); + if (simpleSpell.trim().length() > 0) { + hql += m.find() ? " and po.name like '%" + simpleSpell + "%'" : SqlUtils.getSearchSQL(searchMode, simpleSpell); + } + hql += "order by src.sequence"; + return objectDao.findByHql(hql,-1,-1); + } + + @Override public void save(OrgUnit orgUnit) { if ((orgUnit.getId() == null) || (orgUnit.getId() == 0)) { orgUnit.setId(null); Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r16366 -r16476 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 16366) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 16476) @@ -55,7 +55,16 @@ * @return */ public List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell,Integer roomType); - + + /** + * 根据输入的字符查询对应的科室 + * @param simpleSpell 检索内容 + * @param roomType 科室类别 + * @param useSequence 是否需要排序

(这个排序是根据SupplyRoomConfig的sequence,并不是OrgUnit的sequence)

+ * @return + */ + List searchOrgUnitByRoomTypeSpellOrWbCode(String simpleSpell,Integer roomType, boolean useSequence); + public String getJsonChildreanCheckNode(long parentId); public OrgUnit getById(String id); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r16365 -r16476 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 16365) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 16476) @@ -857,17 +857,15 @@ * 获取申请科室Json */ public void getApplicationDepartJson() { - int start = StrutsParamUtils.getPraramValue("start", -1); - int limit = StrutsParamUtils.getPraramValue("limit", -1); String spell = StrutsParamUtils.getPraramValue("spell", ""); String withoutBaseOrg = StrutsParamUtils.getPraramValue( "withoutBaseOrg", "true"); String related = StrutsParamUtils.getPraramValue("related", ""); List orgUnitList = orgUnitManager - .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_3); + .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_3, true); List> list = new LinkedList<>(); if (orgUnitList != null) { - for (int j = 0; j < orgUnitList.size(); j++) { + for (int j = 0,size = orgUnitList.size(); j < size; j++) { Map reMap = new HashMap<>(); String orgCoding = orgUnitList.get(j).getOrgUnitCoding(); String orgName = null; @@ -888,11 +886,9 @@ buff.append(",");*/ } } - PageEntity pageEntity = new PageEntity(); - pageEntity.setStart(start); - pageEntity.setLimit(limit); + PageEntity pageEntity = PageUtil.getPagePara(); pageEntity.setNeedToEscape(true); - PageUtil.outPutResult(pageEntity, list); + PageUtil.outPutResult(pageEntity, list); /*String jsonStr = ""; if(buff.length() > 0){ jsonStr = buff.substring(0,buff.length()-1); @@ -918,7 +914,7 @@ "withoutBaseOrg", "true"); String related = StrutsParamUtils.getPraramValue("related", ""); List orgUnitList = orgUnitManager - .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_4); + .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_4, true); List> list = new LinkedList<>(); if (orgUnitList != null) {