Browse Source

超级电源输出统计数据

zhj 2 years atrás
parent
commit
cb88026506

+ 242 - 0
src/main/java/com/welampiot/controller/SuperPowerController.java

@@ -3,8 +3,11 @@ package com.welampiot.controller;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.SuperPowerDevInfoDTO;
+import com.welampiot.dto.SuperPowerDevInfoLogDTO;
+import com.welampiot.service.SuperPowerDevInfoLogService;
 import com.welampiot.service.SuperPowerDevInfoService;
 import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.SuperPowerDevInfoLogVO;
 import com.welampiot.vo.SuperPowerDevInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -13,6 +16,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * ClassName: SuperPowerController
@@ -30,6 +36,9 @@ public class SuperPowerController {
     @Autowired
     private SuperPowerDevInfoService superPowerDevInfoService;
 
+    @Autowired
+    private SuperPowerDevInfoLogService superPowerDevInfoLogService;
+
     @Autowired
     private ToolUtils toolUtils;
 
@@ -87,4 +96,237 @@ public class SuperPowerController {
         if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
         return BaseResult.success(vo);
     }
+
+    /**
+     * 获取超级电源输出统计数据
+     * @param request
+     * @return
+     */
+    @RequestMapping(value = "powerOutStatistics", method = RequestMethod.POST)
+    public BaseResult powerOutStatistics(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        Integer dateType = (Integer) toolUtils.getRequestContent(request,"dateType",1);
+        Integer dataType = (Integer) toolUtils.getRequestContent(request,"dataType",1);
+        Integer timezone = superPowerDevInfoLogService.getTimezoneById(id);
+        if (timezone == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        long l = System.currentTimeMillis() - timezone * 3600 * 1000;
+        long startTime = 0L;
+        long endTime = 0L;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (dateType == 0){ // 1 天
+            startTime = l - 24 * 3600 * 1000;
+            endTime = l;
+        }else if (dateType == 1){ // 3 天
+            startTime = l - 24 * 3600 * 1000 * 3;
+            endTime = l;
+        }else if (dateType == 2){ // 7 天
+            startTime = l - 24 * 3600 * 1000 * 7;
+            endTime = l;
+        }else if (dateType == 3){ // 14 天
+            startTime = l - 24 * 3600 * 1000 * 14;
+            endTime = l;
+        }else if (dateType == 4){ // 日期选择 最多30天
+            String date = (String) toolUtils.getRequestContent(request,"date",2);
+            if (date.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_DATE_ERROR,version);
+            List<String> split = Arrays.asList(date.split("/"));
+            System.out.println(split);
+            System.out.println(split.get(0));
+            System.out.println(split.get(1));
+            startTime = simpleDateFormat.parse(split.get(0) + " 00:00:00").getTime();
+            endTime = simpleDateFormat.parse(split.get(1) + " 23:59:59").getTime();
+            if (endTime < startTime) toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR,version);
+            if (endTime - startTime > 29L *24 * 3600 * 1000) toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR,version);
+            startTime -= timezone * 3600 * 1000;
+            endTime -= timezone * 3600 * 1000;
+        }
+
+        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
+        long timeT = startTime;
+        int i = 0;
+
+        List<Object> dateList = new ArrayList<>();
+        List<Object> volList = new ArrayList<>();
+        List<Object> curList = new ArrayList<>();
+        List<Object> powerList = new ArrayList<>();
+        List<Object> dayElectricList = new ArrayList<>();
+        List<Object> totalElectricList = new ArrayList<>();
+        ArrayList<SuperPowerDevInfoLogDTO> list = new ArrayList<>();
+        simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
+        while (timeT < endTime){
+            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)),i);
+            dateList.add(simpleDateFormat.format(new Date(timeT + timezone * 3600 * 1000)));
+            volList.add(0);
+            curList.add(0);
+            powerList.add(0);
+            dayElectricList.add(0);
+            totalElectricList.add(0);
+            list.add(null);
+            timeT += 3600 * 1000;
+            i ++;
+        }
+        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String startDate = simpleDateFormat.format(new Date(startTime));
+        String endDate = simpleDateFormat.format(new Date(endTime));
+        SuperPowerDevInfoLogDTO dto = new SuperPowerDevInfoLogDTO();
+        dto.setSuperPowerId(id);
+        dto.setStartDate(startDate);
+        dto.setEndDate(endDate);
+        dto.setDataType(dataType);
+        List<SuperPowerDevInfoLogDTO> powerOutStatistics = superPowerDevInfoLogService.getPowerOutStatistics(dto);
+        for (SuperPowerDevInfoLogDTO superPowerDevInfoLogDTO : powerOutStatistics){
+            Date date = new Date(simpleDateFormat2.parse(superPowerDevInfoLogDTO.getUpdateTime()).getTime());
+            String s = simpleDateFormat.format(date);
+            if (objectObjectHashMap.containsKey(s)){
+                Integer integer = objectObjectHashMap.get(s);
+                list.set(integer,superPowerDevInfoLogDTO);
+            }
+        }
+        for (SuperPowerDevInfoLogDTO superPowerDevInfoLogDTO:list) {
+            if (superPowerDevInfoLogDTO != null) {
+                Date date = new Date(simpleDateFormat2.parse(superPowerDevInfoLogDTO.getUpdateTime()).getTime());
+                String s = simpleDateFormat.format(date);
+                Integer integer = null;
+                if (objectObjectHashMap.containsKey(s)) {
+                    integer = objectObjectHashMap.get(s);
+                    list.set(integer, superPowerDevInfoLogDTO);
+                }
+
+                if (dto.getDataType() != null){
+                    switch (dto.getDataType()){
+                        case 0 :
+                            if (superPowerDevInfoLogDTO.getRemark1Cur() != null && !superPowerDevInfoLogDTO.getRemark1Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark1Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark1Power() != null && !superPowerDevInfoLogDTO.getRemark1Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark1Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark1DayElectric() != null && !superPowerDevInfoLogDTO.getRemark1DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark1DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark1TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark1TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark1TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 1 :
+                            if (superPowerDevInfoLogDTO.getRemark2Cur() != null && !superPowerDevInfoLogDTO.getRemark2Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark2Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark2Power() != null && !superPowerDevInfoLogDTO.getRemark2Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark2Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark2DayElectric() != null && !superPowerDevInfoLogDTO.getRemark2DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark2DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark2TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark2TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark2TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 2 :
+                            if (superPowerDevInfoLogDTO.getRemark3Cur() != null && !superPowerDevInfoLogDTO.getRemark3Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark3Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark3Power() != null && !superPowerDevInfoLogDTO.getRemark3Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark3Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark3DayElectric() != null && !superPowerDevInfoLogDTO.getRemark3DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark3DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark3TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark3TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark3TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 3 :
+                            if (superPowerDevInfoLogDTO.getRemark4Cur() != null && !superPowerDevInfoLogDTO.getRemark4Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark4Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark4Power() != null && !superPowerDevInfoLogDTO.getRemark4Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark4Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark4DayElectric() != null && !superPowerDevInfoLogDTO.getRemark4DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark4DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark4TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark4TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark4TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 4 :
+                            if (superPowerDevInfoLogDTO.getRemark5Cur() != null && !superPowerDevInfoLogDTO.getRemark5Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark5Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark5Power() != null && !superPowerDevInfoLogDTO.getRemark5Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark5Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark5DayElectric() != null && !superPowerDevInfoLogDTO.getRemark5DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark5DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark5TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark5TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark5TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 5 :
+                            if (superPowerDevInfoLogDTO.getRemark6Cur() != null && !superPowerDevInfoLogDTO.getRemark6Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark6Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark6Power() != null && !superPowerDevInfoLogDTO.getRemark6Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark6Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark6DayElectric() != null && !superPowerDevInfoLogDTO.getRemark6DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark6DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark6TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark6TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark6TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                        case 6 :
+                            if (superPowerDevInfoLogDTO.getRemark7Cur() != null && !superPowerDevInfoLogDTO.getRemark7Cur().equals("0") && integer != null){
+                                curList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark7Cur()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark7Power() != null && !superPowerDevInfoLogDTO.getRemark7Power().equals("0") && integer != null){
+                                powerList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark7Power()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark7DayElectric() != null && !superPowerDevInfoLogDTO.getRemark7DayElectric().equals("0") && integer != null){
+                                dayElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark7DayElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getRemark7TotalElectric() != null && !superPowerDevInfoLogDTO.getRemark7TotalElectric().equals("0") && integer != null){
+                                totalElectricList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getRemark7TotalElectric()));
+                            }
+                            if (superPowerDevInfoLogDTO.getVol() != null && !superPowerDevInfoLogDTO.getVol().equals("0") && integer != null){
+                                volList.set(integer,Float.valueOf(superPowerDevInfoLogDTO.getVol()));
+                            }
+                            break;
+                    }
+                    date = new Date(simpleDateFormat2.parse(superPowerDevInfoLogDTO.getUpdateTime()).getTime() + timezone * 3600 * 1000);
+                    superPowerDevInfoLogDTO.setUpdateTime(simpleDateFormat.format(date));
+                }
+            }
+        }
+        SuperPowerDevInfoLogVO superPowerDevInfoLogVO = new SuperPowerDevInfoLogVO();
+        superPowerDevInfoLogVO.setDateArr(dateList);
+        superPowerDevInfoLogVO.setCurArr(curList);
+        superPowerDevInfoLogVO.setVolArr(volList);
+        superPowerDevInfoLogVO.setPowerArr(powerList);
+        superPowerDevInfoLogVO.setDayElectricArr(dayElectricList);
+        superPowerDevInfoLogVO.setTotalElectricArr(totalElectricList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,superPowerDevInfoLogVO);
+    }
 }

+ 21 - 0
src/main/java/com/welampiot/dao/SuperPowerDevInfoLogDao.java

@@ -0,0 +1,21 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.SuperPowerDevInfoLogDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: SuperPowerDevInfoLogDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/4/27 - 10:46
+ * @Version: v1.0
+ */
+public interface SuperPowerDevInfoLogDao {
+    List<SuperPowerDevInfoLogDTO> getPowerOutStatistics(SuperPowerDevInfoLogDTO dto);
+
+    Integer getTimezoneById(@Param("id") Integer id);
+}

+ 228 - 0
src/main/java/com/welampiot/dto/SuperPowerDevInfoLogDTO.java

@@ -0,0 +1,228 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: SuperPowerDevInfoDTO
+ * Package: com.welampiot.dto
+ * Description: 超级电源设备日志表
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/4/23 - 9:41
+ * @Version: v1.0
+ */
+@Data
+public class SuperPowerDevInfoLogDTO implements Serializable {
+    /** 主键 **/
+    private Integer id;
+
+    /** 超级电源设备id **/
+    private Integer superPowerId;
+
+    /** 电网电压(V)**/
+    private String vol;
+
+    /** 输入电流(A)**/
+    private String cur;
+
+    /** 电网频率(Hz)**/
+    private String frequency;
+
+    /** 输入功率(W)**/
+    private String power;
+
+    /** 当日总电量(kWh)**/
+    private String dayElectric;
+
+    /** 总电量 **/
+    private String totalElectric;
+
+    /** AC220V输出1路备注 **/
+    private String remark1;
+
+    /** AC220V输出1路开关状态(0 关,1 开)**/
+    private Integer remark1Status;
+
+    /** AC220V输出1路的总输出电量 **/
+    private String remark1Electric;
+
+    /** 运行状态(0 等待,1 自检,2 工作,3 告警,4 故障)**/
+    private Integer remark1RunningStatus;
+
+    /** 220V1路输出电流(A)**/
+    private String remark1Cur;
+
+    /** 220V1路输出功率(W)**/
+    private String remark1Power;
+
+    /** 220V1路日总电量 **/
+    private String remark1DayElectric;
+
+    /** 220V1路总电量(kWh)**/
+    private String remark1TotalElectric;
+
+    /** AC220V输出2路备注 **/
+    private String remark2;
+
+    /** AC220V输出2路开关状态(0 关,1 开)**/
+    private Integer remark2Status;
+
+    /** AC220V输出2路的总输出电量 **/
+    private String remark2Electric;
+
+    /** 运行状态(0 等待,1 自检,2 工作,3 告警,4 故障)**/
+    private Integer remark2RunningStatus;
+
+    /** 220V2路输出电流(A)**/
+    private String remark2Cur;
+
+    /** 220V2路输出功率(W)**/
+    private String remark2Power;
+
+    /** 220V2路日总电量 **/
+    private String remark2DayElectric;
+
+    /** 220V2路总电量(kWh)**/
+    private String remark2TotalElectric;
+
+    /** AC220V输出3路备注 **/
+    private String remark3;
+
+    /** AC220V输出3路开关状态(0 关,1 开)**/
+    private Integer remark3Status;
+
+    /** AC220V输出3路的总输出电量 **/
+    private String remark3Electric;
+
+    /** 运行状态(0 等待,1 自检,2 工作,3 告警,4 故障)**/
+    private Integer remark3RunningStatus;
+
+    /** 220V3路输出电流(A)**/
+    private String remark3Cur;
+
+    /** 220V3路输出功率(W)**/
+    private String remark3Power;
+
+    /** 220V3路日总电量 **/
+    private String remark3DayElectric;
+
+    /** 220V3路总电量(kWh)**/
+    private String remark3TotalElectric;
+
+    /** AC220V输出4路备注 **/
+    private String remark4;
+
+    /** AC220V输出4路开关状态(0 关,1 开)**/
+    private Integer remark4Status;
+
+    /** AC220V输出4路的总输出电量 **/
+    private String remark4Electric;
+
+    /** 运行状态(0 等待,1 自检,2 软起,3 正常,4 告警,5 故障)**/
+    private Integer remark4RunningStatus;
+
+    /** 220V4路输出电流(A)**/
+    private String remark4Cur;
+
+    /** 220V4路输出功率(W)**/
+    private String remark4Power;
+
+    /** 220V4路日总电量 **/
+    private String remark4DayElectric;
+
+    /** 220V4路总电量(kWh)**/
+    private String remark4TotalElectric;
+
+    /** AC220V输出5路备注 **/
+    private String remark5;
+
+    /** AC220V输出5路开关状态(0 关,1 开)**/
+    private Integer remark5Status;
+
+    /** AC220V输出5路的总输出电量 **/
+    private String remark5Electric;
+
+    /** 运行状态(0 等待,1 自检,2 软起,3 正常,4 告警,5 故障)**/
+    private Integer remark5RunningStatus;
+
+    /** 220V5路输出电流(A)**/
+    private String remark5Cur;
+
+    /** 220V5路输出功率(W)**/
+    private String remark5Power;
+
+    /** 220V5路日总电量 **/
+    private String remark5DayElectric;
+
+    /** 220V5路总电量(kWh)**/
+    private String remark5TotalElectric;
+
+    /** AC220V输出6路备注 **/
+    private String remark6;
+
+    /** AC220V输出6路开关状态(0 关,1 开)**/
+    private Integer remark6Status;
+
+    /** AC220V输出6路的总输出电量 **/
+    private String remark6Electric;
+
+    /** 运行状态(0 等待,1 自检,2 软起,3 正常,4 告警,5 故障)**/
+    private Integer remark6RunningStatus;
+
+    /** 220V6路输出电流(A)**/
+    private String remark6Cur;
+
+    /** 220V6路输出功率(W)**/
+    private String remark6Power;
+
+    /** 220V6路日总电量 **/
+    private String remark6DayElectric;
+
+    /** 220V6路总电量(kWh)**/
+    private String remark6TotalElectric;
+
+    /** AC220V输出7路备注 **/
+    private String remark7;
+
+    /** AC220V输出7路开关状态(0 关,1 开)**/
+    private Integer remark7Status;
+
+    /** AC220V输出7路的总输出电量 **/
+    private String remark7Electric;
+
+    /** 运行状态(0 等待,1 自检,2 软起,3 正常,4 告警,5 故障)**/
+    private Integer remark7RunningStatus;
+
+    /** 220V7路输出电流(A)**/
+    private String remark7Cur;
+
+    /** 220V7路输出功率(W)**/
+    private String remark7Power;
+
+    /** 220V7路日总电量 **/
+    private String remark7DayElectric;
+
+    /** 220V7路总电量(kWh)**/
+    private String remark7TotalElectric;
+
+    /** 故障信息1 **/
+    private String faultInfo1;
+
+    /** 故障信息2 **/
+    private String faultInfo2;
+
+    /** 更新时间 **/
+    private String updateTime;
+
+    private Integer timezone;
+
+    private Integer dataType;
+
+    private String startDate;
+
+    private String endDate;
+
+    private static final long serialVersionUID = 1L;
+}

+ 20 - 0
src/main/java/com/welampiot/service/SuperPowerDevInfoLogService.java

@@ -0,0 +1,20 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.SuperPowerDevInfoLogDTO;
+
+import java.util.List;
+
+/**
+ * ClassName: SuperPowerDevInfoLogService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/4/27 - 10:49
+ * @Version: v1.0
+ */
+public interface SuperPowerDevInfoLogService {
+    List<SuperPowerDevInfoLogDTO> getPowerOutStatistics(SuperPowerDevInfoLogDTO dto);
+
+    Integer getTimezoneById(Integer id);
+}

+ 34 - 0
src/main/java/com/welampiot/service/impl/SuperPowerDevInfoLogServiceImpl.java

@@ -0,0 +1,34 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.SuperPowerDevInfoLogDao;
+import com.welampiot.dto.SuperPowerDevInfoLogDTO;
+import com.welampiot.service.SuperPowerDevInfoLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: SuperPowerDevInfoLogServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/4/27 - 10:49
+ * @Version: v1.0
+ */
+@Service
+public class SuperPowerDevInfoLogServiceImpl implements SuperPowerDevInfoLogService {
+    @Autowired
+    private SuperPowerDevInfoLogDao superPowerDevInfoLogDao;
+
+    @Override
+    public List<SuperPowerDevInfoLogDTO> getPowerOutStatistics(SuperPowerDevInfoLogDTO dto) {
+        return superPowerDevInfoLogDao.getPowerOutStatistics(dto);
+    }
+
+    @Override
+    public Integer getTimezoneById(Integer id) {
+        return superPowerDevInfoLogDao.getTimezoneById(id);
+    }
+}

+ 32 - 0
src/main/java/com/welampiot/vo/SuperPowerDevInfoLogVO.java

@@ -0,0 +1,32 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: SuperPowerDevInfoDTO
+ * Package: com.welampiot.dto
+ * Description: 超级电源设备日志表
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/4/23 - 9:41
+ * @Version: v1.0
+ */
+@Data
+public class SuperPowerDevInfoLogVO implements Serializable {
+    private List<Object> dateArr;
+
+    private List<Object> volArr;
+
+    private List<Object> curArr;
+
+    private List<Object> powerArr;
+
+    private List<Object> dayElectricArr;
+
+    private List<Object> totalElectricArr;
+
+    private static final long serialVersionUID = 1L;
+}

+ 32 - 0
src/main/resources/mapper/SuperPowerDevInfoLogMapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.SuperPowerDevInfoLogDao">
+    
+    <select id="getPowerOutStatistics" resultType="SuperPowerDevInfoLogDTO">
+        select s.remark1_cur remark1Cur,s.remark1_power remark1Power,s.remark1_day_electric remark1DayElectric,s.remark1_total_electric remark1TotalElectric,
+               s.remark2_cur remark2Cur,s.remark2_power remark2Power,s.remark2_day_electric remark2DayElectric,s.remark2_total_electric remark2TotalElectric,
+               s.remark3_cur remark3Cur,s.remark3_power remark3Power,s.remark3_day_electric remark3DayElectric,s.remark3_total_electric remark3TotalElectric,
+               s.remark4_cur remark4Cur,s.remark4_power remark4Power,s.remark4_day_electric remark4DayElectric,s.remark4_total_electric remark4TotalElectric,s.remark4_vol remark4Vol,
+               s.remark5_cur remark5Cur,s.remark5_power remark5Power,s.remark5_day_electric remark5DayElectric,s.remark5_total_electric remark5TotalElectric,s.remark5_vol remark5Vol,
+               s.remark6_cur remark6Cur,s.remark6_power remark6Power,s.remark6_day_electric remark6DayELectric,s.remark6_total_electric remark6TotalElectric,s.remark6_vol remark6Vol,
+               s.remark7_cur remark7Cur,s.remark7_power remark7Power,s.remark7_day_electric remark7DayElectric,s.remark7_total_electric remark7TotalElectric,s.remark7_vol remark7Vol,
+               s.vol,s.updatetime as updateTime
+        from super_power_dev_info_log s
+        where s.super_power_id = #{superPowerId}
+            <if test="startDate != null and startDate != ''">
+                and s.updatetime <![CDATA[ >= ]]> #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                and s.updatetime <![CDATA[ <= ]]> #{endDate}
+            </if>
+            order by s.updatetime desc
+    </select>
+
+    <select id="getTimezoneById" resultType="Integer">
+        select s.timezone
+        from super_power_dev_info s1 left join lamp_pole lp on lp.id = s1.lamp_pole_id
+                     left join section s on lp.sectionid = s.id
+        where s1.id = #{id}
+    </select>
+
+</mapper>