Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java =================================================================== diff -u -r35287 -r35430 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java (.../InstrumentInstanceManagerImpl.java) (revision 35287) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManagerImpl.java (.../InstrumentInstanceManagerImpl.java) (revision 35430) @@ -1523,47 +1523,82 @@ } @Override - public List loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance) { + public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, + Integer pageSize, Integer start) { if(!DatabaseUtil.isPoIdValid(materialDefinitionId)){ throw new SystemException("材料定义ID无效"); } - List result = new ArrayList(); + List voList = new ArrayList(); //器械实例与领用记录关联关系未知,暂时记未“未领用” - String sql = String.format("select md.name materialDefinitionName, ii.id, ii.udi, ii.instrumentBarcode, ii.receiveRecordId " - + "from %s ii " + String fromSql = String.format(" from %s ii " + "join %s md on ii.materialDefinitionId = md.id " + "where md.id = %s ", InstrumentInstance.class.getSimpleName(), MaterialDefinition.class.getSimpleName(), materialDefinitionId); if(noBindIDCardInstance){ - sql += " and ii.idCardInstanceId is null "; + fromSql += " and ii.idCardInstanceId is null "; } - sql += " order by ii.receiveRecordId desc "; - ResultSet rs = null; - try { - rs = objectDao.executeSql(sql); - while(rs.next()){ - InstrumentInstanceVo vo = new InstrumentInstanceVo(); - vo.setId(rs.getLong("id")); - vo.setMaterialDefinitionName(rs.getString("materialDefinitionName")); - vo.setUdi(rs.getString("udi")); - vo.setInstrumentBarcode(rs.getString("instrumentBarcode")); - vo.setReceiveRecordId(rs.getLong("receiveRecordId")); - if(DatabaseUtil.isPoIdValid(vo.getReceiveRecordId())){ - vo.setIsReceive("已领用"); - }else{ - vo.setIsReceive("未领用"); + + if(pageSize == null || pageSize <= 0){ + pageSize = 20; + } + if(start == null || start <= 0){ + start = 0; + } + + String countSql = String.format("select count(*) %s ", fromSql); + int rowCount = objectDao.countBySql(countSql); + int pageCount = rowCount % pageSize == 0 ? rowCount / pageSize : rowCount / pageSize + 1; + JSONObject result = new JSONObject(); + + + if(rowCount > 0){ + String sql = String.format("select md.name materialDefinitionName, ii.id, ii.udi, ii.instrumentBarcode, ii.receiveRecordId %s ", fromSql); + + ResultSet rs = null; + try { + int limit = pageSize; + if(dbConnection.isSqlServer()){ + String orderBy = " order by receiveRecordId desc, id asc "; + sql = getSqlServerQuerySqlByPage(sql, start, limit, "id", orderBy); + }else if(dbConnection.isOracle()){ + sql += " order by ii.receiveRecordId desc, ii.id asc "; + sql = SqlUtils.getOracleQuerySqlByPage(sql, start, limit); } - result.add(vo); + rs = objectDao.executeSql(sql); + while(rs.next()){ + InstrumentInstanceVo vo = new InstrumentInstanceVo(); + vo.setId(rs.getLong("id")); + vo.setMaterialDefinitionName(rs.getString("materialDefinitionName")); + vo.setUdi(rs.getString("udi")); + vo.setInstrumentBarcode(rs.getString("instrumentBarcode")); + vo.setReceiveRecordId(rs.getLong("receiveRecordId")); + if(DatabaseUtil.isPoIdValid(vo.getReceiveRecordId())){ + vo.setIsReceive("已领用"); + }else{ + vo.setIsReceive("未领用"); + } + voList.add(vo); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); } + + JSONArray data = new JSONArray(); + if(CollectionUtils.isNotEmpty(voList)){ + data = JSONArray.fromObject(voList); + } + result.put("totalCount", rowCount); + result.put("pageCount", pageCount); + result.put("data", data); + result.put("success", true); + return result; } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java =================================================================== diff -u -r34714 -r35430 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java (.../InstrumentInstanceController.java) (revision 34714) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/controller/InstrumentInstanceController.java (.../InstrumentInstanceController.java) (revision 35430) @@ -89,14 +89,13 @@ * @return */ @RequestMapping("/loadInstrumentInstancesByMaterialDefinitionID") - public String loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance){ + public String loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, + Integer limit, Integer start){ JSONObject result = JSONUtil.buildJsonObject(true); try { - List instrumentInstanceVoList = instrumentInstanceManager.loadInstrumentInstancesByMaterialDefinitionID(materialDefinitionId, noBindIDCardInstance); - if(CollectionUtils.isNotEmpty(instrumentInstanceVoList)){ - JSONArray data = JSONArray.fromObject(instrumentInstanceVoList); - result = JSONUtil.buildJsonObject(true, data); - } + result = instrumentInstanceManager.loadInstrumentInstancesByMaterialDefinitionID( + materialDefinitionId, noBindIDCardInstance, + limit, start); } catch (Exception e) { result = JSONUtil.buildJsonObject(false, "加载失败:" + e.getMessage()); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java =================================================================== diff -u -r34675 -r35430 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java (.../InstrumentInstanceManager.java) (revision 34675) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/instrumentinstance/service/InstrumentInstanceManager.java (.../InstrumentInstanceManager.java) (revision 35430) @@ -84,9 +84,11 @@ * 加载没有绑定标识牌实例的器械实例 * @param materialDefinitionId 材料定义ID * @param noBindIDCardInstance 是否只查询不绑定标识牌实例的器械实例 + * @param start + * @param limit * @return */ - public List loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance); + public JSONObject loadInstrumentInstancesByMaterialDefinitionID(Long materialDefinitionId, boolean noBindIDCardInstance, Integer limit, Integer start); /** * 加载器械实例关联的使用记录