Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r16114 -r16154 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 16114) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 16154) @@ -1545,13 +1545,17 @@ //如果处理科室编码不为空则进行过滤 if(StringUtils.isNotBlank(cssdOrgUnitCode)){ + int totalCount = 0; + Map result = new HashMap(); List> mapList = new ArrayList>(); + List> mapList2 = new ArrayList>(); + JSONObject retObj = new JSONObject(); //如果不为一次性物品,则先查出器械包. if(!TousseItem.TYPE_DIPOSABLE_GOODS.equals(tousseType)){ OrgUnit cssd = new OrgUnit(); cssd.setOrgUnitCoding(cssdOrgUnitCode); List tousseDefinitiionList = - tousseDefinitionManager.getCssdHandleTousseDefinitionList(cssd,spell); + tousseDefinitionManager.getCssdHandleTousseDefinitionList(cssd,spell,start,limit,retObj); if(CollectionUtils.isNotEmpty(tousseDefinitiionList)){ for(TousseDefinition tousseDefinition : tousseDefinitiionList){ @@ -1563,30 +1567,48 @@ } }else{ //只查出一次性物品 - mapList = tousseDefinitionManager.searchTousseOrDiposableGoodsBySpellAndWbCode( + mapList2 = tousseDefinitionManager.searchTousseOrDiposableGoodsBySpellAndWbCode( spell, false, false, false,false,showReferencePrice,"1","0",false,showExternalCodeOfDisposableGoods,cssdOrgUnitCode); } //如果申请单类型为组合申请单,则需要再查询一次性物品出来和上面的器械包物品合并 if("combo".equals(tousseType)){ - mapList.addAll(tousseDefinitionManager.searchTousseOrDiposableGoodsBySpellAndWbCode( + mapList2 = (tousseDefinitionManager.searchTousseOrDiposableGoodsBySpellAndWbCode( spell, false, false, false,false,showReferencePrice,"1","0",false,showExternalCodeOfDisposableGoods,cssdOrgUnitCode)); } - List> mapDataList = mapList; + List> mapDataList = new ArrayList>(); if(limit > 0){ - int fromIndex = start; - int toIndex = fromIndex + limit; - if(CollectionUtils.isEmpty(mapList)){ - + totalCount = JSONUtil.optInteger(retObj, "totalCount", 0); + totalCount += mapList2.size(); + if(mapList.size() >= limit){ + // 器械包已满足一页数据 + mapDataList.addAll(mapList); }else{ - toIndex = toIndex > mapList.size() - 1 ? mapList.size() : toIndex; - mapDataList = mapList.subList(fromIndex, toIndex); + mapDataList.addAll(mapList); + if(mapList2.size() > 0){ + int endIndex = start + limit; + if(endIndex >= totalCount){ + int mapList2Start = endIndex - totalCount; + int mapList2SubListCoumt = limit - mapList.size(); + if(mapList2Start < mapList2.size()){ + int mapList2EndIndex = mapList2Start + mapList2SubListCoumt; + if(mapList2EndIndex > mapList2.size()){ + mapList2EndIndex = mapList2.size(); + } + mapList2 = mapList2.subList(mapList2Start, mapList2EndIndex); + mapDataList.addAll(mapList2); + } + } + } } + + }else{ + mapDataList.addAll(mapList); + mapDataList.addAll(mapList2); + totalCount = mapDataList.size(); } - - Map result = new HashMap(); - result.put("totalCount", mapList.size()); + result.put("totalCount", totalCount); result.put("data", mapDataList); json = JSONObject.fromObject(result); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r15993 -r16154 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 15993) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 16154) @@ -192,7 +192,7 @@ * @param orgUnit * @return */ - public List getCssdHandleTousseDefinitionList(OrgUnit cssdOrgUnit,String spell); + public List getCssdHandleTousseDefinitionList(OrgUnit cssdOrgUnit,String spell,int start,int limit,JSONObject retObj); /** * 新建或修改科室处理器械包配置 Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r16121 -r16154 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16121) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16154) @@ -2015,13 +2015,25 @@ @SuppressWarnings("unchecked") @Override public List getCssdHandleTousseDefinitionList( - OrgUnit cssdOrgUnit,String spell) { + OrgUnit cssdOrgUnit,String spell,int start,int limit,JSONObject retObj) { + List list = null; + int totalCount = 0; String sql = "from " + TousseDefinition.class.getSimpleName() + " where id in (select tousseDefinitionId from " + CssdHandleTousses.class.getSimpleName() + " where orgUnitCode = '" + cssdOrgUnit.getOrgUnitCoding() + "')"; sql += " and (spelling like '%" + spell + "%' or wbCode like '%" + spell + "%' or externalCode like '" + spell + "%' or name like '%" + spell + "%') and (isDisable is null or isDisable = '"+TousseDefinition.STR_NO+"')"; - return objectDao.findByHql(sql); + if(limit > 0){ + list = objectDao.findByHql(sql,start,limit); + totalCount = objectDao.countBySql(sql); + }else{ + list = objectDao.findByHql(sql); + if(list != null){ + totalCount = list.size(); + } + } + retObj.put("totalCount", totalCount); + return list; } @Override