Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r29378 -r29382 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29378) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 29382) @@ -2162,8 +2162,10 @@ sql += " and (" + tempTousseTypeSql + ") "; } } - sql += " and po.forDisplay != 0 "; //forDisplay=0的过滤掉 - + sql += " and po.forDisplay = 1 "; //forDisplay=0的过滤掉 + //减少检索范围 增加查询效率 + sql += " and po.ancestorID in (select tousseDefinitionId from " + CssdHandleTousses.class.getSimpleName() + + " where orgUnitCode is not null)"; if (!showDisableGoods) { //过滤已停用的器械包(注意:如果isDisable属性为空,当成非停用的器械包,不过滤) sql += String.format(" and(po.isDisable is null or po.isDisable<>'%s') ", TousseDefinition.STR_YES); @@ -2176,12 +2178,58 @@ //排序语句(GXZYYFY-49 已更换为下面的排序,上面的排序已注释不用) String orderBySql = buildTousseDefinitionSearchOrderBy(keyword, "po"); List> mapList = new ArrayList>(); - List tousseDefinitions = objectDao.findBySql(TousseDefinition.class.getSimpleName(), sql + orderBySql); - - if (tousseDefinitions != null) { - for (TousseDefinition tousseDefinition : tousseDefinitions) { - mapList.add(buildTousseDefinitionInfo(tousseDefinition)); + ResultSet rs = null; + try {//减少查询的字段 增加查询效率 + sql = "select id,ancestorID,tousseType,name,externalCode,spelling,wbCode,price,borrowPrice," + + " isCleanedEntirely,isApplyEntireTousse,expressInvoice,isDisableIDCard,unit,isRecycling" + + " from TousseDefinition po " + sql + orderBySql; + rs = objectDao.executeSql(sql); + while(rs.next()){ + Long id = rs.getLong("id"); + String tousseType = rs.getString("tousseType"); + if(TousseDefinition.PACKAGE_TYPE_DISINFECTION .equals(tousseType)){//由于消毒物品需要查询另外查询材料和另外计算价格,依然使用改动前的做法 + TousseDefinition tousseDefinition = (TousseDefinition)objectDao.getById(TousseDefinition.class.getSimpleName(), id); + mapList.add(buildTousseDefinitionInfo(tousseDefinition)); + continue; + }//非消毒物品 + Map temp = new HashMap(); + temp.put("id", id); + temp.put("ancestorID", rs.getLong("ancestorID")); + temp.put("name", rs.getString("name")); + temp.put("showName", rs.getString("name")); + temp.put( + "displayName", + StringUtils.isNotBlank(rs.getString("externalCode")) ? rs.getString("externalCode") + + " " + + rs.getString("name") : rs.getString("name")); + temp.put("spelling", rs.getString("spelling")); + temp.put("wbCode", rs.getString("wbCode")); + temp.put("price", supplyRoomConfigManager.getTousseFluctuationPrice(rs.getDouble("price"))); + Double borrowPrice = rs.getDouble("borrowPrice"); + temp.put("borrowPrice", borrowPrice == null ? 0 : borrowPrice); + temp.put("type", tousseType); + temp.put("tousseType", tousseType); + temp.put("isCleanedEntirely", rs.getString("isCleanedEntirely")); + temp.put("isApplyEntireTousse", rs.getString("isApplyEntireTousse")); + temp.put("expressInvoice", rs.getString("expressInvoice")); //是否快速发货 + String isThereIdentificationCard = "否"; + String isDisableIDCard = rs.getString("isDisableIDCard"); + if (!StringUtils.equals(isDisableIDCard, Constants.STR_YES)) { + isThereIdentificationCard = "是"; + } + temp.put("isThereIdentificationCard", isThereIdentificationCard); + String unit = rs.getString("unit"); + if (unit == null) { + unit = ""; + } + temp.put("unit", unit); + temp.put("isRecycling", rs.getString("isRecycling")); + mapList.add(temp); } + } catch (SQLException e) { + e.printStackTrace(); + } finally{ + DatabaseUtil.closeResultSetAndStatement(rs); } return mapList; } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r29265 -r29382 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 29265) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 29382) @@ -2115,10 +2115,17 @@ retObj.put("needToBw", true); retObj.put("appCode", appCode); } - List tousseDefinitiionList = tousseDefinitionManager.getCssdHandleTousseDefinitionList(cssd,spell,start,limit,predicates,retObj,true); - + List tousseDefinitiionList = tousseDefinitionManager.getCssdHandleTousseDefinitionList(cssd,spell,start,0,predicates,retObj,true); + int i = 0;//取消hql数据库分页的方式,目的是加快检索速度 if(CollectionUtils.isNotEmpty(tousseDefinitiionList)){ for(TousseDefinition tousseDefinition : tousseDefinitiionList){ + i++; + if(i - 1 < start){ + continue; + } + if(i > (start+limit)){ + break; + } Map map = tousseDefinitionHelper.filterResultByTousseType2(tousseType,tousseDefinition); if(map != null){ mapList.add(map);