From a746fa722dbe2975e4a7fd2a2028acf1be93cdaf Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 06 十月 2023 21:05:38 +0800
Subject: [PATCH] 导出功能

---
 ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java       |   64 ++++++++++++++++
 ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java             |   13 +++
 ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java                  |    8 ++
 ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java                    |   96 ++++++++++++++++++++++++
 ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java |    6 
 5 files changed, 184 insertions(+), 3 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java b/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java
index a703a9b..fd2b6f2 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/smoke/InTimeController.java
@@ -5,15 +5,28 @@
 import com.ycl.api.CommonPage;
 import com.ycl.api.CommonResult;
 import com.ycl.controller.BaseController;
+import com.ycl.dto.caseHandler.QueryForViolationParam;
 import com.ycl.dto.smoker.InTimeCountDto;
+import com.ycl.dto.smoker.QueryInTimeParam;
 import com.ycl.entity.smoke.OdsCustomer;
 import com.ycl.entity.smoke.OdsInTime;
 import com.ycl.service.smoke.IOdsCustomerService;
 import com.ycl.service.smoke.IOdsInTimeService;
+import com.ycl.utils.EasyExcelUtils;
+import com.ycl.vo.casePool.QueryForViolationVO;
+import com.ycl.vo.smoke.OdsInTimeVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @RestController
 @RequestMapping("/smoke")
@@ -62,6 +75,57 @@
         return CommonResult.success(CommonPage.restPage(inTimePage));
     }
 
+    @ApiOperation("瀵煎嚭瀹炴椂鏁版嵁")
+    @PostMapping(value = "/inTime/export")
+    @LogSave(operationType = "娌圭儫妯″潡", contain = "鏌ヨ瀹炴椂鏁版嵁")
+    public void exportInTimeList(HttpServletResponse response, QueryInTimeParam param) throws IOException {
+        Page<OdsInTime> inTimePage = inTimeService.findList(param.getOwner(), param.getOnlineStatus(), param.getStartTime(),
+                param.getEndTime(), param.getType(), param.getStatus(), 99999, 1);
+
+        List<OdsInTimeVo> odsInTimeVos = new ArrayList<>();
+        Dictionary<Integer, String> fanStatusDic = new Hashtable<>();
+        fanStatusDic.put(1, "寮�");
+        fanStatusDic.put(2, "鍏�");
+        fanStatusDic.put(3, "寮傚父");
+        fanStatusDic.put(0, "寮傚父");
+
+        Dictionary<Integer, String> onlineStatusDic = new Hashtable<>();
+        onlineStatusDic.put(1, "鍦ㄧ嚎");
+        onlineStatusDic.put(2, "绂荤嚎");
+        onlineStatusDic.put(3, "寮傚父绂荤嚎");
+        onlineStatusDic.put(0, "寮傚父绂荤嚎");
+
+        Dictionary<String, String> statusDic = new Hashtable<>();
+        statusDic.put("NORMAL", "姝e父");
+        statusDic.put("ALARM", "棰勮");
+        statusDic.put("EXCESS", "瓒呮爣");
+        statusDic.put("DOWN", "绂荤嚎");
+        statusDic.put("OFF", "寮傚父绂荤嚎");
+
+        inTimePage.getRecords().stream().forEach(o -> {
+            OdsInTimeVo vo = new OdsInTimeVo();
+            BeanUtils.copyProperties(o, vo);
+            vo.setAcquitAtStr(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(o.getAcquitAt() * 1000)));
+            vo.setFanStatusStr(fanStatusDic.get(o.getFanStatus()));
+            vo.setFilterStatusStr(fanStatusDic.get(o.getFilterStatus()));
+            vo.setOnlineStatusStr(onlineStatusDic.get(o.getOnlineStatus()));
+            vo.setStatusStr(statusDic.get(o.getStatus()));
+            odsInTimeVos.add(vo);
+        });
+
+        String sheetName = "瀹炴椂鏁版嵁";
+
+        String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8");
+        //璁剧疆鍝嶅簲瀛楃闆�
+        response.setCharacterEncoding("UTF-8");
+        //璁剧疆鍝嶅簲濯掍綋绫诲瀷
+        response.setContentType("application/vnd.ms-excel");
+        response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+
+        EasyExcelUtils.export(response, sheetName, OdsInTimeVo.class, odsInTimeVos);
+    }
+
+
     @ApiOperation("鑾峰彇璁惧鍦ㄧ嚎鎯呭喌")
     @RequestMapping(value = "/inTime/count", method = RequestMethod.GET)
     @ResponseBody
diff --git a/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java
new file mode 100644
index 0000000..e4b68ce
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/dto/smoker/QueryInTimeParam.java
@@ -0,0 +1,13 @@
+package com.ycl.dto.smoker;
+
+import lombok.Data;
+
+@Data
+public class QueryInTimeParam {
+    private String owner;
+    private String onlineStatus;
+    private String startTime;
+    private String endTime;
+    private String type;
+    private String status;
+}
diff --git a/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java b/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java
index 812a907..3522a73 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/smoke/OdsInTime.java
@@ -1,5 +1,6 @@
 package com.ycl.entity.smoke;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -51,6 +52,7 @@
      */
     @TableField("c_emissions")
     @JsonProperty("CEmissions")
+    @ExcelProperty(value = "娌圭儫鎶樼畻娴撳害", index =7)
     private String cEmissions;
 
     /**
@@ -58,6 +60,7 @@
      */
     @TableField("c_granule")
     @JsonProperty("CGranule")
+    @ExcelProperty(value = "棰楃矑鐗╂姌绠楁祿搴�", index =9)
     private String cGranule;
 
     /**
@@ -72,6 +75,7 @@
      */
     @TableField("emissions_conc")
     @JsonProperty("EmissionsConc")
+    @ExcelProperty(value = "娌圭儫瀹炴椂娴撳害", index =6)
     private BigDecimal emissionsConc;
 
     /**
@@ -79,6 +83,7 @@
      */
     @TableField("granule_conc")
     @JsonProperty("GranuleConc")
+    @ExcelProperty(value = "棰楃矑鐗╁疄鏃舵祿搴�", index =8)
     private BigDecimal granuleConc;
 
     /**
@@ -86,6 +91,7 @@
      */
     @TableField("hydrocarbon_conc")
     @JsonProperty("HydrocarbonConc")
+    @ExcelProperty(value = "闈炵敳鐑锋�荤儍瀹炴椂娴撳害", index =10)
     private BigDecimal hydrocarbonConc;
 
     /**
@@ -144,6 +150,7 @@
      */
     @TableField("locale")
     @JsonProperty("Locale")
+    @ExcelProperty(value = "鐩戞祴鐐瑰悕绉�", index = 1)
     private String locale;
 
     /**
@@ -165,6 +172,7 @@
      */
     @TableField("addr")
     @JsonProperty("Addr")
+    @ExcelProperty(value = "瀹夎鍦板潃", index = 2)
     private String addr;
 
     /**
diff --git a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
index 6edbd26..14b4991 100644
--- a/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/smoke/impl/OdsInTimeServiceImpl.java
@@ -33,7 +33,7 @@
         QueryWrapper<OdsInTime> wrapper = new QueryWrapper<>();
         LambdaQueryWrapper<OdsInTime> lambda = wrapper.lambda();
         if (StrUtil.isNotEmpty(owner)) {
-            lambda.eq(OdsInTime::getOwner, owner);
+            lambda.like(OdsInTime::getOwner, owner);
         }
         if (StrUtil.isNotEmpty(onlineStatus)) {
             lambda.eq(OdsInTime::getOnlineStatus, onlineStatus);
@@ -42,10 +42,10 @@
             try {
                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 Date startdate = format.parse(startTime);
-                Long startTimestamp = startdate.getTime();
+                Long startTimestamp = startdate.getTime() / 1000;
 
                 Date enddate = format.parse(endTime);
-                Long endTimestamp = enddate.getTime();
+                Long endTimestamp = enddate.getTime() / 1000;
 
                 lambda.between(OdsInTime::getLastAt, startTimestamp, endTimestamp);
             } catch (ParseException e) {
diff --git a/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java
new file mode 100644
index 0000000..6349803
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/smoke/OdsInTimeVo.java
@@ -0,0 +1,96 @@
+package com.ycl.vo.smoke;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ycl.entity.smoke.OdsInTime;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OdsInTimeVo {
+
+
+    @ExcelProperty(value = "閲囬泦鏃堕棿", index = 3)
+    private String acquitAtStr;
+
+    @ExcelProperty(value = "椋庢満鐘舵��", index = 4)
+    private String FanStatusStr;
+
+    @ExcelProperty(value = "鍑�鍖栧櫒鐘舵��", index = 5)
+    private String FilterStatusStr;
+
+    @ExcelProperty(value = "鎺掓斁鐘舵��", index = 11)
+    private String StatusStr;
+
+    @ExcelProperty(value = "鏁翠綋鐘舵��", index = 12)
+    private String OnlineStatusStr;
+
+    /**
+     * 鎺掓斁鐗╂姌绠楁祿搴�
+     */
+    @TableField("c_emissions")
+    @JsonProperty("CEmissions")
+    @ExcelProperty(value = "娌圭儫鎶樼畻娴撳害", index =7)
+    private String cEmissions;
+
+    /**
+     * 棰楃矑鐗╂姌绠楁祿搴�
+     */
+    @TableField("c_granule")
+    @JsonProperty("CGranule")
+    @ExcelProperty(value = "棰楃矑鐗╂姌绠楁祿搴�", index =9)
+    private String cGranule;
+
+
+    /**
+     * 瀹炴椂鎺掓斁閲�
+     */
+    @TableField("emissions_conc")
+    @JsonProperty("EmissionsConc")
+    @ExcelProperty(value = "娌圭儫瀹炴椂娴撳害", index =6)
+    private BigDecimal emissionsConc;
+
+    /**
+     * 棰楃矑鐗╁惈閲�
+     */
+    @TableField("granule_conc")
+    @JsonProperty("GranuleConc")
+    @ExcelProperty(value = "棰楃矑鐗╁疄鏃舵祿搴�", index =8)
+    private BigDecimal granuleConc;
+
+    /**
+     * 闈炵敳鐑锋�荤儍鍚噺
+     */
+    @TableField("hydrocarbon_conc")
+    @JsonProperty("HydrocarbonConc")
+    @ExcelProperty(value = "闈炵敳鐑锋�荤儍瀹炴椂娴撳害", index =10)
+    private BigDecimal hydrocarbonConc;
+
+
+
+    /**
+     * 鐩戞祴鐐瑰悕绉�
+     */
+    @TableField("locale")
+    @JsonProperty("Locale")
+    @ExcelProperty(value = "鐩戞祴鐐瑰悕绉�", index = 1)
+    private String locale;
+
+
+    /**
+     * 瀹夎鍦板潃
+     */
+    @TableField("addr")
+    @JsonProperty("Addr")
+    @ExcelProperty(value = "瀹夎鍦板潃", index = 2)
+    private String addr;
+
+}

--
Gitblit v1.8.0