Browse Source

功率统计增加尖峰平谷时段为空的判断

lingpeng.li 2 months ago
parent
commit
04fbfe6f99

+ 58 - 52
zgztBus/jeecg-module-lesm/src/main/java/org/jeecg/modules/deviceLesm/service/impl/DeviceRegionServiceImpl.java

@@ -4,6 +4,7 @@ package org.jeecg.modules.deviceLesm.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.collections.CollectionUtils;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.deviceLesm.entity.DeviceInformation;
 import org.jeecg.modules.deviceLesm.entity.DeviceRegion;
 import org.jeecg.modules.deviceLesm.mapper.DeviceInformationMapper;
@@ -150,32 +151,35 @@ public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, Dev
 
             // 峰平谷时段处理
             peaksAndValleysTimeConfiglist.forEach(peaksAndValleysTime -> {
-                String startDate = dayDate + " " + peaksAndValleysTime.getStartTime();
-                String endDate = dayDate + " " + peaksAndValleysTime.getEndTime();
-
-                LocalDateTime start_time = adjustCrossDay(LocalDateTime.parse(startDate, formatter), LocalDateTime.parse(endDate, formatter));
-
-                // 转换为字符串
-                String formattedStartTime = start_time.format(formatter);
-
-                Map peaksAndValleysTimeMap = fpgGatherDataMapper.getFpgTheLeftSideOneData(region, formattedStartTime, endDate);
-                if (peaksAndValleysTimeMap != null) {
-                    if ("tops".equals(peaksAndValleysTime.getType())) { // 尖值处理
-                        BigDecimal topsAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                        BigDecimal topsSum = new BigDecimal(String.valueOf(mapSum.get("topsSum")));
-                        mapSum.put("topsSum", topsSum.add(topsAmount));
-                    } else if ("peaks".equals(peaksAndValleysTime.getType())) { // 峰值处理
-                        BigDecimal peaksAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                        BigDecimal peaksSum = new BigDecimal(String.valueOf(mapSum.get("peaksSum")));
-                        mapSum.put("peaksSum", peaksSum.add(peaksAmount));
-                    } else if ("flat".equals(peaksAndValleysTime.getType())) { // 平值处理
-                        BigDecimal flatAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                        BigDecimal flatSum = new BigDecimal(String.valueOf(mapSum.get("flatSum")));
-                        mapSum.put("flatSum", flatSum.add(flatAmount));
-                    } else if ("valleys".equals(peaksAndValleysTime.getType())) { // 谷值处理
-                        BigDecimal valleysAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                        BigDecimal valleysSum = new BigDecimal(String.valueOf(mapSum.get("valleysSum")));
-                        mapSum.put("valleysSum", valleysSum.add(valleysAmount));
+
+                if(oConvertUtils.isNotEmpty(peaksAndValleysTime.getStartTime()) && oConvertUtils.isNotEmpty(peaksAndValleysTime.getEndTime())) {
+                    String startDate = dayDate + " " + peaksAndValleysTime.getStartTime();
+                    String endDate = dayDate + " " + peaksAndValleysTime.getEndTime();
+
+                    LocalDateTime start_time = adjustCrossDay(LocalDateTime.parse(startDate, formatter), LocalDateTime.parse(endDate, formatter));
+
+                    // 转换为字符串
+                    String formattedStartTime = start_time.format(formatter);
+
+                    Map peaksAndValleysTimeMap = fpgGatherDataMapper.getFpgTheLeftSideOneData(region, formattedStartTime, endDate);
+                    if (peaksAndValleysTimeMap != null) {
+                        if ("tops".equals(peaksAndValleysTime.getType())) { // 尖值处理
+                            BigDecimal topsAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                            BigDecimal topsSum = new BigDecimal(String.valueOf(mapSum.get("topsSum")));
+                            mapSum.put("topsSum", topsSum.add(topsAmount));
+                        } else if ("peaks".equals(peaksAndValleysTime.getType())) { // 峰值处理
+                            BigDecimal peaksAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                            BigDecimal peaksSum = new BigDecimal(String.valueOf(mapSum.get("peaksSum")));
+                            mapSum.put("peaksSum", peaksSum.add(peaksAmount));
+                        } else if ("flat".equals(peaksAndValleysTime.getType())) { // 平值处理
+                            BigDecimal flatAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                            BigDecimal flatSum = new BigDecimal(String.valueOf(mapSum.get("flatSum")));
+                            mapSum.put("flatSum", flatSum.add(flatAmount));
+                        } else if ("valleys".equals(peaksAndValleysTime.getType())) { // 谷值处理
+                            BigDecimal valleysAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                            BigDecimal valleysSum = new BigDecimal(String.valueOf(mapSum.get("valleysSum")));
+                            mapSum.put("valleysSum", valleysSum.add(valleysAmount));
+                        }
                     }
                 }
             });
@@ -267,32 +271,34 @@ public class DeviceRegionServiceImpl extends ServiceImpl<DeviceRegionMapper, Dev
 
                 if (!CollectionUtils.isEmpty(deviceIds)) {
                     for (PeaksAndValleysTimeConfig peaksAndValleysTimeConfig : peaksAndValleysTimeConfiglist) {
-                        String startDate = dayDate + " " + peaksAndValleysTimeConfig.getStartTime();
-                        String endDate = dayDate + " " + peaksAndValleysTimeConfig.getEndTime();
-
-                        LocalDateTime start_time = adjustCrossDay(LocalDateTime.parse(startDate, formatter), LocalDateTime.parse(endDate, formatter));
-
-                        // 转换为字符串
-                        String formattedStartTime = start_time.format(formatter);
-
-                        Map peaksAndValleysTimeMap = fpgGatherDataMapper.getDeviceTypeData(deviceIds, formattedStartTime, endDate);
-                        if (peaksAndValleysTimeMap != null) {
-                            if ("tops".equals(peaksAndValleysTimeConfig.getType())) { // 尖值处理
-                                BigDecimal topsAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                                BigDecimal topsSum = new BigDecimal(String.valueOf(mapSum1.get("topsSum")));
-                                mapSum1.put("topsSum", topsSum.add(topsAmount));
-                            } else if ("peaks".equals(peaksAndValleysTimeConfig.getType())) { // 峰值处理
-                                BigDecimal peaksAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                                BigDecimal peaksSum = new BigDecimal(String.valueOf(mapSum1.get("peaksSum")));
-                                mapSum1.put("peaksSum", peaksSum.add(peaksAmount));
-                            } else if ("flat".equals(peaksAndValleysTimeConfig.getType())) { // 平值处理
-                                BigDecimal flatAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                                BigDecimal flatSum = new BigDecimal(String.valueOf(mapSum1.get("flatSum")));
-                                mapSum1.put("flatSum", flatSum.add(flatAmount));
-                            } else if ("valleys".equals(peaksAndValleysTimeConfig.getType())) { // 谷值处理
-                                BigDecimal valleysAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
-                                BigDecimal valleysSum = new BigDecimal(String.valueOf(mapSum1.get("valleysSum")));
-                                mapSum1.put("valleysSum", valleysSum.add(valleysAmount));
+                        if (oConvertUtils.isNotEmpty(peaksAndValleysTimeConfig.getStartTime()) && oConvertUtils.isNotEmpty(peaksAndValleysTimeConfig.getEndTime())) {
+                            String startDate = dayDate + " " + peaksAndValleysTimeConfig.getStartTime();
+                            String endDate = dayDate + " " + peaksAndValleysTimeConfig.getEndTime();
+
+                            LocalDateTime start_time = adjustCrossDay(LocalDateTime.parse(startDate, formatter), LocalDateTime.parse(endDate, formatter));
+
+                            // 转换为字符串
+                            String formattedStartTime = start_time.format(formatter);
+
+                            Map peaksAndValleysTimeMap = fpgGatherDataMapper.getDeviceTypeData(deviceIds, formattedStartTime, endDate);
+                            if (peaksAndValleysTimeMap != null) {
+                                if ("tops".equals(peaksAndValleysTimeConfig.getType())) { // 尖值处理
+                                    BigDecimal topsAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                                    BigDecimal topsSum = new BigDecimal(String.valueOf(mapSum1.get("topsSum")));
+                                    mapSum1.put("topsSum", topsSum.add(topsAmount));
+                                } else if ("peaks".equals(peaksAndValleysTimeConfig.getType())) { // 峰值处理
+                                    BigDecimal peaksAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                                    BigDecimal peaksSum = new BigDecimal(String.valueOf(mapSum1.get("peaksSum")));
+                                    mapSum1.put("peaksSum", peaksSum.add(peaksAmount));
+                                } else if ("flat".equals(peaksAndValleysTimeConfig.getType())) { // 平值处理
+                                    BigDecimal flatAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                                    BigDecimal flatSum = new BigDecimal(String.valueOf(mapSum1.get("flatSum")));
+                                    mapSum1.put("flatSum", flatSum.add(flatAmount));
+                                } else if ("valleys".equals(peaksAndValleysTimeConfig.getType())) { // 谷值处理
+                                    BigDecimal valleysAmount = new BigDecimal(String.valueOf(peaksAndValleysTimeMap.get("active_power")));
+                                    BigDecimal valleysSum = new BigDecimal(String.valueOf(mapSum1.get("valleysSum")));
+                                    mapSum1.put("valleysSum", valleysSum.add(valleysAmount));
+                                }
                             }
                         }
                     }