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