Prechádzať zdrojové kódy

切换单位为小时

zhj 10 mesiacov pred
rodič
commit
d65ac9a6da

+ 11 - 9
src/main/java/com/welampiot/controller/LampController.java

@@ -1801,36 +1801,38 @@ public class LampController {
         LampInfoLogDTO nowDayDTO = lampInfoLogService.getNowDayLampInfoLog(lampVO.getId());
         LampInfoLogDTO beforeDTO = lampInfoLogService.getBeforeTodayLampInfoLog(lampVO.getId());
 
+        DecimalFormat df = new DecimalFormat("0.##");
         LampLogVO lampLogVO = new LampLogVO();
         if (nowDayDTO != null && beforeDTO != null) {
             int nowLightTime = nowDayDTO.getWorkTimeTotal() - beforeDTO.getWorkTimeTotal();
             nowLightTime = Math.max(nowLightTime, 0);
             nowLightTime = Math.min(nowLightTime, 1440);
-            lampLogVO.setDayLightTime(nowLightTime);
+            lampLogVO.setDayLightTime(df.format(nowLightTime / 60.0));
         } else if (nowDayDTO != null) {
-            lampLogVO.setDayLightTime(nowDayDTO.getWorkTimeTotal());
+            lampLogVO.setDayLightTime(df.format(nowDayDTO.getWorkTimeTotal() / 60.0));
         }  else {
-            lampLogVO.setDayLightTime(0);
+            lampLogVO.setDayLightTime("0");
         }
 
         LampInfoLogNewDTO newestLampInfoLog = lampInfoLogNewService.getNewestLampInfoLog(lampVO.getId());
         if (newestLampInfoLog != null) {
-            lampLogVO.setTotalLightTime(Long.valueOf(newestLampInfoLog.getWorkTimeTotal()));
+            long lightTime = Long.parseLong(newestLampInfoLog.getWorkTimeTotal());
+            lampLogVO.setTotalLightTime(df.format(lightTime / 60.0));
         } else {
-            lampLogVO.setTotalLightTime(0L);
+            lampLogVO.setTotalLightTime("0");
         }
 
         LampInfoCacheByDayDTO sumMonth = lampInfoCacheByDayService.getSumMonthByLampId(lampVO.getId());
         LampInfoCacheByDayDTO sumYear = lampInfoCacheByDayService.getSumYearByLampId(lampVO.getId());
         if (sumMonth != null) {
-            lampLogVO.setMonthLightTime(sumMonth.getLightTime());
+            lampLogVO.setMonthLightTime(df.format(sumMonth.getLightTime() / 60.0));
         } else {
-            lampLogVO.setMonthLightTime(0L);
+            lampLogVO.setMonthLightTime("0");
         }
         if (sumYear != null) {
-            lampLogVO.setYearLightTime(sumYear.getLightTime());
+            lampLogVO.setYearLightTime(df.format(sumYear.getLightTime() / 60.0));
         } else {
-            lampLogVO.setYearLightTime(0L);
+            lampLogVO.setYearLightTime("0");
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, lampLogVO);
     }

+ 4 - 51
src/main/java/com/welampiot/service/impl/LampInfoLogServiceImpl.java

@@ -6,10 +6,10 @@ import com.welampiot.service.LampInfoLogService;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.AllAlarmInfoLogVO;
 import com.welampiot.vo.LampLogVO;
-import lombok.val;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.DecimalFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -98,16 +98,17 @@ public class LampInfoLogServiceImpl implements LampInfoLogService {
         LocalDateTime end = parseLocalDateTime(nowTime).withHour(23);
 
         Integer lightTime = lastLightTime;
+        DecimalFormat df = new DecimalFormat("0.##");
         for (LocalDateTime time = first; time.isBefore(end); time = time.plusHours(1)) {
             LampInfoLogDTO current = logs.get(time);
 
             if (current != null) {
                 int value = current.getWorkTimeTotal() - lightTime;
                 if (value < 0) value = current.getWorkTimeTotal();
-                dataList.add(value);
+                dataList.add(df.format(value / 60.0));
                 lightTime = current.getWorkTimeTotal();
             } else {
-                dataList.add(0);
+                dataList.add("0");
             }
             String timeStr = time.format(formatter);
             dateList.add(timeStr);
@@ -123,52 +124,4 @@ public class LampInfoLogServiceImpl implements LampInfoLogService {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         return LocalDateTime.parse(dateStr, formatter).withMinute(0).withSecond(0);
     }
-
-    public static void main(String[] args) {
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-        String nowTime = "2024-12-13 14:01:15"; // 假设这是你从 ToolUtils.getNowTime() 获取的时间字符串
-        LocalDateTime first = parseLocalDateTime(nowTime).withHour(0);
-        LocalDateTime end = parseLocalDateTime(nowTime).withHour(23);
-        System.out.println("first = " + first.format(formatter));
-        System.out.println("end = " + end.format(formatter));
-        System.out.println("first = " + first.minusHours(1).format(formatter));
-
-        List<LampInfoLogDTO> list = new ArrayList<>();
-        val lampInfoLogDTO = new LampInfoLogDTO();
-        lampInfoLogDTO.setUpdateTime("2024-12-13 08:12:25");
-        lampInfoLogDTO.setWorkTimeTotal(234);
-
-        val lampInfoLogDTO1 = new LampInfoLogDTO();
-        lampInfoLogDTO1.setUpdateTime("2024-12-13 08:38:56");
-        lampInfoLogDTO1.setWorkTimeTotal(236);
-
-        val lampInfoLogDTO2 = new LampInfoLogDTO();
-        lampInfoLogDTO2.setUpdateTime("2024-12-13 10:12:25");
-        lampInfoLogDTO2.setWorkTimeTotal(238);
-
-        val lampInfoLogDTO3 = new LampInfoLogDTO();
-        lampInfoLogDTO3.setUpdateTime("2024-12-13 11:12:25");
-        lampInfoLogDTO3.setWorkTimeTotal(239);
-
-        val lampInfoLogDTO4 = new LampInfoLogDTO();
-        lampInfoLogDTO4.setUpdateTime("2024-12-13 12:22:23");
-        lampInfoLogDTO4.setWorkTimeTotal(240);
-
-        val lampInfoLogDTO5 = new LampInfoLogDTO();
-        lampInfoLogDTO5.setUpdateTime("2024-12-13 12:45:25");
-        lampInfoLogDTO5.setWorkTimeTotal(241);
-        list.add(lampInfoLogDTO);
-        list.add(lampInfoLogDTO1);
-        list.add(lampInfoLogDTO2);
-        list.add(lampInfoLogDTO3);
-        list.add(lampInfoLogDTO4);
-        list.add(lampInfoLogDTO5);
-
-        Map<LocalDateTime, LampInfoLogDTO> logs = list.stream()
-                .collect(Collectors.toMap(
-                        log -> parseLocalDateTime(log.getUpdateTime()),
-                        log -> log,
-                        (existing, replacement) -> existing.getUpdateTime().compareTo(replacement.getUpdateTime()) > 0 ? existing : replacement));
-        System.out.println("logs = " + logs);
-    }
 }

+ 6 - 0
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -2158,6 +2158,12 @@ System.out.println(res);
         return sdf.format(new Date());
     }
 
+    public static String convertMinutesToHoursAndMinutes(int minutes) {
+        int hours = minutes / 60;
+        int remainingMinutes = minutes % 60;
+        return String.format("%d:%02d", hours, remainingMinutes);
+    }
+
     /**
      * 获取当前日期
      */

+ 4 - 4
src/main/java/com/welampiot/vo/LampLogVO.java

@@ -28,8 +28,8 @@ public class LampLogVO {
     private Integer step;
     private List list;
 
-    private Integer dayLightTime;
-    private Long monthLightTime;
-    private Long yearLightTime;
-    private Long totalLightTime;
+    private String dayLightTime;
+    private String monthLightTime;
+    private String yearLightTime;
+    private String totalLightTime;
 }