소스 검색

计算休息时长有bug,修复

seyason 2 년 전
부모
커밋
0002a5b305

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -1147,16 +1147,16 @@ public class ReportController {
                 try {
                     report.setStartTime(startTime).setEndTime(endTime);
                     long time = sdf.parse(report.getEndTime()).getTime() - sdf.parse(report.getStartTime()).getTime();
-
                     int excludeTime = 0;
                     if (excludeTimeList.size() > 0) {
                         for (TimeAutoExclude exclude : excludeTimeList) {
                             if (!(exclude.getEndTime().compareTo(startTime) < 0 || exclude.getStartTime().compareTo(endTime) > 0)) {
                                 //有交叉的情况,结束时间取较早的,开始时间取较晚的
-                                endTime = exclude.getEndTime().compareTo(endTime) <0 ? exclude.getEndTime() : endTime;
-                                startTime = exclude.getStartTime().compareTo(startTime) > 0 ? exclude.getStartTime() : startTime;
+                                String mEndTime = exclude.getEndTime().compareTo(endTime) <0 ? exclude.getEndTime() : endTime;
+                                String mStartTime = exclude.getStartTime().compareTo(startTime) > 0 ? exclude.getStartTime() : startTime;
                                 //落在休息时间范围内,需要计算去掉的时间
-                                excludeTime += sdf.parse(endTime).getTime() - sdf.parse(startTime).getTime();
+                                long subtractTime = sdf.parse(mEndTime).getTime() - sdf.parse(mStartTime).getTime();
+                                excludeTime += subtractTime;
                             }
                         }
                     }