Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r34313 -r34324 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34313) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34324) @@ -1827,10 +1827,17 @@ String beginStartTimeStr = df.format(beginStartTime).replace("-", "/"); String endStartTimeStr = df.format(endStartTime).replace("-", "/"); + String timeSql = ""; + if (dbConnection.isSqlServer()) { + timeSql += " (convert(datetime,po.time,120) between " + dateQueryAdapter.dateAdapter(beginStartTimeStr) + " and " + dateQueryAdapter.dateAdapter(endStartTimeStr) + ")"; + } else if (dbConnection.isOracle()) { + timeSql += " (to_date(po.time,'yyyy-mm-dd HH24:MI:SS') between " + dateQueryAdapter.dateAdapter(beginStartTimeStr) + " and " + dateQueryAdapter.dateAdapter(endStartTimeStr) + ")"; + } + // 查找循环次数最大的清洗数据 String whereSql = String.format( - "select max(po.cycleCounter) maxCycleCounter from WashData po where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.time > '%s' and po.time < '%s' group by po.cycleCounter ", - rs.getDeviceInterfaceId(), rs.getMachineNumber(), beginStartTimeStr, endStartTimeStr); + "select max(po.cycleCounter) maxCycleCounter from WashData po where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s group by po.cycleCounter ", + rs.getDeviceInterfaceId(), rs.getMachineNumber(), timeSql); ResultSet cycleCounterResultSet = null; Long maxCycleCounter = null; try { @@ -4282,12 +4289,12 @@ /** * 获取新华清洗机(负压清洗机\单舱清洗机(super6000))清洗参数(ZJJSRM-6) */ + @SuppressWarnings("unchecked") private List getWashDatasByCycleCounter(Long deviceInterfaceId, Long cycleCounter, String machineNo) { String whereSql = String.format( " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.cycleCounter = %s order by po.time ", deviceInterfaceId,machineNo,cycleCounter); - System.out.println(whereSql); List washDatas = objectDao.findBySql(WashData.class.getSimpleName(), whereSql); return washDatas; } @@ -4315,13 +4322,25 @@ } else if (dbConnection.isOracle()) { timeSql += " (to_date(po.time,'yyyy-mm-dd HH24:MI:SS') between " + dateQueryAdapter.dateAdapter(beginStartTimeStr) + " and " + dateQueryAdapter.dateAdapter(endStartTimeStr) + ")"; } - - String whereSql = String.format( - " where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s order by po.time ", + + // 查找循环次数最大的清洗数据 + String whereSql = String.format( + "select max(po.cycleCounter) maxCycleCounter from WashData po where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s group by po.cycleCounter ", deviceInterfaceId, machineNo, timeSql); - - List washDatas = objectDao.findBySql(WashData.class.getSimpleName(), whereSql); - return washDatas; + ResultSet cycleCounterResultSet = null; + Long maxCycleCounter = 0l; + try { + cycleCounterResultSet = objectDao.executeSql(whereSql); + while(cycleCounterResultSet.next()){ + maxCycleCounter = cycleCounterResultSet.getLong("maxCycleCounter"); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(cycleCounterResultSet); + } + // 根据循环次数查找完整的清洗数据 + return getWashDatasByCycleCounter(deviceInterfaceId, maxCycleCounter, machineNo); } /**