Browse Source

1、日月年统计修复;

dev_mz
v-lijf43 7 days ago
parent
commit
42b108d055
  1. 52
      mh-admin/src/test/java/com/mh/MHApplicationTest.java
  2. 19
      mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java
  3. 7
      mh-system/src/main/java/com/mh/system/mapper/report/ComprehensiveReportMapper.java

52
mh-admin/src/test/java/com/mh/MHApplicationTest.java

@ -70,32 +70,32 @@ public class MHApplicationTest {
@Test
public void calcEnergyData() {
for (int i = 10; i < 17; i++) {
hotWaterTask.calcEnergyData("2025-07-"+i+" 00:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 01:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 02:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 03:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 04:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 05:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 06:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 07:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 08:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 09:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 10:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 11:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 12:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 13:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 14:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 15:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 16:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 17:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 18:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 19:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 20:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 21:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 22:00:00");
hotWaterTask.calcEnergyData("2025-07-"+i+" 23:00:00");
}
// for (int i = 10; i < 17; i++) {
hotWaterTask.calcEnergyData("2025-09-30"+" 00:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 01:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 02:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 03:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 04:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 05:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 06:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 07:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 08:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 09:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 10:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 11:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 12:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 13:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 14:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 15:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 16:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 17:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 18:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 19:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 20:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 21:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 22:00:00");
hotWaterTask.calcEnergyData("2025-09-30"+" 23:00:00");
// }
}

19
mh-common/src/main/java/com/mh/common/enums/ComputeEnum.java

@ -111,7 +111,24 @@ public enum ComputeEnum implements ComputeService {
@Override
public ArrayList<Map<LocalDateTime, DeviceReport>> getDataList(
Map.Entry<String, Map<LocalDateTime, List<DeviceReport>>> entry) {
return null;
ArrayList<Map<LocalDateTime, DeviceReport>> result = new ArrayList<>();
//获取到电表的数据,按照表号分组分组,紧接着再按照小时分组。需要计算分组后的数据取出最大值
Map<LocalDateTime, List<DeviceReport>> deviceMap = entry.getValue();
String deviceNum = entry.getKey();
Set<Map.Entry<LocalDateTime, List<DeviceReport>>> groupEntryList = deviceMap.entrySet();
for (Map.Entry<LocalDateTime, List<DeviceReport>> listEntry : groupEntryList) {
LocalDateTime key = listEntry.getKey();
List<DeviceReport> value = listEntry.getValue();
DeviceReport maxEntity = value.stream()
.max(Comparator.comparing(obj -> Double.valueOf(obj.getCurValue())))
.orElse(null);
HashMap<LocalDateTime, DeviceReport> map = new HashMap<>();
map.put(key, maxEntity);
result.add(map);
}
return result;
}
};

7
mh-system/src/main/java/com/mh/system/mapper/report/ComprehensiveReportMapper.java

@ -34,6 +34,7 @@ public interface ComprehensiveReportMapper {
"</script>")
BigDecimal queryByDeviceNum(@Param("deviceNums") List<CollectionParamsManage> deviceNums);
@Select("<script>" +
"WITH periods AS ( " +
" SELECT " +
@ -81,10 +82,10 @@ public interface ComprehensiveReportMapper {
"FROM periods p " +
"LEFT JOIN ( " +
" SELECT cur_time, calc_value, device_num FROM ${lastTableName} " +
" WHERE cur_time >= #{startTime} AND cur_time <= #{endTime} " +
" WHERE cur_time >= #{startTime} AND cur_time &lt;= #{endTime} " +
" UNION ALL " +
" SELECT cur_time, calc_value, device_num FROM ${curTableName} " +
" WHERE cur_time >= #{startTime} AND cur_time <= #{endTime} " +
" WHERE cur_time >= #{startTime} AND cur_time &lt;= #{endTime} " +
") all_data ON <choose>" +
" <when test='timeType == \"year\"'>" +
" to_char(all_data.cur_time, 'YYYY') = p.period " +
@ -195,7 +196,7 @@ public interface ComprehensiveReportMapper {
" #{item.mtNum} " +
" </foreach>" +
" </if>" +
" AND dm.cur_time >= #{startTime} AND dm.cur_time <= #{endTime} " +
" AND dm.cur_time >= #{startTime} AND dm.cur_time &lt;= #{endTime} " +
"GROUP BY p.period " +
"ORDER BY p.period; " +
"</script>")

Loading…
Cancel
Save