Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r31161 -r31177 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31161) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31177) @@ -1627,9 +1627,8 @@ } // 清洗记录的清洗开始时间,与设备数据文件中的清洗开始时间,2个时间的间隔不超过10分钟 Date startTime = wr.getStartDate(); - Date endTime = wr.getEndDate(); Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); - Date endStartTime = new Date(endTime.getTime() + 10*60*1000); + Date endStartTime = new Date(startTime.getTime() + 10*60*1000); // 根据循环次数匹配 String queryString = "select count(*) c from "+ WashData.class.getSimpleName() +" wdcl" @@ -1647,7 +1646,7 @@ }else if(StringUtils.equals(DeviceInterface.XINHUA_Repaid_A_520, devInterface.getDeviceModel())){ // 型号为Repaid-a-520的清洗机,根据清洗记录的开始结束时间匹配清洗数据(NYSY-30)(时间格式为"yyyy-MM-dd HH:mm:ss") beginStartTime = new Date(startTime.getTime() - 15*60*1000); - endStartTime = new Date(endTime.getTime() + 15*60*1000); + endStartTime = new Date(startTime.getTime() + 15*60*1000); String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy-MM-dd HH:mm:ss"); String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy-MM-dd HH:mm:ss"); @@ -1671,9 +1670,13 @@ + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' "; if(StringUtils.equals(devInterface.getParaMatchingMethod(), DeviceInterface.PARAMATCHINGMETHOD_STARTDATE)){ // 倍力曼清洗机根据清洗记录的开始结束时间匹配清洗数据(时间格式为"yyyy/M/dd HH:mm:ss") - String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/M/dd HH:mm:ss"); - String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/M/dd HH:mm:ss"); - queryString += "and po.time > '" + beginStartTimeStr + "' and po.time < '" + endStartTimeStr + "'"; + String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/MM/dd HH:mm:ss"); + String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/MM/dd HH:mm:ss"); + if (dbConnection.isSqlServer()) { + queryString += " and (convert(datetime,po.time,120) between " + dateQueryAdapter.dateAdapter(beginStartTimeStr) + " and " + dateQueryAdapter.dateAdapter(endStartTimeStr) + ")"; + } else if (dbConnection.isOracle()) { + queryString += " and (to_date(po.time,'yyyy-mm-dd HH24:MI:SS') between " + dateQueryAdapter.dateAdapter(beginStartTimeStr) + " and " + dateQueryAdapter.dateAdapter(endStartTimeStr) + ")"; + } }else{ queryString += "and po.cycleCounter = " + wr.getCycleCounter(); } @@ -3810,9 +3813,16 @@ String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/M/dd HH:mm:ss"); String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/M/dd HH:mm:ss"); + 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( - " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.time > '%s' and po.time < '%s' order by po.time ", - deviceInterfaceId, machineNo, beginStartTimeStr, endStartTimeStr); + " where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s order by po.time ", + deviceInterfaceId, machineNo, timeSql); List washDatas = objectDao.findBySql(WashData.class.getSimpleName(), whereSql); return washDatas;