Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r28083 -r28086 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 28083) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 28086) @@ -3257,16 +3257,33 @@ if(wdr.getStartDateStr() == null || wdr.getEndDateStr() == null){ return null; } + + // 清洗开始时间和结束时间允许前后5分钟误差 + Date startTime = wdr.getStartDate(); + Date beginStartTime = new Date(startTime.getTime() - 5*60*1000); + Date endStartTime = new Date(startTime.getTime() + 5*60*1000); + String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(beginStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String endStartTimeStr = ForgonDateUtils.safelyFormatDate(endStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + + Date completedTime = wdr.getEndDate(); + Date beginCompletedTime = new Date(completedTime.getTime() - 5*60*1000); + Date endCompletedTime = new Date(completedTime.getTime() + 5*60*1000); + String beginCompletedTimeStr = ForgonDateUtils.safelyFormatDate(beginCompletedTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String endCompletedTimeStr = ForgonDateUtils.safelyFormatDate(endCompletedTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + if(dbConnection.isSqlServer()){ String whereSql = String.format( - " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.startedDateTime >= '%s' and po.completedTime <= '%s' order by po.id desc ", - deviceInterfaceId, machineNo, wdr.getStartDateStr(), wdr.getEndDateStr()); + " where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s and po.completedTime >= '%s' and po.completedTime <= '%s' order by po.id desc ", + deviceInterfaceId, machineNo, dateQueryAdapter.dateAreaSql("po.startedDateTime", beginStartTimeStr, endStartTimeStr, false), + beginCompletedTimeStr, endCompletedTimeStr); WashDataOfChangLong washData = (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), whereSql); return washData; } else if(dbConnection.isOracle()){ String whereSql = String.format( - " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.startedDateTime >= to_date('%s','yyyy-mm-dd hh24:mi:ss') and po.completedTime <= '%s' order by po.id desc ", - deviceInterfaceId, machineNo, wdr.getStartDateStr(), wdr.getEndDateStr()); + " where po.deviceInterfaceID = %s and po.machineNo = '%s' and %s and po.completedTime >= '%s' and po.completedTime <= '%s' order by po.id desc ", + deviceInterfaceId, machineNo, + dateQueryAdapter.dateAreaSql("po.startedDateTime", beginStartTimeStr, endStartTimeStr, false), + beginCompletedTimeStr, endCompletedTimeStr); WashDataOfChangLong washData = (WashDataOfChangLong) objectDao.getBySql(WashDataOfChangLong.class.getSimpleName(), whereSql); return washData; }