Explorar o código

回路历史数据导出

zhj hai 10 meses
pai
achega
458df1eabb

+ 9 - 2
src/main/java/com/welampiot/controller/LoopController.java

@@ -498,10 +498,17 @@ public class LoopController {
         Integer version = loopDataLogVO.getVersion();
         Integer id = loopDataLogVO.getId();
         if (id == null || id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
-        loopDataLogVO.setPageAndCount(loopDataLogVO.getPage(), loopDataLogVO.getCount());
+        if (loopDataLogVO.getDownload() != null && loopDataLogVO.getDownload() == 1) {
+            loopDataLogVO.setPageAndCount(loopDataLogVO.getPage(), loopDataLogVO.getCount());
+        }
         List<LoopDataLogDTO> loopDatalogList = loopDataLogService.getLoopDataLogListByLoopDataLogVO(loopDataLogVO);
-        Integer total = loopDataLogService.getLoopDataLogTotalById(id);
         LoopDataLogVO loopDataLogVO1 = new LoopDataLogVO();
+        if (loopDataLogVO.getDownload() != null && loopDataLogVO.getDownload() == 1) {
+            String path = LoopDataLogDTO.outLoopDataLog(loopDatalogList, version);
+            loopDataLogVO1.setPath(path);
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,loopDataLogVO1);
+        }
+        Integer total = loopDataLogService.getLoopDataLogTotalById(id);
         loopDataLogVO1.setTotal(total);
         loopDataLogVO1.setList(loopDatalogList);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,loopDataLogVO1);

+ 60 - 0
src/main/java/com/welampiot/dto/LoopDataLogDTO.java

@@ -1,6 +1,12 @@
 package com.welampiot.dto;
 
+import com.welampiot.utils.ExcelUtil;
 import lombok.Data;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 @Data
 public class LoopDataLogDTO {
@@ -18,4 +24,58 @@ public class LoopDataLogDTO {
     private String updateTime;
     /** 开合闸状态(0 合闸,1 分闸) */
     private Integer status;
+
+    public static String outLoopDataLog(List<LoopDataLogDTO> logList, Integer version) {
+        List<String> titleList;
+        if (version != null && version == 1) { // 英文
+            titleList = Arrays.asList("Update Time", "Status", "A Current", "A Voltage", "A Power", "B Current", "B Voltage", "B Power",
+                    "C Current", "C Voltage", "C Power");
+        }  else if (version != null && version == 2) { // 俄语
+            titleList = Arrays.asList("Время обновления", "Открыть шлюз", "A ток", "A напряжен", "A мощност", "B ток", "B напряжен", "B мощност",
+                     "C ток", "C напряжен", "C мощност");
+        }else {
+            titleList = Arrays.asList("更新时间", "开合闸状态", "A相电流", "A相电压", "A相功率", "B相电流", "B相电压", "B相功率",
+                    "C相电流", "C相电压", "C相功率");
+        }
+
+        List<List<String>> contentList = new ArrayList<>();
+        for (LoopDataLogDTO logDTO : logList) {
+            List<String> newString = getStrings(logDTO, version);
+            contentList.add(newString);
+        }
+
+        return ExcelUtil.outExcel(titleList, contentList);
+    }
+
+    private static @NotNull List<String> getStrings(LoopDataLogDTO logDTO, Integer version) {
+        List<String> newString = new ArrayList<>();
+        newString.add(logDTO.getUpdateTime());
+        if (logDTO.getStatus() != null && logDTO.getStatus() == 1) {
+            if (version != null && version == 2) { // 俄语
+                newString.add("включ");
+            } else if (version != null && version == 1) { // 英文
+                newString.add("open");
+            } else {
+                newString.add("合闸");
+            }
+        } else {
+            if (version != null && version == 2) { // 俄语
+                newString.add("откр");
+            } else if (version != null && version == 1) { // 英文
+                newString.add("close");
+            } else {
+                newString.add("分闸");
+            }
+        }
+        newString.add(logDTO.getCurA().toString());
+        newString.add(logDTO.getVolPa().toString());
+        newString.add(logDTO.getInsPa().toString());
+        newString.add(logDTO.getCurB().toString());
+        newString.add(logDTO.getVolPb().toString());
+        newString.add(logDTO.getInsPb().toString());
+        newString.add(logDTO.getCurC().toString());
+        newString.add(logDTO.getVolPc().toString());
+        newString.add(logDTO.getInsPc().toString());
+        return newString;
+    }
 }

+ 1 - 0
src/main/java/com/welampiot/vo/BaseVO.java

@@ -16,6 +16,7 @@ public class BaseVO {
     private Integer version;
     private Integer download;
     private List<Integer> sectionList;
+    private String path;
 
     public void setPageAndCount(Integer page, Integer count) {
         if (count == null || count == 0) {