Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r40990 -r40991 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 40990) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 40991) @@ -4952,14 +4952,22 @@ String beginStr = null; String endStr = null; if(systemParamsObj != null && StringUtils.isNotBlank(systemParamsObj.getDayStartTime())){ - beginStr = cDateStr + systemParamsObj.getDayStartTime() +":00"; - // 将开始时间字符串解析为日期对象 - Date beginDate = sdf.parse(beginStr); - // 增加1天 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(beginDate); - calendar.add(Calendar.DATE, 1); - endStr = DateTools.YMDFORMAT.get().format(calendar.getTime()) + " " + systemParamsObj.getDayStartTime() + ":00"; + //第一步 先获取当天的开始时间 对比传入的开始时间和这个时间的大小 判断这个循环次数要算在当天还是前一天 + String thisStartDateStr = cDateStr + systemParamsObj.getDayStartTime() +":00"; + Date thisStartDate = sdf.parse(thisStartDateStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(stDate); + if(thisStartDate.after(stDate)){ + //算到前一天 + calendar.add(Calendar.DATE, -1); + beginStr = DateTools.YMDFORMAT.get().format(calendar.getTime()) + " " + systemParamsObj.getDayStartTime() + ":00"; + endStr = thisStartDateStr; + }else{ + //算在当天 + beginStr = thisStartDateStr; + calendar.add(Calendar.DATE, 1); + endStr = DateTools.YMDFORMAT.get().format(calendar.getTime()) + " " + systemParamsObj.getDayStartTime() + ":00"; + } }else{ beginStr = cDateStr + " 00:00:00"; endStr = cDateStr + " 23:59:59";