Pārlūkot izejas kodu

修改谷时段跨天的数据处理

lingpeng.li 5 mēneši atpakaļ
vecāks
revīzija
9106e23db7

+ 145 - 138
jeecg-module-gather/src/main/java/org/jeecg/modules/fpgJob/LeanModelStatistics.java

@@ -300,137 +300,139 @@ public class LeanModelStatistics {
                     String dayPowerproportioncurrentRunMonKey = "total_day_powerproportioncurrent";
                     DeviceStatiscsModelData dayPowerproportioncurrentRunData = new DeviceStatiscsModelData(fpgGatherData, dayPowerproportioncurrentRunMonKey, dayDate, classs, curentDate, curentDate);
                     // 组合mongodb条件
-                    Query queryDayPowerproportioncurrentRun = new Query()
-                            .addCriteria(Criteria.where("deviceRegionId").is(fpgGatherData.getDeviceRegionId())).addCriteria(Criteria.where("deviceInformationId").is(fpgGatherData.getDeviceInformationId())).addCriteria(Criteria.where("dates").is(dayDate));
-                    DeviceStatiscsModelMongodb dayPowerproportioncurrentMongo = mongoTemplate.findOne(queryDayPowerproportioncurrentRun, DeviceStatiscsModelMongodb.class, dayPowerproportioncurrentRunMonKey);
-                    if(dayPowerproportioncurrentMongo != null){ // 不为空更新
-                        // 历史数据
-                        BigDecimal runNewPower = dayPowerproportioncurrentMongo.getPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPower().add(runPower);
-                        BigDecimal oldRunTime = dayPowerproportioncurrentMongo.getIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getIngTime();
-                        BigDecimal oldSelectricCurrent = dayPowerproportioncurrentMongo.getSelectricCurrent() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getSelectricCurrent();
-                        // 更新运行数据
-                        UpdateDefinition update = new Update();
-                        ((Update) update).set("power", runNewPower);
-                        ((Update) update).set("selectricCurrent", oldSelectricCurrent.add(selectricCurrent));
-                        ((Update) update).set("ingTime", oldRunTime.add(runTime));
-                        ((Update) update).set("updateTime", curentDate);
-                        // 尖峰平谷判定
-                        if("tops".equals(jfpgStr.get())){ // 尖
-                            // 功率处理
-                            BigDecimal oldtopsPower = dayPowerproportioncurrentMongo.getTopsPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getTopsPower();
-                            BigDecimal topsPower = oldtopsPower.add(runPower);
-                            ((Update) update).set("topsPower", topsPower);
-                            // 运行时常处理
-                            BigDecimal oldtopsIngTime = dayPowerproportioncurrentMongo.getTopsIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getTopsIngTime();
-                            ((Update) update).set("topsIngTime", oldtopsIngTime.add(runTime));
-                            // 占比
-                            if(topsPower.compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("topsProportion", topsPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            // 其他三个重新核算
-                            if(dayPowerproportioncurrentMongo.getFlatPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("flatProportion", dayPowerproportioncurrentMongo.getFlatPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                        } else if("peaks".equals(jfpgStr.get())){ // 峰
-                            // 功率处理
-                            BigDecimal oldpeaksPower = dayPowerproportioncurrentMongo.getPeaksPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPeaksPower();
-                            BigDecimal peaksPower = oldpeaksPower.add(runPower);
-                            ((Update) update).set("peaksPower", peaksPower);
-                            // 运行时常处理
-                            BigDecimal oldpeaksIngTime = dayPowerproportioncurrentMongo.getPeaksIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPeaksIngTime();
-                            ((Update) update).set("peaksIngTime", oldpeaksIngTime.add(runTime));
-                            // 占比
-                            if(peaksPower.compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("peaksProportion", peaksPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            // 其他三个重新核算
-                            if(dayPowerproportioncurrentMongo.getValleysPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("valleysProportion", dayPowerproportioncurrentMongo.getValleysPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                        } else if("flat".equals(jfpgStr.get())){ // 平
-                            // 功率处理
-                            BigDecimal oldflatPower = dayPowerproportioncurrentMongo.getFlatPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getFlatPower();
-                            BigDecimal flatPower = oldflatPower.add(runPower);
-                            ((Update) update).set("flatPower", flatPower);
-                            // 运行时常处理
-                            BigDecimal oldflatIngTime = dayPowerproportioncurrentMongo.getFlatIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getFlatIngTime();
-                            ((Update) update).set("flatIngTime", oldflatIngTime.add(runTime));
-                            // 占比
-                            if(flatPower.compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("flatProportion", flatPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            // 其他三个重新核算
-                            if(dayPowerproportioncurrentMongo.getValleysPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("valleysProportion", dayPowerproportioncurrentMongo.getValleysPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                        } else if("valleys".equals(jfpgStr.get())){ // 谷
-                            // 功率处理
-                            BigDecimal oldvalleysPower = dayPowerproportioncurrentMongo.getValleysPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getValleysPower();
-                            BigDecimal valleysPower = oldvalleysPower.add(runPower);
-                            ((Update) update).set("valleysPower", oldvalleysPower.add(runPower));
-                            // 运行时常处理
-                            BigDecimal oldvalleysIngTime = dayPowerproportioncurrentMongo.getValleysIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getValleysIngTime();
-                            ((Update) update).set("valleysIngTime", oldvalleysIngTime.add(runTime));
-                            // 占比核算
-                            if(valleysPower.compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("valleysProportion", valleysPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            // 其他三个重新核算
-                            if(dayPowerproportioncurrentMongo.getFlatPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("flatProportion", dayPowerproportioncurrentMongo.getFlatPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
-                            }
-                            if(dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
-                                ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                    if(fpgGatherData.getRunCurrent().compareTo(new BigDecimal(systemVariable.getDefaultValue())) > 0) {
+                        Query queryDayPowerproportioncurrentRun = new Query()
+                                .addCriteria(Criteria.where("deviceRegionId").is(fpgGatherData.getDeviceRegionId())).addCriteria(Criteria.where("deviceInformationId").is(fpgGatherData.getDeviceInformationId())).addCriteria(Criteria.where("dates").is(dayDate));
+                        DeviceStatiscsModelMongodb dayPowerproportioncurrentMongo = mongoTemplate.findOne(queryDayPowerproportioncurrentRun, DeviceStatiscsModelMongodb.class, dayPowerproportioncurrentRunMonKey);
+                        if (dayPowerproportioncurrentMongo != null) { // 不为空更新
+                            // 历史数据
+                            BigDecimal runNewPower = dayPowerproportioncurrentMongo.getPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPower().add(runPower);
+                            BigDecimal oldRunTime = dayPowerproportioncurrentMongo.getIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getIngTime();
+                            BigDecimal oldSelectricCurrent = dayPowerproportioncurrentMongo.getSelectricCurrent() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getSelectricCurrent();
+                            // 更新运行数据
+                            UpdateDefinition update = new Update();
+                            ((Update) update).set("power", runNewPower);
+                            ((Update) update).set("selectricCurrent", oldSelectricCurrent.add(selectricCurrent));
+                            ((Update) update).set("ingTime", oldRunTime.add(runTime));
+                            ((Update) update).set("updateTime", curentDate);
+                            // 尖峰平谷判定
+                            if ("tops".equals(jfpgStr.get())) { // 尖
+                                // 功率处理
+                                BigDecimal oldtopsPower = dayPowerproportioncurrentMongo.getTopsPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getTopsPower();
+                                BigDecimal topsPower = oldtopsPower.add(runPower);
+                                ((Update) update).set("topsPower", topsPower);
+                                // 运行时常处理
+                                BigDecimal oldtopsIngTime = dayPowerproportioncurrentMongo.getTopsIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getTopsIngTime();
+                                ((Update) update).set("topsIngTime", oldtopsIngTime.add(runTime));
+                                // 占比
+                                if (topsPower.compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("topsProportion", topsPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                // 其他三个重新核算
+                                if (dayPowerproportioncurrentMongo.getFlatPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("flatProportion", dayPowerproportioncurrentMongo.getFlatPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                            } else if ("peaks".equals(jfpgStr.get())) { // 峰
+                                // 功率处理
+                                BigDecimal oldpeaksPower = dayPowerproportioncurrentMongo.getPeaksPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPeaksPower();
+                                BigDecimal peaksPower = oldpeaksPower.add(runPower);
+                                ((Update) update).set("peaksPower", peaksPower);
+                                // 运行时常处理
+                                BigDecimal oldpeaksIngTime = dayPowerproportioncurrentMongo.getPeaksIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getPeaksIngTime();
+                                ((Update) update).set("peaksIngTime", oldpeaksIngTime.add(runTime));
+                                // 占比
+                                if (peaksPower.compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("peaksProportion", peaksPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                // 其他三个重新核算
+                                if (dayPowerproportioncurrentMongo.getValleysPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("valleysProportion", dayPowerproportioncurrentMongo.getValleysPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                            } else if ("flat".equals(jfpgStr.get())) { // 平
+                                // 功率处理
+                                BigDecimal oldflatPower = dayPowerproportioncurrentMongo.getFlatPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getFlatPower();
+                                BigDecimal flatPower = oldflatPower.add(runPower);
+                                ((Update) update).set("flatPower", flatPower);
+                                // 运行时常处理
+                                BigDecimal oldflatIngTime = dayPowerproportioncurrentMongo.getFlatIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getFlatIngTime();
+                                ((Update) update).set("flatIngTime", oldflatIngTime.add(runTime));
+                                // 占比
+                                if (flatPower.compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("flatProportion", flatPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                // 其他三个重新核算
+                                if (dayPowerproportioncurrentMongo.getValleysPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("valleysProportion", dayPowerproportioncurrentMongo.getValleysPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                            } else if ("valleys".equals(jfpgStr.get())) { // 谷
+                                // 功率处理
+                                BigDecimal oldvalleysPower = dayPowerproportioncurrentMongo.getValleysPower() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getValleysPower();
+                                BigDecimal valleysPower = oldvalleysPower.add(runPower);
+                                ((Update) update).set("valleysPower", oldvalleysPower.add(runPower));
+                                // 运行时常处理
+                                BigDecimal oldvalleysIngTime = dayPowerproportioncurrentMongo.getValleysIngTime() == null ? new BigDecimal("0.00") : dayPowerproportioncurrentMongo.getValleysIngTime();
+                                ((Update) update).set("valleysIngTime", oldvalleysIngTime.add(runTime));
+                                // 占比核算
+                                if (valleysPower.compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("valleysProportion", valleysPower.divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                // 其他三个重新核算
+                                if (dayPowerproportioncurrentMongo.getFlatPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("flatProportion", dayPowerproportioncurrentMongo.getFlatPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getPeaksPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("peaksProportion", dayPowerproportioncurrentMongo.getPeaksPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
+                                if (dayPowerproportioncurrentMongo.getTopsPower().compareTo(new BigDecimal("0.00")) > 0) {
+                                    ((Update) update).set("topsProportion", dayPowerproportioncurrentMongo.getTopsPower().divide(runNewPower, 2, RoundingMode.HALF_UP).multiply(zb));
+                                }
                             }
-                        }
-                        mongoTemplate.updateFirst(queryDayPowerproportioncurrentRun, update, DeviceStatiscsModelMongodb.class, dayPowerproportioncurrentRunMonKey);
-                    } else { // 为空直接插入
-                        // 尖峰平谷判定
-                        if("tops".equals(jfpgStr.get())){ // 尖
-                            // 功率处理
-                            dayPowerproportioncurrentRunData.setTopsPower(runPower);
-                            dayPowerproportioncurrentRunData.setTopsIngTime(runTime);
+                            mongoTemplate.updateFirst(queryDayPowerproportioncurrentRun, update, DeviceStatiscsModelMongodb.class, dayPowerproportioncurrentRunMonKey);
+                        } else { // 为空直接插入
+                            // 尖峰平谷判定
+                            if ("tops".equals(jfpgStr.get())) { // 尖
+                                // 功率处理
+                                dayPowerproportioncurrentRunData.setTopsPower(runPower);
+                                dayPowerproportioncurrentRunData.setTopsIngTime(runTime);
 //                            dayPowerproportioncurrentRunData.setTopsSelectricCurrent(selectricCurrent);
-                        } else if("peaks".equals(jfpgStr.get())){ // 峰
-                            // 功率处理
-                            dayPowerproportioncurrentRunData.setPeaksPower(runPower);
-                            dayPowerproportioncurrentRunData.setPeaksIngTime(runTime);
+                            } else if ("peaks".equals(jfpgStr.get())) { // 峰
+                                // 功率处理
+                                dayPowerproportioncurrentRunData.setPeaksPower(runPower);
+                                dayPowerproportioncurrentRunData.setPeaksIngTime(runTime);
 //                            dayPowerproportioncurrentRunData.setPeaksSelectricCurrent(selectricCurrent);
-                        } else if("flat".equals(jfpgStr.get())){ // 平
-                            // 功率处理
-                            dayPowerproportioncurrentRunData.setFlatPower(runPower);
-                            dayPowerproportioncurrentRunData.setFlatIngTime(runTime);
+                            } else if ("flat".equals(jfpgStr.get())) { // 平
+                                // 功率处理
+                                dayPowerproportioncurrentRunData.setFlatPower(runPower);
+                                dayPowerproportioncurrentRunData.setFlatIngTime(runTime);
 //                            dayPowerproportioncurrentRunData.setFlatSelectricCurrent(selectricCurrent);
-                        } else if("valleys".equals(jfpgStr.get())){ // 谷
-                            dayPowerproportioncurrentRunData.setValleysPower(runPower);
-                            dayPowerproportioncurrentRunData.setValleysIngTime(runTime);
+                            } else if ("valleys".equals(jfpgStr.get())) { // 谷
+                                dayPowerproportioncurrentRunData.setValleysPower(runPower);
+                                dayPowerproportioncurrentRunData.setValleysIngTime(runTime);
 //                            dayPowerproportioncurrentRunData.setValleysSelectricCurrent(selectricCurrent);
-                        }
-                        dayPowerproportioncurrentRunData.setPower(runPower);
-                        dayPowerproportioncurrentRunData.setIngTime(runTime);
+                            }
+                            dayPowerproportioncurrentRunData.setPower(runPower);
+                            dayPowerproportioncurrentRunData.setIngTime(runTime);
 //                        dayPowerproportioncurrentRunData.setSelectricCurrent(selectricCurrent);
-                        mongoTemplate.insert(dayPowerproportioncurrentRunData, dayPowerproportioncurrentRunMonKey);
+                            mongoTemplate.insert(dayPowerproportioncurrentRunData, dayPowerproportioncurrentRunMonKey);
+                        }
                     }
                     // 日统计尖峰平谷数据(功率+占比+电流+运行时长) end
                     // 执行完成数据 标记已处理
@@ -884,25 +886,30 @@ public class LeanModelStatistics {
      */
     public static boolean containsCreateTime(LocalDateTime createTime, String startTime, String endTime) {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        // 将字符串转换为 LocalDateTime
         LocalDateTime start_time = LocalDateTime.parse(startTime, formatter);
         LocalDateTime end_time = LocalDateTime.parse(endTime, formatter);
 
-        // 检查 createTime 的时分秒部分
-        LocalTime createTimeTime = createTime.toLocalTime();
-        LocalTime midnight = LocalTime.MIDNIGHT;
-
-        // createTime 的时分秒大于 00:00:00 时,startTime 减去一天
-        if (createTimeTime.isAfter(midnight) && end_time.isBefore(start_time)) {
-            start_time = start_time.minusDays(1);  // 将 startTime 减去一天
-        }
+        // 判断是否跨天
+        boolean isCrossDay = end_time.isBefore(start_time);
 
-        // createTime 的时分秒小于 00:00:00 时,endTime 加一天
-        if (createTimeTime.isBefore(midnight) && end_time.isBefore(start_time)) {
-            end_time = end_time.plusDays(1);  // 将 endTime 加一天
+        // 根据 createTime 调整 start_time 和 end_time
+        if (isCrossDay) {
+            // 如果 createTime 在 startTime 后且在 endTime 前,且跨天,endTime 应该加一天
+            if (createTime.isAfter(start_time) && createTime.isAfter(end_time)) {
+                end_time = end_time.plusDays(1); // 加一天到第二天
+            }
+            // 如果 createTime 在 startTime 之前且在 endTime 后,startTime 应该减去一天
+            if (createTime.isBefore(start_time) && createTime.isBefore(end_time)) {
+                start_time = start_time.minusDays(1); // 减一天
+            }
         }
 
-        // 检查createTime是否在区间内
-        return createTime!= null && (createTime.isAfter(start_time) || createTime.equals(start_time)) &&
+        // 检查 createTime 是否在调整后的区间内
+        return createTime != null && (createTime.isAfter(start_time) || createTime.equals(start_time)) &&
                 (createTime.isBefore(end_time) || createTime.equals(end_time));
     }
+
+
 }